summaryrefslogtreecommitdiff
path: root/test/wasm2js
diff options
context:
space:
mode:
authorHeejin Ahn <aheejin@gmail.com>2019-11-29 18:33:41 -0800
committerGitHub <noreply@github.com>2019-11-29 18:33:41 -0800
commit24d274983df9f7dbeebe8a890297d4f30d5bbca7 (patch)
treeb76f10f6de34e94b8c0e449b18427daeb34bee0c /test/wasm2js
parent8c97dc61a713768d7f8302ec3a695c1207ce7239 (diff)
downloadbinaryen-24d274983df9f7dbeebe8a890297d4f30d5bbca7.tar.gz
binaryen-24d274983df9f7dbeebe8a890297d4f30d5bbca7.tar.bz2
binaryen-24d274983df9f7dbeebe8a890297d4f30d5bbca7.zip
Update spec test suite (#2484)
This updates spec test suite to that of the current up-to-date version of https://github.com/WebAssembly/spec repo. - All failing tests are added in `BLACKLIST` in shared.py with reasons. - For tests that already existed and was passing and started failing after the update, we add the new test to the blacklist and preserve the old file by renaming it to 'old_[FILENAME].wast' not to lose test coverage. When the cause of the error is fixed or the unsupported construct gets support so the new test passes, we can delete the corresponding 'old_[FILENAME].wast' file. - Adds support for `spectest.print_[type] style imports.
Diffstat (limited to 'test/wasm2js')
-rw-r--r--test/wasm2js/address.2asm.js1851
-rw-r--r--test/wasm2js/br.2asm.js156
-rw-r--r--test/wasm2js/br_table.2asm.js182
-rw-r--r--test/wasm2js/comments.2asm.js30
-rw-r--r--test/wasm2js/f32.2asm.js46
-rw-r--r--test/wasm2js/f64.2asm.js70
-rw-r--r--test/wasm2js/fac.2asm.js122
-rw-r--r--test/wasm2js/forward.2asm.js16
-rw-r--r--test/wasm2js/func_ptrs.2asm.js6
-rw-r--r--test/wasm2js/int_exprs.2asm.js2223
-rw-r--r--test/wasm2js/labels.2asm.js63
-rw-r--r--test/wasm2js/traps.2asm.js648
12 files changed, 4629 insertions, 784 deletions
diff --git a/test/wasm2js/address.2asm.js b/test/wasm2js/address.2asm.js
index d0b9e4a2a..4ff161a02 100644
--- a/test/wasm2js/address.2asm.js
+++ b/test/wasm2js/address.2asm.js
@@ -1,4 +1,3 @@
-import { print } from 'spectest';
function asmFunc(global, env, buffer) {
var HEAP8 = new global.Int8Array(buffer);
@@ -21,26 +20,167 @@ function asmFunc(global, env, buffer) {
var abort = env.abort;
var nan = global.NaN;
var infinity = global.Infinity;
- var print = env.print;
function $0(i) {
i = i | 0;
- print(HEAPU8[i >> 0] | 0 | 0);
- print(HEAPU8[(i + 1 | 0) >> 0] | 0 | 0);
- print(HEAPU8[(i + 2 | 0) >> 0] | 0 | 0);
- print(HEAPU8[(i + 25 | 0) >> 0] | 0 | 0);
- print(HEAPU16[i >> 1] | 0 | 0);
- print(HEAPU8[i >> 0] | 0 | ((HEAPU8[(i + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | 0);
- print(HEAPU8[(i + 1 | 0) >> 0] | 0 | ((HEAPU8[(i + 2 | 0) >> 0] | 0) << 8 | 0) | 0 | 0);
- print(HEAPU16[(i + 2 | 0) >> 1] | 0 | 0);
- print(HEAPU8[(i + 25 | 0) >> 0] | 0 | ((HEAPU8[(i + 26 | 0) >> 0] | 0) << 8 | 0) | 0 | 0);
- print(HEAP32[i >> 2] | 0 | 0);
- print(HEAPU8[(i + 1 | 0) >> 0] | 0 | ((HEAPU8[(i + 2 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[(i + 3 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[(i + 4 | 0) >> 0] | 0) << 24 | 0) | 0) | 0 | 0);
- print(HEAPU16[(i + 2 | 0) >> 1] | 0 | ((HEAPU16[(i + 4 | 0) >> 1] | 0) << 16 | 0) | 0 | 0);
- print(HEAPU8[(i + 25 | 0) >> 0] | 0 | ((HEAPU8[(i + 26 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[(i + 27 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[(i + 28 | 0) >> 0] | 0) << 24 | 0) | 0) | 0 | 0);
+ return HEAPU8[i >> 0] | 0 | 0;
}
function $1(i) {
i = i | 0;
+ return HEAPU8[i >> 0] | 0 | 0;
+ }
+
+ function $2(i) {
+ i = i | 0;
+ return HEAPU8[(i + 1 | 0) >> 0] | 0 | 0;
+ }
+
+ function $3(i) {
+ i = i | 0;
+ return HEAPU8[(i + 2 | 0) >> 0] | 0 | 0;
+ }
+
+ function $4(i) {
+ i = i | 0;
+ return HEAPU8[(i + 25 | 0) >> 0] | 0 | 0;
+ }
+
+ function $5(i) {
+ i = i | 0;
+ return HEAP8[i >> 0] | 0 | 0;
+ }
+
+ function $6(i) {
+ i = i | 0;
+ return HEAP8[i >> 0] | 0 | 0;
+ }
+
+ function $7(i) {
+ i = i | 0;
+ return HEAP8[(i + 1 | 0) >> 0] | 0 | 0;
+ }
+
+ function $8(i) {
+ i = i | 0;
+ return HEAP8[(i + 2 | 0) >> 0] | 0 | 0;
+ }
+
+ function $9(i) {
+ i = i | 0;
+ return HEAP8[(i + 25 | 0) >> 0] | 0 | 0;
+ }
+
+ function $10(i) {
+ i = i | 0;
+ return HEAPU16[i >> 1] | 0 | 0;
+ }
+
+ function $11(i) {
+ i = i | 0;
+ var $1_1 = 0;
+ $1_1 = i;
+ return HEAPU8[$1_1 >> 0] | 0 | ((HEAPU8[($1_1 + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | 0;
+ }
+
+ function $12(i) {
+ i = i | 0;
+ var $1_1 = 0;
+ $1_1 = i;
+ return HEAPU8[($1_1 + 1 | 0) >> 0] | 0 | ((HEAPU8[($1_1 + 2 | 0) >> 0] | 0) << 8 | 0) | 0 | 0;
+ }
+
+ function $13(i) {
+ i = i | 0;
+ return HEAPU16[(i + 2 | 0) >> 1] | 0 | 0;
+ }
+
+ function $14(i) {
+ i = i | 0;
+ return HEAPU16[(i + 25 | 0) >> 1] | 0 | 0;
+ }
+
+ function $15(i) {
+ i = i | 0;
+ return HEAP16[i >> 1] | 0 | 0;
+ }
+
+ function $16(i) {
+ i = i | 0;
+ var $1_1 = 0;
+ $1_1 = i;
+ return ((HEAPU8[$1_1 >> 0] | 0 | ((HEAPU8[($1_1 + 1 | 0) >> 0] | 0) << 8 | 0) | 0) << 16 | 0) >> 16 | 0 | 0;
+ }
+
+ function $17(i) {
+ i = i | 0;
+ var $1_1 = 0;
+ $1_1 = i;
+ return ((HEAPU8[($1_1 + 1 | 0) >> 0] | 0 | ((HEAPU8[($1_1 + 2 | 0) >> 0] | 0) << 8 | 0) | 0) << 16 | 0) >> 16 | 0 | 0;
+ }
+
+ function $18(i) {
+ i = i | 0;
+ return HEAP16[(i + 2 | 0) >> 1] | 0 | 0;
+ }
+
+ function $19(i) {
+ i = i | 0;
+ return HEAP16[(i + 25 | 0) >> 1] | 0 | 0;
+ }
+
+ function $20(i) {
+ i = i | 0;
+ return HEAP32[i >> 2] | 0 | 0;
+ }
+
+ function $21(i) {
+ i = i | 0;
+ var $1_1 = 0;
+ $1_1 = i;
+ return HEAPU8[$1_1 >> 0] | 0 | ((HEAPU8[($1_1 + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($1_1 + 2 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($1_1 + 3 | 0) >> 0] | 0) << 24 | 0) | 0) | 0 | 0;
+ }
+
+ function $22(i) {
+ i = i | 0;
+ var $1_1 = 0;
+ $1_1 = i;
+ return HEAPU8[($1_1 + 1 | 0) >> 0] | 0 | ((HEAPU8[($1_1 + 2 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($1_1 + 3 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($1_1 + 4 | 0) >> 0] | 0) << 24 | 0) | 0) | 0 | 0;
+ }
+
+ function $23(i) {
+ i = i | 0;
+ var $1_1 = 0;
+ $1_1 = i;
+ return HEAPU16[($1_1 + 2 | 0) >> 1] | 0 | ((HEAPU16[($1_1 + 4 | 0) >> 1] | 0) << 16 | 0) | 0 | 0;
+ }
+
+ function $24(i) {
+ i = i | 0;
+ return HEAP32[(i + 25 | 0) >> 2] | 0 | 0;
+ }
+
+ function $25(i) {
+ i = i | 0;
+ HEAPU8[(i + 4294967295 | 0) >> 0] | 0;
+ }
+
+ function $26(i) {
+ i = i | 0;
+ HEAP8[(i + 4294967295 | 0) >> 0] | 0;
+ }
+
+ function $27(i) {
+ i = i | 0;
+ HEAPU16[(i + 4294967295 | 0) >> 1] | 0;
+ }
+
+ function $28(i) {
+ i = i | 0;
+ HEAP16[(i + 4294967295 | 0) >> 1] | 0;
+ }
+
+ function $29(i) {
+ i = i | 0;
HEAP32[(i + 4294967295 | 0) >> 2] | 0;
}
@@ -72,8 +212,1360 @@ function asmFunc(global, env, buffer) {
}
return {
- "good": $0,
- "bad": $1
+ "$8u_good1": $0,
+ "$8u_good2": $1,
+ "$8u_good3": $2,
+ "$8u_good4": $3,
+ "$8u_good5": $4,
+ "$8s_good1": $5,
+ "$8s_good2": $6,
+ "$8s_good3": $7,
+ "$8s_good4": $8,
+ "$8s_good5": $9,
+ "$16u_good1": $10,
+ "$16u_good2": $11,
+ "$16u_good3": $12,
+ "$16u_good4": $13,
+ "$16u_good5": $14,
+ "$16s_good1": $15,
+ "$16s_good2": $16,
+ "$16s_good3": $17,
+ "$16s_good4": $18,
+ "$16s_good5": $19,
+ "$32_good1": $20,
+ "$32_good2": $21,
+ "$32_good3": $22,
+ "$32_good4": $23,
+ "$32_good5": $24,
+ "$8u_bad": $25,
+ "$8s_bad": $26,
+ "$16u_bad": $27,
+ "$16s_bad": $28,
+ "$32_bad": $29
+ };
+}
+
+var memasmFunc = new ArrayBuffer(65536);
+var assignasmFunc = (
+ function(mem) {
+ var _mem = new Uint8Array(mem);
+ return function(offset, s) {
+ var bytes, i;
+ if (typeof Buffer === 'undefined') {
+ bytes = atob(s);
+ for (i = 0; i < bytes.length; i++)
+ _mem[offset + i] = bytes.charCodeAt(i);
+ } else {
+ bytes = Buffer.from(s, 'base64');
+ for (i = 0; i < bytes.length; i++)
+ _mem[offset + i] = bytes[i];
+ }
+ }
+ }
+ )(memasmFunc);
+assignasmFunc(0, "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo=");
+var retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export var $8u_good1 = retasmFunc.$8u_good1;
+export var $8u_good2 = retasmFunc.$8u_good2;
+export var $8u_good3 = retasmFunc.$8u_good3;
+export var $8u_good4 = retasmFunc.$8u_good4;
+export var $8u_good5 = retasmFunc.$8u_good5;
+export var $8s_good1 = retasmFunc.$8s_good1;
+export var $8s_good2 = retasmFunc.$8s_good2;
+export var $8s_good3 = retasmFunc.$8s_good3;
+export var $8s_good4 = retasmFunc.$8s_good4;
+export var $8s_good5 = retasmFunc.$8s_good5;
+export var $16u_good1 = retasmFunc.$16u_good1;
+export var $16u_good2 = retasmFunc.$16u_good2;
+export var $16u_good3 = retasmFunc.$16u_good3;
+export var $16u_good4 = retasmFunc.$16u_good4;
+export var $16u_good5 = retasmFunc.$16u_good5;
+export var $16s_good1 = retasmFunc.$16s_good1;
+export var $16s_good2 = retasmFunc.$16s_good2;
+export var $16s_good3 = retasmFunc.$16s_good3;
+export var $16s_good4 = retasmFunc.$16s_good4;
+export var $16s_good5 = retasmFunc.$16s_good5;
+export var $32_good1 = retasmFunc.$32_good1;
+export var $32_good2 = retasmFunc.$32_good2;
+export var $32_good3 = retasmFunc.$32_good3;
+export var $32_good4 = retasmFunc.$32_good4;
+export var $32_good5 = retasmFunc.$32_good5;
+export var $8u_bad = retasmFunc.$8u_bad;
+export var $8s_bad = retasmFunc.$8s_bad;
+export var $16u_bad = retasmFunc.$16u_bad;
+export var $16s_bad = retasmFunc.$16s_bad;
+export var $32_bad = retasmFunc.$32_bad;
+import { setTempRet0 } from 'env';
+
+function asmFunc(global, env, buffer) {
+ var HEAP8 = new global.Int8Array(buffer);
+ var HEAP16 = new global.Int16Array(buffer);
+ var HEAP32 = new global.Int32Array(buffer);
+ var HEAPU8 = new global.Uint8Array(buffer);
+ var HEAPU16 = new global.Uint16Array(buffer);
+ var HEAPU32 = new global.Uint32Array(buffer);
+ var HEAPF32 = new global.Float32Array(buffer);
+ var HEAPF64 = new global.Float64Array(buffer);
+ var Math_imul = global.Math.imul;
+ var Math_fround = global.Math.fround;
+ var Math_abs = global.Math.abs;
+ var Math_clz32 = global.Math.clz32;
+ var Math_min = global.Math.min;
+ var Math_max = global.Math.max;
+ var Math_floor = global.Math.floor;
+ var Math_ceil = global.Math.ceil;
+ var Math_sqrt = global.Math.sqrt;
+ var abort = env.abort;
+ var nan = global.NaN;
+ var infinity = global.Infinity;
+ var setTempRet0 = env.setTempRet0;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function $0(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = HEAPU8[i >> 0] | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $1(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = HEAPU8[i >> 0] | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $2(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = HEAPU8[(i + 1 | 0) >> 0] | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $3(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = HEAPU8[(i + 2 | 0) >> 0] | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $4(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = HEAPU8[(i + 25 | 0) >> 0] | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $5(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = HEAP8[i >> 0] | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $6(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = HEAP8[i >> 0] | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $7(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = HEAP8[(i + 1 | 0) >> 0] | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $8(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = HEAP8[(i + 2 | 0) >> 0] | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $9(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = HEAP8[(i + 25 | 0) >> 0] | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $10(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = HEAPU16[i >> 1] | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $11(i) {
+ i = i | 0;
+ var $3_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ $3_1 = i;
+ i64toi32_i32$0 = HEAPU8[$3_1 >> 0] | 0 | ((HEAPU8[($3_1 + 1 | 0) >> 0] | 0) << 8 | 0) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $12(i) {
+ i = i | 0;
+ var $3_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ $3_1 = i;
+ i64toi32_i32$0 = HEAPU8[($3_1 + 1 | 0) >> 0] | 0 | ((HEAPU8[($3_1 + 2 | 0) >> 0] | 0) << 8 | 0) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $13(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = HEAPU16[(i + 2 | 0) >> 1] | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $14(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = HEAPU16[(i + 25 | 0) >> 1] | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $15(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = HEAP16[i >> 1] | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $16(i) {
+ i = i | 0;
+ var $3_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ $3_1 = i;
+ i64toi32_i32$0 = ((HEAPU8[$3_1 >> 0] | 0 | ((HEAPU8[($3_1 + 1 | 0) >> 0] | 0) << 8 | 0) | 0) << 16 | 0) >> 16 | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $17(i) {
+ i = i | 0;
+ var $3_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ $3_1 = i;
+ i64toi32_i32$0 = ((HEAPU8[($3_1 + 1 | 0) >> 0] | 0 | ((HEAPU8[($3_1 + 2 | 0) >> 0] | 0) << 8 | 0) | 0) << 16 | 0) >> 16 | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $18(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = HEAP16[(i + 2 | 0) >> 1] | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $19(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = HEAP16[(i + 25 | 0) >> 1] | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $20(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = HEAP32[i >> 2] | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $21(i) {
+ i = i | 0;
+ var $3_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ $3_1 = i;
+ i64toi32_i32$0 = HEAPU8[$3_1 >> 0] | 0 | ((HEAPU8[($3_1 + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($3_1 + 2 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($3_1 + 3 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $22(i) {
+ i = i | 0;
+ var $3_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ $3_1 = i;
+ i64toi32_i32$0 = HEAPU8[($3_1 + 1 | 0) >> 0] | 0 | ((HEAPU8[($3_1 + 2 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($3_1 + 3 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($3_1 + 4 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $23(i) {
+ i = i | 0;
+ var $3_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ $3_1 = i;
+ i64toi32_i32$0 = HEAPU16[($3_1 + 2 | 0) >> 1] | 0 | ((HEAPU16[($3_1 + 4 | 0) >> 1] | 0) << 16 | 0) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $24(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = HEAP32[(i + 25 | 0) >> 2] | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $25(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = HEAP32[i >> 2] | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $26(i) {
+ i = i | 0;
+ var $3_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ $3_1 = i;
+ i64toi32_i32$0 = HEAPU8[$3_1 >> 0] | 0 | ((HEAPU8[($3_1 + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($3_1 + 2 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($3_1 + 3 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $27(i) {
+ i = i | 0;
+ var $3_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ $3_1 = i;
+ i64toi32_i32$0 = HEAPU8[($3_1 + 1 | 0) >> 0] | 0 | ((HEAPU8[($3_1 + 2 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($3_1 + 3 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($3_1 + 4 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $28(i) {
+ i = i | 0;
+ var $3_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ $3_1 = i;
+ i64toi32_i32$0 = HEAPU16[($3_1 + 2 | 0) >> 1] | 0 | ((HEAPU16[($3_1 + 4 | 0) >> 1] | 0) << 16 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $29(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = HEAP32[(i + 25 | 0) >> 2] | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $30(i) {
+ i = i | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = i;
+ i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $31(i) {
+ i = i | 0;
+ var $3_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ $3_1 = i;
+ i64toi32_i32$0 = HEAPU8[$3_1 >> 0] | 0 | ((HEAPU8[($3_1 + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($3_1 + 2 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($3_1 + 3 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
+ i64toi32_i32$1 = HEAPU8[($3_1 + 4 | 0) >> 0] | 0 | ((HEAPU8[($3_1 + 5 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($3_1 + 6 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($3_1 + 7 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $32(i) {
+ i = i | 0;
+ var $3_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ $3_1 = i;
+ i64toi32_i32$0 = HEAPU8[($3_1 + 1 | 0) >> 0] | 0 | ((HEAPU8[($3_1 + 2 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($3_1 + 3 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($3_1 + 4 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
+ i64toi32_i32$1 = HEAPU8[($3_1 + 5 | 0) >> 0] | 0 | ((HEAPU8[($3_1 + 6 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($3_1 + 7 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($3_1 + 8 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $33(i) {
+ i = i | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = i;
+ i64toi32_i32$0 = HEAPU16[(i64toi32_i32$2 + 2 | 0) >> 1] | 0 | ((HEAPU16[(i64toi32_i32$2 + 4 | 0) >> 1] | 0) << 16 | 0) | 0;
+ i64toi32_i32$1 = HEAPU16[(i64toi32_i32$2 + 6 | 0) >> 1] | 0 | ((HEAPU16[(i64toi32_i32$2 + 8 | 0) >> 1] | 0) << 16 | 0) | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $34(i) {
+ i = i | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = i;
+ i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 25 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 29 | 0) >> 2] | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $35(i) {
+ i = i | 0;
+ HEAPU8[(i + 4294967295 | 0) >> 0] | 0;
+ }
+
+ function $36(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0;
+ i64toi32_i32$0 = HEAP8[(i + 4294967295 | 0) >> 0] | 0;
+ }
+
+ function $37(i) {
+ i = i | 0;
+ HEAPU16[(i + 4294967295 | 0) >> 1] | 0;
+ }
+
+ function $38(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0;
+ i64toi32_i32$0 = HEAP16[(i + 4294967295 | 0) >> 1] | 0;
+ }
+
+ function $39(i) {
+ i = i | 0;
+ HEAP32[(i + 4294967295 | 0) >> 2] | 0;
+ }
+
+ function $40(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0;
+ i64toi32_i32$0 = HEAP32[(i + 4294967295 | 0) >> 2] | 0;
+ }
+
+ function $41(i) {
+ i = i | 0;
+ var i64toi32_i32$2 = 0;
+ i64toi32_i32$2 = i;
+ HEAP32[(i64toi32_i32$2 + 3 | 0) >> 2] | 0;
+ HEAP32[(i64toi32_i32$2 + 4294967295 | 0) >> 2] | 0;
+ }
+
+ function legalstub$0($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $0($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$1($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $1($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$2($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $2($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$3($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $3($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$4($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $4($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$5($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $5($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$6($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $6($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$7($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $7($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$8($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $8($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$9($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $9($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$10($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $10($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$11($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $11($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$12($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $12($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$13($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $13($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$14($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $14($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$15($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $15($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$16($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $16($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$17($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $17($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$18($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $18($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$19($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $19($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$20($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $20($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$21($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $21($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$22($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $22($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$23($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $23($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$24($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $24($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$25($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $25($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$26($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $26($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$27($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $27($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$28($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $28($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$29($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $29($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$30($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $30($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$31($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $31($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$32($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $32($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$33($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $33($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ function legalstub$34($0_1) {
+ $0_1 = $0_1 | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $34($0_1 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $1_1 = i64toi32_i32$0;
+ $1$hi = i64toi32_i32$1;
+ i64toi32_i32$2 = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = 0;
+ $8_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($8_1 | 0);
+ i64toi32_i32$0 = $1$hi;
+ return $1_1 | 0;
+ }
+
+ var FUNCTION_TABLE = [];
+ function __wasm_memory_size() {
+ return buffer.byteLength / 65536 | 0;
+ }
+
+ function __wasm_memory_grow(pagesToAdd) {
+ pagesToAdd = pagesToAdd | 0;
+ var oldPages = __wasm_memory_size() | 0;
+ var newPages = oldPages + pagesToAdd | 0;
+ if ((oldPages < newPages) && (newPages < 65536)) {
+ var newBuffer = new ArrayBuffer(Math_imul(newPages, 65536));
+ var newHEAP8 = new global.Int8Array(newBuffer);
+ newHEAP8.set(HEAP8);
+ HEAP8 = newHEAP8;
+ HEAP8 = new global.Int8Array(newBuffer);
+ HEAP16 = new global.Int16Array(newBuffer);
+ HEAP32 = new global.Int32Array(newBuffer);
+ HEAPU8 = new global.Uint8Array(newBuffer);
+ HEAPU16 = new global.Uint16Array(newBuffer);
+ HEAPU32 = new global.Uint32Array(newBuffer);
+ HEAPF32 = new global.Float32Array(newBuffer);
+ HEAPF64 = new global.Float64Array(newBuffer);
+ buffer = newBuffer;
+ }
+ return oldPages;
+ }
+
+ return {
+ "$8u_good1": legalstub$0,
+ "$8u_good2": legalstub$1,
+ "$8u_good3": legalstub$2,
+ "$8u_good4": legalstub$3,
+ "$8u_good5": legalstub$4,
+ "$8s_good1": legalstub$5,
+ "$8s_good2": legalstub$6,
+ "$8s_good3": legalstub$7,
+ "$8s_good4": legalstub$8,
+ "$8s_good5": legalstub$9,
+ "$16u_good1": legalstub$10,
+ "$16u_good2": legalstub$11,
+ "$16u_good3": legalstub$12,
+ "$16u_good4": legalstub$13,
+ "$16u_good5": legalstub$14,
+ "$16s_good1": legalstub$15,
+ "$16s_good2": legalstub$16,
+ "$16s_good3": legalstub$17,
+ "$16s_good4": legalstub$18,
+ "$16s_good5": legalstub$19,
+ "$32u_good1": legalstub$20,
+ "$32u_good2": legalstub$21,
+ "$32u_good3": legalstub$22,
+ "$32u_good4": legalstub$23,
+ "$32u_good5": legalstub$24,
+ "$32s_good1": legalstub$25,
+ "$32s_good2": legalstub$26,
+ "$32s_good3": legalstub$27,
+ "$32s_good4": legalstub$28,
+ "$32s_good5": legalstub$29,
+ "$64_good1": legalstub$30,
+ "$64_good2": legalstub$31,
+ "$64_good3": legalstub$32,
+ "$64_good4": legalstub$33,
+ "$64_good5": legalstub$34,
+ "$8u_bad": $35,
+ "$8s_bad": $36,
+ "$16u_bad": $37,
+ "$16s_bad": $38,
+ "$32u_bad": $39,
+ "$32s_bad": $40,
+ "$64_bad": $41
};
}
@@ -96,6 +1588,325 @@ var assignasmFunc = (
}
)(memasmFunc);
assignasmFunc(0, "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo=");
-var retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },print},memasmFunc);
-export var good = retasmFunc.good;
-export var bad = retasmFunc.bad;
+var retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0},memasmFunc);
+export var $8u_good1 = retasmFunc.$8u_good1;
+export var $8u_good2 = retasmFunc.$8u_good2;
+export var $8u_good3 = retasmFunc.$8u_good3;
+export var $8u_good4 = retasmFunc.$8u_good4;
+export var $8u_good5 = retasmFunc.$8u_good5;
+export var $8s_good1 = retasmFunc.$8s_good1;
+export var $8s_good2 = retasmFunc.$8s_good2;
+export var $8s_good3 = retasmFunc.$8s_good3;
+export var $8s_good4 = retasmFunc.$8s_good4;
+export var $8s_good5 = retasmFunc.$8s_good5;
+export var $16u_good1 = retasmFunc.$16u_good1;
+export var $16u_good2 = retasmFunc.$16u_good2;
+export var $16u_good3 = retasmFunc.$16u_good3;
+export var $16u_good4 = retasmFunc.$16u_good4;
+export var $16u_good5 = retasmFunc.$16u_good5;
+export var $16s_good1 = retasmFunc.$16s_good1;
+export var $16s_good2 = retasmFunc.$16s_good2;
+export var $16s_good3 = retasmFunc.$16s_good3;
+export var $16s_good4 = retasmFunc.$16s_good4;
+export var $16s_good5 = retasmFunc.$16s_good5;
+export var $32u_good1 = retasmFunc.$32u_good1;
+export var $32u_good2 = retasmFunc.$32u_good2;
+export var $32u_good3 = retasmFunc.$32u_good3;
+export var $32u_good4 = retasmFunc.$32u_good4;
+export var $32u_good5 = retasmFunc.$32u_good5;
+export var $32s_good1 = retasmFunc.$32s_good1;
+export var $32s_good2 = retasmFunc.$32s_good2;
+export var $32s_good3 = retasmFunc.$32s_good3;
+export var $32s_good4 = retasmFunc.$32s_good4;
+export var $32s_good5 = retasmFunc.$32s_good5;
+export var $64_good1 = retasmFunc.$64_good1;
+export var $64_good2 = retasmFunc.$64_good2;
+export var $64_good3 = retasmFunc.$64_good3;
+export var $64_good4 = retasmFunc.$64_good4;
+export var $64_good5 = retasmFunc.$64_good5;
+export var $8u_bad = retasmFunc.$8u_bad;
+export var $8s_bad = retasmFunc.$8s_bad;
+export var $16u_bad = retasmFunc.$16u_bad;
+export var $16s_bad = retasmFunc.$16s_bad;
+export var $32u_bad = retasmFunc.$32u_bad;
+export var $32s_bad = retasmFunc.$32s_bad;
+export var $64_bad = retasmFunc.$64_bad;
+
+
+ var scratchBuffer = new ArrayBuffer(8);
+ var i32ScratchView = new Int32Array(scratchBuffer);
+ var f32ScratchView = new Float32Array(scratchBuffer);
+ var f64ScratchView = new Float64Array(scratchBuffer);
+
+ function wasm2js_scratch_store_i32(index, value) {
+ i32ScratchView[index] = value;
+ }
+
+ function wasm2js_scratch_load_f32() {
+ return f32ScratchView[0];
+ }
+
+function asmFunc(global, env, buffer) {
+ var HEAP8 = new global.Int8Array(buffer);
+ var HEAP16 = new global.Int16Array(buffer);
+ var HEAP32 = new global.Int32Array(buffer);
+ var HEAPU8 = new global.Uint8Array(buffer);
+ var HEAPU16 = new global.Uint16Array(buffer);
+ var HEAPU32 = new global.Uint32Array(buffer);
+ var HEAPF32 = new global.Float32Array(buffer);
+ var HEAPF64 = new global.Float64Array(buffer);
+ var Math_imul = global.Math.imul;
+ var Math_fround = global.Math.fround;
+ var Math_abs = global.Math.abs;
+ var Math_clz32 = global.Math.clz32;
+ var Math_min = global.Math.min;
+ var Math_max = global.Math.max;
+ var Math_floor = global.Math.floor;
+ var Math_ceil = global.Math.ceil;
+ var Math_sqrt = global.Math.sqrt;
+ var abort = env.abort;
+ var nan = global.NaN;
+ var infinity = global.Infinity;
+ function $0(i) {
+ i = i | 0;
+ return Math_fround(Math_fround(HEAPF32[i >> 2]));
+ }
+
+ function $1(i) {
+ i = i | 0;
+ var $1_1 = 0;
+ $1_1 = i;
+ return Math_fround((wasm2js_scratch_store_i32(0, HEAPU8[$1_1 >> 0] | 0 | ((HEAPU8[($1_1 + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($1_1 + 2 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($1_1 + 3 | 0) >> 0] | 0) << 24 | 0) | 0) | 0), wasm2js_scratch_load_f32()));
+ }
+
+ function $2(i) {
+ i = i | 0;
+ var $1_1 = 0;
+ $1_1 = i;
+ return Math_fround((wasm2js_scratch_store_i32(0, HEAPU8[($1_1 + 1 | 0) >> 0] | 0 | ((HEAPU8[($1_1 + 2 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($1_1 + 3 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($1_1 + 4 | 0) >> 0] | 0) << 24 | 0) | 0) | 0), wasm2js_scratch_load_f32()));
+ }
+
+ function $3(i) {
+ i = i | 0;
+ var $1_1 = 0;
+ $1_1 = i;
+ return Math_fround((wasm2js_scratch_store_i32(0, HEAPU16[($1_1 + 2 | 0) >> 1] | 0 | ((HEAPU16[($1_1 + 4 | 0) >> 1] | 0) << 16 | 0) | 0), wasm2js_scratch_load_f32()));
+ }
+
+ function $4(i) {
+ i = i | 0;
+ return Math_fround(Math_fround(HEAPF32[(i + 8 | 0) >> 2]));
+ }
+
+ function $5(i) {
+ i = i | 0;
+ Math_fround(HEAPF32[(i + 4294967295 | 0) >> 2]);
+ }
+
+ var FUNCTION_TABLE = [];
+ function __wasm_memory_size() {
+ return buffer.byteLength / 65536 | 0;
+ }
+
+ function __wasm_memory_grow(pagesToAdd) {
+ pagesToAdd = pagesToAdd | 0;
+ var oldPages = __wasm_memory_size() | 0;
+ var newPages = oldPages + pagesToAdd | 0;
+ if ((oldPages < newPages) && (newPages < 65536)) {
+ var newBuffer = new ArrayBuffer(Math_imul(newPages, 65536));
+ var newHEAP8 = new global.Int8Array(newBuffer);
+ newHEAP8.set(HEAP8);
+ HEAP8 = newHEAP8;
+ HEAP8 = new global.Int8Array(newBuffer);
+ HEAP16 = new global.Int16Array(newBuffer);
+ HEAP32 = new global.Int32Array(newBuffer);
+ HEAPU8 = new global.Uint8Array(newBuffer);
+ HEAPU16 = new global.Uint16Array(newBuffer);
+ HEAPU32 = new global.Uint32Array(newBuffer);
+ HEAPF32 = new global.Float32Array(newBuffer);
+ HEAPF64 = new global.Float64Array(newBuffer);
+ buffer = newBuffer;
+ }
+ return oldPages;
+ }
+
+ return {
+ "$32_good1": $0,
+ "$32_good2": $1,
+ "$32_good3": $2,
+ "$32_good4": $3,
+ "$32_good5": $4,
+ "$32_bad": $5
+ };
+}
+
+var memasmFunc = new ArrayBuffer(65536);
+var assignasmFunc = (
+ function(mem) {
+ var _mem = new Uint8Array(mem);
+ return function(offset, s) {
+ var bytes, i;
+ if (typeof Buffer === 'undefined') {
+ bytes = atob(s);
+ for (i = 0; i < bytes.length; i++)
+ _mem[offset + i] = bytes.charCodeAt(i);
+ } else {
+ bytes = Buffer.from(s, 'base64');
+ for (i = 0; i < bytes.length; i++)
+ _mem[offset + i] = bytes[i];
+ }
+ }
+ }
+ )(memasmFunc);
+assignasmFunc(0, "AAAAAAAAoH8BANB/");
+var retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export var $32_good1 = retasmFunc.$32_good1;
+export var $32_good2 = retasmFunc.$32_good2;
+export var $32_good3 = retasmFunc.$32_good3;
+export var $32_good4 = retasmFunc.$32_good4;
+export var $32_good5 = retasmFunc.$32_good5;
+export var $32_bad = retasmFunc.$32_bad;
+
+
+ var scratchBuffer = new ArrayBuffer(8);
+ var i32ScratchView = new Int32Array(scratchBuffer);
+ var f32ScratchView = new Float32Array(scratchBuffer);
+ var f64ScratchView = new Float64Array(scratchBuffer);
+
+ function wasm2js_scratch_store_i32(index, value) {
+ i32ScratchView[index] = value;
+ }
+
+ function wasm2js_scratch_load_f64() {
+ return f64ScratchView[0];
+ }
+
+function asmFunc(global, env, buffer) {
+ var HEAP8 = new global.Int8Array(buffer);
+ var HEAP16 = new global.Int16Array(buffer);
+ var HEAP32 = new global.Int32Array(buffer);
+ var HEAPU8 = new global.Uint8Array(buffer);
+ var HEAPU16 = new global.Uint16Array(buffer);
+ var HEAPU32 = new global.Uint32Array(buffer);
+ var HEAPF32 = new global.Float32Array(buffer);
+ var HEAPF64 = new global.Float64Array(buffer);
+ var Math_imul = global.Math.imul;
+ var Math_fround = global.Math.fround;
+ var Math_abs = global.Math.abs;
+ var Math_clz32 = global.Math.clz32;
+ var Math_min = global.Math.min;
+ var Math_max = global.Math.max;
+ var Math_floor = global.Math.floor;
+ var Math_ceil = global.Math.ceil;
+ var Math_sqrt = global.Math.sqrt;
+ var abort = env.abort;
+ var nan = global.NaN;
+ var infinity = global.Infinity;
+ function $0(i) {
+ i = i | 0;
+ return +(+HEAPF64[i >> 3]);
+ }
+
+ function $1(i) {
+ i = i | 0;
+ var $2_1 = 0, i64toi32_i32$1 = 0;
+ $2_1 = i;
+ i64toi32_i32$1 = HEAPU8[($2_1 + 4 | 0) >> 0] | 0 | ((HEAPU8[($2_1 + 5 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($2_1 + 6 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($2_1 + 7 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
+ wasm2js_scratch_store_i32(0 | 0, HEAPU8[$2_1 >> 0] | 0 | ((HEAPU8[($2_1 + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($2_1 + 2 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($2_1 + 3 | 0) >> 0] | 0) << 24 | 0) | 0) | 0 | 0);
+ wasm2js_scratch_store_i32(1 | 0, i64toi32_i32$1 | 0);
+ return +(+wasm2js_scratch_load_f64());
+ }
+
+ function $2(i) {
+ i = i | 0;
+ var $2_1 = 0, i64toi32_i32$1 = 0;
+ $2_1 = i;
+ i64toi32_i32$1 = HEAPU8[($2_1 + 5 | 0) >> 0] | 0 | ((HEAPU8[($2_1 + 6 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($2_1 + 7 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($2_1 + 8 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
+ wasm2js_scratch_store_i32(0 | 0, HEAPU8[($2_1 + 1 | 0) >> 0] | 0 | ((HEAPU8[($2_1 + 2 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($2_1 + 3 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($2_1 + 4 | 0) >> 0] | 0) << 24 | 0) | 0) | 0 | 0);
+ wasm2js_scratch_store_i32(1 | 0, i64toi32_i32$1 | 0);
+ return +(+wasm2js_scratch_load_f64());
+ }
+
+ function $3(i) {
+ i = i | 0;
+ var $2_1 = 0, i64toi32_i32$1 = 0;
+ $2_1 = i;
+ i64toi32_i32$1 = HEAPU16[($2_1 + 6 | 0) >> 1] | 0 | ((HEAPU16[($2_1 + 8 | 0) >> 1] | 0) << 16 | 0) | 0;
+ wasm2js_scratch_store_i32(0 | 0, HEAPU16[($2_1 + 2 | 0) >> 1] | 0 | ((HEAPU16[($2_1 + 4 | 0) >> 1] | 0) << 16 | 0) | 0 | 0);
+ wasm2js_scratch_store_i32(1 | 0, i64toi32_i32$1 | 0);
+ return +(+wasm2js_scratch_load_f64());
+ }
+
+ function $4(i) {
+ i = i | 0;
+ return +(+HEAPF64[(i + 18 | 0) >> 3]);
+ }
+
+ function $5(i) {
+ i = i | 0;
+ +HEAPF64[(i + 4294967295 | 0) >> 3];
+ }
+
+ var FUNCTION_TABLE = [];
+ function __wasm_memory_size() {
+ return buffer.byteLength / 65536 | 0;
+ }
+
+ function __wasm_memory_grow(pagesToAdd) {
+ pagesToAdd = pagesToAdd | 0;
+ var oldPages = __wasm_memory_size() | 0;
+ var newPages = oldPages + pagesToAdd | 0;
+ if ((oldPages < newPages) && (newPages < 65536)) {
+ var newBuffer = new ArrayBuffer(Math_imul(newPages, 65536));
+ var newHEAP8 = new global.Int8Array(newBuffer);
+ newHEAP8.set(HEAP8);
+ HEAP8 = newHEAP8;
+ HEAP8 = new global.Int8Array(newBuffer);
+ HEAP16 = new global.Int16Array(newBuffer);
+ HEAP32 = new global.Int32Array(newBuffer);
+ HEAPU8 = new global.Uint8Array(newBuffer);
+ HEAPU16 = new global.Uint16Array(newBuffer);
+ HEAPU32 = new global.Uint32Array(newBuffer);
+ HEAPF32 = new global.Float32Array(newBuffer);
+ HEAPF64 = new global.Float64Array(newBuffer);
+ buffer = newBuffer;
+ }
+ return oldPages;
+ }
+
+ return {
+ "$64_good1": $0,
+ "$64_good2": $1,
+ "$64_good3": $2,
+ "$64_good4": $3,
+ "$64_good5": $4,
+ "$64_bad": $5
+ };
+}
+
+var memasmFunc = new ArrayBuffer(65536);
+var assignasmFunc = (
+ function(mem) {
+ var _mem = new Uint8Array(mem);
+ return function(offset, s) {
+ var bytes, i;
+ if (typeof Buffer === 'undefined') {
+ bytes = atob(s);
+ for (i = 0; i < bytes.length; i++)
+ _mem[offset + i] = bytes.charCodeAt(i);
+ } else {
+ bytes = Buffer.from(s, 'base64');
+ for (i = 0; i < bytes.length; i++)
+ _mem[offset + i] = bytes[i];
+ }
+ }
+ }
+ )(memasmFunc);
+assignasmFunc(0, "AAAAAAAAAAAAAAAAAAAAAPR/AQAAAAAA/H8=");
+var retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export var $64_good1 = retasmFunc.$64_good1;
+export var $64_good2 = retasmFunc.$64_good2;
+export var $64_good3 = retasmFunc.$64_good3;
+export var $64_good4 = retasmFunc.$64_good4;
+export var $64_good5 = retasmFunc.$64_good5;
+export var $64_bad = retasmFunc.$64_bad;
diff --git a/test/wasm2js/br.2asm.js b/test/wasm2js/br.2asm.js
index cff3f0bc0..2a5f6a9ea 100644
--- a/test/wasm2js/br.2asm.js
+++ b/test/wasm2js/br.2asm.js
@@ -213,7 +213,7 @@ function asmFunc(global, env, buffer) {
}
function $24() {
- var $0 = 0, $1_1 = 0;
+ var $0 = 0, $5_1 = 0;
if_ : {
$0 = 2;
break if_;
@@ -224,15 +224,15 @@ function asmFunc(global, env, buffer) {
function $25($0, $1_1) {
$0 = $0 | 0;
$1_1 = $1_1 | 0;
- var $3_1 = 0, $5_1 = 0;
+ var $3_1 = 0, $7_1 = 0;
block : {
if ($0) {
$3_1 = 3;
break block;
} else {
- $5_1 = $1_1
+ $7_1 = $1_1
}
- $3_1 = $5_1;
+ $3_1 = $7_1;
}
return $3_1 | 0;
}
@@ -240,17 +240,17 @@ function asmFunc(global, env, buffer) {
function $26($0, $1_1) {
$0 = $0 | 0;
$1_1 = $1_1 | 0;
- var $4_1 = 0, $5_1 = 0;
+ var $6_1 = 0, $7_1 = 0;
block : {
if ($0) {
- $5_1 = $1_1
+ $7_1 = $1_1
} else {
- $4_1 = 4;
+ $6_1 = 4;
break block;
}
- $4_1 = $5_1;
+ $6_1 = $7_1;
}
- return $4_1 | 0;
+ return $6_1 | 0;
}
function $27($0, $1_1) {
@@ -365,6 +365,24 @@ function asmFunc(global, env, buffer) {
}
function $39() {
+ var $1_1 = 0;
+ block : {
+ $1_1 = 1;
+ break block;
+ }
+ return $1_1 | 0;
+ }
+
+ function $40() {
+ var $0 = 0;
+ block : {
+ $0 = 1;
+ break block;
+ }
+ return $0 | 0;
+ }
+
+ function $41() {
var $0 = Math_fround(0);
block : {
$0 = Math_fround(1.7000000476837158);
@@ -373,7 +391,7 @@ function asmFunc(global, env, buffer) {
return Math_fround($0);
}
- function $40() {
+ function $42() {
var i64toi32_i32$0 = 0, $0 = 0, $0$hi = 0;
block : {
i64toi32_i32$0 = 0;
@@ -386,7 +404,7 @@ function asmFunc(global, env, buffer) {
return $0 | 0;
}
- function $41() {
+ function $43() {
var $0 = 0;
block : {
$0 = 30;
@@ -395,7 +413,7 @@ function asmFunc(global, env, buffer) {
return $0 | 0;
}
- function $42() {
+ function $44() {
var $0 = 0;
block : {
$0 = 31;
@@ -404,7 +422,7 @@ function asmFunc(global, env, buffer) {
return $0 | 0;
}
- function $43() {
+ function $45() {
var $0 = 0;
block : {
$0 = 32;
@@ -413,7 +431,7 @@ function asmFunc(global, env, buffer) {
return $0 | 0;
}
- function $44() {
+ function $46() {
var $0 = 0;
block : {
$0 = 33;
@@ -422,7 +440,7 @@ function asmFunc(global, env, buffer) {
return $0 | 0;
}
- function $45() {
+ function $47() {
var $0 = Math_fround(0);
block : {
$0 = Math_fround(3.4000000953674316);
@@ -431,7 +449,7 @@ function asmFunc(global, env, buffer) {
return Math_fround($0);
}
- function $46() {
+ function $48() {
var $0 = 0;
block : {
$0 = 3;
@@ -440,7 +458,7 @@ function asmFunc(global, env, buffer) {
return $0 | 0;
}
- function $47() {
+ function $49() {
var $0 = 0, $0$hi = 0, i64toi32_i32$1 = 0;
block : {
$0 = 45;
@@ -452,7 +470,7 @@ function asmFunc(global, env, buffer) {
return $0 | 0;
}
- function $48() {
+ function $50() {
var $0 = 0;
block : {
$0 = 44;
@@ -461,7 +479,7 @@ function asmFunc(global, env, buffer) {
return $0 | 0;
}
- function $49() {
+ function $51() {
var $0 = 0;
block : {
$0 = 43;
@@ -470,7 +488,7 @@ function asmFunc(global, env, buffer) {
return $0 | 0;
}
- function $50() {
+ function $52() {
var $0 = 0;
block : {
$0 = 42;
@@ -479,7 +497,7 @@ function asmFunc(global, env, buffer) {
return $0 | 0;
}
- function $51() {
+ function $53() {
var $0 = 0;
block : {
$0 = 41;
@@ -488,7 +506,7 @@ function asmFunc(global, env, buffer) {
return $0 | 0;
}
- function $52() {
+ function $54() {
var $0 = 0;
block : {
$0 = 40;
@@ -497,7 +515,7 @@ function asmFunc(global, env, buffer) {
return $0 | 0;
}
- function $53() {
+ function $55() {
var $0 = 0;
block : {
dummy();
@@ -507,7 +525,7 @@ function asmFunc(global, env, buffer) {
return 1 + $0 | 0 | 0;
}
- function $54() {
+ function $56() {
var $0 = 0;
block : {
block0 : {
@@ -518,7 +536,7 @@ function asmFunc(global, env, buffer) {
return 1 + $0 | 0 | 0;
}
- function $55() {
+ function $57() {
var $0 = 0, $1_1 = 0;
block : {
$0 = 8;
@@ -527,7 +545,7 @@ function asmFunc(global, env, buffer) {
return 1 + $0 | 0 | 0;
}
- function $56() {
+ function $58() {
var $0 = 0;
block : {
$0 = 8;
@@ -536,7 +554,7 @@ function asmFunc(global, env, buffer) {
return 1 + $0 | 0 | 0;
}
- function $57() {
+ function $59() {
var $0 = 0;
block : {
$0 = 8;
@@ -545,7 +563,7 @@ function asmFunc(global, env, buffer) {
return 1 + $0 | 0 | 0;
}
- function $58() {
+ function $60() {
var $0 = 0;
block : {
$0 = 8;
@@ -598,9 +616,9 @@ function asmFunc(global, env, buffer) {
return $0 | 0;
}
- function legalstub$40() {
+ function legalstub$42() {
var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $7_1 = 0, $0 = 0, $0$hi = 0, i64toi32_i32$2 = 0;
- i64toi32_i32$0 = $40() | 0;
+ i64toi32_i32$0 = $42() | 0;
i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
$0 = i64toi32_i32$0;
$0$hi = i64toi32_i32$1;
@@ -620,9 +638,9 @@ function asmFunc(global, env, buffer) {
return $0 | 0;
}
- function legalstub$47() {
+ function legalstub$49() {
var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $7_1 = 0, $0 = 0, $0$hi = 0, i64toi32_i32$2 = 0;
- i64toi32_i32$0 = $47() | 0;
+ i64toi32_i32$0 = $49() | 0;
i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
$0 = i64toi32_i32$0;
$0$hi = i64toi32_i32$1;
@@ -681,26 +699,28 @@ function asmFunc(global, env, buffer) {
"as_call_indirect_mid": $36,
"as_call_indirect_last": $37,
"as_local_set_value": $38,
- "as_load_address": $39,
- "as_loadN_address": legalstub$40,
- "as_store_address": $41,
- "as_store_value": $42,
- "as_storeN_address": $43,
- "as_storeN_value": $44,
- "as_unary_operand": $45,
- "as_binary_left": $46,
- "as_binary_right": legalstub$47,
- "as_test_operand": $48,
- "as_compare_left": $49,
- "as_compare_right": $50,
- "as_convert_operand": $51,
- "as_memory_grow_size": $52,
- "nested_block_value": $53,
- "nested_br_value": $54,
- "nested_br_if_value": $55,
- "nested_br_if_value_cond": $56,
- "nested_br_table_value": $57,
- "nested_br_table_value_index": $58
+ "as_local_tee_value": $39,
+ "as_global_set_value": $40,
+ "as_load_address": $41,
+ "as_loadN_address": legalstub$42,
+ "as_store_address": $43,
+ "as_store_value": $44,
+ "as_storeN_address": $45,
+ "as_storeN_value": $46,
+ "as_unary_operand": $47,
+ "as_binary_left": $48,
+ "as_binary_right": legalstub$49,
+ "as_test_operand": $50,
+ "as_compare_left": $51,
+ "as_compare_right": $52,
+ "as_convert_operand": $53,
+ "as_memory_grow_size": $54,
+ "nested_block_value": $55,
+ "nested_br_value": $56,
+ "nested_br_if_value": $57,
+ "nested_br_if_value_cond": $58,
+ "nested_br_table_value": $59,
+ "nested_br_table_value_index": $60
};
}
@@ -743,6 +763,8 @@ export var as_call_indirect_first = retasmFunc.as_call_indirect_first;
export var as_call_indirect_mid = retasmFunc.as_call_indirect_mid;
export var as_call_indirect_last = retasmFunc.as_call_indirect_last;
export var as_local_set_value = retasmFunc.as_local_set_value;
+export var as_local_tee_value = retasmFunc.as_local_tee_value;
+export var as_global_set_value = retasmFunc.as_global_set_value;
export var as_load_address = retasmFunc.as_load_address;
export var as_loadN_address = retasmFunc.as_loadN_address;
export var as_store_address = retasmFunc.as_store_address;
@@ -763,33 +785,3 @@ export var nested_br_if_value = retasmFunc.nested_br_if_value;
export var nested_br_if_value_cond = retasmFunc.nested_br_if_value_cond;
export var nested_br_table_value = retasmFunc.nested_br_table_value;
export var nested_br_table_value_index = retasmFunc.nested_br_table_value_index;
-
-function asmFunc(global, env, buffer) {
- var HEAP8 = new global.Int8Array(buffer);
- var HEAP16 = new global.Int16Array(buffer);
- var HEAP32 = new global.Int32Array(buffer);
- var HEAPU8 = new global.Uint8Array(buffer);
- var HEAPU16 = new global.Uint16Array(buffer);
- var HEAPU32 = new global.Uint32Array(buffer);
- var HEAPF32 = new global.Float32Array(buffer);
- var HEAPF64 = new global.Float64Array(buffer);
- var Math_imul = global.Math.imul;
- var Math_fround = global.Math.fround;
- var Math_abs = global.Math.abs;
- var Math_clz32 = global.Math.clz32;
- var Math_min = global.Math.min;
- var Math_max = global.Math.max;
- var Math_floor = global.Math.floor;
- var Math_ceil = global.Math.ceil;
- var Math_sqrt = global.Math.sqrt;
- var abort = env.abort;
- var nan = global.NaN;
- var infinity = global.Infinity;
- var FUNCTION_TABLE = [];
- return {
-
- };
-}
-
-var memasmFunc = new ArrayBuffer(65536);
-var retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
diff --git a/test/wasm2js/br_table.2asm.js b/test/wasm2js/br_table.2asm.js
index c9be99dfa..39c89bae7 100644
--- a/test/wasm2js/br_table.2asm.js
+++ b/test/wasm2js/br_table.2asm.js
@@ -12610,12 +12610,15 @@ function asmFunc(global, env, buffer) {
}
function $23() {
- var $0 = 0;
+ var $1_1 = 0;
block : {
- $0 = 9;
- break block;
+ $1_1 = 9;
+ switch (0 | 0) {
+ default:
+ break block;
+ };
}
- return $0 | 0;
+ return $1_1 | 0;
}
function $24() {
@@ -12691,7 +12694,7 @@ function asmFunc(global, env, buffer) {
}
function $31() {
- var $1_1 = 0, $2_1 = 0;
+ var $1_1 = 0, $6_1 = 0;
if_ : {
$1_1 = 2;
switch (0 | 0) {
@@ -12705,7 +12708,7 @@ function asmFunc(global, env, buffer) {
function $32($0, $1_1) {
$0 = $0 | 0;
$1_1 = $1_1 | 0;
- var $4_1 = 0, $6_1 = 0;
+ var $4_1 = 0, $8_1 = 0;
block : {
if ($0) {
$4_1 = 3;
@@ -12714,9 +12717,9 @@ function asmFunc(global, env, buffer) {
break block;
};
} else {
- $6_1 = $1_1
+ $8_1 = $1_1
}
- $4_1 = $6_1;
+ $4_1 = $8_1;
}
return $4_1 | 0;
}
@@ -12724,15 +12727,15 @@ function asmFunc(global, env, buffer) {
function $33($0, $1_1) {
$0 = $0 | 0;
$1_1 = $1_1 | 0;
- var $4_1 = 0, $5_1 = 0, $6_1 = 0, $7_1 = 0;
+ var $6_1 = 0, $7_1 = 0, $8_1 = 0, $9_1 = 0;
block : {
if_ : {
if ($0) {
- $7_1 = $1_1
+ $9_1 = $1_1
} else {
- $4_1 = 4;
- $5_1 = $4_1;
- $6_1 = $4_1;
+ $6_1 = 4;
+ $7_1 = $6_1;
+ $8_1 = $6_1;
switch (0 | 0) {
case 0:
break block;
@@ -12740,11 +12743,11 @@ function asmFunc(global, env, buffer) {
break if_;
};
}
- $6_1 = $7_1;
+ $8_1 = $9_1;
}
- $5_1 = $6_1;
+ $7_1 = $8_1;
}
- return $5_1 | 0;
+ return $7_1 | 0;
}
function $34($0, $1_1) {
@@ -12892,6 +12895,30 @@ function asmFunc(global, env, buffer) {
}
function $46() {
+ var $2_1 = 0;
+ block : {
+ $2_1 = 1;
+ switch (1 | 0) {
+ default:
+ break block;
+ };
+ }
+ return $2_1 | 0;
+ }
+
+ function $47() {
+ var $1_1 = 0;
+ block : {
+ $1_1 = 1;
+ switch (1 | 0) {
+ default:
+ break block;
+ };
+ }
+ return $1_1 | 0;
+ }
+
+ function $48() {
var $1_1 = Math_fround(0);
block : {
$1_1 = Math_fround(1.7000000476837158);
@@ -12903,7 +12930,7 @@ function asmFunc(global, env, buffer) {
return Math_fround($1_1);
}
- function $47() {
+ function $49() {
var i64toi32_i32$0 = 0, $1_1 = 0, $1$hi = 0;
block : {
i64toi32_i32$0 = 0;
@@ -12919,7 +12946,7 @@ function asmFunc(global, env, buffer) {
return $1_1 | 0;
}
- function $48() {
+ function $50() {
var $1_1 = 0;
block : {
$1_1 = 30;
@@ -12931,7 +12958,7 @@ function asmFunc(global, env, buffer) {
return $1_1 | 0;
}
- function $49() {
+ function $51() {
var $1_1 = 0;
block : {
$1_1 = 31;
@@ -12943,7 +12970,7 @@ function asmFunc(global, env, buffer) {
return $1_1 | 0;
}
- function $50() {
+ function $52() {
var $1_1 = 0;
block : {
$1_1 = 32;
@@ -12955,7 +12982,7 @@ function asmFunc(global, env, buffer) {
return $1_1 | 0;
}
- function $51() {
+ function $53() {
var $1_1 = 0;
block : {
$1_1 = 33;
@@ -12967,7 +12994,7 @@ function asmFunc(global, env, buffer) {
return $1_1 | 0;
}
- function $52() {
+ function $54() {
var $1_1 = Math_fround(0);
block : {
$1_1 = Math_fround(3.4000000953674316);
@@ -12979,7 +13006,7 @@ function asmFunc(global, env, buffer) {
return Math_fround($1_1);
}
- function $53() {
+ function $55() {
var $1_1 = 0;
block : {
$1_1 = 3;
@@ -12991,7 +13018,7 @@ function asmFunc(global, env, buffer) {
return $1_1 | 0;
}
- function $54() {
+ function $56() {
var i64toi32_i32$0 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$1 = 0;
block : {
i64toi32_i32$0 = 0;
@@ -13007,7 +13034,7 @@ function asmFunc(global, env, buffer) {
return $1_1 | 0;
}
- function $55() {
+ function $57() {
var $1_1 = 0;
block : {
$1_1 = 44;
@@ -13019,7 +13046,7 @@ function asmFunc(global, env, buffer) {
return $1_1 | 0;
}
- function $56() {
+ function $58() {
var $1_1 = 0;
block : {
$1_1 = 43;
@@ -13031,7 +13058,7 @@ function asmFunc(global, env, buffer) {
return $1_1 | 0;
}
- function $57() {
+ function $59() {
var $1_1 = 0;
block : {
$1_1 = 42;
@@ -13043,7 +13070,7 @@ function asmFunc(global, env, buffer) {
return $1_1 | 0;
}
- function $58() {
+ function $60() {
var $1_1 = 0;
block : {
$1_1 = 41;
@@ -13055,7 +13082,7 @@ function asmFunc(global, env, buffer) {
return $1_1 | 0;
}
- function $59() {
+ function $61() {
var $1_1 = 0;
block : {
$1_1 = 40;
@@ -13067,7 +13094,7 @@ function asmFunc(global, env, buffer) {
return $1_1 | 0;
}
- function $60($0) {
+ function $62($0) {
$0 = $0 | 0;
var $2_1 = 0, $3_1 = 0, $4_1 = 0, $5_1 = 0;
block : {
@@ -13093,7 +13120,7 @@ function asmFunc(global, env, buffer) {
return $3_1 | 0;
}
- function $61($0) {
+ function $63($0) {
$0 = $0 | 0;
var $2_1 = 0, $3_1 = 0, $4_1 = 0, $5_1 = 0;
block : {
@@ -13119,7 +13146,7 @@ function asmFunc(global, env, buffer) {
return $3_1 | 0;
}
- function $62($0) {
+ function $64($0) {
$0 = $0 | 0;
var $2_1 = 0, $3_1 = 0, $4_1 = 0, $5_1 = 0;
block : {
@@ -13145,7 +13172,7 @@ function asmFunc(global, env, buffer) {
return $3_1 | 0;
}
- function $63($0) {
+ function $65($0) {
$0 = $0 | 0;
var $4_1 = 0, $2_1 = 0, $3_1 = 0;
block : {
@@ -13165,7 +13192,7 @@ function asmFunc(global, env, buffer) {
return $3_1 | 0;
}
- function $64($0) {
+ function $66($0) {
$0 = $0 | 0;
var $2_1 = 0, $3_1 = 0, $4_1 = 0, $5_1 = 0;
block : {
@@ -13191,7 +13218,7 @@ function asmFunc(global, env, buffer) {
return $3_1 | 0;
}
- function $65($0) {
+ function $67($0) {
$0 = $0 | 0;
var $4_1 = 0, $2_1 = 0, $3_1 = 0;
block : {
@@ -13211,6 +13238,37 @@ function asmFunc(global, env, buffer) {
return $3_1 | 0;
}
+ function $68($0) {
+ $0 = $0 | 0;
+ var $4_1 = 0, $9_1 = 0;
+ loop_in : while (1) {
+ block : {
+ switch ($0 | 0) {
+ case 0:
+ continue loop_in;
+ default:
+ break block;
+ };
+ }
+ $4_1 = 0;
+ break loop_in;
+ };
+ $0 = $4_1;
+ loop_in21 : while (1) {
+ block22 : {
+ switch ($0 | 0) {
+ case 0:
+ break block22;
+ default:
+ continue loop_in21;
+ };
+ }
+ $9_1 = 3;
+ break loop_in21;
+ };
+ return $9_1 | 0;
+ }
+
function legalstub$6() {
var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $7_1 = 0, $0 = 0, $0$hi = 0, i64toi32_i32$2 = 0;
i64toi32_i32$0 = $6() | 0;
@@ -13255,9 +13313,9 @@ function asmFunc(global, env, buffer) {
return $0 | 0;
}
- function legalstub$47() {
+ function legalstub$49() {
var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $7_1 = 0, $0 = 0, $0$hi = 0, i64toi32_i32$2 = 0;
- i64toi32_i32$0 = $47() | 0;
+ i64toi32_i32$0 = $49() | 0;
i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
$0 = i64toi32_i32$0;
$0$hi = i64toi32_i32$1;
@@ -13277,9 +13335,9 @@ function asmFunc(global, env, buffer) {
return $0 | 0;
}
- function legalstub$54() {
+ function legalstub$56() {
var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $7_1 = 0, $0 = 0, $0$hi = 0, i64toi32_i32$2 = 0;
- i64toi32_i32$0 = $54() | 0;
+ i64toi32_i32$0 = $56() | 0;
i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
$0 = i64toi32_i32$0;
$0$hi = i64toi32_i32$1;
@@ -13345,26 +13403,29 @@ function asmFunc(global, env, buffer) {
"as_call_indirect_last": $43,
"as_call_indirect_func": $44,
"as_local_set_value": $45,
- "as_load_address": $46,
- "as_loadN_address": legalstub$47,
- "as_store_address": $48,
- "as_store_value": $49,
- "as_storeN_address": $50,
- "as_storeN_value": $51,
- "as_unary_operand": $52,
- "as_binary_left": $53,
- "as_binary_right": legalstub$54,
- "as_test_operand": $55,
- "as_compare_left": $56,
- "as_compare_right": $57,
- "as_convert_operand": $58,
- "as_memory_grow_size": $59,
- "nested_block_value": $60,
- "nested_br_value": $61,
- "nested_br_if_value": $62,
- "nested_br_if_value_cond": $63,
- "nested_br_table_value": $64,
- "nested_br_table_value_index": $65
+ "as_local_tee_value": $46,
+ "as_global_set_value": $47,
+ "as_load_address": $48,
+ "as_loadN_address": legalstub$49,
+ "as_store_address": $50,
+ "as_store_value": $51,
+ "as_storeN_address": $52,
+ "as_storeN_value": $53,
+ "as_unary_operand": $54,
+ "as_binary_left": $55,
+ "as_binary_right": legalstub$56,
+ "as_test_operand": $57,
+ "as_compare_left": $58,
+ "as_compare_right": $59,
+ "as_convert_operand": $60,
+ "as_memory_grow_size": $61,
+ "nested_block_value": $62,
+ "nested_br_value": $63,
+ "nested_br_if_value": $64,
+ "nested_br_if_value_cond": $65,
+ "nested_br_table_value": $66,
+ "nested_br_table_value_index": $67,
+ "nested_br_table_loop_block": $68
};
}
@@ -13414,6 +13475,8 @@ export var as_call_indirect_mid = retasmFunc.as_call_indirect_mid;
export var as_call_indirect_last = retasmFunc.as_call_indirect_last;
export var as_call_indirect_func = retasmFunc.as_call_indirect_func;
export var as_local_set_value = retasmFunc.as_local_set_value;
+export var as_local_tee_value = retasmFunc.as_local_tee_value;
+export var as_global_set_value = retasmFunc.as_global_set_value;
export var as_load_address = retasmFunc.as_load_address;
export var as_loadN_address = retasmFunc.as_loadN_address;
export var as_store_address = retasmFunc.as_store_address;
@@ -13434,3 +13497,4 @@ export var nested_br_if_value = retasmFunc.nested_br_if_value;
export var nested_br_if_value_cond = retasmFunc.nested_br_if_value_cond;
export var nested_br_table_value = retasmFunc.nested_br_table_value;
export var nested_br_table_value_index = retasmFunc.nested_br_table_value_index;
+export var nested_br_table_loop_block = retasmFunc.nested_br_table_loop_block;
diff --git a/test/wasm2js/comments.2asm.js b/test/wasm2js/comments.2asm.js
index e31607d1d..81100c40c 100644
--- a/test/wasm2js/comments.2asm.js
+++ b/test/wasm2js/comments.2asm.js
@@ -28,3 +28,33 @@ function asmFunc(global, env, buffer) {
var memasmFunc = new ArrayBuffer(65536);
var retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+
+function asmFunc(global, env, buffer) {
+ var HEAP8 = new global.Int8Array(buffer);
+ var HEAP16 = new global.Int16Array(buffer);
+ var HEAP32 = new global.Int32Array(buffer);
+ var HEAPU8 = new global.Uint8Array(buffer);
+ var HEAPU16 = new global.Uint16Array(buffer);
+ var HEAPU32 = new global.Uint32Array(buffer);
+ var HEAPF32 = new global.Float32Array(buffer);
+ var HEAPF64 = new global.Float64Array(buffer);
+ var Math_imul = global.Math.imul;
+ var Math_fround = global.Math.fround;
+ var Math_abs = global.Math.abs;
+ var Math_clz32 = global.Math.clz32;
+ var Math_min = global.Math.min;
+ var Math_max = global.Math.max;
+ var Math_floor = global.Math.floor;
+ var Math_ceil = global.Math.ceil;
+ var Math_sqrt = global.Math.sqrt;
+ var abort = env.abort;
+ var nan = global.NaN;
+ var infinity = global.Infinity;
+ var FUNCTION_TABLE = [];
+ return {
+
+ };
+}
+
+var memasmFunc = new ArrayBuffer(65536);
+var retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
diff --git a/test/wasm2js/f32.2asm.js b/test/wasm2js/f32.2asm.js
index 80c8f8d24..20683a5f8 100644
--- a/test/wasm2js/f32.2asm.js
+++ b/test/wasm2js/f32.2asm.js
@@ -1,26 +1,4 @@
-
- var scratchBuffer = new ArrayBuffer(8);
- var i32ScratchView = new Int32Array(scratchBuffer);
- var f32ScratchView = new Float32Array(scratchBuffer);
- var f64ScratchView = new Float64Array(scratchBuffer);
-
- function wasm2js_scratch_store_i32(index, value) {
- i32ScratchView[index] = value;
- }
-
- function wasm2js_scratch_load_f32() {
- return f32ScratchView[0];
- }
-
- function wasm2js_scratch_store_f32(value) {
- f32ScratchView[0] = value;
- }
-
- function wasm2js_scratch_load_i32(index) {
- return i32ScratchView[index];
- }
-
function asmFunc(global, env, buffer) {
var HEAP8 = new global.Int8Array(buffer);
var HEAP16 = new global.Int16Array(buffer);
@@ -103,22 +81,6 @@ function asmFunc(global, env, buffer) {
return Math_fround(Math_fround(__wasm_nearest_f32(Math_fround(x))));
}
- function $11(x) {
- x = Math_fround(x);
- return Math_fround(Math_fround(Math_abs(x)));
- }
-
- function $12(x) {
- x = Math_fround(x);
- return Math_fround(Math_fround(-x));
- }
-
- function $13(x, y) {
- x = Math_fround(x);
- y = Math_fround(y);
- return Math_fround((wasm2js_scratch_store_i32(0, (wasm2js_scratch_store_f32(x), wasm2js_scratch_load_i32(0)) & 2147483647 | 0 | ((wasm2js_scratch_store_f32(y), wasm2js_scratch_load_i32(0)) & -2147483648 | 0) | 0), wasm2js_scratch_load_f32()));
- }
-
function __wasm_nearest_f32(var$0) {
var$0 = Math_fround(var$0);
var var$1 = Math_fround(0), var$2 = Math_fround(0);
@@ -154,10 +116,7 @@ function asmFunc(global, env, buffer) {
"ceil": $7,
"floor": $8,
"trunc": $9,
- "nearest": $10,
- "abs": $11,
- "neg": $12,
- "copysign": $13
+ "nearest": $10
};
}
@@ -174,6 +133,3 @@ export var ceil = retasmFunc.ceil;
export var floor = retasmFunc.floor;
export var trunc = retasmFunc.trunc;
export var nearest = retasmFunc.nearest;
-export var abs = retasmFunc.abs;
-export var neg = retasmFunc.neg;
-export var copysign = retasmFunc.copysign;
diff --git a/test/wasm2js/f64.2asm.js b/test/wasm2js/f64.2asm.js
index 51dc8fcf6..cd18a7bab 100644
--- a/test/wasm2js/f64.2asm.js
+++ b/test/wasm2js/f64.2asm.js
@@ -1,26 +1,4 @@
-
- var scratchBuffer = new ArrayBuffer(8);
- var i32ScratchView = new Int32Array(scratchBuffer);
- var f32ScratchView = new Float32Array(scratchBuffer);
- var f64ScratchView = new Float64Array(scratchBuffer);
-
- function wasm2js_scratch_load_i32(index) {
- return i32ScratchView[index];
- }
-
- function wasm2js_scratch_store_i32(index, value) {
- i32ScratchView[index] = value;
- }
-
- function wasm2js_scratch_load_f64() {
- return f64ScratchView[0];
- }
-
- function wasm2js_scratch_store_f64(value) {
- f64ScratchView[0] = value;
- }
-
function asmFunc(global, env, buffer) {
var HEAP8 = new global.Int8Array(buffer);
var HEAP16 = new global.Int16Array(buffer);
@@ -103,46 +81,6 @@ function asmFunc(global, env, buffer) {
return +(+__wasm_nearest_f64(+x));
}
- function $11(x) {
- x = +x;
- return +Math_abs(x);
- }
-
- function $12(x) {
- x = +x;
- return +-x;
- }
-
- function $13(x, y) {
- x = +x;
- y = +y;
- var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $4_1 = 0, $4$hi = 0, $7_1 = 0, $7$hi = 0;
- wasm2js_scratch_store_f64(+x);
- i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0;
- i64toi32_i32$2 = wasm2js_scratch_load_i32(0 | 0) | 0;
- i64toi32_i32$1 = 2147483647;
- i64toi32_i32$3 = -1;
- i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$1 | 0;
- $4_1 = i64toi32_i32$2 & i64toi32_i32$3 | 0;
- $4$hi = i64toi32_i32$1;
- wasm2js_scratch_store_f64(+y);
- i64toi32_i32$1 = wasm2js_scratch_load_i32(1 | 0) | 0;
- i64toi32_i32$0 = wasm2js_scratch_load_i32(0 | 0) | 0;
- i64toi32_i32$2 = -2147483648;
- i64toi32_i32$3 = 0;
- i64toi32_i32$2 = i64toi32_i32$1 & i64toi32_i32$2 | 0;
- $7_1 = i64toi32_i32$0 & i64toi32_i32$3 | 0;
- $7$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $4$hi;
- i64toi32_i32$1 = $4_1;
- i64toi32_i32$0 = $7$hi;
- i64toi32_i32$3 = $7_1;
- i64toi32_i32$0 = i64toi32_i32$2 | i64toi32_i32$0 | 0;
- wasm2js_scratch_store_i32(0 | 0, i64toi32_i32$1 | i64toi32_i32$3 | 0 | 0);
- wasm2js_scratch_store_i32(1 | 0, i64toi32_i32$0 | 0);
- return +(+wasm2js_scratch_load_f64());
- }
-
function __wasm_nearest_f64(var$0) {
var$0 = +var$0;
var var$1 = 0.0, var$2 = 0.0;
@@ -178,10 +116,7 @@ function asmFunc(global, env, buffer) {
"ceil": $7,
"floor": $8,
"trunc": $9,
- "nearest": $10,
- "abs": $11,
- "neg": $12,
- "copysign": $13
+ "nearest": $10
};
}
@@ -198,6 +133,3 @@ export var ceil = retasmFunc.ceil;
export var floor = retasmFunc.floor;
export var trunc = retasmFunc.trunc;
export var nearest = retasmFunc.nearest;
-export var abs = retasmFunc.abs;
-export var neg = retasmFunc.neg;
-export var copysign = retasmFunc.copysign;
diff --git a/test/wasm2js/fac.2asm.js b/test/wasm2js/fac.2asm.js
index 8704e8808..f66ed55e0 100644
--- a/test/wasm2js/fac.2asm.js
+++ b/test/wasm2js/fac.2asm.js
@@ -26,30 +26,33 @@ function asmFunc(global, env, buffer) {
function $0($0_1, $0$hi) {
$0_1 = $0_1 | 0;
$0$hi = $0$hi | 0;
- var i64toi32_i32$3 = 0, i64toi32_i32$5 = 0, i64toi32_i32$1 = 0, $8 = 0, $8$hi = 0, $6 = 0, $6$hi = 0;
+ var i64toi32_i32$3 = 0, i64toi32_i32$5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $12 = 0, $12$hi = 0, $8 = 0, $8$hi = 0;
+ i64toi32_i32$2 = $0_1;
i64toi32_i32$1 = 0;
i64toi32_i32$3 = 0;
- if (($0_1 | 0) == (i64toi32_i32$3 | 0) & ($0$hi | 0) == (i64toi32_i32$1 | 0) | 0) {
- $8 = 1;
- $8$hi = 0;
+ if ((i64toi32_i32$2 | 0) == (i64toi32_i32$3 | 0) & ($0$hi | 0) == (i64toi32_i32$1 | 0) | 0) {
+ i64toi32_i32$2 = 0;
+ $12 = 1;
+ $12$hi = i64toi32_i32$2;
} else {
+ i64toi32_i32$2 = $0$hi;
i64toi32_i32$3 = $0_1;
i64toi32_i32$1 = 1;
i64toi32_i32$5 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) + 0 | 0;
i64toi32_i32$5 = $0$hi - i64toi32_i32$5 | 0;
i64toi32_i32$5 = $0(i64toi32_i32$3 - i64toi32_i32$1 | 0 | 0, i64toi32_i32$5 | 0) | 0;
i64toi32_i32$3 = i64toi32_i32$HIGH_BITS;
- $6 = i64toi32_i32$5;
- $6$hi = i64toi32_i32$3;
- i64toi32_i32$3 = $0$hi;
- i64toi32_i32$5 = $6$hi;
- i64toi32_i32$5 = __wasm_i64_mul($0_1 | 0, $0$hi | 0, $6 | 0, i64toi32_i32$5 | 0) | 0;
- i64toi32_i32$3 = i64toi32_i32$HIGH_BITS;
$8 = i64toi32_i32$5;
$8$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = $0$hi;
+ i64toi32_i32$5 = $8$hi;
+ i64toi32_i32$5 = __wasm_i64_mul($0_1 | 0, i64toi32_i32$3 | 0, $8 | 0, i64toi32_i32$5 | 0) | 0;
+ i64toi32_i32$3 = i64toi32_i32$HIGH_BITS;
+ $12 = i64toi32_i32$5;
+ $12$hi = i64toi32_i32$3;
}
- i64toi32_i32$3 = $8$hi;
- i64toi32_i32$5 = $8;
+ i64toi32_i32$3 = $12$hi;
+ i64toi32_i32$5 = $12;
i64toi32_i32$HIGH_BITS = i64toi32_i32$3;
return i64toi32_i32$5 | 0;
}
@@ -57,30 +60,33 @@ function asmFunc(global, env, buffer) {
function fac_rec_named(n, n$hi) {
n = n | 0;
n$hi = n$hi | 0;
- var i64toi32_i32$3 = 0, i64toi32_i32$5 = 0, i64toi32_i32$1 = 0, $8 = 0, $8$hi = 0, $6 = 0, $6$hi = 0;
+ var i64toi32_i32$3 = 0, i64toi32_i32$5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $12 = 0, $12$hi = 0, $8 = 0, $8$hi = 0;
+ i64toi32_i32$2 = n;
i64toi32_i32$1 = 0;
i64toi32_i32$3 = 0;
- if ((n | 0) == (i64toi32_i32$3 | 0) & (n$hi | 0) == (i64toi32_i32$1 | 0) | 0) {
- $8 = 1;
- $8$hi = 0;
+ if ((i64toi32_i32$2 | 0) == (i64toi32_i32$3 | 0) & (n$hi | 0) == (i64toi32_i32$1 | 0) | 0) {
+ i64toi32_i32$2 = 0;
+ $12 = 1;
+ $12$hi = i64toi32_i32$2;
} else {
+ i64toi32_i32$2 = n$hi;
i64toi32_i32$3 = n;
i64toi32_i32$1 = 1;
i64toi32_i32$5 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) + 0 | 0;
i64toi32_i32$5 = n$hi - i64toi32_i32$5 | 0;
i64toi32_i32$5 = fac_rec_named(i64toi32_i32$3 - i64toi32_i32$1 | 0 | 0, i64toi32_i32$5 | 0) | 0;
i64toi32_i32$3 = i64toi32_i32$HIGH_BITS;
- $6 = i64toi32_i32$5;
- $6$hi = i64toi32_i32$3;
- i64toi32_i32$3 = n$hi;
- i64toi32_i32$5 = $6$hi;
- i64toi32_i32$5 = __wasm_i64_mul(n | 0, n$hi | 0, $6 | 0, i64toi32_i32$5 | 0) | 0;
- i64toi32_i32$3 = i64toi32_i32$HIGH_BITS;
$8 = i64toi32_i32$5;
$8$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = n$hi;
+ i64toi32_i32$5 = $8$hi;
+ i64toi32_i32$5 = __wasm_i64_mul(n | 0, i64toi32_i32$3 | 0, $8 | 0, i64toi32_i32$5 | 0) | 0;
+ i64toi32_i32$3 = i64toi32_i32$HIGH_BITS;
+ $12 = i64toi32_i32$5;
+ $12$hi = i64toi32_i32$3;
}
- i64toi32_i32$3 = $8$hi;
- i64toi32_i32$5 = $8;
+ i64toi32_i32$3 = $12$hi;
+ i64toi32_i32$5 = $12;
i64toi32_i32$HIGH_BITS = i64toi32_i32$3;
return i64toi32_i32$5 | 0;
}
@@ -104,24 +110,22 @@ function asmFunc(global, env, buffer) {
if ((i64toi32_i32$2 | 0) == (i64toi32_i32$3 | 0) & (i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) | 0) {
break block
} else {
- block0 : {
- i64toi32_i32$2 = $1$hi;
- i64toi32_i32$2 = $2$hi;
- i64toi32_i32$2 = $1$hi;
- i64toi32_i32$0 = $2$hi;
- i64toi32_i32$0 = __wasm_i64_mul($1 | 0, i64toi32_i32$2 | 0, $2_1 | 0, i64toi32_i32$0 | 0) | 0;
- i64toi32_i32$2 = i64toi32_i32$HIGH_BITS;
- $2_1 = i64toi32_i32$0;
- $2$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $1$hi;
- i64toi32_i32$3 = $1;
- i64toi32_i32$0 = 0;
- i64toi32_i32$1 = 1;
- i64toi32_i32$5 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
- $1 = i64toi32_i32$3 - i64toi32_i32$1 | 0;
- $1$hi = i64toi32_i32$5;
- }
+ i64toi32_i32$2 = $1$hi;
+ i64toi32_i32$2 = $2$hi;
+ i64toi32_i32$2 = $1$hi;
+ i64toi32_i32$0 = $2$hi;
+ i64toi32_i32$0 = __wasm_i64_mul($1 | 0, i64toi32_i32$2 | 0, $2_1 | 0, i64toi32_i32$0 | 0) | 0;
+ i64toi32_i32$2 = i64toi32_i32$HIGH_BITS;
+ $2_1 = i64toi32_i32$0;
+ $2$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $1$hi;
+ i64toi32_i32$3 = $1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$1 = 1;
+ i64toi32_i32$5 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ $1 = i64toi32_i32$3 - i64toi32_i32$1 | 0;
+ $1$hi = i64toi32_i32$5;
}
continue loop_in;
};
@@ -151,24 +155,22 @@ function asmFunc(global, env, buffer) {
if ((i64toi32_i32$2 | 0) == (i64toi32_i32$3 | 0) & (i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) | 0) {
break done
} else {
- block : {
- i64toi32_i32$2 = i$hi;
- i64toi32_i32$2 = res$hi;
- i64toi32_i32$2 = i$hi;
- i64toi32_i32$0 = res$hi;
- i64toi32_i32$0 = __wasm_i64_mul(i | 0, i64toi32_i32$2 | 0, res | 0, i64toi32_i32$0 | 0) | 0;
- i64toi32_i32$2 = i64toi32_i32$HIGH_BITS;
- res = i64toi32_i32$0;
- res$hi = i64toi32_i32$2;
- i64toi32_i32$2 = i$hi;
- i64toi32_i32$3 = i;
- i64toi32_i32$0 = 0;
- i64toi32_i32$1 = 1;
- i64toi32_i32$5 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
- i = i64toi32_i32$3 - i64toi32_i32$1 | 0;
- i$hi = i64toi32_i32$5;
- }
+ i64toi32_i32$2 = i$hi;
+ i64toi32_i32$2 = res$hi;
+ i64toi32_i32$2 = i$hi;
+ i64toi32_i32$0 = res$hi;
+ i64toi32_i32$0 = __wasm_i64_mul(i | 0, i64toi32_i32$2 | 0, res | 0, i64toi32_i32$0 | 0) | 0;
+ i64toi32_i32$2 = i64toi32_i32$HIGH_BITS;
+ res = i64toi32_i32$0;
+ res$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i$hi;
+ i64toi32_i32$3 = i;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$1 = 1;
+ i64toi32_i32$5 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ i = i64toi32_i32$3 - i64toi32_i32$1 | 0;
+ i$hi = i64toi32_i32$5;
}
continue loop;
};
diff --git a/test/wasm2js/forward.2asm.js b/test/wasm2js/forward.2asm.js
index d1210c1b8..3d3d5bf9b 100644
--- a/test/wasm2js/forward.2asm.js
+++ b/test/wasm2js/forward.2asm.js
@@ -22,24 +22,24 @@ function asmFunc(global, env, buffer) {
var infinity = global.Infinity;
function even(n) {
n = n | 0;
- var $6 = 0;
+ var $10 = 0;
if ((n | 0) == (0 | 0)) {
- $6 = 1
+ $10 = 1
} else {
- $6 = odd(n - 1 | 0 | 0) | 0
+ $10 = odd(n - 1 | 0 | 0) | 0
}
- return $6 | 0;
+ return $10 | 0;
}
function odd(n) {
n = n | 0;
- var $6 = 0;
+ var $10 = 0;
if ((n | 0) == (0 | 0)) {
- $6 = 0
+ $10 = 0
} else {
- $6 = even(n - 1 | 0 | 0) | 0
+ $10 = even(n - 1 | 0 | 0) | 0
}
- return $6 | 0;
+ return $10 | 0;
}
var FUNCTION_TABLE = [];
diff --git a/test/wasm2js/func_ptrs.2asm.js b/test/wasm2js/func_ptrs.2asm.js
index 230cb95ce..45e0a8697 100644
--- a/test/wasm2js/func_ptrs.2asm.js
+++ b/test/wasm2js/func_ptrs.2asm.js
@@ -1,4 +1,4 @@
-import { print } from 'spectest';
+import { print_i32 } from 'spectest';
function asmFunc(global, env, buffer) {
var HEAP8 = new global.Int8Array(buffer);
@@ -21,7 +21,7 @@ function asmFunc(global, env, buffer) {
var abort = env.abort;
var nan = global.NaN;
var infinity = global.Infinity;
- var print = env.print;
+ var print = env.print_i32;
function $3() {
return 13 | 0;
}
@@ -51,7 +51,7 @@ function asmFunc(global, env, buffer) {
}
var memasmFunc = new ArrayBuffer(65536);
-var retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },print},memasmFunc);
+var retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },print_i32},memasmFunc);
export var one = retasmFunc.one;
export var two = retasmFunc.two;
export var three = retasmFunc.three;
diff --git a/test/wasm2js/int_exprs.2asm.js b/test/wasm2js/int_exprs.2asm.js
index 6c4ad059a..af1673aa2 100644
--- a/test/wasm2js/int_exprs.2asm.js
+++ b/test/wasm2js/int_exprs.2asm.js
@@ -1715,6 +1715,1527 @@ function asmFunc(global, env, buffer) {
var i64toi32_i32$HIGH_BITS = 0;
function $0(x) {
x = x | 0;
+ return (x | 0) / (x | 0) | 0 | 0;
+ }
+
+ function $1(x) {
+ x = x | 0;
+ return (x >>> 0) / (x >>> 0) | 0 | 0;
+ }
+
+ function $2(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = i64toi32_i32$0;
+ i64toi32_i32$1 = __wasm_i64_sdiv(x | 0, i64toi32_i32$0 | 0, x | 0, i64toi32_i32$0 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function $3(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = i64toi32_i32$0;
+ i64toi32_i32$1 = __wasm_i64_udiv(x | 0, i64toi32_i32$0 | 0, x | 0, i64toi32_i32$0 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function legalstub$2($0_1, $1_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $12 = 0, $13 = 0, $4 = 0, $4$hi = 0, $7$hi = 0, $2_1 = 0, $2$hi = 0;
+ i64toi32_i32$0 = 0;
+ $4 = $0_1;
+ $4$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $12 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0;
+ $12 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $7$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $4$hi;
+ i64toi32_i32$0 = $4;
+ i64toi32_i32$2 = $7$hi;
+ i64toi32_i32$3 = $12;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ i64toi32_i32$2 = $2(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ $2_1 = i64toi32_i32$2;
+ $2$hi = i64toi32_i32$0;
+ i64toi32_i32$1 = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $13 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $13 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($13 | 0);
+ i64toi32_i32$2 = $2$hi;
+ return $2_1 | 0;
+ }
+
+ function legalstub$3($0_1, $1_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $12 = 0, $13 = 0, $4 = 0, $4$hi = 0, $7$hi = 0, $2_1 = 0, $2$hi = 0;
+ i64toi32_i32$0 = 0;
+ $4 = $0_1;
+ $4$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $12 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0;
+ $12 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $7$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $4$hi;
+ i64toi32_i32$0 = $4;
+ i64toi32_i32$2 = $7$hi;
+ i64toi32_i32$3 = $12;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ i64toi32_i32$2 = $3(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ $2_1 = i64toi32_i32$2;
+ $2$hi = i64toi32_i32$0;
+ i64toi32_i32$1 = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $13 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $13 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($13 | 0);
+ i64toi32_i32$2 = $2$hi;
+ return $2_1 | 0;
+ }
+
+ function legalfunc$wasm2js_scratch_store_i64($0_1, $0$hi) {
+ $0_1 = $0_1 | 0;
+ $0$hi = $0$hi | 0;
+ var i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8 = 0, $2_1 = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $0$hi;
+ $2_1 = $0_1;
+ i64toi32_i32$2 = $0_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $8 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $8 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ legalimport$wasm2js_scratch_store_i64($2_1 | 0, $8 | 0);
+ }
+
+ function _ZN17compiler_builtins3int4sdiv3Div3div17he78fc483e41d7ec7E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$2$hi = 0, i64toi32_i32$6 = 0, $21 = 0, $22 = 0, $23 = 0, $7$hi = 0, $9 = 0, $9$hi = 0, $14$hi = 0, $16$hi = 0, $17 = 0, $17$hi = 0, $23$hi = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ $21 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ $21 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $21;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$0 = var$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $7$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $7$hi;
+ i64toi32_i32$1 = i64toi32_i32$0 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$0 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$4 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$5 = i64toi32_i32$6 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ $9 = i64toi32_i32$4;
+ $9$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$5 >> 31 | 0;
+ $22 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ $22 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$0 | 0) | 0;
+ }
+ var$2 = $22;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$5 = var$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $14$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $14$hi;
+ i64toi32_i32$1 = i64toi32_i32$5 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$5 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$5 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 - i64toi32_i32$4 | 0;
+ $16$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = $9$hi;
+ i64toi32_i32$1 = $16$hi;
+ i64toi32_i32$1 = __wasm_i64_udiv($9 | 0, i64toi32_i32$4 | 0, i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$HIGH_BITS;
+ $17 = i64toi32_i32$1;
+ $17$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$1$hi;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$4 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = i64toi32_i32$4 ^ i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$5 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$1 >> 31 | 0;
+ $23 = i64toi32_i32$1 >> i64toi32_i32$5 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >> i64toi32_i32$5 | 0;
+ $23 = (((1 << i64toi32_i32$5 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$5 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$5 | 0) | 0;
+ }
+ var$0 = $23;
+ var$0$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $17$hi;
+ i64toi32_i32$1 = $17;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$4 | 0;
+ $23$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$4 = $23$hi;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$0 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$0 = i64toi32_i32$4 - i64toi32_i32$0 | 0;
+ i64toi32_i32$2 = i64toi32_i32$5;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$2 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$3 = 0, var$4 = 0, var$5 = 0, var$5$hi = 0, var$6 = 0, var$6$hi = 0, i64toi32_i32$6 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, var$8$hi = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, var$7$hi = 0, $49 = 0, $63$hi = 0, $65 = 0, $65$hi = 0, $120$hi = 0, $129$hi = 0, $134$hi = 0, var$8 = 0, $140 = 0, $140$hi = 0, $142$hi = 0, $144 = 0, $144$hi = 0, $151 = 0, $151$hi = 0, $154$hi = 0, var$7 = 0, $165$hi = 0;
+ label$1 : {
+ label$2 : {
+ label$3 : {
+ label$4 : {
+ label$5 : {
+ label$6 : {
+ label$7 : {
+ label$8 : {
+ label$9 : {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $37;
+ if (var$2) {
+ block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if (!var$3) {
+ break label$11
+ }
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $38;
+ if (!var$4) {
+ break label$9
+ }
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) {
+ break label$8
+ }
+ break label$2;
+ }
+ }
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
+ break label$2
+ }
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ }
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$3 = $39;
+ i64toi32_i32$1 = var$0$hi;
+ if (!var$0) {
+ break label$7
+ }
+ if (!var$3) {
+ break label$6
+ }
+ var$4 = var$3 + -1 | 0;
+ if (var$4 & var$3 | 0) {
+ break label$6
+ }
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $40 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $63$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $65$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $63$hi;
+ i64toi32_i32$3 = $40;
+ i64toi32_i32$1 = $65$hi;
+ i64toi32_i32$0 = $65;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ }
+ }
+ var$4 = var$3 + -1 | 0;
+ if (!(var$4 & var$3 | 0)) {
+ break label$5
+ }
+ var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
+ var$3 = 0 - var$2 | 0;
+ break label$3;
+ }
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ break label$3;
+ }
+ var$4 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$2 = var$2 - Math_imul(var$4, var$3) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $41 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $41 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ legalfunc$wasm2js_scratch_store_i64($41 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ }
+ var$2 = Math_clz32(var$3) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 < 31 >>> 0) {
+ break label$4
+ }
+ break label$2;
+ }
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ legalfunc$wasm2js_scratch_store_i64(var$4 & var$0 | 0 | 0, i64toi32_i32$2 | 0);
+ if ((var$3 | 0) == (1 | 0)) {
+ break label$1
+ }
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ $120$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = $120$hi;
+ i64toi32_i32$0 = __wasm_ctz_i32(var$3 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $42 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ i64toi32_i32$3 = $42;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ }
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ }
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$3 = 0;
+ $129$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = $129$hi;
+ i64toi32_i32$0 = var$2 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $43 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ $43 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$5 = $43;
+ var$5$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = 0;
+ $134$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = $134$hi;
+ i64toi32_i32$0 = var$3 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ $44 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $44 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ }
+ var$0 = $44;
+ var$0$hi = i64toi32_i32$2;
+ label$13 : {
+ if (var$2) {
+ block3 : {
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = -1;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
+ i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
+ }
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : while (1) {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $45 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $140 = $45;
+ $140$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $142$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $140$hi;
+ i64toi32_i32$1 = $140;
+ i64toi32_i32$5 = $142$hi;
+ i64toi32_i32$0 = $46;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $144 = var$5;
+ $144$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $47;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $151$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $144$hi;
+ i64toi32_i32$2 = $144;
+ i64toi32_i32$4 = $151$hi;
+ i64toi32_i32$0 = $151;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $154$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $154$hi;
+ i64toi32_i32$3 = $48;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + -1 | 0;
+ if (var$2) {
+ continue label$15
+ }
+ break label$15;
+ };
+ break label$13;
+ }
+ }
+ }
+ i64toi32_i32$3 = var$5$hi;
+ legalfunc$wasm2js_scratch_store_i64(var$5 | 0, i64toi32_i32$3 | 0);
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $49 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $49 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $165$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$2 = $165$hi;
+ i64toi32_i32$3 = $49;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$0 = var$6;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ i64toi32_i32$3 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$5;
+ return i64toi32_i32$3 | 0;
+ }
+ i64toi32_i32$3 = var$0$hi;
+ legalfunc$wasm2js_scratch_store_i64(var$0 | 0, i64toi32_i32$3 | 0);
+ i64toi32_i32$3 = 0;
+ var$0 = 0;
+ var$0$hi = i64toi32_i32$3;
+ }
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$3;
+ return i64toi32_i32$5 | 0;
+ }
+
+ function __wasm_i64_sdiv(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4sdiv3Div3div17he78fc483e41d7ec7E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function __wasm_i64_udiv(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function __wasm_ctz_i32(var$0) {
+ var$0 = var$0 | 0;
+ if (var$0) {
+ return 31 - Math_clz32((var$0 + -1 | 0) ^ var$0 | 0) | 0 | 0
+ }
+ return 32 | 0;
+ }
+
+ var FUNCTION_TABLE = [];
+ return {
+ "i32_no_fold_div_s_self": $0,
+ "i32_no_fold_div_u_self": $1,
+ "i64_no_fold_div_s_self": legalstub$2,
+ "i64_no_fold_div_u_self": legalstub$3
+ };
+}
+
+var memasmFunc = new ArrayBuffer(65536);
+var retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0},memasmFunc);
+export var i32_no_fold_div_s_self = retasmFunc.i32_no_fold_div_s_self;
+export var i32_no_fold_div_u_self = retasmFunc.i32_no_fold_div_u_self;
+export var i64_no_fold_div_s_self = retasmFunc.i64_no_fold_div_s_self;
+export var i64_no_fold_div_u_self = retasmFunc.i64_no_fold_div_u_self;
+import { setTempRet0 } from 'env';
+import { getTempRet0 } from 'env';
+
+
+ var scratchBuffer = new ArrayBuffer(8);
+ var i32ScratchView = new Int32Array(scratchBuffer);
+ var f32ScratchView = new Float32Array(scratchBuffer);
+ var f64ScratchView = new Float64Array(scratchBuffer);
+
+ function legalimport$wasm2js_scratch_load_i64() {
+ if (typeof setTempRet0 === 'function') setTempRet0(i32ScratchView[1]);
+ return i32ScratchView[0];
+ }
+
+ function legalimport$wasm2js_scratch_store_i64(low, high) {
+ i32ScratchView[0] = low;
+ i32ScratchView[1] = high;
+ }
+
+function asmFunc(global, env, buffer) {
+ var HEAP8 = new global.Int8Array(buffer);
+ var HEAP16 = new global.Int16Array(buffer);
+ var HEAP32 = new global.Int32Array(buffer);
+ var HEAPU8 = new global.Uint8Array(buffer);
+ var HEAPU16 = new global.Uint16Array(buffer);
+ var HEAPU32 = new global.Uint32Array(buffer);
+ var HEAPF32 = new global.Float32Array(buffer);
+ var HEAPF64 = new global.Float64Array(buffer);
+ var Math_imul = global.Math.imul;
+ var Math_fround = global.Math.fround;
+ var Math_abs = global.Math.abs;
+ var Math_clz32 = global.Math.clz32;
+ var Math_min = global.Math.min;
+ var Math_max = global.Math.max;
+ var Math_floor = global.Math.floor;
+ var Math_ceil = global.Math.ceil;
+ var Math_sqrt = global.Math.sqrt;
+ var abort = env.abort;
+ var nan = global.NaN;
+ var infinity = global.Infinity;
+ var setTempRet0 = env.setTempRet0;
+ var getTempRet0 = env.getTempRet0;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function $0(x) {
+ x = x | 0;
+ return (x | 0) % (x | 0) | 0 | 0;
+ }
+
+ function $1(x) {
+ x = x | 0;
+ return (x >>> 0) % (x >>> 0) | 0 | 0;
+ }
+
+ function $2(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = i64toi32_i32$0;
+ i64toi32_i32$1 = __wasm_i64_srem(x | 0, i64toi32_i32$0 | 0, x | 0, i64toi32_i32$0 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function $3(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = i64toi32_i32$0;
+ i64toi32_i32$1 = __wasm_i64_urem(x | 0, i64toi32_i32$0 | 0, x | 0, i64toi32_i32$0 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function legalstub$2($0_1, $1_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $12 = 0, $13 = 0, $4 = 0, $4$hi = 0, $7$hi = 0, $2_1 = 0, $2$hi = 0;
+ i64toi32_i32$0 = 0;
+ $4 = $0_1;
+ $4$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $12 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0;
+ $12 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $7$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $4$hi;
+ i64toi32_i32$0 = $4;
+ i64toi32_i32$2 = $7$hi;
+ i64toi32_i32$3 = $12;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ i64toi32_i32$2 = $2(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ $2_1 = i64toi32_i32$2;
+ $2$hi = i64toi32_i32$0;
+ i64toi32_i32$1 = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $13 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $13 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($13 | 0);
+ i64toi32_i32$2 = $2$hi;
+ return $2_1 | 0;
+ }
+
+ function legalstub$3($0_1, $1_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $12 = 0, $13 = 0, $4 = 0, $4$hi = 0, $7$hi = 0, $2_1 = 0, $2$hi = 0;
+ i64toi32_i32$0 = 0;
+ $4 = $0_1;
+ $4$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $12 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0;
+ $12 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $7$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $4$hi;
+ i64toi32_i32$0 = $4;
+ i64toi32_i32$2 = $7$hi;
+ i64toi32_i32$3 = $12;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ i64toi32_i32$2 = $3(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ $2_1 = i64toi32_i32$2;
+ $2$hi = i64toi32_i32$0;
+ i64toi32_i32$1 = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $13 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $13 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($13 | 0);
+ i64toi32_i32$2 = $2$hi;
+ return $2_1 | 0;
+ }
+
+ function legalfunc$wasm2js_scratch_load_i64() {
+ var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $8 = 0, $1_1 = 0, $1$hi = 0, $4$hi = 0;
+ i64toi32_i32$0 = 0;
+ $1_1 = legalimport$wasm2js_scratch_load_i64() | 0;
+ $1$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = getTempRet0() | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $8 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0;
+ $8 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $4$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $1$hi;
+ i64toi32_i32$0 = $1_1;
+ i64toi32_i32$2 = $4$hi;
+ i64toi32_i32$3 = $8;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ i64toi32_i32$0 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$2;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function legalfunc$wasm2js_scratch_store_i64($0_1, $0$hi) {
+ $0_1 = $0_1 | 0;
+ $0$hi = $0$hi | 0;
+ var i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8 = 0, $2_1 = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $0$hi;
+ $2_1 = $0_1;
+ i64toi32_i32$2 = $0_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $8 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $8 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ legalimport$wasm2js_scratch_store_i64($2_1 | 0, $8 | 0);
+ }
+
+ function _ZN17compiler_builtins3int4sdiv3Mod4mod_17h2cbb7bbf36e41d68E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, i64toi32_i32$5 = 0, var$2$hi = 0, i64toi32_i32$6 = 0, var$2 = 0, $20 = 0, $21 = 0, $7$hi = 0, $9 = 0, $9$hi = 0, $14$hi = 0, $16$hi = 0, $17$hi = 0, $19$hi = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ $20 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ $20 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $20;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$0 = var$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $7$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $7$hi;
+ i64toi32_i32$1 = i64toi32_i32$0 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$0 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$4 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$5 = i64toi32_i32$6 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ $9 = i64toi32_i32$4;
+ $9$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$5 >> 31 | 0;
+ $21 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ $21 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$0 | 0) | 0;
+ }
+ var$0 = $21;
+ var$0$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $14$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $14$hi;
+ i64toi32_i32$1 = i64toi32_i32$5 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$5 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$5 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 - i64toi32_i32$4 | 0;
+ $16$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = $9$hi;
+ i64toi32_i32$1 = $16$hi;
+ i64toi32_i32$1 = __wasm_i64_urem($9 | 0, i64toi32_i32$4 | 0, i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$HIGH_BITS;
+ $17$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$2$hi;
+ i64toi32_i32$4 = $17$hi;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$1 = i64toi32_i32$4 ^ i64toi32_i32$1 | 0;
+ $19$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$1 = $19$hi;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$2 = var$2$hi;
+ i64toi32_i32$5 = i64toi32_i32$4 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$0 = i64toi32_i32$6 + i64toi32_i32$2 | 0;
+ i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$0 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$4 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$3 = 0, var$4 = 0, var$5 = 0, var$5$hi = 0, var$6 = 0, var$6$hi = 0, i64toi32_i32$6 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, var$8$hi = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, var$7$hi = 0, $49 = 0, $63$hi = 0, $65 = 0, $65$hi = 0, $120$hi = 0, $129$hi = 0, $134$hi = 0, var$8 = 0, $140 = 0, $140$hi = 0, $142$hi = 0, $144 = 0, $144$hi = 0, $151 = 0, $151$hi = 0, $154$hi = 0, var$7 = 0, $165$hi = 0;
+ label$1 : {
+ label$2 : {
+ label$3 : {
+ label$4 : {
+ label$5 : {
+ label$6 : {
+ label$7 : {
+ label$8 : {
+ label$9 : {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $37;
+ if (var$2) {
+ block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if (!var$3) {
+ break label$11
+ }
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $38;
+ if (!var$4) {
+ break label$9
+ }
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) {
+ break label$8
+ }
+ break label$2;
+ }
+ }
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
+ break label$2
+ }
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ }
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$3 = $39;
+ i64toi32_i32$1 = var$0$hi;
+ if (!var$0) {
+ break label$7
+ }
+ if (!var$3) {
+ break label$6
+ }
+ var$4 = var$3 + -1 | 0;
+ if (var$4 & var$3 | 0) {
+ break label$6
+ }
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $40 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $63$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $65$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $63$hi;
+ i64toi32_i32$3 = $40;
+ i64toi32_i32$1 = $65$hi;
+ i64toi32_i32$0 = $65;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ }
+ }
+ var$4 = var$3 + -1 | 0;
+ if (!(var$4 & var$3 | 0)) {
+ break label$5
+ }
+ var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
+ var$3 = 0 - var$2 | 0;
+ break label$3;
+ }
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ break label$3;
+ }
+ var$4 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$2 = var$2 - Math_imul(var$4, var$3) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $41 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $41 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ legalfunc$wasm2js_scratch_store_i64($41 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ }
+ var$2 = Math_clz32(var$3) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 < 31 >>> 0) {
+ break label$4
+ }
+ break label$2;
+ }
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ legalfunc$wasm2js_scratch_store_i64(var$4 & var$0 | 0 | 0, i64toi32_i32$2 | 0);
+ if ((var$3 | 0) == (1 | 0)) {
+ break label$1
+ }
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ $120$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = $120$hi;
+ i64toi32_i32$0 = __wasm_ctz_i32(var$3 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $42 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ i64toi32_i32$3 = $42;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ }
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ }
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$3 = 0;
+ $129$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = $129$hi;
+ i64toi32_i32$0 = var$2 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $43 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ $43 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$5 = $43;
+ var$5$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = 0;
+ $134$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = $134$hi;
+ i64toi32_i32$0 = var$3 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ $44 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $44 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ }
+ var$0 = $44;
+ var$0$hi = i64toi32_i32$2;
+ label$13 : {
+ if (var$2) {
+ block3 : {
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = -1;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
+ i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
+ }
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : while (1) {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $45 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $140 = $45;
+ $140$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $142$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $140$hi;
+ i64toi32_i32$1 = $140;
+ i64toi32_i32$5 = $142$hi;
+ i64toi32_i32$0 = $46;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $144 = var$5;
+ $144$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $47;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $151$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $144$hi;
+ i64toi32_i32$2 = $144;
+ i64toi32_i32$4 = $151$hi;
+ i64toi32_i32$0 = $151;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $154$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $154$hi;
+ i64toi32_i32$3 = $48;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + -1 | 0;
+ if (var$2) {
+ continue label$15
+ }
+ break label$15;
+ };
+ break label$13;
+ }
+ }
+ }
+ i64toi32_i32$3 = var$5$hi;
+ legalfunc$wasm2js_scratch_store_i64(var$5 | 0, i64toi32_i32$3 | 0);
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $49 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $49 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $165$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$2 = $165$hi;
+ i64toi32_i32$3 = $49;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$0 = var$6;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ i64toi32_i32$3 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$5;
+ return i64toi32_i32$3 | 0;
+ }
+ i64toi32_i32$3 = var$0$hi;
+ legalfunc$wasm2js_scratch_store_i64(var$0 | 0, i64toi32_i32$3 | 0);
+ i64toi32_i32$3 = 0;
+ var$0 = 0;
+ var$0$hi = i64toi32_i32$3;
+ }
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$3;
+ return i64toi32_i32$5 | 0;
+ }
+
+ function __wasm_i64_srem(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4sdiv3Mod4mod_17h2cbb7bbf36e41d68E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function __wasm_i64_urem(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$0 = legalfunc$wasm2js_scratch_load_i64() | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function __wasm_ctz_i32(var$0) {
+ var$0 = var$0 | 0;
+ if (var$0) {
+ return 31 - Math_clz32((var$0 + -1 | 0) ^ var$0 | 0) | 0 | 0
+ }
+ return 32 | 0;
+ }
+
+ var FUNCTION_TABLE = [];
+ return {
+ "i32_no_fold_rem_s_self": $0,
+ "i32_no_fold_rem_u_self": $1,
+ "i64_no_fold_rem_s_self": legalstub$2,
+ "i64_no_fold_rem_u_self": legalstub$3
+ };
+}
+
+var memasmFunc = new ArrayBuffer(65536);
+var retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0,getTempRet0},memasmFunc);
+export var i32_no_fold_rem_s_self = retasmFunc.i32_no_fold_rem_s_self;
+export var i32_no_fold_rem_u_self = retasmFunc.i32_no_fold_rem_u_self;
+export var i64_no_fold_rem_s_self = retasmFunc.i64_no_fold_rem_s_self;
+export var i64_no_fold_rem_u_self = retasmFunc.i64_no_fold_rem_u_self;
+import { setTempRet0 } from 'env';
+
+
+ var scratchBuffer = new ArrayBuffer(8);
+ var i32ScratchView = new Int32Array(scratchBuffer);
+ var f32ScratchView = new Float32Array(scratchBuffer);
+ var f64ScratchView = new Float64Array(scratchBuffer);
+
+ function legalimport$wasm2js_scratch_store_i64(low, high) {
+ i32ScratchView[0] = low;
+ i32ScratchView[1] = high;
+ }
+
+function asmFunc(global, env, buffer) {
+ var HEAP8 = new global.Int8Array(buffer);
+ var HEAP16 = new global.Int16Array(buffer);
+ var HEAP32 = new global.Int32Array(buffer);
+ var HEAPU8 = new global.Uint8Array(buffer);
+ var HEAPU16 = new global.Uint16Array(buffer);
+ var HEAPU32 = new global.Uint32Array(buffer);
+ var HEAPF32 = new global.Float32Array(buffer);
+ var HEAPF64 = new global.Float64Array(buffer);
+ var Math_imul = global.Math.imul;
+ var Math_fround = global.Math.fround;
+ var Math_abs = global.Math.abs;
+ var Math_clz32 = global.Math.clz32;
+ var Math_min = global.Math.min;
+ var Math_max = global.Math.max;
+ var Math_floor = global.Math.floor;
+ var Math_ceil = global.Math.ceil;
+ var Math_sqrt = global.Math.sqrt;
+ var abort = env.abort;
+ var nan = global.NaN;
+ var infinity = global.Infinity;
+ var setTempRet0 = env.setTempRet0;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function $0(x) {
+ x = x | 0;
return (Math_imul(x, 6) | 0) / (6 | 0) | 0 | 0;
}
@@ -4651,19 +6172,19 @@ function asmFunc(global, env, buffer) {
var FUNCTION_TABLE = [];
return {
- "i32_div_s_3": $0,
- "i32_div_u_3": $1,
- "i64_div_s_3": legalstub$2,
- "i64_div_u_3": legalstub$3
+ "i32_div_s_0": $0,
+ "i32_div_u_0": $1,
+ "i64_div_s_0": legalstub$2,
+ "i64_div_u_0": legalstub$3
};
}
var memasmFunc = new ArrayBuffer(65536);
var retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0},memasmFunc);
-export var i32_div_s_3 = retasmFunc.i32_div_s_3;
-export var i32_div_u_3 = retasmFunc.i32_div_u_3;
-export var i64_div_s_3 = retasmFunc.i64_div_s_3;
-export var i64_div_u_3 = retasmFunc.i64_div_u_3;
+export var i32_div_s_0 = retasmFunc.i32_div_s_0;
+export var i32_div_u_0 = retasmFunc.i32_div_u_0;
+export var i64_div_s_0 = retasmFunc.i64_div_s_0;
+export var i64_div_u_0 = retasmFunc.i64_div_u_0;
import { setTempRet0 } from 'env';
@@ -9227,3 +10748,689 @@ export var i32_rem_s_7 = retasmFunc.i32_rem_s_7;
export var i32_rem_u_7 = retasmFunc.i32_rem_u_7;
export var i64_rem_s_7 = retasmFunc.i64_rem_s_7;
export var i64_rem_u_7 = retasmFunc.i64_rem_u_7;
+import { setTempRet0 } from 'env';
+
+
+ var scratchBuffer = new ArrayBuffer(8);
+ var i32ScratchView = new Int32Array(scratchBuffer);
+ var f32ScratchView = new Float32Array(scratchBuffer);
+ var f64ScratchView = new Float64Array(scratchBuffer);
+
+ function legalimport$wasm2js_scratch_store_i64(low, high) {
+ i32ScratchView[0] = low;
+ i32ScratchView[1] = high;
+ }
+
+function asmFunc(global, env, buffer) {
+ var HEAP8 = new global.Int8Array(buffer);
+ var HEAP16 = new global.Int16Array(buffer);
+ var HEAP32 = new global.Int32Array(buffer);
+ var HEAPU8 = new global.Uint8Array(buffer);
+ var HEAPU16 = new global.Uint16Array(buffer);
+ var HEAPU32 = new global.Uint32Array(buffer);
+ var HEAPF32 = new global.Float32Array(buffer);
+ var HEAPF64 = new global.Float64Array(buffer);
+ var Math_imul = global.Math.imul;
+ var Math_fround = global.Math.fround;
+ var Math_abs = global.Math.abs;
+ var Math_clz32 = global.Math.clz32;
+ var Math_min = global.Math.min;
+ var Math_max = global.Math.max;
+ var Math_floor = global.Math.floor;
+ var Math_ceil = global.Math.ceil;
+ var Math_sqrt = global.Math.sqrt;
+ var abort = env.abort;
+ var nan = global.NaN;
+ var infinity = global.Infinity;
+ var setTempRet0 = env.setTempRet0;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function $0(x) {
+ x = x | 0;
+ return (x | 0) / (-1 | 0) | 0 | 0;
+ }
+
+ function $1(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = -1;
+ i64toi32_i32$1 = __wasm_i64_sdiv(x | 0, i64toi32_i32$0 | 0, -1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function legalstub$1($0_1, $1_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $12 = 0, $13 = 0, $4 = 0, $4$hi = 0, $7$hi = 0, $2 = 0, $2$hi = 0;
+ i64toi32_i32$0 = 0;
+ $4 = $0_1;
+ $4$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $12 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0;
+ $12 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $7$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $4$hi;
+ i64toi32_i32$0 = $4;
+ i64toi32_i32$2 = $7$hi;
+ i64toi32_i32$3 = $12;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ i64toi32_i32$2 = $1(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ $2 = i64toi32_i32$2;
+ $2$hi = i64toi32_i32$0;
+ i64toi32_i32$1 = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $13 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $13 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ setTempRet0($13 | 0);
+ i64toi32_i32$2 = $2$hi;
+ return $2 | 0;
+ }
+
+ function legalfunc$wasm2js_scratch_store_i64($0_1, $0$hi) {
+ $0_1 = $0_1 | 0;
+ $0$hi = $0$hi | 0;
+ var i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8 = 0, $2 = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = $0$hi;
+ $2 = $0_1;
+ i64toi32_i32$2 = $0_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $8 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $8 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ legalimport$wasm2js_scratch_store_i64($2 | 0, $8 | 0);
+ }
+
+ function _ZN17compiler_builtins3int4sdiv3Div3div17he78fc483e41d7ec7E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$2$hi = 0, i64toi32_i32$6 = 0, $21 = 0, $22 = 0, $23 = 0, $7$hi = 0, $9 = 0, $9$hi = 0, $14$hi = 0, $16$hi = 0, $17 = 0, $17$hi = 0, $23$hi = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ $21 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ $21 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $21;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$0 = var$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $7$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $7$hi;
+ i64toi32_i32$1 = i64toi32_i32$0 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$0 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$4 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$5 = i64toi32_i32$6 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ $9 = i64toi32_i32$4;
+ $9$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$5 >> 31 | 0;
+ $22 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ $22 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$0 | 0) | 0;
+ }
+ var$2 = $22;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$5 = var$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $14$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $14$hi;
+ i64toi32_i32$1 = i64toi32_i32$5 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$5 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$5 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 - i64toi32_i32$4 | 0;
+ $16$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = $9$hi;
+ i64toi32_i32$1 = $16$hi;
+ i64toi32_i32$1 = __wasm_i64_udiv($9 | 0, i64toi32_i32$4 | 0, i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$HIGH_BITS;
+ $17 = i64toi32_i32$1;
+ $17$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$1$hi;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$4 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = i64toi32_i32$4 ^ i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$5 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$1 >> 31 | 0;
+ $23 = i64toi32_i32$1 >> i64toi32_i32$5 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >> i64toi32_i32$5 | 0;
+ $23 = (((1 << i64toi32_i32$5 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$5 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$5 | 0) | 0;
+ }
+ var$0 = $23;
+ var$0$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $17$hi;
+ i64toi32_i32$1 = $17;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$4 | 0;
+ $23$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$4 = $23$hi;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$0 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$0 = i64toi32_i32$4 - i64toi32_i32$0 | 0;
+ i64toi32_i32$2 = i64toi32_i32$5;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$2 | 0;
+ }
+
+ function __wasm_i64_sdiv(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4sdiv3Div3div17he78fc483e41d7ec7E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$3 = 0, var$4 = 0, var$5 = 0, var$5$hi = 0, var$6 = 0, var$6$hi = 0, i64toi32_i32$6 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, var$8$hi = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, var$7$hi = 0, $49 = 0, $63$hi = 0, $65 = 0, $65$hi = 0, $120$hi = 0, $129$hi = 0, $134$hi = 0, var$8 = 0, $140 = 0, $140$hi = 0, $142$hi = 0, $144 = 0, $144$hi = 0, $151 = 0, $151$hi = 0, $154$hi = 0, var$7 = 0, $165$hi = 0;
+ label$1 : {
+ label$2 : {
+ label$3 : {
+ label$4 : {
+ label$5 : {
+ label$6 : {
+ label$7 : {
+ label$8 : {
+ label$9 : {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $37;
+ if (var$2) {
+ block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if (!var$3) {
+ break label$11
+ }
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $38;
+ if (!var$4) {
+ break label$9
+ }
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) {
+ break label$8
+ }
+ break label$2;
+ }
+ }
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
+ break label$2
+ }
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ }
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$3 = $39;
+ i64toi32_i32$1 = var$0$hi;
+ if (!var$0) {
+ break label$7
+ }
+ if (!var$3) {
+ break label$6
+ }
+ var$4 = var$3 + -1 | 0;
+ if (var$4 & var$3 | 0) {
+ break label$6
+ }
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $40 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $63$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $65$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $63$hi;
+ i64toi32_i32$3 = $40;
+ i64toi32_i32$1 = $65$hi;
+ i64toi32_i32$0 = $65;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ }
+ }
+ var$4 = var$3 + -1 | 0;
+ if (!(var$4 & var$3 | 0)) {
+ break label$5
+ }
+ var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
+ var$3 = 0 - var$2 | 0;
+ break label$3;
+ }
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ break label$3;
+ }
+ var$4 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$2 = var$2 - Math_imul(var$4, var$3) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $41 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $41 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ legalfunc$wasm2js_scratch_store_i64($41 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ }
+ var$2 = Math_clz32(var$3) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 < 31 >>> 0) {
+ break label$4
+ }
+ break label$2;
+ }
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ legalfunc$wasm2js_scratch_store_i64(var$4 & var$0 | 0 | 0, i64toi32_i32$2 | 0);
+ if ((var$3 | 0) == (1 | 0)) {
+ break label$1
+ }
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ $120$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = $120$hi;
+ i64toi32_i32$0 = __wasm_ctz_i32(var$3 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $42 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ i64toi32_i32$3 = $42;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ }
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ }
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$3 = 0;
+ $129$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = $129$hi;
+ i64toi32_i32$0 = var$2 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $43 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ $43 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$5 = $43;
+ var$5$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = 0;
+ $134$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = $134$hi;
+ i64toi32_i32$0 = var$3 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ $44 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $44 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ }
+ var$0 = $44;
+ var$0$hi = i64toi32_i32$2;
+ label$13 : {
+ if (var$2) {
+ block3 : {
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = -1;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
+ i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
+ }
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : while (1) {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $45 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $140 = $45;
+ $140$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $142$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $140$hi;
+ i64toi32_i32$1 = $140;
+ i64toi32_i32$5 = $142$hi;
+ i64toi32_i32$0 = $46;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $144 = var$5;
+ $144$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $47;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $151$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $144$hi;
+ i64toi32_i32$2 = $144;
+ i64toi32_i32$4 = $151$hi;
+ i64toi32_i32$0 = $151;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $154$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $154$hi;
+ i64toi32_i32$3 = $48;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + -1 | 0;
+ if (var$2) {
+ continue label$15
+ }
+ break label$15;
+ };
+ break label$13;
+ }
+ }
+ }
+ i64toi32_i32$3 = var$5$hi;
+ legalfunc$wasm2js_scratch_store_i64(var$5 | 0, i64toi32_i32$3 | 0);
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $49 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $49 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $165$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$2 = $165$hi;
+ i64toi32_i32$3 = $49;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$0 = var$6;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ i64toi32_i32$3 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$5;
+ return i64toi32_i32$3 | 0;
+ }
+ i64toi32_i32$3 = var$0$hi;
+ legalfunc$wasm2js_scratch_store_i64(var$0 | 0, i64toi32_i32$3 | 0);
+ i64toi32_i32$3 = 0;
+ var$0 = 0;
+ var$0$hi = i64toi32_i32$3;
+ }
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$3;
+ return i64toi32_i32$5 | 0;
+ }
+
+ function __wasm_i64_udiv(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function __wasm_ctz_i32(var$0) {
+ var$0 = var$0 | 0;
+ if (var$0) {
+ return 31 - Math_clz32((var$0 + -1 | 0) ^ var$0 | 0) | 0 | 0
+ }
+ return 32 | 0;
+ }
+
+ var FUNCTION_TABLE = [];
+ return {
+ "i32_no_fold_div_neg1": $0,
+ "i64_no_fold_div_neg1": legalstub$1
+ };
+}
+
+var memasmFunc = new ArrayBuffer(65536);
+var retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0},memasmFunc);
+export var i32_no_fold_div_neg1 = retasmFunc.i32_no_fold_div_neg1;
+export var i64_no_fold_div_neg1 = retasmFunc.i64_no_fold_div_neg1;
diff --git a/test/wasm2js/labels.2asm.js b/test/wasm2js/labels.2asm.js
index 0051a4113..34a88c63a 100644
--- a/test/wasm2js/labels.2asm.js
+++ b/test/wasm2js/labels.2asm.js
@@ -109,6 +109,18 @@ function asmFunc(global, env, buffer) {
}
function $6() {
+ var $2_1 = 0;
+ loop_in : while (1) {
+ if (0) {
+ continue loop_in
+ }
+ $2_1 = 3;
+ break loop_in;
+ };
+ return $2_1 | 0;
+ }
+
+ function $7() {
var i = 0;
i = 0;
block_1 : {
@@ -136,7 +148,7 @@ function asmFunc(global, env, buffer) {
return i | 0;
}
- function $7() {
+ function $8() {
var i = 0;
i = 0;
block_1 : {
@@ -164,7 +176,7 @@ function asmFunc(global, env, buffer) {
return i | 0;
}
- function $8($0_1) {
+ function $9($0_1) {
$0_1 = $0_1 | 0;
var $2_1 = 0, $3_1 = 0;
ret : {
@@ -190,7 +202,7 @@ function asmFunc(global, env, buffer) {
return $3_1 | 0;
}
- function $9($0_1) {
+ function $10($0_1) {
$0_1 = $0_1 | 0;
$1_1 : {
switch ($0_1 | 0) {
@@ -203,7 +215,7 @@ function asmFunc(global, env, buffer) {
return 2 | 0;
}
- function $10() {
+ function $11() {
var i = 0, $10_1 = 0;
i = 0;
outer : {
@@ -234,7 +246,7 @@ function asmFunc(global, env, buffer) {
return $10_1 | 0;
}
- function $11() {
+ function $12() {
var $2_1 = 0, $0_1 = 0;
l0 : {
l1 : {
@@ -245,12 +257,12 @@ function asmFunc(global, env, buffer) {
if (1) {
break l0
}
- $2_1 = 1;
+ $2_1 = 0;
}
return $2_1 | 0;
}
- function $12() {
+ function $13() {
var $2_1 = 0, $0_1 = 0;
l0 : {
l1 : {
@@ -258,12 +270,15 @@ function asmFunc(global, env, buffer) {
break l1;
}
$2_1 = $0_1;
- break l0;
+ if (1) {
+ break l0
+ }
+ $2_1 = 0;
}
return $2_1 | 0;
}
- function $13() {
+ function $14() {
var i1 = 0, $7_1 = 0, $3_1 = 0;
l0 : {
i1 = 1;
@@ -278,7 +293,7 @@ function asmFunc(global, env, buffer) {
return i1 | 0;
}
- function $14() {
+ function $15() {
var $2_1 = 0, $0_1 = 0, $3_1 = 0;
l0 : {
l1 : {
@@ -291,7 +306,7 @@ function asmFunc(global, env, buffer) {
return $2_1 | 0;
}
- function $15() {
+ function $16() {
var $0_1 = 0;
l1 : {
$0_1 = 1;
@@ -300,7 +315,7 @@ function asmFunc(global, env, buffer) {
return $0_1 | 0;
}
- function $16() {
+ function $17() {
var $1_2 = 0, $2_1 = 0;
l1 : {
$1_2 = 2;
@@ -320,17 +335,18 @@ function asmFunc(global, env, buffer) {
"loop3": $3,
"loop4": $4,
"loop5": $5,
- "if_": $6,
- "if2": $7,
- "switch_": $8,
- "return_": $9,
- "br_if0": $10,
- "br_if1": $11,
- "br_if2": $12,
- "br_if3": $13,
- "br": $14,
- "shadowing": $15,
- "redefinition": $16
+ "loop6": $6,
+ "if_": $7,
+ "if2": $8,
+ "switch_": $9,
+ "return_": $10,
+ "br_if0": $11,
+ "br_if1": $12,
+ "br_if2": $13,
+ "br_if3": $14,
+ "br": $15,
+ "shadowing": $16,
+ "redefinition": $17
};
}
@@ -342,6 +358,7 @@ export var loop2 = retasmFunc.loop2;
export var loop3 = retasmFunc.loop3;
export var loop4 = retasmFunc.loop4;
export var loop5 = retasmFunc.loop5;
+export var loop6 = retasmFunc.loop6;
export var if_ = retasmFunc.if_;
export var if2 = retasmFunc.if2;
export var switch_ = retasmFunc.switch_;
diff --git a/test/wasm2js/traps.2asm.js b/test/wasm2js/traps.2asm.js
index 5ca7284d7..22740f79a 100644
--- a/test/wasm2js/traps.2asm.js
+++ b/test/wasm2js/traps.2asm.js
@@ -1,4 +1,3 @@
-import { setTempRet0 } from 'env';
var scratchBuffer = new ArrayBuffer(8);
@@ -32,18 +31,17 @@ function asmFunc(global, env, buffer) {
var abort = env.abort;
var nan = global.NaN;
var infinity = global.Infinity;
- var setTempRet0 = env.setTempRet0;
var i64toi32_i32$HIGH_BITS = 0;
function $0(x, y) {
x = x | 0;
y = y | 0;
- return (x | 0) / (y | 0) | 0 | 0;
+ (x | 0) / (y | 0) | 0;
}
function $1(x, y) {
x = x | 0;
y = y | 0;
- return (x >>> 0) / (y >>> 0) | 0 | 0;
+ (x >>> 0) / (y >>> 0) | 0;
}
function $2(x, x$hi, y, y$hi) {
@@ -51,15 +49,7 @@ function asmFunc(global, env, buffer) {
x$hi = x$hi | 0;
y = y | 0;
y$hi = y$hi | 0;
- var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
- i64toi32_i32$0 = x$hi;
- i64toi32_i32$0 = y$hi;
- i64toi32_i32$0 = x$hi;
- i64toi32_i32$1 = y$hi;
- i64toi32_i32$1 = __wasm_i64_sdiv(x | 0, i64toi32_i32$0 | 0, y | 0, i64toi32_i32$1 | 0) | 0;
- i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
- return i64toi32_i32$1 | 0;
+ __wasm_i64_sdiv(x | 0, x$hi | 0, y | 0, y$hi | 0) | 0;
}
function $3(x, x$hi, y, y$hi) {
@@ -67,15 +57,7 @@ function asmFunc(global, env, buffer) {
x$hi = x$hi | 0;
y = y | 0;
y$hi = y$hi | 0;
- var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
- i64toi32_i32$0 = x$hi;
- i64toi32_i32$0 = y$hi;
- i64toi32_i32$0 = x$hi;
- i64toi32_i32$1 = y$hi;
- i64toi32_i32$1 = __wasm_i64_udiv(x | 0, i64toi32_i32$0 | 0, y | 0, i64toi32_i32$1 | 0) | 0;
- i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
- return i64toi32_i32$1 | 0;
+ __wasm_i64_udiv(x | 0, x$hi | 0, y | 0, y$hi | 0) | 0;
}
function legalstub$2($0_1, $1_1, $2_1, $3_1) {
@@ -83,10 +65,10 @@ function asmFunc(global, env, buffer) {
$1_1 = $1_1 | 0;
$2_1 = $2_1 | 0;
$3_1 = $3_1 | 0;
- var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, $21 = 0, $22 = 0, $23 = 0, $6 = 0, $6$hi = 0, $9$hi = 0, $10 = 0, $10$hi = 0, $12 = 0, $12$hi = 0, $15$hi = 0, $16 = 0, $16$hi = 0, $4 = 0, $4$hi = 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $19 = 0, $20 = 0, $5 = 0, $5$hi = 0, $8$hi = 0, $9 = 0, $9$hi = 0, $11 = 0, $11$hi = 0, $14$hi = 0, $15 = 0, $15$hi = 0;
i64toi32_i32$0 = 0;
- $6 = $0_1;
- $6$hi = i64toi32_i32$0;
+ $5 = $0_1;
+ $5$hi = i64toi32_i32$0;
i64toi32_i32$0 = 0;
i64toi32_i32$2 = $1_1;
i64toi32_i32$1 = 0;
@@ -94,22 +76,22 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $21 = 0;
+ $19 = 0;
} else {
i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0;
- $21 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $19 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
}
- $9$hi = i64toi32_i32$1;
- i64toi32_i32$1 = $6$hi;
- i64toi32_i32$0 = $6;
- i64toi32_i32$2 = $9$hi;
- i64toi32_i32$3 = $21;
+ $8$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $5$hi;
+ i64toi32_i32$0 = $5;
+ i64toi32_i32$2 = $8$hi;
+ i64toi32_i32$3 = $19;
i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
- $10 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
- $10$hi = i64toi32_i32$2;
+ $9 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $9$hi = i64toi32_i32$2;
i64toi32_i32$2 = 0;
- $12 = $2_1;
- $12$hi = i64toi32_i32$2;
+ $11 = $2_1;
+ $11$hi = i64toi32_i32$2;
i64toi32_i32$2 = 0;
i64toi32_i32$1 = $3_1;
i64toi32_i32$0 = 0;
@@ -117,39 +99,22 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
- $22 = 0;
+ $20 = 0;
} else {
i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
- $22 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $20 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
}
- $15$hi = i64toi32_i32$0;
- i64toi32_i32$0 = $12$hi;
- i64toi32_i32$2 = $12;
- i64toi32_i32$1 = $15$hi;
- i64toi32_i32$3 = $22;
+ $14$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $11$hi;
+ i64toi32_i32$2 = $11;
+ i64toi32_i32$1 = $14$hi;
+ i64toi32_i32$3 = $20;
i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
- $16 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
- $16$hi = i64toi32_i32$1;
- i64toi32_i32$1 = $10$hi;
- i64toi32_i32$2 = $16$hi;
- i64toi32_i32$2 = $2($10 | 0, i64toi32_i32$1 | 0, $16 | 0, i64toi32_i32$2 | 0) | 0;
- i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
- $4 = i64toi32_i32$2;
- $4$hi = i64toi32_i32$1;
- i64toi32_i32$0 = i64toi32_i32$2;
- i64toi32_i32$2 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $23 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $23 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
- }
- setTempRet0($23 | 0);
- i64toi32_i32$2 = $4$hi;
- return $4 | 0;
+ $15 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $15$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $9$hi;
+ i64toi32_i32$2 = $15$hi;
+ $2($9 | 0, i64toi32_i32$1 | 0, $15 | 0, i64toi32_i32$2 | 0);
}
function legalstub$3($0_1, $1_1, $2_1, $3_1) {
@@ -157,10 +122,10 @@ function asmFunc(global, env, buffer) {
$1_1 = $1_1 | 0;
$2_1 = $2_1 | 0;
$3_1 = $3_1 | 0;
- var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, $21 = 0, $22 = 0, $23 = 0, $6 = 0, $6$hi = 0, $9$hi = 0, $10 = 0, $10$hi = 0, $12 = 0, $12$hi = 0, $15$hi = 0, $16 = 0, $16$hi = 0, $4 = 0, $4$hi = 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $19 = 0, $20 = 0, $5 = 0, $5$hi = 0, $8$hi = 0, $9 = 0, $9$hi = 0, $11 = 0, $11$hi = 0, $14$hi = 0, $15 = 0, $15$hi = 0;
i64toi32_i32$0 = 0;
- $6 = $0_1;
- $6$hi = i64toi32_i32$0;
+ $5 = $0_1;
+ $5$hi = i64toi32_i32$0;
i64toi32_i32$0 = 0;
i64toi32_i32$2 = $1_1;
i64toi32_i32$1 = 0;
@@ -168,22 +133,22 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $21 = 0;
+ $19 = 0;
} else {
i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0;
- $21 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $19 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
}
- $9$hi = i64toi32_i32$1;
- i64toi32_i32$1 = $6$hi;
- i64toi32_i32$0 = $6;
- i64toi32_i32$2 = $9$hi;
- i64toi32_i32$3 = $21;
+ $8$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $5$hi;
+ i64toi32_i32$0 = $5;
+ i64toi32_i32$2 = $8$hi;
+ i64toi32_i32$3 = $19;
i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
- $10 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
- $10$hi = i64toi32_i32$2;
+ $9 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $9$hi = i64toi32_i32$2;
i64toi32_i32$2 = 0;
- $12 = $2_1;
- $12$hi = i64toi32_i32$2;
+ $11 = $2_1;
+ $11$hi = i64toi32_i32$2;
i64toi32_i32$2 = 0;
i64toi32_i32$1 = $3_1;
i64toi32_i32$0 = 0;
@@ -191,39 +156,22 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
- $22 = 0;
+ $20 = 0;
} else {
i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
- $22 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $20 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
}
- $15$hi = i64toi32_i32$0;
- i64toi32_i32$0 = $12$hi;
- i64toi32_i32$2 = $12;
- i64toi32_i32$1 = $15$hi;
- i64toi32_i32$3 = $22;
+ $14$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $11$hi;
+ i64toi32_i32$2 = $11;
+ i64toi32_i32$1 = $14$hi;
+ i64toi32_i32$3 = $20;
i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
- $16 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
- $16$hi = i64toi32_i32$1;
- i64toi32_i32$1 = $10$hi;
- i64toi32_i32$2 = $16$hi;
- i64toi32_i32$2 = $3($10 | 0, i64toi32_i32$1 | 0, $16 | 0, i64toi32_i32$2 | 0) | 0;
- i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
- $4 = i64toi32_i32$2;
- $4$hi = i64toi32_i32$1;
- i64toi32_i32$0 = i64toi32_i32$2;
- i64toi32_i32$2 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $23 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $23 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
- }
- setTempRet0($23 | 0);
- i64toi32_i32$2 = $4$hi;
- return $4 | 0;
+ $15 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $15$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $9$hi;
+ i64toi32_i32$2 = $15$hi;
+ $3($9 | 0, i64toi32_i32$1 | 0, $15 | 0, i64toi32_i32$2 | 0);
}
function legalfunc$wasm2js_scratch_store_i64($0_1, $0$hi) {
@@ -813,12 +761,11 @@ function asmFunc(global, env, buffer) {
}
var memasmFunc = new ArrayBuffer(65536);
-var retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0},memasmFunc);
+var retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
export var no_dce_i32_div_s = retasmFunc.no_dce_i32_div_s;
export var no_dce_i32_div_u = retasmFunc.no_dce_i32_div_u;
export var no_dce_i64_div_s = retasmFunc.no_dce_i64_div_s;
export var no_dce_i64_div_u = retasmFunc.no_dce_i64_div_u;
-import { setTempRet0 } from 'env';
import { getTempRet0 } from 'env';
@@ -858,19 +805,18 @@ function asmFunc(global, env, buffer) {
var abort = env.abort;
var nan = global.NaN;
var infinity = global.Infinity;
- var setTempRet0 = env.setTempRet0;
var getTempRet0 = env.getTempRet0;
var i64toi32_i32$HIGH_BITS = 0;
function $0(x, y) {
x = x | 0;
y = y | 0;
- return (x | 0) % (y | 0) | 0 | 0;
+ (x | 0) % (y | 0) | 0;
}
function $1(x, y) {
x = x | 0;
y = y | 0;
- return (x >>> 0) % (y >>> 0) | 0 | 0;
+ (x >>> 0) % (y >>> 0) | 0;
}
function $2(x, x$hi, y, y$hi) {
@@ -878,15 +824,7 @@ function asmFunc(global, env, buffer) {
x$hi = x$hi | 0;
y = y | 0;
y$hi = y$hi | 0;
- var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
- i64toi32_i32$0 = x$hi;
- i64toi32_i32$0 = y$hi;
- i64toi32_i32$0 = x$hi;
- i64toi32_i32$1 = y$hi;
- i64toi32_i32$1 = __wasm_i64_srem(x | 0, i64toi32_i32$0 | 0, y | 0, i64toi32_i32$1 | 0) | 0;
- i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
- return i64toi32_i32$1 | 0;
+ __wasm_i64_srem(x | 0, x$hi | 0, y | 0, y$hi | 0) | 0;
}
function $3(x, x$hi, y, y$hi) {
@@ -894,15 +832,7 @@ function asmFunc(global, env, buffer) {
x$hi = x$hi | 0;
y = y | 0;
y$hi = y$hi | 0;
- var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
- i64toi32_i32$0 = x$hi;
- i64toi32_i32$0 = y$hi;
- i64toi32_i32$0 = x$hi;
- i64toi32_i32$1 = y$hi;
- i64toi32_i32$1 = __wasm_i64_urem(x | 0, i64toi32_i32$0 | 0, y | 0, i64toi32_i32$1 | 0) | 0;
- i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
- return i64toi32_i32$1 | 0;
+ __wasm_i64_urem(x | 0, x$hi | 0, y | 0, y$hi | 0) | 0;
}
function legalstub$2($0_1, $1_1, $2_1, $3_1) {
@@ -910,10 +840,10 @@ function asmFunc(global, env, buffer) {
$1_1 = $1_1 | 0;
$2_1 = $2_1 | 0;
$3_1 = $3_1 | 0;
- var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, $21 = 0, $22 = 0, $23 = 0, $6 = 0, $6$hi = 0, $9$hi = 0, $10 = 0, $10$hi = 0, $12 = 0, $12$hi = 0, $15$hi = 0, $16 = 0, $16$hi = 0, $4 = 0, $4$hi = 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $19 = 0, $20 = 0, $5 = 0, $5$hi = 0, $8$hi = 0, $9 = 0, $9$hi = 0, $11 = 0, $11$hi = 0, $14$hi = 0, $15 = 0, $15$hi = 0;
i64toi32_i32$0 = 0;
- $6 = $0_1;
- $6$hi = i64toi32_i32$0;
+ $5 = $0_1;
+ $5$hi = i64toi32_i32$0;
i64toi32_i32$0 = 0;
i64toi32_i32$2 = $1_1;
i64toi32_i32$1 = 0;
@@ -921,22 +851,22 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $21 = 0;
+ $19 = 0;
} else {
i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0;
- $21 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $19 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
}
- $9$hi = i64toi32_i32$1;
- i64toi32_i32$1 = $6$hi;
- i64toi32_i32$0 = $6;
- i64toi32_i32$2 = $9$hi;
- i64toi32_i32$3 = $21;
+ $8$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $5$hi;
+ i64toi32_i32$0 = $5;
+ i64toi32_i32$2 = $8$hi;
+ i64toi32_i32$3 = $19;
i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
- $10 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
- $10$hi = i64toi32_i32$2;
+ $9 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $9$hi = i64toi32_i32$2;
i64toi32_i32$2 = 0;
- $12 = $2_1;
- $12$hi = i64toi32_i32$2;
+ $11 = $2_1;
+ $11$hi = i64toi32_i32$2;
i64toi32_i32$2 = 0;
i64toi32_i32$1 = $3_1;
i64toi32_i32$0 = 0;
@@ -944,39 +874,22 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
- $22 = 0;
+ $20 = 0;
} else {
i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
- $22 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $20 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
}
- $15$hi = i64toi32_i32$0;
- i64toi32_i32$0 = $12$hi;
- i64toi32_i32$2 = $12;
- i64toi32_i32$1 = $15$hi;
- i64toi32_i32$3 = $22;
+ $14$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $11$hi;
+ i64toi32_i32$2 = $11;
+ i64toi32_i32$1 = $14$hi;
+ i64toi32_i32$3 = $20;
i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
- $16 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
- $16$hi = i64toi32_i32$1;
- i64toi32_i32$1 = $10$hi;
- i64toi32_i32$2 = $16$hi;
- i64toi32_i32$2 = $2($10 | 0, i64toi32_i32$1 | 0, $16 | 0, i64toi32_i32$2 | 0) | 0;
- i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
- $4 = i64toi32_i32$2;
- $4$hi = i64toi32_i32$1;
- i64toi32_i32$0 = i64toi32_i32$2;
- i64toi32_i32$2 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $23 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $23 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
- }
- setTempRet0($23 | 0);
- i64toi32_i32$2 = $4$hi;
- return $4 | 0;
+ $15 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $15$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $9$hi;
+ i64toi32_i32$2 = $15$hi;
+ $2($9 | 0, i64toi32_i32$1 | 0, $15 | 0, i64toi32_i32$2 | 0);
}
function legalstub$3($0_1, $1_1, $2_1, $3_1) {
@@ -984,10 +897,10 @@ function asmFunc(global, env, buffer) {
$1_1 = $1_1 | 0;
$2_1 = $2_1 | 0;
$3_1 = $3_1 | 0;
- var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, $21 = 0, $22 = 0, $23 = 0, $6 = 0, $6$hi = 0, $9$hi = 0, $10 = 0, $10$hi = 0, $12 = 0, $12$hi = 0, $15$hi = 0, $16 = 0, $16$hi = 0, $4 = 0, $4$hi = 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $19 = 0, $20 = 0, $5 = 0, $5$hi = 0, $8$hi = 0, $9 = 0, $9$hi = 0, $11 = 0, $11$hi = 0, $14$hi = 0, $15 = 0, $15$hi = 0;
i64toi32_i32$0 = 0;
- $6 = $0_1;
- $6$hi = i64toi32_i32$0;
+ $5 = $0_1;
+ $5$hi = i64toi32_i32$0;
i64toi32_i32$0 = 0;
i64toi32_i32$2 = $1_1;
i64toi32_i32$1 = 0;
@@ -995,22 +908,22 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $21 = 0;
+ $19 = 0;
} else {
i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0;
- $21 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $19 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
}
- $9$hi = i64toi32_i32$1;
- i64toi32_i32$1 = $6$hi;
- i64toi32_i32$0 = $6;
- i64toi32_i32$2 = $9$hi;
- i64toi32_i32$3 = $21;
+ $8$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $5$hi;
+ i64toi32_i32$0 = $5;
+ i64toi32_i32$2 = $8$hi;
+ i64toi32_i32$3 = $19;
i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
- $10 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
- $10$hi = i64toi32_i32$2;
+ $9 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $9$hi = i64toi32_i32$2;
i64toi32_i32$2 = 0;
- $12 = $2_1;
- $12$hi = i64toi32_i32$2;
+ $11 = $2_1;
+ $11$hi = i64toi32_i32$2;
i64toi32_i32$2 = 0;
i64toi32_i32$1 = $3_1;
i64toi32_i32$0 = 0;
@@ -1018,39 +931,22 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
- $22 = 0;
+ $20 = 0;
} else {
i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
- $22 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $20 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
}
- $15$hi = i64toi32_i32$0;
- i64toi32_i32$0 = $12$hi;
- i64toi32_i32$2 = $12;
- i64toi32_i32$1 = $15$hi;
- i64toi32_i32$3 = $22;
+ $14$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $11$hi;
+ i64toi32_i32$2 = $11;
+ i64toi32_i32$1 = $14$hi;
+ i64toi32_i32$3 = $20;
i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
- $16 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
- $16$hi = i64toi32_i32$1;
- i64toi32_i32$1 = $10$hi;
- i64toi32_i32$2 = $16$hi;
- i64toi32_i32$2 = $3($10 | 0, i64toi32_i32$1 | 0, $16 | 0, i64toi32_i32$2 | 0) | 0;
- i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
- $4 = i64toi32_i32$2;
- $4$hi = i64toi32_i32$1;
- i64toi32_i32$0 = i64toi32_i32$2;
- i64toi32_i32$2 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $23 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $23 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
- }
- setTempRet0($23 | 0);
- i64toi32_i32$2 = $4$hi;
- return $4 | 0;
+ $15 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $15$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $9$hi;
+ i64toi32_i32$2 = $15$hi;
+ $3($9 | 0, i64toi32_i32$1 | 0, $15 | 0, i64toi32_i32$2 | 0);
}
function legalfunc$wasm2js_scratch_load_i64() {
@@ -1650,12 +1546,11 @@ function asmFunc(global, env, buffer) {
}
var memasmFunc = new ArrayBuffer(65536);
-var retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0,getTempRet0},memasmFunc);
+var retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },getTempRet0},memasmFunc);
export var no_dce_i32_rem_s = retasmFunc.no_dce_i32_rem_s;
export var no_dce_i32_rem_u = retasmFunc.no_dce_i32_rem_u;
export var no_dce_i64_rem_s = retasmFunc.no_dce_i64_rem_s;
export var no_dce_i64_rem_u = retasmFunc.no_dce_i64_rem_u;
-import { setTempRet0 } from 'env';
function asmFunc(global, env, buffer) {
var HEAP8 = new global.Int8Array(buffer);
@@ -1678,224 +1573,117 @@ function asmFunc(global, env, buffer) {
var abort = env.abort;
var nan = global.NaN;
var infinity = global.Infinity;
- var setTempRet0 = env.setTempRet0;
- var i64toi32_i32$HIGH_BITS = 0;
function $0(x) {
x = Math_fround(x);
- return ~~x | 0;
+ ~~x;
}
function $1(x) {
x = Math_fround(x);
- return ~~x >>> 0 | 0;
+ ~~x >>> 0;
}
function $2(x) {
x = +x;
- return ~~x | 0;
+ ~~x;
}
function $3(x) {
x = +x;
- return ~~x >>> 0 | 0;
+ ~~x >>> 0;
}
function $4(x) {
x = Math_fround(x);
- var i64toi32_i32$0 = Math_fround(0), $4_1 = 0, $5_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0;
+ var i64toi32_i32$0 = Math_fround(0), $2_1 = 0, $3_1 = 0;
i64toi32_i32$0 = x;
if (Math_fround(Math_abs(i64toi32_i32$0)) >= Math_fround(1.0)) {
if (i64toi32_i32$0 > Math_fround(0.0)) {
- $4_1 = ~~Math_fround(Math_min(Math_fround(Math_floor(Math_fround(i64toi32_i32$0 / Math_fround(4294967296.0)))), Math_fround(Math_fround(4294967296.0) - Math_fround(1.0)))) >>> 0
+ $2_1 = ~~Math_fround(Math_min(Math_fround(Math_floor(Math_fround(i64toi32_i32$0 / Math_fround(4294967296.0)))), Math_fround(Math_fround(4294967296.0) - Math_fround(1.0)))) >>> 0
} else {
- $4_1 = ~~Math_fround(Math_ceil(Math_fround(Math_fround(i64toi32_i32$0 - Math_fround(~~i64toi32_i32$0 >>> 0 >>> 0)) / Math_fround(4294967296.0)))) >>> 0
+ $2_1 = ~~Math_fround(Math_ceil(Math_fround(Math_fround(i64toi32_i32$0 - Math_fround(~~i64toi32_i32$0 >>> 0 >>> 0)) / Math_fround(4294967296.0)))) >>> 0
}
- $5_1 = $4_1;
+ $3_1 = $2_1;
} else {
- $5_1 = 0
+ $3_1 = 0
}
- i64toi32_i32$1 = $5_1;
- i64toi32_i32$2 = ~~i64toi32_i32$0 >>> 0;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$2 | 0;
+ ~~i64toi32_i32$0 >>> 0;
}
function $5(x) {
x = Math_fround(x);
- var i64toi32_i32$0 = Math_fround(0), $4_1 = 0, $5_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0;
+ var i64toi32_i32$0 = Math_fround(0), $2_1 = 0, $3_1 = 0;
i64toi32_i32$0 = x;
if (Math_fround(Math_abs(i64toi32_i32$0)) >= Math_fround(1.0)) {
if (i64toi32_i32$0 > Math_fround(0.0)) {
- $4_1 = ~~Math_fround(Math_min(Math_fround(Math_floor(Math_fround(i64toi32_i32$0 / Math_fround(4294967296.0)))), Math_fround(Math_fround(4294967296.0) - Math_fround(1.0)))) >>> 0
+ $2_1 = ~~Math_fround(Math_min(Math_fround(Math_floor(Math_fround(i64toi32_i32$0 / Math_fround(4294967296.0)))), Math_fround(Math_fround(4294967296.0) - Math_fround(1.0)))) >>> 0
} else {
- $4_1 = ~~Math_fround(Math_ceil(Math_fround(Math_fround(i64toi32_i32$0 - Math_fround(~~i64toi32_i32$0 >>> 0 >>> 0)) / Math_fround(4294967296.0)))) >>> 0
+ $2_1 = ~~Math_fround(Math_ceil(Math_fround(Math_fround(i64toi32_i32$0 - Math_fround(~~i64toi32_i32$0 >>> 0 >>> 0)) / Math_fround(4294967296.0)))) >>> 0
}
- $5_1 = $4_1;
+ $3_1 = $2_1;
} else {
- $5_1 = 0
+ $3_1 = 0
}
- i64toi32_i32$1 = $5_1;
- i64toi32_i32$2 = ~~i64toi32_i32$0 >>> 0;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$2 | 0;
+ ~~i64toi32_i32$0 >>> 0;
}
function $6(x) {
x = +x;
- var i64toi32_i32$0 = 0.0, $4_1 = 0, $5_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0;
+ var i64toi32_i32$0 = 0.0, $2_1 = 0, $3_1 = 0;
i64toi32_i32$0 = x;
if (Math_abs(i64toi32_i32$0) >= 1.0) {
if (i64toi32_i32$0 > 0.0) {
- $4_1 = ~~Math_min(Math_floor(i64toi32_i32$0 / 4294967296.0), 4294967296.0 - 1.0) >>> 0
+ $2_1 = ~~Math_min(Math_floor(i64toi32_i32$0 / 4294967296.0), 4294967296.0 - 1.0) >>> 0
} else {
- $4_1 = ~~Math_ceil((i64toi32_i32$0 - +(~~i64toi32_i32$0 >>> 0 >>> 0)) / 4294967296.0) >>> 0
+ $2_1 = ~~Math_ceil((i64toi32_i32$0 - +(~~i64toi32_i32$0 >>> 0 >>> 0)) / 4294967296.0) >>> 0
}
- $5_1 = $4_1;
+ $3_1 = $2_1;
} else {
- $5_1 = 0
+ $3_1 = 0
}
- i64toi32_i32$1 = $5_1;
- i64toi32_i32$2 = ~~i64toi32_i32$0 >>> 0;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$2 | 0;
+ ~~i64toi32_i32$0 >>> 0;
}
function $7(x) {
x = +x;
- var i64toi32_i32$0 = 0.0, $4_1 = 0, $5_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0;
+ var i64toi32_i32$0 = 0.0, $2_1 = 0, $3_1 = 0;
i64toi32_i32$0 = x;
if (Math_abs(i64toi32_i32$0) >= 1.0) {
if (i64toi32_i32$0 > 0.0) {
- $4_1 = ~~Math_min(Math_floor(i64toi32_i32$0 / 4294967296.0), 4294967296.0 - 1.0) >>> 0
+ $2_1 = ~~Math_min(Math_floor(i64toi32_i32$0 / 4294967296.0), 4294967296.0 - 1.0) >>> 0
} else {
- $4_1 = ~~Math_ceil((i64toi32_i32$0 - +(~~i64toi32_i32$0 >>> 0 >>> 0)) / 4294967296.0) >>> 0
+ $2_1 = ~~Math_ceil((i64toi32_i32$0 - +(~~i64toi32_i32$0 >>> 0 >>> 0)) / 4294967296.0) >>> 0
}
- $5_1 = $4_1;
- } else {
- $5_1 = 0
- }
- i64toi32_i32$1 = $5_1;
- i64toi32_i32$2 = ~~i64toi32_i32$0 >>> 0;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$2 | 0;
- }
-
- function legalstub$4($0_1) {
- $0_1 = Math_fround($0_1);
- var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
- i64toi32_i32$0 = $4(Math_fround($0_1)) | 0;
- i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
- $1_1 = i64toi32_i32$0;
- $1$hi = i64toi32_i32$1;
- i64toi32_i32$2 = i64toi32_i32$0;
- i64toi32_i32$0 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$0 = 0;
- $8 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $8 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
- }
- setTempRet0($8 | 0);
- i64toi32_i32$0 = $1$hi;
- return $1_1 | 0;
- }
-
- function legalstub$5($0_1) {
- $0_1 = Math_fround($0_1);
- var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
- i64toi32_i32$0 = $5(Math_fround($0_1)) | 0;
- i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
- $1_1 = i64toi32_i32$0;
- $1$hi = i64toi32_i32$1;
- i64toi32_i32$2 = i64toi32_i32$0;
- i64toi32_i32$0 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$0 = 0;
- $8 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $3_1 = $2_1;
} else {
- i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $8 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ $3_1 = 0
}
- setTempRet0($8 | 0);
- i64toi32_i32$0 = $1$hi;
- return $1_1 | 0;
- }
-
- function legalstub$6($0_1) {
- $0_1 = +$0_1;
- var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
- i64toi32_i32$0 = $6(+$0_1) | 0;
- i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
- $1_1 = i64toi32_i32$0;
- $1$hi = i64toi32_i32$1;
- i64toi32_i32$2 = i64toi32_i32$0;
- i64toi32_i32$0 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$0 = 0;
- $8 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $8 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
- }
- setTempRet0($8 | 0);
- i64toi32_i32$0 = $1$hi;
- return $1_1 | 0;
- }
-
- function legalstub$7($0_1) {
- $0_1 = +$0_1;
- var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
- i64toi32_i32$0 = $7(+$0_1) | 0;
- i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
- $1_1 = i64toi32_i32$0;
- $1$hi = i64toi32_i32$1;
- i64toi32_i32$2 = i64toi32_i32$0;
- i64toi32_i32$0 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$0 = 0;
- $8 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $8 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
- }
- setTempRet0($8 | 0);
- i64toi32_i32$0 = $1$hi;
- return $1_1 | 0;
+ ~~i64toi32_i32$0 >>> 0;
}
var FUNCTION_TABLE = [];
return {
- "no_dce_i32_trunc_s_f32": $0,
- "no_dce_i32_trunc_u_f32": $1,
- "no_dce_i32_trunc_s_f64": $2,
- "no_dce_i32_trunc_u_f64": $3,
- "no_dce_i64_trunc_s_f32": legalstub$4,
- "no_dce_i64_trunc_u_f32": legalstub$5,
- "no_dce_i64_trunc_s_f64": legalstub$6,
- "no_dce_i64_trunc_u_f64": legalstub$7
+ "no_dce_i32_trunc_f32_s": $0,
+ "no_dce_i32_trunc_f32_u": $1,
+ "no_dce_i32_trunc_f64_s": $2,
+ "no_dce_i32_trunc_f64_u": $3,
+ "no_dce_i64_trunc_f32_s": $4,
+ "no_dce_i64_trunc_f32_u": $5,
+ "no_dce_i64_trunc_f64_s": $6,
+ "no_dce_i64_trunc_f64_u": $7
};
}
var memasmFunc = new ArrayBuffer(65536);
-var retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0},memasmFunc);
-export var no_dce_i32_trunc_s_f32 = retasmFunc.no_dce_i32_trunc_s_f32;
-export var no_dce_i32_trunc_u_f32 = retasmFunc.no_dce_i32_trunc_u_f32;
-export var no_dce_i32_trunc_s_f64 = retasmFunc.no_dce_i32_trunc_s_f64;
-export var no_dce_i32_trunc_u_f64 = retasmFunc.no_dce_i32_trunc_u_f64;
-export var no_dce_i64_trunc_s_f32 = retasmFunc.no_dce_i64_trunc_s_f32;
-export var no_dce_i64_trunc_u_f32 = retasmFunc.no_dce_i64_trunc_u_f32;
-export var no_dce_i64_trunc_s_f64 = retasmFunc.no_dce_i64_trunc_s_f64;
-export var no_dce_i64_trunc_u_f64 = retasmFunc.no_dce_i64_trunc_u_f64;
-import { setTempRet0 } from 'env';
+var retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export var no_dce_i32_trunc_f32_s = retasmFunc.no_dce_i32_trunc_f32_s;
+export var no_dce_i32_trunc_f32_u = retasmFunc.no_dce_i32_trunc_f32_u;
+export var no_dce_i32_trunc_f64_s = retasmFunc.no_dce_i32_trunc_f64_s;
+export var no_dce_i32_trunc_f64_u = retasmFunc.no_dce_i32_trunc_f64_u;
+export var no_dce_i64_trunc_f32_s = retasmFunc.no_dce_i64_trunc_f32_s;
+export var no_dce_i64_trunc_f32_u = retasmFunc.no_dce_i64_trunc_f32_u;
+export var no_dce_i64_trunc_f64_s = retasmFunc.no_dce_i64_trunc_f64_s;
+export var no_dce_i64_trunc_f64_u = retasmFunc.no_dce_i64_trunc_f64_u;
function asmFunc(global, env, buffer) {
var HEAP8 = new global.Int8Array(buffer);
@@ -1918,54 +1706,80 @@ function asmFunc(global, env, buffer) {
var abort = env.abort;
var nan = global.NaN;
var infinity = global.Infinity;
- var setTempRet0 = env.setTempRet0;
- var i64toi32_i32$HIGH_BITS = 0;
function $0(i) {
i = i | 0;
- return HEAP32[i >> 2] | 0 | 0;
+ HEAP32[i >> 2] | 0;
}
function $1(i) {
i = i | 0;
- var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
- i64toi32_i32$2 = i;
- i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0;
- i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$0 | 0;
+ HEAP16[i >> 1] | 0;
}
function $2(i) {
i = i | 0;
- return Math_fround(Math_fround(HEAPF32[i >> 2]));
+ HEAPU16[i >> 1] | 0;
}
function $3(i) {
i = i | 0;
- return +(+HEAPF64[i >> 3]);
+ HEAP8[i >> 0] | 0;
}
- function legalstub$1($0_1) {
- $0_1 = $0_1 | 0;
- var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$2 = 0;
- i64toi32_i32$0 = $1($0_1 | 0) | 0;
- i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
- $1_1 = i64toi32_i32$0;
- $1$hi = i64toi32_i32$1;
- i64toi32_i32$2 = i64toi32_i32$0;
- i64toi32_i32$0 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$0 = 0;
- $8 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $8 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
- }
- setTempRet0($8 | 0);
- i64toi32_i32$0 = $1$hi;
- return $1_1 | 0;
+ function $4(i) {
+ i = i | 0;
+ HEAPU8[i >> 0] | 0;
+ }
+
+ function $5(i) {
+ i = i | 0;
+ var i64toi32_i32$2 = 0;
+ i64toi32_i32$2 = i;
+ HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0;
+ HEAP32[i64toi32_i32$2 >> 2] | 0;
+ }
+
+ function $6(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0;
+ i64toi32_i32$0 = HEAP32[i >> 2] | 0;
+ }
+
+ function $7(i) {
+ i = i | 0;
+ HEAP32[i >> 2] | 0;
+ }
+
+ function $8(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0;
+ i64toi32_i32$0 = HEAP16[i >> 1] | 0;
+ }
+
+ function $9(i) {
+ i = i | 0;
+ HEAPU16[i >> 1] | 0;
+ }
+
+ function $10(i) {
+ i = i | 0;
+ var i64toi32_i32$0 = 0;
+ i64toi32_i32$0 = HEAP8[i >> 0] | 0;
+ }
+
+ function $11(i) {
+ i = i | 0;
+ HEAPU8[i >> 0] | 0;
+ }
+
+ function $12(i) {
+ i = i | 0;
+ Math_fround(HEAPF32[i >> 2]);
+ }
+
+ function $13(i) {
+ i = i | 0;
+ +HEAPF64[i >> 3];
}
var FUNCTION_TABLE = [];
@@ -1997,15 +1811,35 @@ function asmFunc(global, env, buffer) {
return {
"no_dce_i32_load": $0,
- "no_dce_i64_load": legalstub$1,
- "no_dce_f32_load": $2,
- "no_dce_f64_load": $3
+ "no_dce_i32_load16_s": $1,
+ "no_dce_i32_load16_u": $2,
+ "no_dce_i32_load8_s": $3,
+ "no_dce_i32_load8_u": $4,
+ "no_dce_i64_load": $5,
+ "no_dce_i64_load32_s": $6,
+ "no_dce_i64_load32_u": $7,
+ "no_dce_i64_load16_s": $8,
+ "no_dce_i64_load16_u": $9,
+ "no_dce_i64_load8_s": $10,
+ "no_dce_i64_load8_u": $11,
+ "no_dce_f32_load": $12,
+ "no_dce_f64_load": $13
};
}
var memasmFunc = new ArrayBuffer(65536);
-var retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0},memasmFunc);
+var retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
export var no_dce_i32_load = retasmFunc.no_dce_i32_load;
+export var no_dce_i32_load16_s = retasmFunc.no_dce_i32_load16_s;
+export var no_dce_i32_load16_u = retasmFunc.no_dce_i32_load16_u;
+export var no_dce_i32_load8_s = retasmFunc.no_dce_i32_load8_s;
+export var no_dce_i32_load8_u = retasmFunc.no_dce_i32_load8_u;
export var no_dce_i64_load = retasmFunc.no_dce_i64_load;
+export var no_dce_i64_load32_s = retasmFunc.no_dce_i64_load32_s;
+export var no_dce_i64_load32_u = retasmFunc.no_dce_i64_load32_u;
+export var no_dce_i64_load16_s = retasmFunc.no_dce_i64_load16_s;
+export var no_dce_i64_load16_u = retasmFunc.no_dce_i64_load16_u;
+export var no_dce_i64_load8_s = retasmFunc.no_dce_i64_load8_s;
+export var no_dce_i64_load8_u = retasmFunc.no_dce_i64_load8_u;
export var no_dce_f32_load = retasmFunc.no_dce_f32_load;
export var no_dce_f64_load = retasmFunc.no_dce_f64_load;