summaryrefslogtreecommitdiff
path: root/test/wasm2js
diff options
context:
space:
mode:
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;