diff options
Diffstat (limited to 'test/wasm2js')
-rw-r--r-- | test/wasm2js/address.2asm.js | 1851 | ||||
-rw-r--r-- | test/wasm2js/br.2asm.js | 156 | ||||
-rw-r--r-- | test/wasm2js/br_table.2asm.js | 182 | ||||
-rw-r--r-- | test/wasm2js/comments.2asm.js | 30 | ||||
-rw-r--r-- | test/wasm2js/f32.2asm.js | 46 | ||||
-rw-r--r-- | test/wasm2js/f64.2asm.js | 70 | ||||
-rw-r--r-- | test/wasm2js/fac.2asm.js | 122 | ||||
-rw-r--r-- | test/wasm2js/forward.2asm.js | 16 | ||||
-rw-r--r-- | test/wasm2js/func_ptrs.2asm.js | 6 | ||||
-rw-r--r-- | test/wasm2js/int_exprs.2asm.js | 2223 | ||||
-rw-r--r-- | test/wasm2js/labels.2asm.js | 63 | ||||
-rw-r--r-- | test/wasm2js/traps.2asm.js | 648 |
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; |