diff options
author | Alon Zakai <alonzakai@gmail.com> | 2019-04-22 09:28:23 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-22 09:28:23 -0700 |
commit | b99d668ead5c6a6a4891ec58b5a53e80ea9f5705 (patch) | |
tree | cd6ae2d7dfa5164a1b71f5445f5882a48c053a90 /test/wasm2js | |
parent | db14d0477f2715e3071687f42b77d8712477d83e (diff) | |
download | binaryen-b99d668ead5c6a6a4891ec58b5a53e80ea9f5705.tar.gz binaryen-b99d668ead5c6a6a4891ec58b5a53e80ea9f5705.tar.bz2 binaryen-b99d668ead5c6a6a4891ec58b5a53e80ea9f5705.zip |
wasm2js: use scratch memory properly (#2033)
This replaces all uses of __tempMemory__, the old scratch space location, with calls to function imports for scratch memory access. This lets us then implement those in a way that does not use the same heap as main memory. This avoids possible bugs with scratch memory overwriting something, or just in general that it has observable side effects, which can confuse fuzzing etc.
The intrinsics are currently implemented in the glue. We could perhaps emit them inline instead (but that might limit asm.js optimizations, so I wanted to keep our options open for now - easy to change later).
Also fixes some places where we used 0 as the scratch space address.
Diffstat (limited to 'test/wasm2js')
-rw-r--r-- | test/wasm2js/conversions-modified.2asm.js | 58 | ||||
-rw-r--r-- | test/wasm2js/endianness.2asm.js | 58 | ||||
-rw-r--r-- | test/wasm2js/f32.2asm.js | 24 | ||||
-rw-r--r-- | test/wasm2js/f64.2asm.js | 52 | ||||
-rw-r--r-- | test/wasm2js/float_literals-modified.2asm.js | 380 | ||||
-rw-r--r-- | test/wasm2js/float_misc.2asm.js | 62 | ||||
-rw-r--r-- | test/wasm2js/i64.2asm.js | 272 | ||||
-rw-r--r-- | test/wasm2js/int_exprs.2asm.js | 2656 | ||||
-rw-r--r-- | test/wasm2js/left-to-right.2asm.js | 324 | ||||
-rw-r--r-- | test/wasm2js/reinterpret.2asm.js | 52 | ||||
-rw-r--r-- | test/wasm2js/traps.2asm.js | 496 | ||||
-rw-r--r-- | test/wasm2js/unaligned.2asm.js | 58 |
12 files changed, 2388 insertions, 2104 deletions
diff --git a/test/wasm2js/conversions-modified.2asm.js b/test/wasm2js/conversions-modified.2asm.js index 5b5605d5a..3bd7cb097 100644 --- a/test/wasm2js/conversions-modified.2asm.js +++ b/test/wasm2js/conversions-modified.2asm.js @@ -1,6 +1,35 @@ -import { __tempMemory__ } from 'env'; 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 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 wasm2js_scratch_load_f32() { + return f32ScratchView[0]; + } + + function wasm2js_scratch_store_f32(value) { + f32ScratchView[0] = value; + } + function asmFunc(global, env, buffer) { "almost asm"; var HEAP8 = new global.Int8Array(buffer); @@ -24,7 +53,6 @@ function asmFunc(global, env, buffer) { var nan = global.NaN; var infinity = global.Infinity; var setTempRet0 = env.setTempRet0; - var __tempMemory__ = env.__tempMemory__ | 0; var i64toi32_i32$HIGH_BITS = 0; function $0(x) { x = x | 0; @@ -221,36 +249,30 @@ function asmFunc(global, env, buffer) { function $21(x) { x = x | 0; - return Math_fround((HEAP32[0] = x, HEAPF32[0])); + return Math_fround((wasm2js_scratch_store_i32(0, x), wasm2js_scratch_load_f32())); } function $22(x, x$hi) { x = x | 0; x$hi = x$hi | 0; - var i64toi32_i32$0 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + var i64toi32_i32$0 = 0; i64toi32_i32$0 = x$hi; - wasm2js_i32$0 = __tempMemory__; - wasm2js_i32$1 = x; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = __tempMemory__; - wasm2js_i32$1 = i64toi32_i32$0; - HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; - return +(+HEAPF64[__tempMemory__ >> 3]); + wasm2js_scratch_store_i32(0 | 0, x | 0); + wasm2js_scratch_store_i32(1 | 0, i64toi32_i32$0 | 0); + return +(+wasm2js_scratch_load_f64()); } function $23(x) { x = Math_fround(x); - return (HEAPF32[0] = x, HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(x), wasm2js_scratch_load_i32(0)) | 0; } function $24(x) { x = +x; - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = x; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+x); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } diff --git a/test/wasm2js/endianness.2asm.js b/test/wasm2js/endianness.2asm.js index d25be1329..9696bc3dd 100644 --- a/test/wasm2js/endianness.2asm.js +++ b/test/wasm2js/endianness.2asm.js @@ -1,6 +1,35 @@ -import { __tempMemory__ } from 'env'; 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 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 wasm2js_scratch_store_f32(value) { + f32ScratchView[0] = value; + } + + function wasm2js_scratch_load_f32() { + return f32ScratchView[0]; + } + function asmFunc(global, env, buffer) { "almost asm"; var HEAP8 = new global.Int8Array(buffer); @@ -24,7 +53,6 @@ function asmFunc(global, env, buffer) { var nan = global.NaN; var infinity = global.Infinity; var setTempRet0 = env.setTempRet0; - var __tempMemory__ = env.__tempMemory__ | 0; var i64toi32_i32$HIGH_BITS = 0; function i16_store_little(address, value) { address = address | 0; @@ -195,18 +223,16 @@ function asmFunc(global, env, buffer) { function $14(value) { value = Math_fround(value); - i32_store_little(0 | 0, (HEAPF32[0] = value, HEAP32[0] | 0) | 0); + i32_store_little(0 | 0, (wasm2js_scratch_store_f32(value), wasm2js_scratch_load_i32(0)) | 0); return Math_fround(Math_fround(HEAPF32[0 >> 2])); } function $15(value) { value = +value; - var i64toi32_i32$0 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = value; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64_store_little(0 | 0, HEAP32[__tempMemory__ >> 2] | 0 | 0, i64toi32_i32$0 | 0); + var i64toi32_i32$0 = 0; + wasm2js_scratch_store_f64(+value); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64_store_little(0 | 0, wasm2js_scratch_load_i32(0 | 0) | 0 | 0, i64toi32_i32$0 | 0); return +(+HEAPF64[0 >> 3]); } @@ -280,24 +306,20 @@ function asmFunc(global, env, buffer) { wasm2js_i32$0 = 0; wasm2js_f32$0 = value; HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; - return Math_fround((HEAP32[0] = i32_load_little(0 | 0) | 0, HEAPF32[0])); + return Math_fround((wasm2js_scratch_store_i32(0, i32_load_little(0 | 0) | 0), wasm2js_scratch_load_f32())); } function $22(value) { value = +value; - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0, wasm2js_i32$1 = 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; wasm2js_i32$0 = 0; wasm2js_f64$0 = value; HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; i64toi32_i32$0 = i64_load_little(0 | 0) | 0; i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; - wasm2js_i32$0 = __tempMemory__; - wasm2js_i32$1 = i64toi32_i32$0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = __tempMemory__; - wasm2js_i32$1 = i64toi32_i32$1; - HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; - return +(+HEAPF64[__tempMemory__ >> 3]); + wasm2js_scratch_store_i32(0 | 0, i64toi32_i32$0 | 0); + wasm2js_scratch_store_i32(1 | 0, i64toi32_i32$1 | 0); + return +(+wasm2js_scratch_load_f64()); } function legalstub$9($0, $1) { diff --git a/test/wasm2js/f32.2asm.js b/test/wasm2js/f32.2asm.js index 96d10e660..cd53439c3 100644 --- a/test/wasm2js/f32.2asm.js +++ b/test/wasm2js/f32.2asm.js @@ -1,4 +1,26 @@ + + 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) { "almost asm"; var HEAP8 = new global.Int8Array(buffer); @@ -95,7 +117,7 @@ function asmFunc(global, env, buffer) { function $13(x, y) { x = Math_fround(x); y = Math_fround(y); - return Math_fround((HEAP32[0] = (HEAPF32[0] = x, HEAP32[0] | 0) & 2147483647 | 0 | ((HEAPF32[0] = y, HEAP32[0] | 0) & 2147483648 | 0) | 0, HEAPF32[0])); + 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 legalstub$0($0_1, $1_1) { diff --git a/test/wasm2js/f64.2asm.js b/test/wasm2js/f64.2asm.js index 6eeeafaf5..c390bee9f 100644 --- a/test/wasm2js/f64.2asm.js +++ b/test/wasm2js/f64.2asm.js @@ -1,5 +1,26 @@ -import { __tempMemory__ } from 'env'; + + 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) { "almost asm"; var HEAP8 = new global.Int8Array(buffer); @@ -22,7 +43,6 @@ function asmFunc(global, env, buffer) { var abort = env.abort; var nan = global.NaN; var infinity = global.Infinity; - var __tempMemory__ = env.__tempMemory__ | 0; function $0(x, y) { x = +x; y = +y; @@ -97,22 +117,18 @@ function asmFunc(global, env, buffer) { 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_i32$0 = 0, wasm2js_f64$0 = 0.0, wasm2js_i32$1 = 0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = x; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$2 = HEAP32[__tempMemory__ >> 2] | 0; + 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 = 4294967295; 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_i32$0 = __tempMemory__; - wasm2js_f64$0 = y; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$1 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$0 = HEAP32[__tempMemory__ >> 2] | 0; + 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; @@ -123,13 +139,9 @@ function asmFunc(global, env, buffer) { i64toi32_i32$0 = $7$hi; i64toi32_i32$3 = $7_1; i64toi32_i32$0 = i64toi32_i32$2 | i64toi32_i32$0 | 0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_i32$1 = i64toi32_i32$1 | i64toi32_i32$3 | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = __tempMemory__; - wasm2js_i32$1 = i64toi32_i32$0; - HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; - return +(+HEAPF64[__tempMemory__ >> 3]); + 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) { diff --git a/test/wasm2js/float_literals-modified.2asm.js b/test/wasm2js/float_literals-modified.2asm.js index 9dc248093..9dd25e837 100644 --- a/test/wasm2js/float_literals-modified.2asm.js +++ b/test/wasm2js/float_literals-modified.2asm.js @@ -1,6 +1,23 @@ -import { __tempMemory__ } from 'env'; 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 wasm2js_scratch_load_i32(index) { + return i32ScratchView[index]; + } + + function wasm2js_scratch_store_f64(value) { + f64ScratchView[0] = value; + } + + function wasm2js_scratch_store_f32(value) { + f32ScratchView[0] = value; + } + function asmFunc(global, env, buffer) { "almost asm"; var HEAP8 = new global.Int8Array(buffer); @@ -24,454 +41,393 @@ function asmFunc(global, env, buffer) { var nan = global.NaN; var infinity = global.Infinity; var setTempRet0 = env.setTempRet0; - var __tempMemory__ = env.__tempMemory__ | 0; var i64toi32_i32$HIGH_BITS = 0; function $0() { - return (HEAPF32[0] = Math_fround(nan), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(nan)), wasm2js_scratch_load_i32(0)) | 0; } function $1() { - return (HEAPF32[0] = Math_fround(nan), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(nan)), wasm2js_scratch_load_i32(0)) | 0; } function $2() { - return (HEAPF32[0] = Math_fround(-nan), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(-nan)), wasm2js_scratch_load_i32(0)) | 0; } function $3() { - return (HEAPF32[0] = Math_fround(nan), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(nan)), wasm2js_scratch_load_i32(0)) | 0; } function $4() { - return (HEAPF32[0] = Math_fround(nan), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(nan)), wasm2js_scratch_load_i32(0)) | 0; } function $5() { - return (HEAPF32[0] = Math_fround(-nan), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(-nan)), wasm2js_scratch_load_i32(0)) | 0; } function $6() { - return (HEAPF32[0] = Math_fround(nan), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(nan)), wasm2js_scratch_load_i32(0)) | 0; } function $7() { - return (HEAPF32[0] = Math_fround(nan), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(nan)), wasm2js_scratch_load_i32(0)) | 0; } function $8() { - return (HEAPF32[0] = Math_fround(-nan), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(-nan)), wasm2js_scratch_load_i32(0)) | 0; } function $9() { - return (HEAPF32[0] = Math_fround(infinity), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(infinity)), wasm2js_scratch_load_i32(0)) | 0; } function $10() { - return (HEAPF32[0] = Math_fround(infinity), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(infinity)), wasm2js_scratch_load_i32(0)) | 0; } function $11() { - return (HEAPF32[0] = Math_fround(-infinity), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(-infinity)), wasm2js_scratch_load_i32(0)) | 0; } function $12() { - return (HEAPF32[0] = Math_fround(0.0), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(0.0)), wasm2js_scratch_load_i32(0)) | 0; } function $13() { - return (HEAPF32[0] = Math_fround(0.0), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(0.0)), wasm2js_scratch_load_i32(0)) | 0; } function $14() { - return (HEAPF32[0] = Math_fround(-0.0), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(-0.0)), wasm2js_scratch_load_i32(0)) | 0; } function $15() { - return (HEAPF32[0] = Math_fround(6.2831854820251465), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(6.2831854820251465)), wasm2js_scratch_load_i32(0)) | 0; } function $16() { - return (HEAPF32[0] = Math_fround(1.401298464324817e-45), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(1.401298464324817e-45)), wasm2js_scratch_load_i32(0)) | 0; } function $17() { - return (HEAPF32[0] = Math_fround(1.1754943508222875e-38), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(1.1754943508222875e-38)), wasm2js_scratch_load_i32(0)) | 0; } function $18() { - return (HEAPF32[0] = Math_fround(3402823466385288598117041.0e14), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(3402823466385288598117041.0e14)), wasm2js_scratch_load_i32(0)) | 0; } function $19() { - return (HEAPF32[0] = Math_fround(1.1754942106924411e-38), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(1.1754942106924411e-38)), wasm2js_scratch_load_i32(0)) | 0; } function $20() { - return (HEAPF32[0] = Math_fround(1024.0), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(1024.0)), wasm2js_scratch_load_i32(0)) | 0; } function $21() { - return (HEAPF32[0] = Math_fround(0.0), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(0.0)), wasm2js_scratch_load_i32(0)) | 0; } function $22() { - return (HEAPF32[0] = Math_fround(0.0), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(0.0)), wasm2js_scratch_load_i32(0)) | 0; } function $23() { - return (HEAPF32[0] = Math_fround(-0.0), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(-0.0)), wasm2js_scratch_load_i32(0)) | 0; } function $24() { - return (HEAPF32[0] = Math_fround(6.2831854820251465), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(6.2831854820251465)), wasm2js_scratch_load_i32(0)) | 0; } function $25() { - return (HEAPF32[0] = Math_fround(1.401298464324817e-45), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(1.401298464324817e-45)), wasm2js_scratch_load_i32(0)) | 0; } function $26() { - return (HEAPF32[0] = Math_fround(1.1754943508222875e-38), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(1.1754943508222875e-38)), wasm2js_scratch_load_i32(0)) | 0; } function $27() { - return (HEAPF32[0] = Math_fround(1.1754942106924411e-38), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(1.1754942106924411e-38)), wasm2js_scratch_load_i32(0)) | 0; } function $28() { - return (HEAPF32[0] = Math_fround(3402823466385288598117041.0e14), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(3402823466385288598117041.0e14)), wasm2js_scratch_load_i32(0)) | 0; } function $29() { - return (HEAPF32[0] = Math_fround(1.0e10), HEAP32[0] | 0) | 0; + return (wasm2js_scratch_store_f32(Math_fround(1.0e10)), wasm2js_scratch_load_i32(0)) | 0; } function $30() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = nan; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(nan)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $31() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = nan; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(nan)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $32() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = -nan; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(-nan)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $33() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = nan; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(nan)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $34() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = nan; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(nan)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $35() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = -nan; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(-nan)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $36() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = nan; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(nan)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $37() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = nan; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(nan)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $38() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = -nan; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(-nan)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $39() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = infinity; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(infinity)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $40() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = infinity; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(infinity)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $41() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = -infinity; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(-infinity)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $42() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = 0.0; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(0.0)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $43() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = 0.0; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(0.0)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $44() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = -0.0; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(-0.0)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $45() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = 6.283185307179586; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(6.283185307179586)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $46() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = 5.0e-324; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(5.0e-324)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $47() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = 2.2250738585072014e-308; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(2.2250738585072014e-308)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $48() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = 2.225073858507201e-308; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(2.225073858507201e-308)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $49() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = 1797693134862315708145274.0e284; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(1797693134862315708145274.0e284)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $50() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = 1267650600228229401496703.0e6; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(1267650600228229401496703.0e6)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $51() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = 0.0; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(0.0)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $52() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = 0.0; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(0.0)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $53() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = -0.0; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(-0.0)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $54() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = 6.283185307179586; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(6.283185307179586)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $55() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = 5.0e-324; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(5.0e-324)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $56() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = 2.2250738585072014e-308; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(2.2250738585072014e-308)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $57() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = 2.225073858507201e-308; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(2.225073858507201e-308)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $58() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = 1797693134862315708145274.0e284; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(1797693134862315708145274.0e284)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } function $59() { - var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = 1.e+100; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+(1.e+100)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } diff --git a/test/wasm2js/float_misc.2asm.js b/test/wasm2js/float_misc.2asm.js index ad9c34c39..70336da90 100644 --- a/test/wasm2js/float_misc.2asm.js +++ b/test/wasm2js/float_misc.2asm.js @@ -1,5 +1,34 @@ -import { __tempMemory__ } from 'env'; + + 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 wasm2js_scratch_load_f32() { + return f32ScratchView[0]; + } + + function wasm2js_scratch_store_f32(value) { + f32ScratchView[0] = value; + } + function asmFunc(global, env, buffer) { "almost asm"; var HEAP8 = new global.Int8Array(buffer); @@ -22,7 +51,6 @@ function asmFunc(global, env, buffer) { var abort = env.abort; var nan = global.NaN; var infinity = global.Infinity; - var __tempMemory__ = env.__tempMemory__ | 0; function $0(x, y) { x = Math_fround(x); y = Math_fround(y); @@ -65,7 +93,7 @@ function asmFunc(global, env, buffer) { function $7(x, y) { x = Math_fround(x); y = Math_fround(y); - return Math_fround((HEAP32[0] = (HEAPF32[0] = x, HEAP32[0] | 0) & 2147483647 | 0 | ((HEAPF32[0] = y, HEAP32[0] | 0) & 2147483648 | 0) | 0, HEAPF32[0])); + 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 $8(x) { @@ -142,22 +170,18 @@ function asmFunc(global, env, buffer) { function $21(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_i32$0 = 0, wasm2js_f64$0 = 0.0, wasm2js_i32$1 = 0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = x; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$2 = HEAP32[__tempMemory__ >> 2] | 0; + 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 = 4294967295; 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_i32$0 = __tempMemory__; - wasm2js_f64$0 = y; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$1 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$0 = HEAP32[__tempMemory__ >> 2] | 0; + 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; @@ -168,13 +192,9 @@ function asmFunc(global, env, buffer) { i64toi32_i32$0 = $7$hi; i64toi32_i32$3 = $7_1; i64toi32_i32$0 = i64toi32_i32$2 | i64toi32_i32$0 | 0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_i32$1 = i64toi32_i32$1 | i64toi32_i32$3 | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = __tempMemory__; - wasm2js_i32$1 = i64toi32_i32$0; - HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; - return +(+HEAPF64[__tempMemory__ >> 3]); + 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 $22(x) { diff --git a/test/wasm2js/i64.2asm.js b/test/wasm2js/i64.2asm.js index bafb0da5b..73a67a79a 100644 --- a/test/wasm2js/i64.2asm.js +++ b/test/wasm2js/i64.2asm.js @@ -1,6 +1,22 @@ -import { __tempMemory__ } from 'env'; 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) { "almost asm"; var HEAP8 = new global.Int8Array(buffer); @@ -24,7 +40,7 @@ function asmFunc(global, env, buffer) { var nan = global.NaN; var infinity = global.Infinity; var setTempRet0 = env.setTempRet0; - var __tempMemory__ = env.__tempMemory__ | 0; + var getTempRet0 = env.getTempRet0; var i64toi32_i32$HIGH_BITS = 0; function $0(x, x$hi, y, y$hi) { x = x | 0; @@ -2697,6 +2713,62 @@ function asmFunc(global, env, buffer) { return $28($9_1 | 0, i64toi32_i32$1 | 0, $15_1 | 0, i64toi32_i32$2 | 0) | 0 | 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_1 = 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_1 = 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_1 = 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_1; + 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_1 = 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_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } + } else { + { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $8_1 = (((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_1 | 0); + } + function _ZN17compiler_builtins3int3mul3Mul3mul17h070e9a1c69faec5bE(var$0, var$0$hi, var$1, var$1$hi) { var$0 = var$0 | 0; var$0$hi = var$0$hi | 0; @@ -3012,7 +3084,7 @@ function asmFunc(global, env, buffer) { 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$1 = 0, i64toi32_i32$4 = 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, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 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 : { @@ -3032,15 +3104,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $40 = (((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; + $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 = $40; + var$2 = $37; if (var$2) { block : { i64toi32_i32$1 = var$1$hi; @@ -3056,15 +3128,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; - $41 = (((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; + $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 = $41; + var$4 = $38; if ((var$4 | 0) == (0 | 0)) { break label$9 } @@ -3088,13 +3160,7 @@ function asmFunc(global, env, buffer) { var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -3108,15 +3174,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $39 = 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; + $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 = $42; + var$3 = $39; i64toi32_i32$1 = var$0$hi; if ((var$0 | 0) == (0 | 0)) { break label$7 @@ -3128,7 +3194,6 @@ function asmFunc(global, env, buffer) { if (var$4 & var$3 | 0) { break label$6 } - $60 = __tempMemory__; i64toi32_i32$1 = 0; i64toi32_i32$2 = var$4 & var$2 | 0; i64toi32_i32$3 = 0; @@ -3137,35 +3202,28 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $43 = 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; - $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - $65$hi = i64toi32_i32$3; + $63$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$1 = var$0; i64toi32_i32$2 = 0; i64toi32_i32$0 = 4294967295; i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0; - $67$hi = i64toi32_i32$2; - i64toi32_i32$2 = $65$hi; - i64toi32_i32$3 = $43; - i64toi32_i32$1 = $67$hi; - i64toi32_i32$0 = $67; + $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; - $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0; - i64toi32_i32$3 = $60; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = $68; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -3184,7 +3242,6 @@ function asmFunc(global, env, buffer) { var$2 = var$2 + 1 | 0; break label$3; } - $93 = __tempMemory__; 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; @@ -3194,21 +3251,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $44 = 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; - $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $41 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - i64toi32_i32$2 = $93; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = $44; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -3222,36 +3273,30 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$2 = var$0$hi; i64toi32_i32$2 = 0; - i64toi32_i32$1 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = var$4 & var$0 | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = i64toi32_i32$2; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; - $124$hi = i64toi32_i32$2; + $120$hi = i64toi32_i32$2; i64toi32_i32$2 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$1 = $124$hi; + 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; - $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; - $45 = (((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; + $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 = $45; + i64toi32_i32$3 = $42; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; return i64toi32_i32$3 | 0; } @@ -3260,45 +3305,45 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$3 = var$0$hi; i64toi32_i32$3 = 0; - $133$hi = i64toi32_i32$3; + $129$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$2 = var$0; - i64toi32_i32$1 = $133$hi; + 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; - $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + $43 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; - $46 = (((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; + $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 = $46; + var$5 = $43; var$5$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$1 = 0; - $138$hi = i64toi32_i32$1; + $134$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$2 = $138$hi; + 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; - $47 = 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; - $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + $44 = i64toi32_i32$3 << i64toi32_i32$4 | 0; } } - var$0 = $47; + var$0 = $44; var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { @@ -3323,16 +3368,16 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; - $48 = 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; - $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0; } } - $144 = $48; - $144$hi = i64toi32_i32$1; + $140 = $45; + $140$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$5 = var$0; i64toi32_i32$2 = 0; @@ -3341,24 +3386,24 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; + $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; - $49 = (((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; + $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; } } - $146$hi = i64toi32_i32$2; - i64toi32_i32$2 = $144$hi; - i64toi32_i32$1 = $144; - i64toi32_i32$5 = $146$hi; - i64toi32_i32$0 = $49; + $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; - $148 = var$5; - $148$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; @@ -3376,15 +3421,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0; - $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; + $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; - $50 = (((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; + $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 = $50; + var$6 = $47; var$6$hi = i64toi32_i32$2; i64toi32_i32$2 = var$1$hi; i64toi32_i32$2 = var$6$hi; @@ -3392,12 +3437,12 @@ function asmFunc(global, env, buffer) { i64toi32_i32$5 = var$1$hi; i64toi32_i32$0 = var$1; i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0; - $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0; - $155$hi = i64toi32_i32$5; - i64toi32_i32$5 = $148$hi; - i64toi32_i32$2 = $148; - i64toi32_i32$4 = $155$hi; - i64toi32_i32$0 = $155; + $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; @@ -3412,18 +3457,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $51 = 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; - $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $158$hi = i64toi32_i32$2; + $154$hi = i64toi32_i32$2; i64toi32_i32$2 = var$7$hi; - i64toi32_i32$2 = $158$hi; - i64toi32_i32$3 = $51; + 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; @@ -3449,13 +3494,7 @@ function asmFunc(global, env, buffer) { } } i64toi32_i32$3 = var$5$hi; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$5; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -3464,18 +3503,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $52 = 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; - $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $49 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $170$hi = i64toi32_i32$2; + $165$hi = i64toi32_i32$2; i64toi32_i32$2 = var$6$hi; - i64toi32_i32$2 = $170$hi; - i64toi32_i32$3 = $52; + 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; @@ -3484,13 +3523,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3 | 0; } i64toi32_i32$3 = var$0$hi; - i64toi32_i32$5 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = var$0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -3620,16 +3653,15 @@ function asmFunc(global, env, buffer) { 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$2 = 0, wasm2js_i32$0 = 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$2 = __tempMemory__; - i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; - i64toi32_i32$1 = (wasm2js_i32$0 = i64toi32_i32$2, HEAPU8[(wasm2js_i32$0 + 4 | 0) >> 0] | 0 | 0 | (HEAPU8[(wasm2js_i32$0 + 5 | 0) >> 0] | 0 | 0) << 8 | (HEAPU8[(wasm2js_i32$0 + 6 | 0) >> 0] | 0 | 0) << 16 | (HEAPU8[(wasm2js_i32$0 + 7 | 0) >> 0] | 0 | 0) << 24); + 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; } @@ -3973,7 +4005,7 @@ function asmFunc(global, env, buffer) { } const memasmFunc = new ArrayBuffer(65536); -const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0},memasmFunc); +const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0,getTempRet0},memasmFunc); export const add = retasmFunc.add; export const sub = retasmFunc.sub; export const mul = retasmFunc.mul; diff --git a/test/wasm2js/int_exprs.2asm.js b/test/wasm2js/int_exprs.2asm.js index 5d62f4637..ee8b7da4d 100644 --- a/test/wasm2js/int_exprs.2asm.js +++ b/test/wasm2js/int_exprs.2asm.js @@ -936,9 +936,19 @@ export const i32_no_fold_shr_s_shl = retasmFunc.i32_no_fold_shr_s_shl; export const i32_no_fold_shr_u_shl = retasmFunc.i32_no_fold_shr_u_shl; export const i64_no_fold_shr_s_shl = retasmFunc.i64_no_fold_shr_s_shl; export const i64_no_fold_shr_u_shl = retasmFunc.i64_no_fold_shr_u_shl; -import { __tempMemory__ } from 'env'; 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) { "almost asm"; var HEAP8 = new global.Int8Array(buffer); @@ -962,7 +972,6 @@ function asmFunc(global, env, buffer) { var nan = global.NaN; var infinity = global.Infinity; var setTempRet0 = env.setTempRet0; - var __tempMemory__ = env.__tempMemory__ | 0; var i64toi32_i32$HIGH_BITS = 0; function $0(x) { x = x | 0; @@ -1112,6 +1121,30 @@ function asmFunc(global, env, buffer) { 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_builtins3int3mul3Mul3mul17h070e9a1c69faec5bE(var$0, var$0$hi, var$1, var$1$hi) { var$0 = var$0 | 0; var$0$hi = var$0$hi | 0; @@ -1325,7 +1358,7 @@ function asmFunc(global, env, buffer) { 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$1 = 0, i64toi32_i32$4 = 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, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 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 : { @@ -1345,15 +1378,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $40 = (((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; + $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 = $40; + var$2 = $37; if (var$2) { block : { i64toi32_i32$1 = var$1$hi; @@ -1369,15 +1402,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; - $41 = (((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; + $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 = $41; + var$4 = $38; if ((var$4 | 0) == (0 | 0)) { break label$9 } @@ -1401,13 +1434,7 @@ function asmFunc(global, env, buffer) { var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -1421,15 +1448,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $39 = 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; + $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 = $42; + var$3 = $39; i64toi32_i32$1 = var$0$hi; if ((var$0 | 0) == (0 | 0)) { break label$7 @@ -1441,7 +1468,6 @@ function asmFunc(global, env, buffer) { if (var$4 & var$3 | 0) { break label$6 } - $60 = __tempMemory__; i64toi32_i32$1 = 0; i64toi32_i32$2 = var$4 & var$2 | 0; i64toi32_i32$3 = 0; @@ -1450,35 +1476,28 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $43 = 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; - $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - $65$hi = i64toi32_i32$3; + $63$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$1 = var$0; i64toi32_i32$2 = 0; i64toi32_i32$0 = 4294967295; i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0; - $67$hi = i64toi32_i32$2; - i64toi32_i32$2 = $65$hi; - i64toi32_i32$3 = $43; - i64toi32_i32$1 = $67$hi; - i64toi32_i32$0 = $67; + $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; - $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0; - i64toi32_i32$3 = $60; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = $68; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -1497,7 +1516,6 @@ function asmFunc(global, env, buffer) { var$2 = var$2 + 1 | 0; break label$3; } - $93 = __tempMemory__; 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; @@ -1507,21 +1525,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $44 = 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; - $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $41 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - i64toi32_i32$2 = $93; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = $44; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -1535,36 +1547,30 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$2 = var$0$hi; i64toi32_i32$2 = 0; - i64toi32_i32$1 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = var$4 & var$0 | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = i64toi32_i32$2; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; - $124$hi = i64toi32_i32$2; + $120$hi = i64toi32_i32$2; i64toi32_i32$2 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$1 = $124$hi; + 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; - $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; - $45 = (((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; + $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 = $45; + i64toi32_i32$3 = $42; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; return i64toi32_i32$3 | 0; } @@ -1573,45 +1579,45 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$3 = var$0$hi; i64toi32_i32$3 = 0; - $133$hi = i64toi32_i32$3; + $129$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$2 = var$0; - i64toi32_i32$1 = $133$hi; + 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; - $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + $43 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; - $46 = (((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; + $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 = $46; + var$5 = $43; var$5$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$1 = 0; - $138$hi = i64toi32_i32$1; + $134$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$2 = $138$hi; + 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; - $47 = 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; - $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + $44 = i64toi32_i32$3 << i64toi32_i32$4 | 0; } } - var$0 = $47; + var$0 = $44; var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { @@ -1636,16 +1642,16 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; - $48 = 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; - $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0; } } - $144 = $48; - $144$hi = i64toi32_i32$1; + $140 = $45; + $140$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$5 = var$0; i64toi32_i32$2 = 0; @@ -1654,24 +1660,24 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; + $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; - $49 = (((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; + $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; } } - $146$hi = i64toi32_i32$2; - i64toi32_i32$2 = $144$hi; - i64toi32_i32$1 = $144; - i64toi32_i32$5 = $146$hi; - i64toi32_i32$0 = $49; + $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; - $148 = var$5; - $148$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; @@ -1689,15 +1695,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0; - $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; + $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; - $50 = (((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; + $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 = $50; + var$6 = $47; var$6$hi = i64toi32_i32$2; i64toi32_i32$2 = var$1$hi; i64toi32_i32$2 = var$6$hi; @@ -1705,12 +1711,12 @@ function asmFunc(global, env, buffer) { i64toi32_i32$5 = var$1$hi; i64toi32_i32$0 = var$1; i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0; - $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0; - $155$hi = i64toi32_i32$5; - i64toi32_i32$5 = $148$hi; - i64toi32_i32$2 = $148; - i64toi32_i32$4 = $155$hi; - i64toi32_i32$0 = $155; + $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; @@ -1725,18 +1731,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $51 = 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; - $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $158$hi = i64toi32_i32$2; + $154$hi = i64toi32_i32$2; i64toi32_i32$2 = var$7$hi; - i64toi32_i32$2 = $158$hi; - i64toi32_i32$3 = $51; + 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; @@ -1762,13 +1768,7 @@ function asmFunc(global, env, buffer) { } } i64toi32_i32$3 = var$5$hi; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$5; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -1777,18 +1777,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $52 = 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; - $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $49 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $170$hi = i64toi32_i32$2; + $165$hi = i64toi32_i32$2; i64toi32_i32$2 = var$6$hi; - i64toi32_i32$2 = $170$hi; - i64toi32_i32$3 = $52; + 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; @@ -1797,13 +1797,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3 | 0; } i64toi32_i32$3 = var$0$hi; - i64toi32_i32$5 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = var$0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -1885,9 +1879,19 @@ export const i32_no_fold_div_s_mul = retasmFunc.i32_no_fold_div_s_mul; export const i32_no_fold_div_u_mul = retasmFunc.i32_no_fold_div_u_mul; export const i64_no_fold_div_s_mul = retasmFunc.i64_no_fold_div_s_mul; export const i64_no_fold_div_u_mul = retasmFunc.i64_no_fold_div_u_mul; -import { __tempMemory__ } from 'env'; 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) { "almost asm"; var HEAP8 = new global.Int8Array(buffer); @@ -1911,7 +1915,6 @@ function asmFunc(global, env, buffer) { var nan = global.NaN; var infinity = global.Infinity; var setTempRet0 = env.setTempRet0; - var __tempMemory__ = env.__tempMemory__ | 0; var i64toi32_i32$HIGH_BITS = 0; function $0(x) { x = x | 0; @@ -2061,6 +2064,30 @@ function asmFunc(global, env, buffer) { 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_builtins3int3mul3Mul3mul17h070e9a1c69faec5bE(var$0, var$0$hi, var$1, var$1$hi) { var$0 = var$0 | 0; var$0$hi = var$0$hi | 0; @@ -2274,7 +2301,7 @@ function asmFunc(global, env, buffer) { 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$1 = 0, i64toi32_i32$4 = 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, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 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 : { @@ -2294,15 +2321,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $40 = (((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; + $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 = $40; + var$2 = $37; if (var$2) { block : { i64toi32_i32$1 = var$1$hi; @@ -2318,15 +2345,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; - $41 = (((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; + $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 = $41; + var$4 = $38; if ((var$4 | 0) == (0 | 0)) { break label$9 } @@ -2350,13 +2377,7 @@ function asmFunc(global, env, buffer) { var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -2370,15 +2391,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $39 = 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; + $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 = $42; + var$3 = $39; i64toi32_i32$1 = var$0$hi; if ((var$0 | 0) == (0 | 0)) { break label$7 @@ -2390,7 +2411,6 @@ function asmFunc(global, env, buffer) { if (var$4 & var$3 | 0) { break label$6 } - $60 = __tempMemory__; i64toi32_i32$1 = 0; i64toi32_i32$2 = var$4 & var$2 | 0; i64toi32_i32$3 = 0; @@ -2399,35 +2419,28 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $43 = 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; - $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - $65$hi = i64toi32_i32$3; + $63$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$1 = var$0; i64toi32_i32$2 = 0; i64toi32_i32$0 = 4294967295; i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0; - $67$hi = i64toi32_i32$2; - i64toi32_i32$2 = $65$hi; - i64toi32_i32$3 = $43; - i64toi32_i32$1 = $67$hi; - i64toi32_i32$0 = $67; + $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; - $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0; - i64toi32_i32$3 = $60; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = $68; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -2446,7 +2459,6 @@ function asmFunc(global, env, buffer) { var$2 = var$2 + 1 | 0; break label$3; } - $93 = __tempMemory__; 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; @@ -2456,21 +2468,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $44 = 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; - $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $41 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - i64toi32_i32$2 = $93; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = $44; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -2484,36 +2490,30 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$2 = var$0$hi; i64toi32_i32$2 = 0; - i64toi32_i32$1 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = var$4 & var$0 | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = i64toi32_i32$2; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; - $124$hi = i64toi32_i32$2; + $120$hi = i64toi32_i32$2; i64toi32_i32$2 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$1 = $124$hi; + 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; - $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; - $45 = (((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; + $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 = $45; + i64toi32_i32$3 = $42; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; return i64toi32_i32$3 | 0; } @@ -2522,45 +2522,45 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$3 = var$0$hi; i64toi32_i32$3 = 0; - $133$hi = i64toi32_i32$3; + $129$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$2 = var$0; - i64toi32_i32$1 = $133$hi; + 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; - $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + $43 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; - $46 = (((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; + $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 = $46; + var$5 = $43; var$5$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$1 = 0; - $138$hi = i64toi32_i32$1; + $134$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$2 = $138$hi; + 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; - $47 = 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; - $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + $44 = i64toi32_i32$3 << i64toi32_i32$4 | 0; } } - var$0 = $47; + var$0 = $44; var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { @@ -2585,16 +2585,16 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; - $48 = 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; - $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0; } } - $144 = $48; - $144$hi = i64toi32_i32$1; + $140 = $45; + $140$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$5 = var$0; i64toi32_i32$2 = 0; @@ -2603,24 +2603,24 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; + $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; - $49 = (((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; + $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; } } - $146$hi = i64toi32_i32$2; - i64toi32_i32$2 = $144$hi; - i64toi32_i32$1 = $144; - i64toi32_i32$5 = $146$hi; - i64toi32_i32$0 = $49; + $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; - $148 = var$5; - $148$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; @@ -2638,15 +2638,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0; - $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; + $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; - $50 = (((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; + $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 = $50; + var$6 = $47; var$6$hi = i64toi32_i32$2; i64toi32_i32$2 = var$1$hi; i64toi32_i32$2 = var$6$hi; @@ -2654,12 +2654,12 @@ function asmFunc(global, env, buffer) { i64toi32_i32$5 = var$1$hi; i64toi32_i32$0 = var$1; i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0; - $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0; - $155$hi = i64toi32_i32$5; - i64toi32_i32$5 = $148$hi; - i64toi32_i32$2 = $148; - i64toi32_i32$4 = $155$hi; - i64toi32_i32$0 = $155; + $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; @@ -2674,18 +2674,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $51 = 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; - $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $158$hi = i64toi32_i32$2; + $154$hi = i64toi32_i32$2; i64toi32_i32$2 = var$7$hi; - i64toi32_i32$2 = $158$hi; - i64toi32_i32$3 = $51; + 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; @@ -2711,13 +2711,7 @@ function asmFunc(global, env, buffer) { } } i64toi32_i32$3 = var$5$hi; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$5; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -2726,18 +2720,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $52 = 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; - $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $49 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $170$hi = i64toi32_i32$2; + $165$hi = i64toi32_i32$2; i64toi32_i32$2 = var$6$hi; - i64toi32_i32$2 = $170$hi; - i64toi32_i32$3 = $52; + 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; @@ -2746,13 +2740,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3 | 0; } i64toi32_i32$3 = var$0$hi; - i64toi32_i32$5 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = var$0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -2834,9 +2822,19 @@ export const i32_no_fold_mul_div_s = retasmFunc.i32_no_fold_mul_div_s; export const i32_no_fold_mul_div_u = retasmFunc.i32_no_fold_mul_div_u; export const i64_no_fold_mul_div_s = retasmFunc.i64_no_fold_mul_div_s; export const i64_no_fold_mul_div_u = retasmFunc.i64_no_fold_mul_div_u; -import { __tempMemory__ } from 'env'; 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) { "almost asm"; var HEAP8 = new global.Int8Array(buffer); @@ -2860,7 +2858,6 @@ function asmFunc(global, env, buffer) { var nan = global.NaN; var infinity = global.Infinity; var setTempRet0 = env.setTempRet0; - var __tempMemory__ = env.__tempMemory__ | 0; var i64toi32_i32$HIGH_BITS = 0; function $0(x) { x = x | 0; @@ -2932,6 +2929,30 @@ function asmFunc(global, env, buffer) { 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; @@ -3079,7 +3100,7 @@ function asmFunc(global, env, buffer) { 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$1 = 0, i64toi32_i32$4 = 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, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 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 : { @@ -3099,15 +3120,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $40 = (((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; + $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 = $40; + var$2 = $37; if (var$2) { block : { i64toi32_i32$1 = var$1$hi; @@ -3123,15 +3144,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; - $41 = (((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; + $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 = $41; + var$4 = $38; if ((var$4 | 0) == (0 | 0)) { break label$9 } @@ -3155,13 +3176,7 @@ function asmFunc(global, env, buffer) { var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -3175,15 +3190,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $39 = 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; + $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 = $42; + var$3 = $39; i64toi32_i32$1 = var$0$hi; if ((var$0 | 0) == (0 | 0)) { break label$7 @@ -3195,7 +3210,6 @@ function asmFunc(global, env, buffer) { if (var$4 & var$3 | 0) { break label$6 } - $60 = __tempMemory__; i64toi32_i32$1 = 0; i64toi32_i32$2 = var$4 & var$2 | 0; i64toi32_i32$3 = 0; @@ -3204,35 +3218,28 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $43 = 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; - $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - $65$hi = i64toi32_i32$3; + $63$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$1 = var$0; i64toi32_i32$2 = 0; i64toi32_i32$0 = 4294967295; i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0; - $67$hi = i64toi32_i32$2; - i64toi32_i32$2 = $65$hi; - i64toi32_i32$3 = $43; - i64toi32_i32$1 = $67$hi; - i64toi32_i32$0 = $67; + $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; - $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0; - i64toi32_i32$3 = $60; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = $68; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -3251,7 +3258,6 @@ function asmFunc(global, env, buffer) { var$2 = var$2 + 1 | 0; break label$3; } - $93 = __tempMemory__; 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; @@ -3261,21 +3267,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $44 = 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; - $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $41 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - i64toi32_i32$2 = $93; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = $44; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -3289,36 +3289,30 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$2 = var$0$hi; i64toi32_i32$2 = 0; - i64toi32_i32$1 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = var$4 & var$0 | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = i64toi32_i32$2; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; - $124$hi = i64toi32_i32$2; + $120$hi = i64toi32_i32$2; i64toi32_i32$2 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$1 = $124$hi; + 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; - $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; - $45 = (((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; + $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 = $45; + i64toi32_i32$3 = $42; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; return i64toi32_i32$3 | 0; } @@ -3327,45 +3321,45 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$3 = var$0$hi; i64toi32_i32$3 = 0; - $133$hi = i64toi32_i32$3; + $129$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$2 = var$0; - i64toi32_i32$1 = $133$hi; + 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; - $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + $43 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; - $46 = (((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; + $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 = $46; + var$5 = $43; var$5$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$1 = 0; - $138$hi = i64toi32_i32$1; + $134$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$2 = $138$hi; + 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; - $47 = 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; - $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + $44 = i64toi32_i32$3 << i64toi32_i32$4 | 0; } } - var$0 = $47; + var$0 = $44; var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { @@ -3390,16 +3384,16 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; - $48 = 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; - $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0; } } - $144 = $48; - $144$hi = i64toi32_i32$1; + $140 = $45; + $140$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$5 = var$0; i64toi32_i32$2 = 0; @@ -3408,24 +3402,24 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; + $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; - $49 = (((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; + $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; } } - $146$hi = i64toi32_i32$2; - i64toi32_i32$2 = $144$hi; - i64toi32_i32$1 = $144; - i64toi32_i32$5 = $146$hi; - i64toi32_i32$0 = $49; + $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; - $148 = var$5; - $148$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; @@ -3443,15 +3437,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0; - $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; + $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; - $50 = (((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; + $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 = $50; + var$6 = $47; var$6$hi = i64toi32_i32$2; i64toi32_i32$2 = var$1$hi; i64toi32_i32$2 = var$6$hi; @@ -3459,12 +3453,12 @@ function asmFunc(global, env, buffer) { i64toi32_i32$5 = var$1$hi; i64toi32_i32$0 = var$1; i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0; - $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0; - $155$hi = i64toi32_i32$5; - i64toi32_i32$5 = $148$hi; - i64toi32_i32$2 = $148; - i64toi32_i32$4 = $155$hi; - i64toi32_i32$0 = $155; + $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; @@ -3479,18 +3473,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $51 = 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; - $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $158$hi = i64toi32_i32$2; + $154$hi = i64toi32_i32$2; i64toi32_i32$2 = var$7$hi; - i64toi32_i32$2 = $158$hi; - i64toi32_i32$3 = $51; + 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; @@ -3516,13 +3510,7 @@ function asmFunc(global, env, buffer) { } } i64toi32_i32$3 = var$5$hi; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$5; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -3531,18 +3519,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $52 = 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; - $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $49 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $170$hi = i64toi32_i32$2; + $165$hi = i64toi32_i32$2; i64toi32_i32$2 = var$6$hi; - i64toi32_i32$2 = $170$hi; - i64toi32_i32$3 = $52; + 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; @@ -3551,13 +3539,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3 | 0; } i64toi32_i32$3 = var$0$hi; - i64toi32_i32$5 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = var$0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -3603,9 +3585,25 @@ const memasmFunc = new ArrayBuffer(65536); const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0},memasmFunc); export const i32_no_fold_div_s_2 = retasmFunc.i32_no_fold_div_s_2; export const i64_no_fold_div_s_2 = retasmFunc.i64_no_fold_div_s_2; -import { __tempMemory__ } from 'env'; 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) { "almost asm"; var HEAP8 = new global.Int8Array(buffer); @@ -3629,7 +3627,7 @@ function asmFunc(global, env, buffer) { var nan = global.NaN; var infinity = global.Infinity; var setTempRet0 = env.setTempRet0; - var __tempMemory__ = env.__tempMemory__ | 0; + var getTempRet0 = env.getTempRet0; var i64toi32_i32$HIGH_BITS = 0; function $0(x) { x = x | 0; @@ -3701,6 +3699,62 @@ function asmFunc(global, env, buffer) { return $2 | 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 = 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_builtins3int4sdiv3Mod4mod_17h2cbb7bbf36e41d68E(var$0, var$0$hi, var$1, var$1$hi) { var$0 = var$0 | 0; var$0$hi = var$0$hi | 0; @@ -3824,7 +3878,7 @@ function asmFunc(global, env, buffer) { 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$1 = 0, i64toi32_i32$4 = 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, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 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 : { @@ -3844,15 +3898,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $40 = (((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; + $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 = $40; + var$2 = $37; if (var$2) { block : { i64toi32_i32$1 = var$1$hi; @@ -3868,15 +3922,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; - $41 = (((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; + $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 = $41; + var$4 = $38; if ((var$4 | 0) == (0 | 0)) { break label$9 } @@ -3900,13 +3954,7 @@ function asmFunc(global, env, buffer) { var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -3920,15 +3968,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $39 = 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; + $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 = $42; + var$3 = $39; i64toi32_i32$1 = var$0$hi; if ((var$0 | 0) == (0 | 0)) { break label$7 @@ -3940,7 +3988,6 @@ function asmFunc(global, env, buffer) { if (var$4 & var$3 | 0) { break label$6 } - $60 = __tempMemory__; i64toi32_i32$1 = 0; i64toi32_i32$2 = var$4 & var$2 | 0; i64toi32_i32$3 = 0; @@ -3949,35 +3996,28 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $43 = 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; - $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - $65$hi = i64toi32_i32$3; + $63$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$1 = var$0; i64toi32_i32$2 = 0; i64toi32_i32$0 = 4294967295; i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0; - $67$hi = i64toi32_i32$2; - i64toi32_i32$2 = $65$hi; - i64toi32_i32$3 = $43; - i64toi32_i32$1 = $67$hi; - i64toi32_i32$0 = $67; + $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; - $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0; - i64toi32_i32$3 = $60; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = $68; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -3996,7 +4036,6 @@ function asmFunc(global, env, buffer) { var$2 = var$2 + 1 | 0; break label$3; } - $93 = __tempMemory__; 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; @@ -4006,21 +4045,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $44 = 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; - $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $41 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - i64toi32_i32$2 = $93; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = $44; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -4034,36 +4067,30 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$2 = var$0$hi; i64toi32_i32$2 = 0; - i64toi32_i32$1 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = var$4 & var$0 | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = i64toi32_i32$2; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; - $124$hi = i64toi32_i32$2; + $120$hi = i64toi32_i32$2; i64toi32_i32$2 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$1 = $124$hi; + 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; - $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; - $45 = (((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; + $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 = $45; + i64toi32_i32$3 = $42; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; return i64toi32_i32$3 | 0; } @@ -4072,45 +4099,45 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$3 = var$0$hi; i64toi32_i32$3 = 0; - $133$hi = i64toi32_i32$3; + $129$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$2 = var$0; - i64toi32_i32$1 = $133$hi; + 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; - $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + $43 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; - $46 = (((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; + $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 = $46; + var$5 = $43; var$5$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$1 = 0; - $138$hi = i64toi32_i32$1; + $134$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$2 = $138$hi; + 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; - $47 = 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; - $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + $44 = i64toi32_i32$3 << i64toi32_i32$4 | 0; } } - var$0 = $47; + var$0 = $44; var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { @@ -4135,16 +4162,16 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; - $48 = 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; - $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0; } } - $144 = $48; - $144$hi = i64toi32_i32$1; + $140 = $45; + $140$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$5 = var$0; i64toi32_i32$2 = 0; @@ -4153,24 +4180,24 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; + $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; - $49 = (((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; + $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; } } - $146$hi = i64toi32_i32$2; - i64toi32_i32$2 = $144$hi; - i64toi32_i32$1 = $144; - i64toi32_i32$5 = $146$hi; - i64toi32_i32$0 = $49; + $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; - $148 = var$5; - $148$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; @@ -4188,15 +4215,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0; - $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; + $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; - $50 = (((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; + $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 = $50; + var$6 = $47; var$6$hi = i64toi32_i32$2; i64toi32_i32$2 = var$1$hi; i64toi32_i32$2 = var$6$hi; @@ -4204,12 +4231,12 @@ function asmFunc(global, env, buffer) { i64toi32_i32$5 = var$1$hi; i64toi32_i32$0 = var$1; i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0; - $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0; - $155$hi = i64toi32_i32$5; - i64toi32_i32$5 = $148$hi; - i64toi32_i32$2 = $148; - i64toi32_i32$4 = $155$hi; - i64toi32_i32$0 = $155; + $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; @@ -4224,18 +4251,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $51 = 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; - $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $158$hi = i64toi32_i32$2; + $154$hi = i64toi32_i32$2; i64toi32_i32$2 = var$7$hi; - i64toi32_i32$2 = $158$hi; - i64toi32_i32$3 = $51; + 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; @@ -4261,13 +4288,7 @@ function asmFunc(global, env, buffer) { } } i64toi32_i32$3 = var$5$hi; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$5; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -4276,18 +4297,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $52 = 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; - $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $49 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $170$hi = i64toi32_i32$2; + $165$hi = i64toi32_i32$2; i64toi32_i32$2 = var$6$hi; - i64toi32_i32$2 = $170$hi; - i64toi32_i32$3 = $52; + 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; @@ -4296,13 +4317,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3 | 0; } i64toi32_i32$3 = var$0$hi; - i64toi32_i32$5 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = var$0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -4318,16 +4333,15 @@ function asmFunc(global, env, buffer) { 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$2 = 0, wasm2js_i32$0 = 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$2 = __tempMemory__; - i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; - i64toi32_i32$1 = (wasm2js_i32$0 = i64toi32_i32$2, HEAPU8[(wasm2js_i32$0 + 4 | 0) >> 0] | 0 | 0 | (HEAPU8[(wasm2js_i32$0 + 5 | 0) >> 0] | 0 | 0) << 8 | (HEAPU8[(wasm2js_i32$0 + 6 | 0) >> 0] | 0 | 0) << 16 | (HEAPU8[(wasm2js_i32$0 + 7 | 0) >> 0] | 0 | 0) << 24); + 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; } @@ -4348,12 +4362,22 @@ function asmFunc(global, env, buffer) { } const memasmFunc = new ArrayBuffer(65536); -const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0},memasmFunc); +const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0,getTempRet0},memasmFunc); export const i32_no_fold_rem_s_2 = retasmFunc.i32_no_fold_rem_s_2; export const i64_no_fold_rem_s_2 = retasmFunc.i64_no_fold_rem_s_2; -import { __tempMemory__ } from 'env'; 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) { "almost asm"; var HEAP8 = new global.Int8Array(buffer); @@ -4377,7 +4401,6 @@ function asmFunc(global, env, buffer) { var nan = global.NaN; var infinity = global.Infinity; var setTempRet0 = env.setTempRet0; - var __tempMemory__ = env.__tempMemory__ | 0; var i64toi32_i32$HIGH_BITS = 0; function $0(x) { x = x | 0; @@ -4519,6 +4542,30 @@ function asmFunc(global, env, buffer) { 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; @@ -4650,7 +4697,7 @@ function asmFunc(global, env, buffer) { 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$1 = 0, i64toi32_i32$4 = 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, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 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 : { @@ -4670,15 +4717,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $40 = (((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; + $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 = $40; + var$2 = $37; if (var$2) { block : { i64toi32_i32$1 = var$1$hi; @@ -4694,15 +4741,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; - $41 = (((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; + $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 = $41; + var$4 = $38; if ((var$4 | 0) == (0 | 0)) { break label$9 } @@ -4726,13 +4773,7 @@ function asmFunc(global, env, buffer) { var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -4746,15 +4787,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $39 = 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; + $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 = $42; + var$3 = $39; i64toi32_i32$1 = var$0$hi; if ((var$0 | 0) == (0 | 0)) { break label$7 @@ -4766,7 +4807,6 @@ function asmFunc(global, env, buffer) { if (var$4 & var$3 | 0) { break label$6 } - $60 = __tempMemory__; i64toi32_i32$1 = 0; i64toi32_i32$2 = var$4 & var$2 | 0; i64toi32_i32$3 = 0; @@ -4775,35 +4815,28 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $43 = 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; - $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - $65$hi = i64toi32_i32$3; + $63$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$1 = var$0; i64toi32_i32$2 = 0; i64toi32_i32$0 = 4294967295; i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0; - $67$hi = i64toi32_i32$2; - i64toi32_i32$2 = $65$hi; - i64toi32_i32$3 = $43; - i64toi32_i32$1 = $67$hi; - i64toi32_i32$0 = $67; + $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; - $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0; - i64toi32_i32$3 = $60; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = $68; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -4822,7 +4855,6 @@ function asmFunc(global, env, buffer) { var$2 = var$2 + 1 | 0; break label$3; } - $93 = __tempMemory__; 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; @@ -4832,21 +4864,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $44 = 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; - $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $41 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - i64toi32_i32$2 = $93; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = $44; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -4860,36 +4886,30 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$2 = var$0$hi; i64toi32_i32$2 = 0; - i64toi32_i32$1 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = var$4 & var$0 | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = i64toi32_i32$2; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; - $124$hi = i64toi32_i32$2; + $120$hi = i64toi32_i32$2; i64toi32_i32$2 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$1 = $124$hi; + 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; - $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; - $45 = (((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; + $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 = $45; + i64toi32_i32$3 = $42; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; return i64toi32_i32$3 | 0; } @@ -4898,45 +4918,45 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$3 = var$0$hi; i64toi32_i32$3 = 0; - $133$hi = i64toi32_i32$3; + $129$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$2 = var$0; - i64toi32_i32$1 = $133$hi; + 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; - $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + $43 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; - $46 = (((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; + $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 = $46; + var$5 = $43; var$5$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$1 = 0; - $138$hi = i64toi32_i32$1; + $134$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$2 = $138$hi; + 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; - $47 = 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; - $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + $44 = i64toi32_i32$3 << i64toi32_i32$4 | 0; } } - var$0 = $47; + var$0 = $44; var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { @@ -4961,16 +4981,16 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; - $48 = 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; - $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0; } } - $144 = $48; - $144$hi = i64toi32_i32$1; + $140 = $45; + $140$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$5 = var$0; i64toi32_i32$2 = 0; @@ -4979,24 +4999,24 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; + $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; - $49 = (((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; + $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; } } - $146$hi = i64toi32_i32$2; - i64toi32_i32$2 = $144$hi; - i64toi32_i32$1 = $144; - i64toi32_i32$5 = $146$hi; - i64toi32_i32$0 = $49; + $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; - $148 = var$5; - $148$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; @@ -5014,15 +5034,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0; - $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; + $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; - $50 = (((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; + $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 = $50; + var$6 = $47; var$6$hi = i64toi32_i32$2; i64toi32_i32$2 = var$1$hi; i64toi32_i32$2 = var$6$hi; @@ -5030,12 +5050,12 @@ function asmFunc(global, env, buffer) { i64toi32_i32$5 = var$1$hi; i64toi32_i32$0 = var$1; i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0; - $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0; - $155$hi = i64toi32_i32$5; - i64toi32_i32$5 = $148$hi; - i64toi32_i32$2 = $148; - i64toi32_i32$4 = $155$hi; - i64toi32_i32$0 = $155; + $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; @@ -5050,18 +5070,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $51 = 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; - $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $158$hi = i64toi32_i32$2; + $154$hi = i64toi32_i32$2; i64toi32_i32$2 = var$7$hi; - i64toi32_i32$2 = $158$hi; - i64toi32_i32$3 = $51; + 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; @@ -5087,13 +5107,7 @@ function asmFunc(global, env, buffer) { } } i64toi32_i32$3 = var$5$hi; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$5; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -5102,18 +5116,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $52 = 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; - $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $49 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $170$hi = i64toi32_i32$2; + $165$hi = i64toi32_i32$2; i64toi32_i32$2 = var$6$hi; - i64toi32_i32$2 = $170$hi; - i64toi32_i32$3 = $52; + 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; @@ -5122,13 +5136,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3 | 0; } i64toi32_i32$3 = var$0$hi; - i64toi32_i32$5 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = var$0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -5194,9 +5202,19 @@ export const i32_div_s_3 = retasmFunc.i32_div_s_3; export const i32_div_u_3 = retasmFunc.i32_div_u_3; export const i64_div_s_3 = retasmFunc.i64_div_s_3; export const i64_div_u_3 = retasmFunc.i64_div_u_3; -import { __tempMemory__ } from 'env'; 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) { "almost asm"; var HEAP8 = new global.Int8Array(buffer); @@ -5220,7 +5238,6 @@ function asmFunc(global, env, buffer) { var nan = global.NaN; var infinity = global.Infinity; var setTempRet0 = env.setTempRet0; - var __tempMemory__ = env.__tempMemory__ | 0; var i64toi32_i32$HIGH_BITS = 0; function $0(x) { x = x | 0; @@ -5362,6 +5379,30 @@ function asmFunc(global, env, buffer) { 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; @@ -5493,7 +5534,7 @@ function asmFunc(global, env, buffer) { 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$1 = 0, i64toi32_i32$4 = 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, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 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 : { @@ -5513,15 +5554,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $40 = (((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; + $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 = $40; + var$2 = $37; if (var$2) { block : { i64toi32_i32$1 = var$1$hi; @@ -5537,15 +5578,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; - $41 = (((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; + $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 = $41; + var$4 = $38; if ((var$4 | 0) == (0 | 0)) { break label$9 } @@ -5569,13 +5610,7 @@ function asmFunc(global, env, buffer) { var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -5589,15 +5624,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $39 = 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; + $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 = $42; + var$3 = $39; i64toi32_i32$1 = var$0$hi; if ((var$0 | 0) == (0 | 0)) { break label$7 @@ -5609,7 +5644,6 @@ function asmFunc(global, env, buffer) { if (var$4 & var$3 | 0) { break label$6 } - $60 = __tempMemory__; i64toi32_i32$1 = 0; i64toi32_i32$2 = var$4 & var$2 | 0; i64toi32_i32$3 = 0; @@ -5618,35 +5652,28 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $43 = 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; - $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - $65$hi = i64toi32_i32$3; + $63$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$1 = var$0; i64toi32_i32$2 = 0; i64toi32_i32$0 = 4294967295; i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0; - $67$hi = i64toi32_i32$2; - i64toi32_i32$2 = $65$hi; - i64toi32_i32$3 = $43; - i64toi32_i32$1 = $67$hi; - i64toi32_i32$0 = $67; + $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; - $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0; - i64toi32_i32$3 = $60; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = $68; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -5665,7 +5692,6 @@ function asmFunc(global, env, buffer) { var$2 = var$2 + 1 | 0; break label$3; } - $93 = __tempMemory__; 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; @@ -5675,21 +5701,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $44 = 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; - $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $41 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - i64toi32_i32$2 = $93; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = $44; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -5703,36 +5723,30 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$2 = var$0$hi; i64toi32_i32$2 = 0; - i64toi32_i32$1 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = var$4 & var$0 | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = i64toi32_i32$2; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; - $124$hi = i64toi32_i32$2; + $120$hi = i64toi32_i32$2; i64toi32_i32$2 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$1 = $124$hi; + 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; - $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; - $45 = (((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; + $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 = $45; + i64toi32_i32$3 = $42; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; return i64toi32_i32$3 | 0; } @@ -5741,45 +5755,45 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$3 = var$0$hi; i64toi32_i32$3 = 0; - $133$hi = i64toi32_i32$3; + $129$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$2 = var$0; - i64toi32_i32$1 = $133$hi; + 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; - $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + $43 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; - $46 = (((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; + $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 = $46; + var$5 = $43; var$5$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$1 = 0; - $138$hi = i64toi32_i32$1; + $134$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$2 = $138$hi; + 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; - $47 = 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; - $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + $44 = i64toi32_i32$3 << i64toi32_i32$4 | 0; } } - var$0 = $47; + var$0 = $44; var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { @@ -5804,16 +5818,16 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; - $48 = 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; - $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0; } } - $144 = $48; - $144$hi = i64toi32_i32$1; + $140 = $45; + $140$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$5 = var$0; i64toi32_i32$2 = 0; @@ -5822,24 +5836,24 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; + $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; - $49 = (((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; + $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; } } - $146$hi = i64toi32_i32$2; - i64toi32_i32$2 = $144$hi; - i64toi32_i32$1 = $144; - i64toi32_i32$5 = $146$hi; - i64toi32_i32$0 = $49; + $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; - $148 = var$5; - $148$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; @@ -5857,15 +5871,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0; - $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; + $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; - $50 = (((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; + $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 = $50; + var$6 = $47; var$6$hi = i64toi32_i32$2; i64toi32_i32$2 = var$1$hi; i64toi32_i32$2 = var$6$hi; @@ -5873,12 +5887,12 @@ function asmFunc(global, env, buffer) { i64toi32_i32$5 = var$1$hi; i64toi32_i32$0 = var$1; i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0; - $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0; - $155$hi = i64toi32_i32$5; - i64toi32_i32$5 = $148$hi; - i64toi32_i32$2 = $148; - i64toi32_i32$4 = $155$hi; - i64toi32_i32$0 = $155; + $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; @@ -5893,18 +5907,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $51 = 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; - $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $158$hi = i64toi32_i32$2; + $154$hi = i64toi32_i32$2; i64toi32_i32$2 = var$7$hi; - i64toi32_i32$2 = $158$hi; - i64toi32_i32$3 = $51; + 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; @@ -5930,13 +5944,7 @@ function asmFunc(global, env, buffer) { } } i64toi32_i32$3 = var$5$hi; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$5; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -5945,18 +5953,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $52 = 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; - $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $49 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $170$hi = i64toi32_i32$2; + $165$hi = i64toi32_i32$2; i64toi32_i32$2 = var$6$hi; - i64toi32_i32$2 = $170$hi; - i64toi32_i32$3 = $52; + 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; @@ -5965,13 +5973,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3 | 0; } i64toi32_i32$3 = var$0$hi; - i64toi32_i32$5 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = var$0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -6037,9 +6039,19 @@ export const i32_div_s_3 = retasmFunc.i32_div_s_3; export const i32_div_u_3 = retasmFunc.i32_div_u_3; export const i64_div_s_3 = retasmFunc.i64_div_s_3; export const i64_div_u_3 = retasmFunc.i64_div_u_3; -import { __tempMemory__ } from 'env'; 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) { "almost asm"; var HEAP8 = new global.Int8Array(buffer); @@ -6063,7 +6075,6 @@ function asmFunc(global, env, buffer) { var nan = global.NaN; var infinity = global.Infinity; var setTempRet0 = env.setTempRet0; - var __tempMemory__ = env.__tempMemory__ | 0; var i64toi32_i32$HIGH_BITS = 0; function $0(x) { x = x | 0; @@ -6205,6 +6216,30 @@ function asmFunc(global, env, buffer) { 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; @@ -6336,7 +6371,7 @@ function asmFunc(global, env, buffer) { 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$1 = 0, i64toi32_i32$4 = 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, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 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 : { @@ -6356,15 +6391,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $40 = (((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; + $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 = $40; + var$2 = $37; if (var$2) { block : { i64toi32_i32$1 = var$1$hi; @@ -6380,15 +6415,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; - $41 = (((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; + $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 = $41; + var$4 = $38; if ((var$4 | 0) == (0 | 0)) { break label$9 } @@ -6412,13 +6447,7 @@ function asmFunc(global, env, buffer) { var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -6432,15 +6461,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $39 = 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; + $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 = $42; + var$3 = $39; i64toi32_i32$1 = var$0$hi; if ((var$0 | 0) == (0 | 0)) { break label$7 @@ -6452,7 +6481,6 @@ function asmFunc(global, env, buffer) { if (var$4 & var$3 | 0) { break label$6 } - $60 = __tempMemory__; i64toi32_i32$1 = 0; i64toi32_i32$2 = var$4 & var$2 | 0; i64toi32_i32$3 = 0; @@ -6461,35 +6489,28 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $43 = 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; - $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - $65$hi = i64toi32_i32$3; + $63$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$1 = var$0; i64toi32_i32$2 = 0; i64toi32_i32$0 = 4294967295; i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0; - $67$hi = i64toi32_i32$2; - i64toi32_i32$2 = $65$hi; - i64toi32_i32$3 = $43; - i64toi32_i32$1 = $67$hi; - i64toi32_i32$0 = $67; + $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; - $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0; - i64toi32_i32$3 = $60; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = $68; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -6508,7 +6529,6 @@ function asmFunc(global, env, buffer) { var$2 = var$2 + 1 | 0; break label$3; } - $93 = __tempMemory__; 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; @@ -6518,21 +6538,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $44 = 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; - $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $41 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - i64toi32_i32$2 = $93; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = $44; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -6546,36 +6560,30 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$2 = var$0$hi; i64toi32_i32$2 = 0; - i64toi32_i32$1 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = var$4 & var$0 | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = i64toi32_i32$2; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; - $124$hi = i64toi32_i32$2; + $120$hi = i64toi32_i32$2; i64toi32_i32$2 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$1 = $124$hi; + 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; - $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; - $45 = (((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; + $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 = $45; + i64toi32_i32$3 = $42; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; return i64toi32_i32$3 | 0; } @@ -6584,45 +6592,45 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$3 = var$0$hi; i64toi32_i32$3 = 0; - $133$hi = i64toi32_i32$3; + $129$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$2 = var$0; - i64toi32_i32$1 = $133$hi; + 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; - $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + $43 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; - $46 = (((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; + $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 = $46; + var$5 = $43; var$5$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$1 = 0; - $138$hi = i64toi32_i32$1; + $134$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$2 = $138$hi; + 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; - $47 = 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; - $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + $44 = i64toi32_i32$3 << i64toi32_i32$4 | 0; } } - var$0 = $47; + var$0 = $44; var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { @@ -6647,16 +6655,16 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; - $48 = 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; - $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0; } } - $144 = $48; - $144$hi = i64toi32_i32$1; + $140 = $45; + $140$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$5 = var$0; i64toi32_i32$2 = 0; @@ -6665,24 +6673,24 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; + $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; - $49 = (((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; + $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; } } - $146$hi = i64toi32_i32$2; - i64toi32_i32$2 = $144$hi; - i64toi32_i32$1 = $144; - i64toi32_i32$5 = $146$hi; - i64toi32_i32$0 = $49; + $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; - $148 = var$5; - $148$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; @@ -6700,15 +6708,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0; - $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; + $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; - $50 = (((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; + $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 = $50; + var$6 = $47; var$6$hi = i64toi32_i32$2; i64toi32_i32$2 = var$1$hi; i64toi32_i32$2 = var$6$hi; @@ -6716,12 +6724,12 @@ function asmFunc(global, env, buffer) { i64toi32_i32$5 = var$1$hi; i64toi32_i32$0 = var$1; i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0; - $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0; - $155$hi = i64toi32_i32$5; - i64toi32_i32$5 = $148$hi; - i64toi32_i32$2 = $148; - i64toi32_i32$4 = $155$hi; - i64toi32_i32$0 = $155; + $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; @@ -6736,18 +6744,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $51 = 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; - $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $158$hi = i64toi32_i32$2; + $154$hi = i64toi32_i32$2; i64toi32_i32$2 = var$7$hi; - i64toi32_i32$2 = $158$hi; - i64toi32_i32$3 = $51; + 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; @@ -6773,13 +6781,7 @@ function asmFunc(global, env, buffer) { } } i64toi32_i32$3 = var$5$hi; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$5; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -6788,18 +6790,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $52 = 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; - $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $49 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $170$hi = i64toi32_i32$2; + $165$hi = i64toi32_i32$2; i64toi32_i32$2 = var$6$hi; - i64toi32_i32$2 = $170$hi; - i64toi32_i32$3 = $52; + 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; @@ -6808,13 +6810,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3 | 0; } i64toi32_i32$3 = var$0$hi; - i64toi32_i32$5 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = var$0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -6880,9 +6876,19 @@ export const i32_div_s_5 = retasmFunc.i32_div_s_5; export const i32_div_u_5 = retasmFunc.i32_div_u_5; export const i64_div_s_5 = retasmFunc.i64_div_s_5; export const i64_div_u_5 = retasmFunc.i64_div_u_5; -import { __tempMemory__ } from 'env'; 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) { "almost asm"; var HEAP8 = new global.Int8Array(buffer); @@ -6906,7 +6912,6 @@ function asmFunc(global, env, buffer) { var nan = global.NaN; var infinity = global.Infinity; var setTempRet0 = env.setTempRet0; - var __tempMemory__ = env.__tempMemory__ | 0; var i64toi32_i32$HIGH_BITS = 0; function $0(x) { x = x | 0; @@ -7048,6 +7053,30 @@ function asmFunc(global, env, buffer) { 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; @@ -7179,7 +7208,7 @@ function asmFunc(global, env, buffer) { 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$1 = 0, i64toi32_i32$4 = 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, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 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 : { @@ -7199,15 +7228,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $40 = (((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; + $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 = $40; + var$2 = $37; if (var$2) { block : { i64toi32_i32$1 = var$1$hi; @@ -7223,15 +7252,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; - $41 = (((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; + $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 = $41; + var$4 = $38; if ((var$4 | 0) == (0 | 0)) { break label$9 } @@ -7255,13 +7284,7 @@ function asmFunc(global, env, buffer) { var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -7275,15 +7298,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $39 = 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; + $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 = $42; + var$3 = $39; i64toi32_i32$1 = var$0$hi; if ((var$0 | 0) == (0 | 0)) { break label$7 @@ -7295,7 +7318,6 @@ function asmFunc(global, env, buffer) { if (var$4 & var$3 | 0) { break label$6 } - $60 = __tempMemory__; i64toi32_i32$1 = 0; i64toi32_i32$2 = var$4 & var$2 | 0; i64toi32_i32$3 = 0; @@ -7304,35 +7326,28 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $43 = 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; - $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - $65$hi = i64toi32_i32$3; + $63$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$1 = var$0; i64toi32_i32$2 = 0; i64toi32_i32$0 = 4294967295; i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0; - $67$hi = i64toi32_i32$2; - i64toi32_i32$2 = $65$hi; - i64toi32_i32$3 = $43; - i64toi32_i32$1 = $67$hi; - i64toi32_i32$0 = $67; + $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; - $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0; - i64toi32_i32$3 = $60; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = $68; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -7351,7 +7366,6 @@ function asmFunc(global, env, buffer) { var$2 = var$2 + 1 | 0; break label$3; } - $93 = __tempMemory__; 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; @@ -7361,21 +7375,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $44 = 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; - $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $41 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - i64toi32_i32$2 = $93; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = $44; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -7389,36 +7397,30 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$2 = var$0$hi; i64toi32_i32$2 = 0; - i64toi32_i32$1 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = var$4 & var$0 | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = i64toi32_i32$2; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; - $124$hi = i64toi32_i32$2; + $120$hi = i64toi32_i32$2; i64toi32_i32$2 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$1 = $124$hi; + 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; - $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; - $45 = (((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; + $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 = $45; + i64toi32_i32$3 = $42; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; return i64toi32_i32$3 | 0; } @@ -7427,45 +7429,45 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$3 = var$0$hi; i64toi32_i32$3 = 0; - $133$hi = i64toi32_i32$3; + $129$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$2 = var$0; - i64toi32_i32$1 = $133$hi; + 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; - $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + $43 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; - $46 = (((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; + $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 = $46; + var$5 = $43; var$5$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$1 = 0; - $138$hi = i64toi32_i32$1; + $134$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$2 = $138$hi; + 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; - $47 = 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; - $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + $44 = i64toi32_i32$3 << i64toi32_i32$4 | 0; } } - var$0 = $47; + var$0 = $44; var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { @@ -7490,16 +7492,16 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; - $48 = 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; - $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0; } } - $144 = $48; - $144$hi = i64toi32_i32$1; + $140 = $45; + $140$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$5 = var$0; i64toi32_i32$2 = 0; @@ -7508,24 +7510,24 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; + $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; - $49 = (((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; + $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; } } - $146$hi = i64toi32_i32$2; - i64toi32_i32$2 = $144$hi; - i64toi32_i32$1 = $144; - i64toi32_i32$5 = $146$hi; - i64toi32_i32$0 = $49; + $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; - $148 = var$5; - $148$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; @@ -7543,15 +7545,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0; - $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; + $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; - $50 = (((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; + $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 = $50; + var$6 = $47; var$6$hi = i64toi32_i32$2; i64toi32_i32$2 = var$1$hi; i64toi32_i32$2 = var$6$hi; @@ -7559,12 +7561,12 @@ function asmFunc(global, env, buffer) { i64toi32_i32$5 = var$1$hi; i64toi32_i32$0 = var$1; i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0; - $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0; - $155$hi = i64toi32_i32$5; - i64toi32_i32$5 = $148$hi; - i64toi32_i32$2 = $148; - i64toi32_i32$4 = $155$hi; - i64toi32_i32$0 = $155; + $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; @@ -7579,18 +7581,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $51 = 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; - $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $158$hi = i64toi32_i32$2; + $154$hi = i64toi32_i32$2; i64toi32_i32$2 = var$7$hi; - i64toi32_i32$2 = $158$hi; - i64toi32_i32$3 = $51; + 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; @@ -7616,13 +7618,7 @@ function asmFunc(global, env, buffer) { } } i64toi32_i32$3 = var$5$hi; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$5; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -7631,18 +7627,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $52 = 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; - $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $49 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $170$hi = i64toi32_i32$2; + $165$hi = i64toi32_i32$2; i64toi32_i32$2 = var$6$hi; - i64toi32_i32$2 = $170$hi; - i64toi32_i32$3 = $52; + 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; @@ -7651,13 +7647,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3 | 0; } i64toi32_i32$3 = var$0$hi; - i64toi32_i32$5 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = var$0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -7723,9 +7713,25 @@ export const i32_div_s_7 = retasmFunc.i32_div_s_7; export const i32_div_u_7 = retasmFunc.i32_div_u_7; export const i64_div_s_7 = retasmFunc.i64_div_s_7; export const i64_div_u_7 = retasmFunc.i64_div_u_7; -import { __tempMemory__ } from 'env'; 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) { "almost asm"; var HEAP8 = new global.Int8Array(buffer); @@ -7749,7 +7755,7 @@ function asmFunc(global, env, buffer) { var nan = global.NaN; var infinity = global.Infinity; var setTempRet0 = env.setTempRet0; - var __tempMemory__ = env.__tempMemory__ | 0; + var getTempRet0 = env.getTempRet0; var i64toi32_i32$HIGH_BITS = 0; function $0(x) { x = x | 0; @@ -7891,6 +7897,62 @@ function asmFunc(global, env, buffer) { 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; @@ -7998,7 +8060,7 @@ function asmFunc(global, env, buffer) { 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$1 = 0, i64toi32_i32$4 = 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, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 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 : { @@ -8018,15 +8080,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $40 = (((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; + $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 = $40; + var$2 = $37; if (var$2) { block : { i64toi32_i32$1 = var$1$hi; @@ -8042,15 +8104,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; - $41 = (((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; + $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 = $41; + var$4 = $38; if ((var$4 | 0) == (0 | 0)) { break label$9 } @@ -8074,13 +8136,7 @@ function asmFunc(global, env, buffer) { var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -8094,15 +8150,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $39 = 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; + $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 = $42; + var$3 = $39; i64toi32_i32$1 = var$0$hi; if ((var$0 | 0) == (0 | 0)) { break label$7 @@ -8114,7 +8170,6 @@ function asmFunc(global, env, buffer) { if (var$4 & var$3 | 0) { break label$6 } - $60 = __tempMemory__; i64toi32_i32$1 = 0; i64toi32_i32$2 = var$4 & var$2 | 0; i64toi32_i32$3 = 0; @@ -8123,35 +8178,28 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $43 = 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; - $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - $65$hi = i64toi32_i32$3; + $63$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$1 = var$0; i64toi32_i32$2 = 0; i64toi32_i32$0 = 4294967295; i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0; - $67$hi = i64toi32_i32$2; - i64toi32_i32$2 = $65$hi; - i64toi32_i32$3 = $43; - i64toi32_i32$1 = $67$hi; - i64toi32_i32$0 = $67; + $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; - $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0; - i64toi32_i32$3 = $60; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = $68; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -8170,7 +8218,6 @@ function asmFunc(global, env, buffer) { var$2 = var$2 + 1 | 0; break label$3; } - $93 = __tempMemory__; 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; @@ -8180,21 +8227,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $44 = 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; - $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $41 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - i64toi32_i32$2 = $93; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = $44; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -8208,36 +8249,30 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$2 = var$0$hi; i64toi32_i32$2 = 0; - i64toi32_i32$1 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = var$4 & var$0 | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = i64toi32_i32$2; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; - $124$hi = i64toi32_i32$2; + $120$hi = i64toi32_i32$2; i64toi32_i32$2 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$1 = $124$hi; + 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; - $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; - $45 = (((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; + $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 = $45; + i64toi32_i32$3 = $42; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; return i64toi32_i32$3 | 0; } @@ -8246,45 +8281,45 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$3 = var$0$hi; i64toi32_i32$3 = 0; - $133$hi = i64toi32_i32$3; + $129$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$2 = var$0; - i64toi32_i32$1 = $133$hi; + 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; - $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + $43 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; - $46 = (((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; + $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 = $46; + var$5 = $43; var$5$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$1 = 0; - $138$hi = i64toi32_i32$1; + $134$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$2 = $138$hi; + 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; - $47 = 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; - $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + $44 = i64toi32_i32$3 << i64toi32_i32$4 | 0; } } - var$0 = $47; + var$0 = $44; var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { @@ -8309,16 +8344,16 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; - $48 = 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; - $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0; } } - $144 = $48; - $144$hi = i64toi32_i32$1; + $140 = $45; + $140$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$5 = var$0; i64toi32_i32$2 = 0; @@ -8327,24 +8362,24 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; + $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; - $49 = (((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; + $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; } } - $146$hi = i64toi32_i32$2; - i64toi32_i32$2 = $144$hi; - i64toi32_i32$1 = $144; - i64toi32_i32$5 = $146$hi; - i64toi32_i32$0 = $49; + $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; - $148 = var$5; - $148$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; @@ -8362,15 +8397,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0; - $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; + $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; - $50 = (((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; + $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 = $50; + var$6 = $47; var$6$hi = i64toi32_i32$2; i64toi32_i32$2 = var$1$hi; i64toi32_i32$2 = var$6$hi; @@ -8378,12 +8413,12 @@ function asmFunc(global, env, buffer) { i64toi32_i32$5 = var$1$hi; i64toi32_i32$0 = var$1; i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0; - $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0; - $155$hi = i64toi32_i32$5; - i64toi32_i32$5 = $148$hi; - i64toi32_i32$2 = $148; - i64toi32_i32$4 = $155$hi; - i64toi32_i32$0 = $155; + $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; @@ -8398,18 +8433,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $51 = 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; - $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $158$hi = i64toi32_i32$2; + $154$hi = i64toi32_i32$2; i64toi32_i32$2 = var$7$hi; - i64toi32_i32$2 = $158$hi; - i64toi32_i32$3 = $51; + 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; @@ -8435,13 +8470,7 @@ function asmFunc(global, env, buffer) { } } i64toi32_i32$3 = var$5$hi; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$5; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -8450,18 +8479,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $52 = 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; - $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $49 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $170$hi = i64toi32_i32$2; + $165$hi = i64toi32_i32$2; i64toi32_i32$2 = var$6$hi; - i64toi32_i32$2 = $170$hi; - i64toi32_i32$3 = $52; + 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; @@ -8470,13 +8499,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3 | 0; } i64toi32_i32$3 = var$0$hi; - i64toi32_i32$5 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = var$0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -8508,16 +8531,15 @@ function asmFunc(global, env, buffer) { 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$2 = 0, wasm2js_i32$0 = 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$2 = __tempMemory__; - i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; - i64toi32_i32$1 = (wasm2js_i32$0 = i64toi32_i32$2, HEAPU8[(wasm2js_i32$0 + 4 | 0) >> 0] | 0 | 0 | (HEAPU8[(wasm2js_i32$0 + 5 | 0) >> 0] | 0 | 0) << 8 | (HEAPU8[(wasm2js_i32$0 + 6 | 0) >> 0] | 0 | 0) << 16 | (HEAPU8[(wasm2js_i32$0 + 7 | 0) >> 0] | 0 | 0) << 24); + 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; } @@ -8540,14 +8562,30 @@ function asmFunc(global, env, buffer) { } const memasmFunc = new ArrayBuffer(65536); -const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0},memasmFunc); +const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0,getTempRet0},memasmFunc); export const i32_rem_s_3 = retasmFunc.i32_rem_s_3; export const i32_rem_u_3 = retasmFunc.i32_rem_u_3; export const i64_rem_s_3 = retasmFunc.i64_rem_s_3; export const i64_rem_u_3 = retasmFunc.i64_rem_u_3; -import { __tempMemory__ } from 'env'; 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) { "almost asm"; var HEAP8 = new global.Int8Array(buffer); @@ -8571,7 +8609,7 @@ function asmFunc(global, env, buffer) { var nan = global.NaN; var infinity = global.Infinity; var setTempRet0 = env.setTempRet0; - var __tempMemory__ = env.__tempMemory__ | 0; + var getTempRet0 = env.getTempRet0; var i64toi32_i32$HIGH_BITS = 0; function $0(x) { x = x | 0; @@ -8713,6 +8751,62 @@ function asmFunc(global, env, buffer) { 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; @@ -8820,7 +8914,7 @@ function asmFunc(global, env, buffer) { 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$1 = 0, i64toi32_i32$4 = 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, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 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 : { @@ -8840,15 +8934,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $40 = (((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; + $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 = $40; + var$2 = $37; if (var$2) { block : { i64toi32_i32$1 = var$1$hi; @@ -8864,15 +8958,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; - $41 = (((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; + $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 = $41; + var$4 = $38; if ((var$4 | 0) == (0 | 0)) { break label$9 } @@ -8896,13 +8990,7 @@ function asmFunc(global, env, buffer) { var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -8916,15 +9004,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $39 = 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; + $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 = $42; + var$3 = $39; i64toi32_i32$1 = var$0$hi; if ((var$0 | 0) == (0 | 0)) { break label$7 @@ -8936,7 +9024,6 @@ function asmFunc(global, env, buffer) { if (var$4 & var$3 | 0) { break label$6 } - $60 = __tempMemory__; i64toi32_i32$1 = 0; i64toi32_i32$2 = var$4 & var$2 | 0; i64toi32_i32$3 = 0; @@ -8945,35 +9032,28 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $43 = 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; - $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - $65$hi = i64toi32_i32$3; + $63$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$1 = var$0; i64toi32_i32$2 = 0; i64toi32_i32$0 = 4294967295; i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0; - $67$hi = i64toi32_i32$2; - i64toi32_i32$2 = $65$hi; - i64toi32_i32$3 = $43; - i64toi32_i32$1 = $67$hi; - i64toi32_i32$0 = $67; + $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; - $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0; - i64toi32_i32$3 = $60; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = $68; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -8992,7 +9072,6 @@ function asmFunc(global, env, buffer) { var$2 = var$2 + 1 | 0; break label$3; } - $93 = __tempMemory__; 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; @@ -9002,21 +9081,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $44 = 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; - $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $41 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - i64toi32_i32$2 = $93; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = $44; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -9030,36 +9103,30 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$2 = var$0$hi; i64toi32_i32$2 = 0; - i64toi32_i32$1 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = var$4 & var$0 | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = i64toi32_i32$2; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; - $124$hi = i64toi32_i32$2; + $120$hi = i64toi32_i32$2; i64toi32_i32$2 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$1 = $124$hi; + 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; - $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; - $45 = (((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; + $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 = $45; + i64toi32_i32$3 = $42; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; return i64toi32_i32$3 | 0; } @@ -9068,45 +9135,45 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$3 = var$0$hi; i64toi32_i32$3 = 0; - $133$hi = i64toi32_i32$3; + $129$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$2 = var$0; - i64toi32_i32$1 = $133$hi; + 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; - $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + $43 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; - $46 = (((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; + $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 = $46; + var$5 = $43; var$5$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$1 = 0; - $138$hi = i64toi32_i32$1; + $134$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$2 = $138$hi; + 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; - $47 = 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; - $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + $44 = i64toi32_i32$3 << i64toi32_i32$4 | 0; } } - var$0 = $47; + var$0 = $44; var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { @@ -9131,16 +9198,16 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; - $48 = 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; - $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0; } } - $144 = $48; - $144$hi = i64toi32_i32$1; + $140 = $45; + $140$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$5 = var$0; i64toi32_i32$2 = 0; @@ -9149,24 +9216,24 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; + $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; - $49 = (((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; + $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; } } - $146$hi = i64toi32_i32$2; - i64toi32_i32$2 = $144$hi; - i64toi32_i32$1 = $144; - i64toi32_i32$5 = $146$hi; - i64toi32_i32$0 = $49; + $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; - $148 = var$5; - $148$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; @@ -9184,15 +9251,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0; - $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; + $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; - $50 = (((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; + $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 = $50; + var$6 = $47; var$6$hi = i64toi32_i32$2; i64toi32_i32$2 = var$1$hi; i64toi32_i32$2 = var$6$hi; @@ -9200,12 +9267,12 @@ function asmFunc(global, env, buffer) { i64toi32_i32$5 = var$1$hi; i64toi32_i32$0 = var$1; i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0; - $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0; - $155$hi = i64toi32_i32$5; - i64toi32_i32$5 = $148$hi; - i64toi32_i32$2 = $148; - i64toi32_i32$4 = $155$hi; - i64toi32_i32$0 = $155; + $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; @@ -9220,18 +9287,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $51 = 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; - $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $158$hi = i64toi32_i32$2; + $154$hi = i64toi32_i32$2; i64toi32_i32$2 = var$7$hi; - i64toi32_i32$2 = $158$hi; - i64toi32_i32$3 = $51; + 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; @@ -9257,13 +9324,7 @@ function asmFunc(global, env, buffer) { } } i64toi32_i32$3 = var$5$hi; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$5; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -9272,18 +9333,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $52 = 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; - $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $49 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $170$hi = i64toi32_i32$2; + $165$hi = i64toi32_i32$2; i64toi32_i32$2 = var$6$hi; - i64toi32_i32$2 = $170$hi; - i64toi32_i32$3 = $52; + 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; @@ -9292,13 +9353,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3 | 0; } i64toi32_i32$3 = var$0$hi; - i64toi32_i32$5 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = var$0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -9330,16 +9385,15 @@ function asmFunc(global, env, buffer) { 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$2 = 0, wasm2js_i32$0 = 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$2 = __tempMemory__; - i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; - i64toi32_i32$1 = (wasm2js_i32$0 = i64toi32_i32$2, HEAPU8[(wasm2js_i32$0 + 4 | 0) >> 0] | 0 | 0 | (HEAPU8[(wasm2js_i32$0 + 5 | 0) >> 0] | 0 | 0) << 8 | (HEAPU8[(wasm2js_i32$0 + 6 | 0) >> 0] | 0 | 0) << 16 | (HEAPU8[(wasm2js_i32$0 + 7 | 0) >> 0] | 0 | 0) << 24); + 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; } @@ -9362,14 +9416,30 @@ function asmFunc(global, env, buffer) { } const memasmFunc = new ArrayBuffer(65536); -const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0},memasmFunc); +const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0,getTempRet0},memasmFunc); export const i32_rem_s_5 = retasmFunc.i32_rem_s_5; export const i32_rem_u_5 = retasmFunc.i32_rem_u_5; export const i64_rem_s_5 = retasmFunc.i64_rem_s_5; export const i64_rem_u_5 = retasmFunc.i64_rem_u_5; -import { __tempMemory__ } from 'env'; 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) { "almost asm"; var HEAP8 = new global.Int8Array(buffer); @@ -9393,7 +9463,7 @@ function asmFunc(global, env, buffer) { var nan = global.NaN; var infinity = global.Infinity; var setTempRet0 = env.setTempRet0; - var __tempMemory__ = env.__tempMemory__ | 0; + var getTempRet0 = env.getTempRet0; var i64toi32_i32$HIGH_BITS = 0; function $0(x) { x = x | 0; @@ -9535,6 +9605,62 @@ function asmFunc(global, env, buffer) { 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; @@ -9642,7 +9768,7 @@ function asmFunc(global, env, buffer) { 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$1 = 0, i64toi32_i32$4 = 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, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 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 : { @@ -9662,15 +9788,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $40 = (((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; + $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 = $40; + var$2 = $37; if (var$2) { block : { i64toi32_i32$1 = var$1$hi; @@ -9686,15 +9812,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; - $41 = (((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; + $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 = $41; + var$4 = $38; if ((var$4 | 0) == (0 | 0)) { break label$9 } @@ -9718,13 +9844,7 @@ function asmFunc(global, env, buffer) { var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -9738,15 +9858,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $39 = 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; + $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 = $42; + var$3 = $39; i64toi32_i32$1 = var$0$hi; if ((var$0 | 0) == (0 | 0)) { break label$7 @@ -9758,7 +9878,6 @@ function asmFunc(global, env, buffer) { if (var$4 & var$3 | 0) { break label$6 } - $60 = __tempMemory__; i64toi32_i32$1 = 0; i64toi32_i32$2 = var$4 & var$2 | 0; i64toi32_i32$3 = 0; @@ -9767,35 +9886,28 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $43 = 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; - $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - $65$hi = i64toi32_i32$3; + $63$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$1 = var$0; i64toi32_i32$2 = 0; i64toi32_i32$0 = 4294967295; i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0; - $67$hi = i64toi32_i32$2; - i64toi32_i32$2 = $65$hi; - i64toi32_i32$3 = $43; - i64toi32_i32$1 = $67$hi; - i64toi32_i32$0 = $67; + $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; - $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0; - i64toi32_i32$3 = $60; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = $68; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -9814,7 +9926,6 @@ function asmFunc(global, env, buffer) { var$2 = var$2 + 1 | 0; break label$3; } - $93 = __tempMemory__; 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; @@ -9824,21 +9935,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $44 = 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; - $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $41 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - i64toi32_i32$2 = $93; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = $44; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -9852,36 +9957,30 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$2 = var$0$hi; i64toi32_i32$2 = 0; - i64toi32_i32$1 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = var$4 & var$0 | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = i64toi32_i32$2; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; - $124$hi = i64toi32_i32$2; + $120$hi = i64toi32_i32$2; i64toi32_i32$2 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$1 = $124$hi; + 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; - $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; - $45 = (((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; + $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 = $45; + i64toi32_i32$3 = $42; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; return i64toi32_i32$3 | 0; } @@ -9890,45 +9989,45 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$3 = var$0$hi; i64toi32_i32$3 = 0; - $133$hi = i64toi32_i32$3; + $129$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$2 = var$0; - i64toi32_i32$1 = $133$hi; + 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; - $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + $43 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; - $46 = (((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; + $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 = $46; + var$5 = $43; var$5$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$1 = 0; - $138$hi = i64toi32_i32$1; + $134$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$2 = $138$hi; + 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; - $47 = 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; - $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + $44 = i64toi32_i32$3 << i64toi32_i32$4 | 0; } } - var$0 = $47; + var$0 = $44; var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { @@ -9953,16 +10052,16 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; - $48 = 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; - $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0; } } - $144 = $48; - $144$hi = i64toi32_i32$1; + $140 = $45; + $140$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$5 = var$0; i64toi32_i32$2 = 0; @@ -9971,24 +10070,24 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; + $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; - $49 = (((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; + $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; } } - $146$hi = i64toi32_i32$2; - i64toi32_i32$2 = $144$hi; - i64toi32_i32$1 = $144; - i64toi32_i32$5 = $146$hi; - i64toi32_i32$0 = $49; + $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; - $148 = var$5; - $148$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; @@ -10006,15 +10105,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0; - $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; + $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; - $50 = (((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; + $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 = $50; + var$6 = $47; var$6$hi = i64toi32_i32$2; i64toi32_i32$2 = var$1$hi; i64toi32_i32$2 = var$6$hi; @@ -10022,12 +10121,12 @@ function asmFunc(global, env, buffer) { i64toi32_i32$5 = var$1$hi; i64toi32_i32$0 = var$1; i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0; - $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0; - $155$hi = i64toi32_i32$5; - i64toi32_i32$5 = $148$hi; - i64toi32_i32$2 = $148; - i64toi32_i32$4 = $155$hi; - i64toi32_i32$0 = $155; + $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; @@ -10042,18 +10141,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $51 = 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; - $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $158$hi = i64toi32_i32$2; + $154$hi = i64toi32_i32$2; i64toi32_i32$2 = var$7$hi; - i64toi32_i32$2 = $158$hi; - i64toi32_i32$3 = $51; + 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; @@ -10079,13 +10178,7 @@ function asmFunc(global, env, buffer) { } } i64toi32_i32$3 = var$5$hi; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$5; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -10094,18 +10187,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $52 = 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; - $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $49 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $170$hi = i64toi32_i32$2; + $165$hi = i64toi32_i32$2; i64toi32_i32$2 = var$6$hi; - i64toi32_i32$2 = $170$hi; - i64toi32_i32$3 = $52; + 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; @@ -10114,13 +10207,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3 | 0; } i64toi32_i32$3 = var$0$hi; - i64toi32_i32$5 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = var$0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -10152,16 +10239,15 @@ function asmFunc(global, env, buffer) { 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$2 = 0, wasm2js_i32$0 = 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$2 = __tempMemory__; - i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; - i64toi32_i32$1 = (wasm2js_i32$0 = i64toi32_i32$2, HEAPU8[(wasm2js_i32$0 + 4 | 0) >> 0] | 0 | 0 | (HEAPU8[(wasm2js_i32$0 + 5 | 0) >> 0] | 0 | 0) << 8 | (HEAPU8[(wasm2js_i32$0 + 6 | 0) >> 0] | 0 | 0) << 16 | (HEAPU8[(wasm2js_i32$0 + 7 | 0) >> 0] | 0 | 0) << 24); + 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; } @@ -10184,7 +10270,7 @@ function asmFunc(global, env, buffer) { } const memasmFunc = new ArrayBuffer(65536); -const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0},memasmFunc); +const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0,getTempRet0},memasmFunc); export const i32_rem_s_7 = retasmFunc.i32_rem_s_7; export const i32_rem_u_7 = retasmFunc.i32_rem_u_7; export const i64_rem_s_7 = retasmFunc.i64_rem_s_7; diff --git a/test/wasm2js/left-to-right.2asm.js b/test/wasm2js/left-to-right.2asm.js index 78e903396..490293751 100644 --- a/test/wasm2js/left-to-right.2asm.js +++ b/test/wasm2js/left-to-right.2asm.js @@ -1,5 +1,41 @@ -import { __tempMemory__ } 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 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 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 wasm2js_scratch_store_f32(value) { + f32ScratchView[0] = value; + } + function asmFunc(global, env, buffer) { "almost asm"; var HEAP8 = new global.Int8Array(buffer); @@ -22,7 +58,7 @@ function asmFunc(global, env, buffer) { var abort = env.abort; var nan = global.NaN; var infinity = global.Infinity; - var __tempMemory__ = env.__tempMemory__ | 0; + var getTempRet0 = env.getTempRet0; var i64toi32_i32$HIGH_BITS = 0; function i32_t0($0, $1) { $0 = $0 | 0; @@ -1104,7 +1140,7 @@ function asmFunc(global, env, buffer) { function $98() { reset(); - (HEAPF32[0] = Math_fround(f32_left()), HEAP32[0] | 0) & 2147483647 | 0 | ((HEAPF32[0] = Math_fround(f32_right()), HEAP32[0] | 0) & 2147483648 | 0) | 0; + (wasm2js_scratch_store_f32(Math_fround(f32_left())), wasm2js_scratch_load_i32(0)) & 2147483647 | 0 | ((wasm2js_scratch_store_f32(Math_fround(f32_right())), wasm2js_scratch_load_i32(0)) & 2147483648 | 0) | 0; return get() | 0 | 0; } @@ -1213,25 +1249,19 @@ function asmFunc(global, env, buffer) { } function $115() { - var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $0 = 0.0, $2 = 0, $2$hi = 0, $3 = 0.0, $5 = 0, $5$hi = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0, wasm2js_i32$1 = 0; + var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $2 = 0, $2$hi = 0, $5 = 0, $5$hi = 0; reset(); - $0 = +f64_left(); - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = $0; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$2 = HEAP32[__tempMemory__ >> 2] | 0; + wasm2js_scratch_store_f64(+(+f64_left())); + 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 = 4294967295; i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$1 | 0; $2 = i64toi32_i32$2 & i64toi32_i32$3 | 0; $2$hi = i64toi32_i32$1; - $3 = +f64_right(); - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = $3; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$1 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; - i64toi32_i32$0 = HEAP32[__tempMemory__ >> 2] | 0; + wasm2js_scratch_store_f64(+(+f64_right())); + 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; @@ -1242,13 +1272,9 @@ function asmFunc(global, env, buffer) { i64toi32_i32$0 = $5$hi; i64toi32_i32$3 = $5; i64toi32_i32$0 = i64toi32_i32$2 | i64toi32_i32$0 | 0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_i32$1 = i64toi32_i32$1 | i64toi32_i32$3 | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = __tempMemory__; - wasm2js_i32$1 = i64toi32_i32$0; - HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; - +HEAPF64[__tempMemory__ >> 3]; + wasm2js_scratch_store_i32(0 | 0, i64toi32_i32$1 | i64toi32_i32$3 | 0 | 0); + wasm2js_scratch_store_i32(1 | 0, i64toi32_i32$0 | 0); + +wasm2js_scratch_load_f64(); return get() | 0 | 0; } @@ -1365,6 +1391,62 @@ function asmFunc(global, env, buffer) { return $3 | 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 = 0, $1$hi = 0, $4$hi = 0; + i64toi32_i32$0 = 0; + $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; + 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, $0$hi) { + $0 = $0 | 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; + i64toi32_i32$2 = $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; + $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_builtins3int3mul3Mul3mul17h070e9a1c69faec5bE(var$0, var$0$hi, var$1, var$1$hi) { var$0 = var$0 | 0; var$0$hi = var$0$hi | 0; @@ -1680,7 +1762,7 @@ function asmFunc(global, env, buffer) { 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$1 = 0, i64toi32_i32$4 = 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, $40_1 = 0, $41_1 = 0, $42_1 = 0, $43_1 = 0, $44_1 = 0, $45_1 = 0, $46_1 = 0, $47_1 = 0, var$8$hi = 0, $48_1 = 0, $49_1 = 0, $50_1 = 0, $51_1 = 0, var$7$hi = 0, $52_1 = 0, $60_1 = 0, $65$hi = 0, $67_1 = 0, $67$hi = 0, $68_1 = 0, $93_1 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 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_1 = 0, $38_1 = 0, $39_1 = 0, $40_1 = 0, $41_1 = 0, $42_1 = 0, $43_1 = 0, $44_1 = 0, var$8$hi = 0, $45_1 = 0, $46_1 = 0, $47_1 = 0, $48_1 = 0, var$7$hi = 0, $49_1 = 0, $63$hi = 0, $65_1 = 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 : { @@ -1700,15 +1782,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $40_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $37_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $40_1 = (((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; + $37_1 = (((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 = $40_1; + var$2 = $37_1; if (var$2) { block : { i64toi32_i32$1 = var$1$hi; @@ -1724,15 +1806,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $41_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $38_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; - $41_1 = (((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; + $38_1 = (((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 = $41_1; + var$4 = $38_1; if ((var$4 | 0) == (0 | 0)) { break label$9 } @@ -1756,13 +1838,7 @@ function asmFunc(global, env, buffer) { var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -1776,15 +1852,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $42_1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $39_1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; - $42_1 = (((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; + $39_1 = (((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 = $42_1; + var$3 = $39_1; i64toi32_i32$1 = var$0$hi; if ((var$0 | 0) == (0 | 0)) { break label$7 @@ -1796,7 +1872,6 @@ function asmFunc(global, env, buffer) { if (var$4 & var$3 | 0) { break label$6 } - $60_1 = __tempMemory__; i64toi32_i32$1 = 0; i64toi32_i32$2 = var$4 & var$2 | 0; i64toi32_i32$3 = 0; @@ -1805,35 +1880,28 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $43_1 = 0; + $40_1 = 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; - $43_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $40_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - $65$hi = i64toi32_i32$3; + $63$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$1 = var$0; i64toi32_i32$2 = 0; i64toi32_i32$0 = 4294967295; i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $67_1 = i64toi32_i32$1 & i64toi32_i32$0 | 0; - $67$hi = i64toi32_i32$2; - i64toi32_i32$2 = $65$hi; - i64toi32_i32$3 = $43_1; - i64toi32_i32$1 = $67$hi; - i64toi32_i32$0 = $67_1; + $65_1 = i64toi32_i32$1 & i64toi32_i32$0 | 0; + $65$hi = i64toi32_i32$2; + i64toi32_i32$2 = $63$hi; + i64toi32_i32$3 = $40_1; + i64toi32_i32$1 = $65$hi; + i64toi32_i32$0 = $65_1; i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0; - $68_1 = i64toi32_i32$3 | i64toi32_i32$0 | 0; - i64toi32_i32$3 = $60_1; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = $68_1; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -1852,7 +1920,6 @@ function asmFunc(global, env, buffer) { var$2 = var$2 + 1 | 0; break label$3; } - $93_1 = __tempMemory__; 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; @@ -1862,21 +1929,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $44_1 = 0; + $41_1 = 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; - $44_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $41_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - i64toi32_i32$2 = $93_1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = $44_1; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + legalfunc$wasm2js_scratch_store_i64($41_1 | 0, i64toi32_i32$1 | 0); i64toi32_i32$1 = 0; i64toi32_i32$2 = var$4; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; @@ -1890,36 +1951,30 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$2 = var$0$hi; i64toi32_i32$2 = 0; - i64toi32_i32$1 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = var$4 & var$0 | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = i64toi32_i32$2; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; - $124$hi = i64toi32_i32$2; + $120$hi = i64toi32_i32$2; i64toi32_i32$2 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$1 = $124$hi; + 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; - $45_1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $42_1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; - $45_1 = (((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; + $42_1 = (((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 = $45_1; + i64toi32_i32$3 = $42_1; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; return i64toi32_i32$3 | 0; } @@ -1928,45 +1983,45 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$3 = var$0$hi; i64toi32_i32$3 = 0; - $133$hi = i64toi32_i32$3; + $129$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$2 = var$0; - i64toi32_i32$1 = $133$hi; + 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; - $46_1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + $43_1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; - $46_1 = (((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; + $43_1 = (((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 = $46_1; + var$5 = $43_1; var$5$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$1 = 0; - $138$hi = i64toi32_i32$1; + $134$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$2 = $138$hi; + 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; - $47_1 = 0; + $44_1 = 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; - $47_1 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + $44_1 = i64toi32_i32$3 << i64toi32_i32$4 | 0; } } - var$0 = $47_1; + var$0 = $44_1; var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { @@ -1991,16 +2046,16 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; - $48_1 = 0; + $45_1 = 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; - $48_1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + $45_1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; } } - $144 = $48_1; - $144$hi = i64toi32_i32$1; + $140 = $45_1; + $140$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$5 = var$0; i64toi32_i32$2 = 0; @@ -2009,24 +2064,24 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $49_1 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; + $46_1 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; - $49_1 = (((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; + $46_1 = (((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; } } - $146$hi = i64toi32_i32$2; - i64toi32_i32$2 = $144$hi; - i64toi32_i32$1 = $144; - i64toi32_i32$5 = $146$hi; - i64toi32_i32$0 = $49_1; + $142$hi = i64toi32_i32$2; + i64toi32_i32$2 = $140$hi; + i64toi32_i32$1 = $140; + i64toi32_i32$5 = $142$hi; + i64toi32_i32$0 = $46_1; 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; - $148 = var$5; - $148$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; @@ -2044,15 +2099,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0; - $50_1 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; + $47_1 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; - $50_1 = (((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; + $47_1 = (((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 = $50_1; + var$6 = $47_1; var$6$hi = i64toi32_i32$2; i64toi32_i32$2 = var$1$hi; i64toi32_i32$2 = var$6$hi; @@ -2060,12 +2115,12 @@ function asmFunc(global, env, buffer) { i64toi32_i32$5 = var$1$hi; i64toi32_i32$0 = var$1; i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0; - $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0; - $155$hi = i64toi32_i32$5; - i64toi32_i32$5 = $148$hi; - i64toi32_i32$2 = $148; - i64toi32_i32$4 = $155$hi; - i64toi32_i32$0 = $155; + $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; @@ -2080,18 +2135,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $51_1 = 0; + $48_1 = 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; - $51_1 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $48_1 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $158$hi = i64toi32_i32$2; + $154$hi = i64toi32_i32$2; i64toi32_i32$2 = var$7$hi; - i64toi32_i32$2 = $158$hi; - i64toi32_i32$3 = $51_1; + i64toi32_i32$2 = $154$hi; + i64toi32_i32$3 = $48_1; i64toi32_i32$5 = var$7$hi; i64toi32_i32$0 = var$7; i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0; @@ -2117,13 +2172,7 @@ function asmFunc(global, env, buffer) { } } i64toi32_i32$3 = var$5$hi; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$5; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -2132,18 +2181,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $52_1 = 0; + $49_1 = 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; - $52_1 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $49_1 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $170$hi = i64toi32_i32$2; + $165$hi = i64toi32_i32$2; i64toi32_i32$2 = var$6$hi; - i64toi32_i32$2 = $170$hi; - i64toi32_i32$3 = $52_1; + i64toi32_i32$2 = $165$hi; + i64toi32_i32$3 = $49_1; i64toi32_i32$5 = var$6$hi; i64toi32_i32$0 = var$6; i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0; @@ -2152,13 +2201,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3 | 0; } i64toi32_i32$3 = var$0$hi; - i64toi32_i32$5 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = var$0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -2238,16 +2281,15 @@ function asmFunc(global, env, buffer) { 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$2 = 0, wasm2js_i32$0 = 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$2 = __tempMemory__; - i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; - i64toi32_i32$1 = (wasm2js_i32$0 = i64toi32_i32$2, HEAPU8[(wasm2js_i32$0 + 4 | 0) >> 0] | 0 | 0 | (HEAPU8[(wasm2js_i32$0 + 5 | 0) >> 0] | 0 | 0) << 8 | (HEAPU8[(wasm2js_i32$0 + 6 | 0) >> 0] | 0 | 0) << 16 | (HEAPU8[(wasm2js_i32$0 + 7 | 0) >> 0] | 0 | 0) << 24); + 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; } @@ -2388,7 +2430,7 @@ function asmFunc(global, env, buffer) { } const memasmFunc = new ArrayBuffer(65536); -const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc); +const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },getTempRet0},memasmFunc); export const i32_add = retasmFunc.i32_add; export const i32_sub = retasmFunc.i32_sub; export const i32_mul = retasmFunc.i32_mul; diff --git a/test/wasm2js/reinterpret.2asm.js b/test/wasm2js/reinterpret.2asm.js index 018de2245..0084b9ad6 100644 --- a/test/wasm2js/reinterpret.2asm.js +++ b/test/wasm2js/reinterpret.2asm.js @@ -1,5 +1,34 @@ -import { __tempMemory__ } from 'env'; + + 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 wasm2js_scratch_store_f32(value) { + f32ScratchView[0] = value; + } + + function wasm2js_scratch_load_f32() { + return f32ScratchView[0]; + } + function asmFunc(global, env, buffer) { "almost asm"; var HEAP8 = new global.Int8Array(buffer); @@ -22,31 +51,24 @@ function asmFunc(global, env, buffer) { var abort = env.abort; var nan = global.NaN; var infinity = global.Infinity; - var __tempMemory__ = env.__tempMemory__ | 0; function $1($0) { $0 = $0 | 0; - return ((HEAPF32[0] = (HEAP32[0] = $0, HEAPF32[0]), HEAP32[0] | 0) | 0) == ($0 | 0) | 0; + return ((wasm2js_scratch_store_f32((wasm2js_scratch_store_i32(0, $0), wasm2js_scratch_load_f32())), wasm2js_scratch_load_i32(0)) | 0) == ($0 | 0) | 0; } function $2($0, $0$hi) { $0 = $0 | 0; $0$hi = $0$hi | 0; - var i64toi32_i32$0 = 0, $3$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f64$0 = 0.0; + var i64toi32_i32$0 = 0, $3$hi = 0; i64toi32_i32$0 = $0$hi; - wasm2js_i32$0 = __tempMemory__; - wasm2js_i32$1 = $0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = __tempMemory__; - wasm2js_i32$1 = i64toi32_i32$0; - HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = +HEAPF64[__tempMemory__ >> 3]; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; + wasm2js_scratch_store_i32(0 | 0, $0 | 0); + wasm2js_scratch_store_i32(1 | 0, i64toi32_i32$0 | 0); + wasm2js_scratch_store_f64(+(+wasm2js_scratch_load_f64())); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; $3$hi = i64toi32_i32$0; i64toi32_i32$0 = $0$hi; i64toi32_i32$0 = $3$hi; - return (HEAP32[__tempMemory__ >> 2] | 0 | 0) == ($0 | 0) & (i64toi32_i32$0 | 0) == ($0$hi | 0) | 0 | 0; + return (wasm2js_scratch_load_i32(0 | 0) | 0 | 0) == ($0 | 0) & (i64toi32_i32$0 | 0) == ($0$hi | 0) | 0 | 0; } function legalstub$2($0, $1_1) { diff --git a/test/wasm2js/traps.2asm.js b/test/wasm2js/traps.2asm.js index 63a027e9f..85b1c6a3f 100644 --- a/test/wasm2js/traps.2asm.js +++ b/test/wasm2js/traps.2asm.js @@ -1,6 +1,16 @@ -import { __tempMemory__ } from 'env'; 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) { "almost asm"; var HEAP8 = new global.Int8Array(buffer); @@ -24,7 +34,6 @@ function asmFunc(global, env, buffer) { var nan = global.NaN; var infinity = global.Infinity; var setTempRet0 = env.setTempRet0; - var __tempMemory__ = env.__tempMemory__ | 0; var i64toi32_i32$HIGH_BITS = 0; function $0(x, y) { x = x | 0; @@ -242,6 +251,30 @@ function asmFunc(global, env, buffer) { return $4 | 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; @@ -373,7 +406,7 @@ function asmFunc(global, env, buffer) { 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$1 = 0, i64toi32_i32$4 = 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, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 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 : { @@ -393,15 +426,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $40 = (((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; + $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 = $40; + var$2 = $37; if (var$2) { block : { i64toi32_i32$1 = var$1$hi; @@ -417,15 +450,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; - $41 = (((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; + $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 = $41; + var$4 = $38; if ((var$4 | 0) == (0 | 0)) { break label$9 } @@ -449,13 +482,7 @@ function asmFunc(global, env, buffer) { var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -469,15 +496,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $39 = 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; + $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 = $42; + var$3 = $39; i64toi32_i32$1 = var$0$hi; if ((var$0 | 0) == (0 | 0)) { break label$7 @@ -489,7 +516,6 @@ function asmFunc(global, env, buffer) { if (var$4 & var$3 | 0) { break label$6 } - $60 = __tempMemory__; i64toi32_i32$1 = 0; i64toi32_i32$2 = var$4 & var$2 | 0; i64toi32_i32$3 = 0; @@ -498,35 +524,28 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $43 = 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; - $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - $65$hi = i64toi32_i32$3; + $63$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$1 = var$0; i64toi32_i32$2 = 0; i64toi32_i32$0 = 4294967295; i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0; - $67$hi = i64toi32_i32$2; - i64toi32_i32$2 = $65$hi; - i64toi32_i32$3 = $43; - i64toi32_i32$1 = $67$hi; - i64toi32_i32$0 = $67; + $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; - $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0; - i64toi32_i32$3 = $60; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = $68; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -545,7 +564,6 @@ function asmFunc(global, env, buffer) { var$2 = var$2 + 1 | 0; break label$3; } - $93 = __tempMemory__; 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; @@ -555,21 +573,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $44 = 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; - $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $41 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - i64toi32_i32$2 = $93; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = $44; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -583,36 +595,30 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$2 = var$0$hi; i64toi32_i32$2 = 0; - i64toi32_i32$1 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = var$4 & var$0 | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = i64toi32_i32$2; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; - $124$hi = i64toi32_i32$2; + $120$hi = i64toi32_i32$2; i64toi32_i32$2 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$1 = $124$hi; + 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; - $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; - $45 = (((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; + $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 = $45; + i64toi32_i32$3 = $42; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; return i64toi32_i32$3 | 0; } @@ -621,45 +627,45 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$3 = var$0$hi; i64toi32_i32$3 = 0; - $133$hi = i64toi32_i32$3; + $129$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$2 = var$0; - i64toi32_i32$1 = $133$hi; + 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; - $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + $43 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; - $46 = (((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; + $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 = $46; + var$5 = $43; var$5$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$1 = 0; - $138$hi = i64toi32_i32$1; + $134$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$2 = $138$hi; + 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; - $47 = 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; - $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + $44 = i64toi32_i32$3 << i64toi32_i32$4 | 0; } } - var$0 = $47; + var$0 = $44; var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { @@ -684,16 +690,16 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; - $48 = 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; - $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0; } } - $144 = $48; - $144$hi = i64toi32_i32$1; + $140 = $45; + $140$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$5 = var$0; i64toi32_i32$2 = 0; @@ -702,24 +708,24 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; + $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; - $49 = (((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; + $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; } } - $146$hi = i64toi32_i32$2; - i64toi32_i32$2 = $144$hi; - i64toi32_i32$1 = $144; - i64toi32_i32$5 = $146$hi; - i64toi32_i32$0 = $49; + $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; - $148 = var$5; - $148$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; @@ -737,15 +743,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0; - $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; + $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; - $50 = (((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; + $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 = $50; + var$6 = $47; var$6$hi = i64toi32_i32$2; i64toi32_i32$2 = var$1$hi; i64toi32_i32$2 = var$6$hi; @@ -753,12 +759,12 @@ function asmFunc(global, env, buffer) { i64toi32_i32$5 = var$1$hi; i64toi32_i32$0 = var$1; i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0; - $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0; - $155$hi = i64toi32_i32$5; - i64toi32_i32$5 = $148$hi; - i64toi32_i32$2 = $148; - i64toi32_i32$4 = $155$hi; - i64toi32_i32$0 = $155; + $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; @@ -773,18 +779,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $51 = 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; - $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $158$hi = i64toi32_i32$2; + $154$hi = i64toi32_i32$2; i64toi32_i32$2 = var$7$hi; - i64toi32_i32$2 = $158$hi; - i64toi32_i32$3 = $51; + 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; @@ -810,13 +816,7 @@ function asmFunc(global, env, buffer) { } } i64toi32_i32$3 = var$5$hi; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$5; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -825,18 +825,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $52 = 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; - $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $49 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $170$hi = i64toi32_i32$2; + $165$hi = i64toi32_i32$2; i64toi32_i32$2 = var$6$hi; - i64toi32_i32$2 = $170$hi; - i64toi32_i32$3 = $52; + 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; @@ -845,13 +845,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3 | 0; } i64toi32_i32$3 = var$0$hi; - i64toi32_i32$5 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = var$0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -917,9 +911,25 @@ export const no_dce_i32_div_s = retasmFunc.no_dce_i32_div_s; export const no_dce_i32_div_u = retasmFunc.no_dce_i32_div_u; export const no_dce_i64_div_s = retasmFunc.no_dce_i64_div_s; export const no_dce_i64_div_u = retasmFunc.no_dce_i64_div_u; -import { __tempMemory__ } from 'env'; 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) { "almost asm"; var HEAP8 = new global.Int8Array(buffer); @@ -943,7 +953,7 @@ function asmFunc(global, env, buffer) { var nan = global.NaN; var infinity = global.Infinity; var setTempRet0 = env.setTempRet0; - var __tempMemory__ = env.__tempMemory__ | 0; + var getTempRet0 = env.getTempRet0; var i64toi32_i32$HIGH_BITS = 0; function $0(x, y) { x = x | 0; @@ -1161,6 +1171,62 @@ function asmFunc(global, env, buffer) { return $4 | 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; @@ -1268,7 +1334,7 @@ function asmFunc(global, env, buffer) { 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$1 = 0, i64toi32_i32$4 = 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, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 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 : { @@ -1288,15 +1354,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $40 = (((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; + $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 = $40; + var$2 = $37; if (var$2) { block : { i64toi32_i32$1 = var$1$hi; @@ -1312,15 +1378,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; - $41 = (((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; + $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 = $41; + var$4 = $38; if ((var$4 | 0) == (0 | 0)) { break label$9 } @@ -1344,13 +1410,7 @@ function asmFunc(global, env, buffer) { var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -1364,15 +1424,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $39 = 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; + $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 = $42; + var$3 = $39; i64toi32_i32$1 = var$0$hi; if ((var$0 | 0) == (0 | 0)) { break label$7 @@ -1384,7 +1444,6 @@ function asmFunc(global, env, buffer) { if (var$4 & var$3 | 0) { break label$6 } - $60 = __tempMemory__; i64toi32_i32$1 = 0; i64toi32_i32$2 = var$4 & var$2 | 0; i64toi32_i32$3 = 0; @@ -1393,35 +1452,28 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $43 = 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; - $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - $65$hi = i64toi32_i32$3; + $63$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$1 = var$0; i64toi32_i32$2 = 0; i64toi32_i32$0 = 4294967295; i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0; - $67$hi = i64toi32_i32$2; - i64toi32_i32$2 = $65$hi; - i64toi32_i32$3 = $43; - i64toi32_i32$1 = $67$hi; - i64toi32_i32$0 = $67; + $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; - $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0; - i64toi32_i32$3 = $60; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = $68; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$3; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -1440,7 +1492,6 @@ function asmFunc(global, env, buffer) { var$2 = var$2 + 1 | 0; break label$3; } - $93 = __tempMemory__; 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; @@ -1450,21 +1501,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; - $44 = 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; - $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $41 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - i64toi32_i32$2 = $93; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = $44; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$1; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; @@ -1478,36 +1523,30 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$2 = var$0$hi; i64toi32_i32$2 = 0; - i64toi32_i32$1 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = var$4 & var$0 | 0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = i64toi32_i32$2; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 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; - $124$hi = i64toi32_i32$2; + $120$hi = i64toi32_i32$2; i64toi32_i32$2 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$1 = $124$hi; + 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; - $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; - $45 = (((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; + $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 = $45; + i64toi32_i32$3 = $42; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; return i64toi32_i32$3 | 0; } @@ -1516,45 +1555,45 @@ function asmFunc(global, env, buffer) { } i64toi32_i32$3 = var$0$hi; i64toi32_i32$3 = 0; - $133$hi = i64toi32_i32$3; + $129$hi = i64toi32_i32$3; i64toi32_i32$3 = var$0$hi; i64toi32_i32$2 = var$0; - i64toi32_i32$1 = $133$hi; + 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; - $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + $43 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; } } else { { i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; - $46 = (((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; + $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 = $46; + var$5 = $43; var$5$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$1 = 0; - $138$hi = i64toi32_i32$1; + $134$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$3 = var$0; - i64toi32_i32$2 = $138$hi; + 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; - $47 = 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; - $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + $44 = i64toi32_i32$3 << i64toi32_i32$4 | 0; } } - var$0 = $47; + var$0 = $44; var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { @@ -1579,16 +1618,16 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; - $48 = 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; - $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0; } } - $144 = $48; - $144$hi = i64toi32_i32$1; + $140 = $45; + $140$hi = i64toi32_i32$1; i64toi32_i32$1 = var$0$hi; i64toi32_i32$5 = var$0; i64toi32_i32$2 = 0; @@ -1597,24 +1636,24 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; + $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; - $49 = (((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; + $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; } } - $146$hi = i64toi32_i32$2; - i64toi32_i32$2 = $144$hi; - i64toi32_i32$1 = $144; - i64toi32_i32$5 = $146$hi; - i64toi32_i32$0 = $49; + $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; - $148 = var$5; - $148$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; @@ -1632,15 +1671,15 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0; - $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; + $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; } } else { { i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; - $50 = (((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; + $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 = $50; + var$6 = $47; var$6$hi = i64toi32_i32$2; i64toi32_i32$2 = var$1$hi; i64toi32_i32$2 = var$6$hi; @@ -1648,12 +1687,12 @@ function asmFunc(global, env, buffer) { i64toi32_i32$5 = var$1$hi; i64toi32_i32$0 = var$1; i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0; - $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0; - $155$hi = i64toi32_i32$5; - i64toi32_i32$5 = $148$hi; - i64toi32_i32$2 = $148; - i64toi32_i32$4 = $155$hi; - i64toi32_i32$0 = $155; + $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; @@ -1668,18 +1707,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $51 = 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; - $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $158$hi = i64toi32_i32$2; + $154$hi = i64toi32_i32$2; i64toi32_i32$2 = var$7$hi; - i64toi32_i32$2 = $158$hi; - i64toi32_i32$3 = $51; + 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; @@ -1705,13 +1744,7 @@ function asmFunc(global, env, buffer) { } } i64toi32_i32$3 = var$5$hi; - i64toi32_i32$2 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = var$5; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$2; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -1720,18 +1753,18 @@ function asmFunc(global, env, buffer) { if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { { i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; - $52 = 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; - $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $49 = i64toi32_i32$5 << i64toi32_i32$4 | 0; } } - $170$hi = i64toi32_i32$2; + $165$hi = i64toi32_i32$2; i64toi32_i32$2 = var$6$hi; - i64toi32_i32$2 = $170$hi; - i64toi32_i32$3 = $52; + 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; @@ -1740,13 +1773,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3 | 0; } i64toi32_i32$3 = var$0$hi; - i64toi32_i32$5 = __tempMemory__; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = var$0; - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = i64toi32_i32$5; - wasm2js_i32$1 = i64toi32_i32$3; - (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + 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; @@ -1778,16 +1805,15 @@ function asmFunc(global, env, buffer) { 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$2 = 0, wasm2js_i32$0 = 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$2 = __tempMemory__; - i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; - i64toi32_i32$1 = (wasm2js_i32$0 = i64toi32_i32$2, HEAPU8[(wasm2js_i32$0 + 4 | 0) >> 0] | 0 | 0 | (HEAPU8[(wasm2js_i32$0 + 5 | 0) >> 0] | 0 | 0) << 8 | (HEAPU8[(wasm2js_i32$0 + 6 | 0) >> 0] | 0 | 0) << 16 | (HEAPU8[(wasm2js_i32$0 + 7 | 0) >> 0] | 0 | 0) << 24); + 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; } @@ -1810,7 +1836,7 @@ function asmFunc(global, env, buffer) { } const memasmFunc = new ArrayBuffer(65536); -const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0},memasmFunc); +const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0,getTempRet0},memasmFunc); export const no_dce_i32_rem_s = retasmFunc.no_dce_i32_rem_s; export const no_dce_i32_rem_u = retasmFunc.no_dce_i32_rem_u; export const no_dce_i64_rem_s = retasmFunc.no_dce_i64_rem_s; diff --git a/test/wasm2js/unaligned.2asm.js b/test/wasm2js/unaligned.2asm.js index fceb55a3e..e5da51632 100644 --- a/test/wasm2js/unaligned.2asm.js +++ b/test/wasm2js/unaligned.2asm.js @@ -1,6 +1,35 @@ -import { __tempMemory__ } from 'env'; 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 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 wasm2js_scratch_load_f32() { + return f32ScratchView[0]; + } + + function wasm2js_scratch_store_f32(value) { + f32ScratchView[0] = value; + } + function asmFunc(global, env, buffer) { "almost asm"; var HEAP8 = new global.Int8Array(buffer); @@ -24,7 +53,6 @@ function asmFunc(global, env, buffer) { var nan = global.NaN; var infinity = global.Infinity; var setTempRet0 = env.setTempRet0; - var __tempMemory__ = env.__tempMemory__ | 0; var i64toi32_i32$HIGH_BITS = 0; function $0() { var wasm2js_i32$0 = 0; @@ -42,20 +70,16 @@ function asmFunc(global, env, buffer) { function $2() { var wasm2js_i32$0 = 0; - return Math_fround((HEAP32[0] = (wasm2js_i32$0 = 0, HEAPU8[wasm2js_i32$0 >> 0] | 0 | 0 | (HEAPU8[(wasm2js_i32$0 + 1 | 0) >> 0] | 0 | 0) << 8 | (HEAPU8[(wasm2js_i32$0 + 2 | 0) >> 0] | 0 | 0) << 16 | (HEAPU8[(wasm2js_i32$0 + 3 | 0) >> 0] | 0 | 0) << 24), HEAPF32[0])); + return Math_fround((wasm2js_scratch_store_i32(0, (wasm2js_i32$0 = 0, HEAPU8[wasm2js_i32$0 >> 0] | 0 | 0 | (HEAPU8[(wasm2js_i32$0 + 1 | 0) >> 0] | 0 | 0) << 8 | (HEAPU8[(wasm2js_i32$0 + 2 | 0) >> 0] | 0 | 0) << 16 | (HEAPU8[(wasm2js_i32$0 + 3 | 0) >> 0] | 0 | 0) << 24)), wasm2js_scratch_load_f32())); } function $3() { - var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0; + var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0; i64toi32_i32$2 = 0; i64toi32_i32$1 = (wasm2js_i32$0 = i64toi32_i32$2, HEAPU8[(wasm2js_i32$0 + 4 | 0) >> 0] | 0 | 0 | (HEAPU8[(wasm2js_i32$0 + 5 | 0) >> 0] | 0 | 0) << 8 | (HEAPU8[(wasm2js_i32$0 + 6 | 0) >> 0] | 0 | 0) << 16 | (HEAPU8[(wasm2js_i32$0 + 7 | 0) >> 0] | 0 | 0) << 24); - wasm2js_i32$0 = __tempMemory__; - wasm2js_i32$1 = (wasm2js_i32$2 = i64toi32_i32$2, HEAPU8[wasm2js_i32$2 >> 0] | 0 | 0 | (HEAPU8[(wasm2js_i32$2 + 1 | 0) >> 0] | 0 | 0) << 8 | (HEAPU8[(wasm2js_i32$2 + 2 | 0) >> 0] | 0 | 0) << 16 | (HEAPU8[(wasm2js_i32$2 + 3 | 0) >> 0] | 0 | 0) << 24); - HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; - wasm2js_i32$0 = __tempMemory__; - wasm2js_i32$1 = i64toi32_i32$1; - HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; - return +(+HEAPF64[__tempMemory__ >> 3]); + wasm2js_scratch_store_i32(0 | 0, (wasm2js_i32$0 = i64toi32_i32$2, HEAPU8[wasm2js_i32$0 >> 0] | 0 | 0 | (HEAPU8[(wasm2js_i32$0 + 1 | 0) >> 0] | 0 | 0) << 8 | (HEAPU8[(wasm2js_i32$0 + 2 | 0) >> 0] | 0 | 0) << 16 | (HEAPU8[(wasm2js_i32$0 + 3 | 0) >> 0] | 0 | 0) << 24) | 0); + wasm2js_scratch_store_i32(1 | 0, i64toi32_i32$1 | 0); + return +(+wasm2js_scratch_load_f64()); } function $4() { @@ -79,19 +103,17 @@ function asmFunc(global, env, buffer) { function $6() { var wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0; wasm2js_i32$0 = 0; - wasm2js_i32$1 = (HEAPF32[0] = Math_fround(0.0), HEAP32[0] | 0); + wasm2js_i32$1 = (wasm2js_scratch_store_f32(Math_fround(0.0)), wasm2js_scratch_load_i32(0)); (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[wasm2js_i32$2 >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 1 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 2 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 3 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; } function $7() { - var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0; - wasm2js_i32$0 = __tempMemory__; - wasm2js_f64$0 = 0.0; - HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; - i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0; + wasm2js_scratch_store_f64(+(0.0)); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; i64toi32_i32$1 = 0; wasm2js_i32$0 = i64toi32_i32$1; - wasm2js_i32$1 = HEAP32[__tempMemory__ >> 2] | 0; + wasm2js_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[wasm2js_i32$2 >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 1 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 2 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 3 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; wasm2js_i32$0 = i64toi32_i32$1; wasm2js_i32$1 = i64toi32_i32$0; |