summaryrefslogtreecommitdiff
path: root/test/wasm2js/i64.2asm.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2019-04-19 15:22:55 -0700
committerGitHub <noreply@github.com>2019-04-19 15:22:55 -0700
commitdb14d0477f2715e3071687f42b77d8712477d83e (patch)
tree7cb4f679bfc18cbb7d4a87db0b3d5a02f6bcaeed /test/wasm2js/i64.2asm.js
parenta4baf2152d11c28964025759d2702fe7c48d321e (diff)
downloadbinaryen-db14d0477f2715e3071687f42b77d8712477d83e.tar.gz
binaryen-db14d0477f2715e3071687f42b77d8712477d83e.tar.bz2
binaryen-db14d0477f2715e3071687f42b77d8712477d83e.zip
wasm2js2 import fixes (#2031)
* Don't assume function types exist in legalize-js-interface. * Properly handle (ignore) imports in RemoveNonJSOps - do not try to recurse into them. * Run legalize-js-interface and remove-unused-module-elements in wasm2js, the first is necessary, the last is nice to have.
Diffstat (limited to 'test/wasm2js/i64.2asm.js')
-rw-r--r--test/wasm2js/i64.2asm.js2193
1 files changed, 2163 insertions, 30 deletions
diff --git a/test/wasm2js/i64.2asm.js b/test/wasm2js/i64.2asm.js
index b20523a0d..bafb0da5b 100644
--- a/test/wasm2js/i64.2asm.js
+++ b/test/wasm2js/i64.2asm.js
@@ -1,4 +1,5 @@
import { __tempMemory__ } from 'env';
+import { setTempRet0 } from 'env';
function asmFunc(global, env, buffer) {
"almost asm";
@@ -22,6 +23,7 @@ function asmFunc(global, env, buffer) {
var abort = env.abort;
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$hi, y, y$hi) {
@@ -564,6 +566,2137 @@ function asmFunc(global, env, buffer) {
return i64toi32_i32$0 >>> 0 > y$hi >>> 0 | ((i64toi32_i32$0 | 0) == (y$hi | 0) & x >>> 0 >= y >>> 0 | 0) | 0 | 0;
}
+ function legalstub$0($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, $21_1 = 0, $22_1 = 0, $23_1 = 0, $6_1 = 0, $6$hi = 0, $9$hi = 0, $10_1 = 0, $10$hi = 0, $12_1 = 0, $12$hi = 0, $15$hi = 0, $16_1 = 0, $16$hi = 0, $4_1 = 0, $4$hi = 0;
+ i64toi32_i32$0 = 0;
+ $6_1 = $0_1;
+ $6$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $21_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;
+ $21_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $9$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $6$hi;
+ i64toi32_i32$0 = $6_1;
+ i64toi32_i32$2 = $9$hi;
+ i64toi32_i32$3 = $21_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $10_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $10$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $12_1 = $2_1;
+ $12$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $22_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $22_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $15$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $12$hi;
+ i64toi32_i32$2 = $12_1;
+ i64toi32_i32$1 = $15$hi;
+ i64toi32_i32$3 = $22_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $16_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $16$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $10$hi;
+ i64toi32_i32$2 = $16$hi;
+ i64toi32_i32$2 = $0($10_1 | 0, i64toi32_i32$1 | 0, $16_1 | 0, i64toi32_i32$2 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $4_1 = i64toi32_i32$2;
+ $4$hi = i64toi32_i32$1;
+ i64toi32_i32$0 = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$2 = 0;
+ $23_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ }
+ } else {
+ {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $23_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;
+ }
+ }
+ setTempRet0($23_1 | 0);
+ i64toi32_i32$2 = $4$hi;
+ return $4_1 | 0;
+ }
+
+ function legalstub$1($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, $21_1 = 0, $22_1 = 0, $23_1 = 0, $6_1 = 0, $6$hi = 0, $9$hi = 0, $10_1 = 0, $10$hi = 0, $12_1 = 0, $12$hi = 0, $15$hi = 0, $16_1 = 0, $16$hi = 0, $4_1 = 0, $4$hi = 0;
+ i64toi32_i32$0 = 0;
+ $6_1 = $0_1;
+ $6$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $21_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;
+ $21_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $9$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $6$hi;
+ i64toi32_i32$0 = $6_1;
+ i64toi32_i32$2 = $9$hi;
+ i64toi32_i32$3 = $21_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $10_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $10$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $12_1 = $2_1;
+ $12$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $22_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $22_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $15$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $12$hi;
+ i64toi32_i32$2 = $12_1;
+ i64toi32_i32$1 = $15$hi;
+ i64toi32_i32$3 = $22_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $16_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $16$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $10$hi;
+ i64toi32_i32$2 = $16$hi;
+ i64toi32_i32$2 = $1($10_1 | 0, i64toi32_i32$1 | 0, $16_1 | 0, i64toi32_i32$2 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $4_1 = i64toi32_i32$2;
+ $4$hi = i64toi32_i32$1;
+ i64toi32_i32$0 = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$2 = 0;
+ $23_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ }
+ } else {
+ {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $23_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;
+ }
+ }
+ setTempRet0($23_1 | 0);
+ i64toi32_i32$2 = $4$hi;
+ return $4_1 | 0;
+ }
+
+ function legalstub$2($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, $21_1 = 0, $22_1 = 0, $23_1 = 0, $6_1 = 0, $6$hi = 0, $9$hi = 0, $10_1 = 0, $10$hi = 0, $12_1 = 0, $12$hi = 0, $15$hi = 0, $16_1 = 0, $16$hi = 0, $4_1 = 0, $4$hi = 0;
+ i64toi32_i32$0 = 0;
+ $6_1 = $0_1;
+ $6$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $21_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;
+ $21_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $9$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $6$hi;
+ i64toi32_i32$0 = $6_1;
+ i64toi32_i32$2 = $9$hi;
+ i64toi32_i32$3 = $21_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $10_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $10$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $12_1 = $2_1;
+ $12$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $22_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $22_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $15$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $12$hi;
+ i64toi32_i32$2 = $12_1;
+ i64toi32_i32$1 = $15$hi;
+ i64toi32_i32$3 = $22_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $16_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $16$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $10$hi;
+ i64toi32_i32$2 = $16$hi;
+ i64toi32_i32$2 = $2($10_1 | 0, i64toi32_i32$1 | 0, $16_1 | 0, i64toi32_i32$2 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $4_1 = i64toi32_i32$2;
+ $4$hi = i64toi32_i32$1;
+ i64toi32_i32$0 = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$2 = 0;
+ $23_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ }
+ } else {
+ {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $23_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;
+ }
+ }
+ setTempRet0($23_1 | 0);
+ i64toi32_i32$2 = $4$hi;
+ return $4_1 | 0;
+ }
+
+ function legalstub$3($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, $21_1 = 0, $22_1 = 0, $23_1 = 0, $6_1 = 0, $6$hi = 0, $9$hi = 0, $10_1 = 0, $10$hi = 0, $12_1 = 0, $12$hi = 0, $15$hi = 0, $16_1 = 0, $16$hi = 0, $4_1 = 0, $4$hi = 0;
+ i64toi32_i32$0 = 0;
+ $6_1 = $0_1;
+ $6$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $21_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;
+ $21_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $9$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $6$hi;
+ i64toi32_i32$0 = $6_1;
+ i64toi32_i32$2 = $9$hi;
+ i64toi32_i32$3 = $21_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $10_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $10$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $12_1 = $2_1;
+ $12$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $22_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $22_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $15$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $12$hi;
+ i64toi32_i32$2 = $12_1;
+ i64toi32_i32$1 = $15$hi;
+ i64toi32_i32$3 = $22_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $16_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $16$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $10$hi;
+ i64toi32_i32$2 = $16$hi;
+ i64toi32_i32$2 = $3($10_1 | 0, i64toi32_i32$1 | 0, $16_1 | 0, i64toi32_i32$2 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $4_1 = i64toi32_i32$2;
+ $4$hi = i64toi32_i32$1;
+ i64toi32_i32$0 = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$2 = 0;
+ $23_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ }
+ } else {
+ {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $23_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;
+ }
+ }
+ setTempRet0($23_1 | 0);
+ i64toi32_i32$2 = $4$hi;
+ return $4_1 | 0;
+ }
+
+ function legalstub$4($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, $21_1 = 0, $22_1 = 0, $23_1 = 0, $6_1 = 0, $6$hi = 0, $9$hi = 0, $10_1 = 0, $10$hi = 0, $12_1 = 0, $12$hi = 0, $15$hi = 0, $16_1 = 0, $16$hi = 0, $4_1 = 0, $4$hi = 0;
+ i64toi32_i32$0 = 0;
+ $6_1 = $0_1;
+ $6$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $21_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;
+ $21_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $9$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $6$hi;
+ i64toi32_i32$0 = $6_1;
+ i64toi32_i32$2 = $9$hi;
+ i64toi32_i32$3 = $21_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $10_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $10$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $12_1 = $2_1;
+ $12$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $22_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $22_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $15$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $12$hi;
+ i64toi32_i32$2 = $12_1;
+ i64toi32_i32$1 = $15$hi;
+ i64toi32_i32$3 = $22_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $16_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $16$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $10$hi;
+ i64toi32_i32$2 = $16$hi;
+ i64toi32_i32$2 = $4($10_1 | 0, i64toi32_i32$1 | 0, $16_1 | 0, i64toi32_i32$2 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $4_1 = i64toi32_i32$2;
+ $4$hi = i64toi32_i32$1;
+ i64toi32_i32$0 = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$2 = 0;
+ $23_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ }
+ } else {
+ {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $23_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;
+ }
+ }
+ setTempRet0($23_1 | 0);
+ i64toi32_i32$2 = $4$hi;
+ return $4_1 | 0;
+ }
+
+ function legalstub$5($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, $21_1 = 0, $22_1 = 0, $23_1 = 0, $6_1 = 0, $6$hi = 0, $9$hi = 0, $10_1 = 0, $10$hi = 0, $12_1 = 0, $12$hi = 0, $15$hi = 0, $16_1 = 0, $16$hi = 0, $4_1 = 0, $4$hi = 0;
+ i64toi32_i32$0 = 0;
+ $6_1 = $0_1;
+ $6$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $21_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;
+ $21_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $9$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $6$hi;
+ i64toi32_i32$0 = $6_1;
+ i64toi32_i32$2 = $9$hi;
+ i64toi32_i32$3 = $21_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $10_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $10$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $12_1 = $2_1;
+ $12$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $22_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $22_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $15$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $12$hi;
+ i64toi32_i32$2 = $12_1;
+ i64toi32_i32$1 = $15$hi;
+ i64toi32_i32$3 = $22_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $16_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $16$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $10$hi;
+ i64toi32_i32$2 = $16$hi;
+ i64toi32_i32$2 = $5($10_1 | 0, i64toi32_i32$1 | 0, $16_1 | 0, i64toi32_i32$2 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $4_1 = i64toi32_i32$2;
+ $4$hi = i64toi32_i32$1;
+ i64toi32_i32$0 = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$2 = 0;
+ $23_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ }
+ } else {
+ {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $23_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;
+ }
+ }
+ setTempRet0($23_1 | 0);
+ i64toi32_i32$2 = $4$hi;
+ return $4_1 | 0;
+ }
+
+ function legalstub$6($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, $21_1 = 0, $22_1 = 0, $23_1 = 0, $6_1 = 0, $6$hi = 0, $9$hi = 0, $10_1 = 0, $10$hi = 0, $12_1 = 0, $12$hi = 0, $15$hi = 0, $16_1 = 0, $16$hi = 0, $4_1 = 0, $4$hi = 0;
+ i64toi32_i32$0 = 0;
+ $6_1 = $0_1;
+ $6$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $21_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;
+ $21_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $9$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $6$hi;
+ i64toi32_i32$0 = $6_1;
+ i64toi32_i32$2 = $9$hi;
+ i64toi32_i32$3 = $21_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $10_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $10$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $12_1 = $2_1;
+ $12$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $22_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $22_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $15$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $12$hi;
+ i64toi32_i32$2 = $12_1;
+ i64toi32_i32$1 = $15$hi;
+ i64toi32_i32$3 = $22_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $16_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $16$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $10$hi;
+ i64toi32_i32$2 = $16$hi;
+ i64toi32_i32$2 = $6($10_1 | 0, i64toi32_i32$1 | 0, $16_1 | 0, i64toi32_i32$2 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $4_1 = i64toi32_i32$2;
+ $4$hi = i64toi32_i32$1;
+ i64toi32_i32$0 = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$2 = 0;
+ $23_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ }
+ } else {
+ {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $23_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;
+ }
+ }
+ setTempRet0($23_1 | 0);
+ i64toi32_i32$2 = $4$hi;
+ return $4_1 | 0;
+ }
+
+ function legalstub$7($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, $21_1 = 0, $22_1 = 0, $23_1 = 0, $6_1 = 0, $6$hi = 0, $9$hi = 0, $10_1 = 0, $10$hi = 0, $12_1 = 0, $12$hi = 0, $15$hi = 0, $16_1 = 0, $16$hi = 0, $4_1 = 0, $4$hi = 0;
+ i64toi32_i32$0 = 0;
+ $6_1 = $0_1;
+ $6$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $21_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;
+ $21_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $9$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $6$hi;
+ i64toi32_i32$0 = $6_1;
+ i64toi32_i32$2 = $9$hi;
+ i64toi32_i32$3 = $21_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $10_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $10$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $12_1 = $2_1;
+ $12$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $22_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $22_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $15$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $12$hi;
+ i64toi32_i32$2 = $12_1;
+ i64toi32_i32$1 = $15$hi;
+ i64toi32_i32$3 = $22_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $16_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $16$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $10$hi;
+ i64toi32_i32$2 = $16$hi;
+ i64toi32_i32$2 = $7($10_1 | 0, i64toi32_i32$1 | 0, $16_1 | 0, i64toi32_i32$2 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $4_1 = i64toi32_i32$2;
+ $4$hi = i64toi32_i32$1;
+ i64toi32_i32$0 = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$2 = 0;
+ $23_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ }
+ } else {
+ {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $23_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;
+ }
+ }
+ setTempRet0($23_1 | 0);
+ i64toi32_i32$2 = $4$hi;
+ return $4_1 | 0;
+ }
+
+ function legalstub$8($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, $21_1 = 0, $22_1 = 0, $23_1 = 0, $6_1 = 0, $6$hi = 0, $9$hi = 0, $10_1 = 0, $10$hi = 0, $12_1 = 0, $12$hi = 0, $15$hi = 0, $16_1 = 0, $16$hi = 0, $4_1 = 0, $4$hi = 0;
+ i64toi32_i32$0 = 0;
+ $6_1 = $0_1;
+ $6$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $21_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;
+ $21_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $9$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $6$hi;
+ i64toi32_i32$0 = $6_1;
+ i64toi32_i32$2 = $9$hi;
+ i64toi32_i32$3 = $21_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $10_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $10$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $12_1 = $2_1;
+ $12$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $22_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $22_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $15$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $12$hi;
+ i64toi32_i32$2 = $12_1;
+ i64toi32_i32$1 = $15$hi;
+ i64toi32_i32$3 = $22_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $16_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $16$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $10$hi;
+ i64toi32_i32$2 = $16$hi;
+ i64toi32_i32$2 = $8($10_1 | 0, i64toi32_i32$1 | 0, $16_1 | 0, i64toi32_i32$2 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $4_1 = i64toi32_i32$2;
+ $4$hi = i64toi32_i32$1;
+ i64toi32_i32$0 = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$2 = 0;
+ $23_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ }
+ } else {
+ {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $23_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;
+ }
+ }
+ setTempRet0($23_1 | 0);
+ i64toi32_i32$2 = $4$hi;
+ return $4_1 | 0;
+ }
+
+ function legalstub$9($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, $21_1 = 0, $22_1 = 0, $23_1 = 0, $6_1 = 0, $6$hi = 0, $9$hi = 0, $10_1 = 0, $10$hi = 0, $12_1 = 0, $12$hi = 0, $15$hi = 0, $16_1 = 0, $16$hi = 0, $4_1 = 0, $4$hi = 0;
+ i64toi32_i32$0 = 0;
+ $6_1 = $0_1;
+ $6$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $21_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;
+ $21_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $9$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $6$hi;
+ i64toi32_i32$0 = $6_1;
+ i64toi32_i32$2 = $9$hi;
+ i64toi32_i32$3 = $21_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $10_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $10$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $12_1 = $2_1;
+ $12$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $22_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $22_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $15$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $12$hi;
+ i64toi32_i32$2 = $12_1;
+ i64toi32_i32$1 = $15$hi;
+ i64toi32_i32$3 = $22_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $16_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $16$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $10$hi;
+ i64toi32_i32$2 = $16$hi;
+ i64toi32_i32$2 = $9($10_1 | 0, i64toi32_i32$1 | 0, $16_1 | 0, i64toi32_i32$2 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $4_1 = i64toi32_i32$2;
+ $4$hi = i64toi32_i32$1;
+ i64toi32_i32$0 = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$2 = 0;
+ $23_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ }
+ } else {
+ {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $23_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;
+ }
+ }
+ setTempRet0($23_1 | 0);
+ i64toi32_i32$2 = $4$hi;
+ return $4_1 | 0;
+ }
+
+ function legalstub$10($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, $21_1 = 0, $22_1 = 0, $23_1 = 0, $6_1 = 0, $6$hi = 0, $9$hi = 0, $10_1 = 0, $10$hi = 0, $12_1 = 0, $12$hi = 0, $15$hi = 0, $16_1 = 0, $16$hi = 0, $4_1 = 0, $4$hi = 0;
+ i64toi32_i32$0 = 0;
+ $6_1 = $0_1;
+ $6$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $21_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;
+ $21_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $9$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $6$hi;
+ i64toi32_i32$0 = $6_1;
+ i64toi32_i32$2 = $9$hi;
+ i64toi32_i32$3 = $21_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $10_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $10$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $12_1 = $2_1;
+ $12$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $22_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $22_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $15$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $12$hi;
+ i64toi32_i32$2 = $12_1;
+ i64toi32_i32$1 = $15$hi;
+ i64toi32_i32$3 = $22_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $16_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $16$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $10$hi;
+ i64toi32_i32$2 = $16$hi;
+ i64toi32_i32$2 = $10($10_1 | 0, i64toi32_i32$1 | 0, $16_1 | 0, i64toi32_i32$2 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $4_1 = i64toi32_i32$2;
+ $4$hi = i64toi32_i32$1;
+ i64toi32_i32$0 = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$2 = 0;
+ $23_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ }
+ } else {
+ {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $23_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;
+ }
+ }
+ setTempRet0($23_1 | 0);
+ i64toi32_i32$2 = $4$hi;
+ return $4_1 | 0;
+ }
+
+ function legalstub$11($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, $21_1 = 0, $22_1 = 0, $23_1 = 0, $6_1 = 0, $6$hi = 0, $9$hi = 0, $10_1 = 0, $10$hi = 0, $12_1 = 0, $12$hi = 0, $15$hi = 0, $16_1 = 0, $16$hi = 0, $4_1 = 0, $4$hi = 0;
+ i64toi32_i32$0 = 0;
+ $6_1 = $0_1;
+ $6$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $21_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;
+ $21_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $9$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $6$hi;
+ i64toi32_i32$0 = $6_1;
+ i64toi32_i32$2 = $9$hi;
+ i64toi32_i32$3 = $21_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $10_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $10$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $12_1 = $2_1;
+ $12$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $22_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $22_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $15$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $12$hi;
+ i64toi32_i32$2 = $12_1;
+ i64toi32_i32$1 = $15$hi;
+ i64toi32_i32$3 = $22_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $16_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $16$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $10$hi;
+ i64toi32_i32$2 = $16$hi;
+ i64toi32_i32$2 = $11($10_1 | 0, i64toi32_i32$1 | 0, $16_1 | 0, i64toi32_i32$2 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $4_1 = i64toi32_i32$2;
+ $4$hi = i64toi32_i32$1;
+ i64toi32_i32$0 = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$2 = 0;
+ $23_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ }
+ } else {
+ {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $23_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;
+ }
+ }
+ setTempRet0($23_1 | 0);
+ i64toi32_i32$2 = $4$hi;
+ return $4_1 | 0;
+ }
+
+ function legalstub$12($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, $21_1 = 0, $22_1 = 0, $23_1 = 0, $6_1 = 0, $6$hi = 0, $9$hi = 0, $10_1 = 0, $10$hi = 0, $12_1 = 0, $12$hi = 0, $15$hi = 0, $16_1 = 0, $16$hi = 0, $4_1 = 0, $4$hi = 0;
+ i64toi32_i32$0 = 0;
+ $6_1 = $0_1;
+ $6$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $21_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;
+ $21_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $9$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $6$hi;
+ i64toi32_i32$0 = $6_1;
+ i64toi32_i32$2 = $9$hi;
+ i64toi32_i32$3 = $21_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $10_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $10$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $12_1 = $2_1;
+ $12$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $22_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $22_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $15$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $12$hi;
+ i64toi32_i32$2 = $12_1;
+ i64toi32_i32$1 = $15$hi;
+ i64toi32_i32$3 = $22_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $16_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $16$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $10$hi;
+ i64toi32_i32$2 = $16$hi;
+ i64toi32_i32$2 = $12($10_1 | 0, i64toi32_i32$1 | 0, $16_1 | 0, i64toi32_i32$2 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $4_1 = i64toi32_i32$2;
+ $4$hi = i64toi32_i32$1;
+ i64toi32_i32$0 = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$2 = 0;
+ $23_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ }
+ } else {
+ {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $23_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;
+ }
+ }
+ setTempRet0($23_1 | 0);
+ i64toi32_i32$2 = $4$hi;
+ return $4_1 | 0;
+ }
+
+ function legalstub$13($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, $21_1 = 0, $22_1 = 0, $23_1 = 0, $6_1 = 0, $6$hi = 0, $9$hi = 0, $10_1 = 0, $10$hi = 0, $12_1 = 0, $12$hi = 0, $15$hi = 0, $16_1 = 0, $16$hi = 0, $4_1 = 0, $4$hi = 0;
+ i64toi32_i32$0 = 0;
+ $6_1 = $0_1;
+ $6$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $21_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;
+ $21_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $9$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $6$hi;
+ i64toi32_i32$0 = $6_1;
+ i64toi32_i32$2 = $9$hi;
+ i64toi32_i32$3 = $21_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $10_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $10$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $12_1 = $2_1;
+ $12$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $22_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $22_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $15$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $12$hi;
+ i64toi32_i32$2 = $12_1;
+ i64toi32_i32$1 = $15$hi;
+ i64toi32_i32$3 = $22_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $16_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $16$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $10$hi;
+ i64toi32_i32$2 = $16$hi;
+ i64toi32_i32$2 = $13($10_1 | 0, i64toi32_i32$1 | 0, $16_1 | 0, i64toi32_i32$2 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $4_1 = i64toi32_i32$2;
+ $4$hi = i64toi32_i32$1;
+ i64toi32_i32$0 = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$2 = 0;
+ $23_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ }
+ } else {
+ {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $23_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;
+ }
+ }
+ setTempRet0($23_1 | 0);
+ i64toi32_i32$2 = $4$hi;
+ return $4_1 | 0;
+ }
+
+ function legalstub$14($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, $21_1 = 0, $22_1 = 0, $23_1 = 0, $6_1 = 0, $6$hi = 0, $9$hi = 0, $10_1 = 0, $10$hi = 0, $12_1 = 0, $12$hi = 0, $15$hi = 0, $16_1 = 0, $16$hi = 0, $4_1 = 0, $4$hi = 0;
+ i64toi32_i32$0 = 0;
+ $6_1 = $0_1;
+ $6$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $21_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;
+ $21_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $9$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $6$hi;
+ i64toi32_i32$0 = $6_1;
+ i64toi32_i32$2 = $9$hi;
+ i64toi32_i32$3 = $21_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $10_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $10$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $12_1 = $2_1;
+ $12$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $22_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $22_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $15$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $12$hi;
+ i64toi32_i32$2 = $12_1;
+ i64toi32_i32$1 = $15$hi;
+ i64toi32_i32$3 = $22_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $16_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $16$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $10$hi;
+ i64toi32_i32$2 = $16$hi;
+ i64toi32_i32$2 = $14($10_1 | 0, i64toi32_i32$1 | 0, $16_1 | 0, i64toi32_i32$2 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
+ $4_1 = i64toi32_i32$2;
+ $4$hi = i64toi32_i32$1;
+ i64toi32_i32$0 = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$2 = 0;
+ $23_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ }
+ } else {
+ {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $23_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;
+ }
+ }
+ setTempRet0($23_1 | 0);
+ i64toi32_i32$2 = $4$hi;
+ return $4_1 | 0;
+ }
+
+ function legalstub$15($0_1, $1_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $12_1 = 0, $13_1 = 0, $4_1 = 0, $4$hi = 0, $7$hi = 0, $2_1 = 0, $2$hi = 0;
+ i64toi32_i32$0 = 0;
+ $4_1 = $0_1;
+ $4$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $12_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;
+ $12_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $7$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $4$hi;
+ i64toi32_i32$0 = $4_1;
+ i64toi32_i32$2 = $7$hi;
+ i64toi32_i32$3 = $12_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ i64toi32_i32$2 = $15(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ $2_1 = i64toi32_i32$2;
+ $2$hi = i64toi32_i32$0;
+ i64toi32_i32$1 = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$2 = 0;
+ $13_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ }
+ } else {
+ {
+ i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $13_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ }
+ setTempRet0($13_1 | 0);
+ i64toi32_i32$2 = $2$hi;
+ return $2_1 | 0;
+ }
+
+ function legalstub$16($0_1, $1_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $12_1 = 0, $13_1 = 0, $4_1 = 0, $4$hi = 0, $7$hi = 0, $2_1 = 0, $2$hi = 0;
+ i64toi32_i32$0 = 0;
+ $4_1 = $0_1;
+ $4$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $12_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;
+ $12_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $7$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $4$hi;
+ i64toi32_i32$0 = $4_1;
+ i64toi32_i32$2 = $7$hi;
+ i64toi32_i32$3 = $12_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ i64toi32_i32$2 = $16(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ $2_1 = i64toi32_i32$2;
+ $2$hi = i64toi32_i32$0;
+ i64toi32_i32$1 = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$2 = 0;
+ $13_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ }
+ } else {
+ {
+ i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $13_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ }
+ setTempRet0($13_1 | 0);
+ i64toi32_i32$2 = $2$hi;
+ return $2_1 | 0;
+ }
+
+ function legalstub$17($0_1, $1_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $12_1 = 0, $13_1 = 0, $4_1 = 0, $4$hi = 0, $7$hi = 0, $2_1 = 0, $2$hi = 0;
+ i64toi32_i32$0 = 0;
+ $4_1 = $0_1;
+ $4$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $12_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;
+ $12_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $7$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $4$hi;
+ i64toi32_i32$0 = $4_1;
+ i64toi32_i32$2 = $7$hi;
+ i64toi32_i32$3 = $12_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ i64toi32_i32$2 = $17(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ $2_1 = i64toi32_i32$2;
+ $2$hi = i64toi32_i32$0;
+ i64toi32_i32$1 = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$2 = 0;
+ $13_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ }
+ } else {
+ {
+ i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $13_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ }
+ setTempRet0($13_1 | 0);
+ i64toi32_i32$2 = $2$hi;
+ return $2_1 | 0;
+ }
+
+ function legalstub$18($0_1, $1_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $10_1 = 0, $3_1 = 0, $3$hi = 0, $6$hi = 0;
+ i64toi32_i32$0 = 0;
+ $3_1 = $0_1;
+ $3$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $10_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;
+ $10_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $6$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $3$hi;
+ i64toi32_i32$0 = $3_1;
+ i64toi32_i32$2 = $6$hi;
+ i64toi32_i32$3 = $10_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ return $18(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0) | 0 | 0;
+ }
+
+ function legalstub$19($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $19_1 = 0, $20_1 = 0, $5_1 = 0, $5$hi = 0, $8$hi = 0, $9_1 = 0, $9$hi = 0, $11_1 = 0, $11$hi = 0, $14$hi = 0, $15_1 = 0, $15$hi = 0;
+ i64toi32_i32$0 = 0;
+ $5_1 = $0_1;
+ $5$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $19_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;
+ $19_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $8$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $5$hi;
+ i64toi32_i32$0 = $5_1;
+ i64toi32_i32$2 = $8$hi;
+ i64toi32_i32$3 = $19_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $9_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $9$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $11_1 = $2_1;
+ $11$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $20_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $20_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $14$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $11$hi;
+ i64toi32_i32$2 = $11_1;
+ i64toi32_i32$1 = $14$hi;
+ i64toi32_i32$3 = $20_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $15_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $15$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $9$hi;
+ i64toi32_i32$2 = $15$hi;
+ return $19($9_1 | 0, i64toi32_i32$1 | 0, $15_1 | 0, i64toi32_i32$2 | 0) | 0 | 0;
+ }
+
+ function legalstub$20($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $19_1 = 0, $20_1 = 0, $5_1 = 0, $5$hi = 0, $8$hi = 0, $9_1 = 0, $9$hi = 0, $11_1 = 0, $11$hi = 0, $14$hi = 0, $15_1 = 0, $15$hi = 0;
+ i64toi32_i32$0 = 0;
+ $5_1 = $0_1;
+ $5$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $19_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;
+ $19_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $8$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $5$hi;
+ i64toi32_i32$0 = $5_1;
+ i64toi32_i32$2 = $8$hi;
+ i64toi32_i32$3 = $19_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $9_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $9$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $11_1 = $2_1;
+ $11$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $20_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $20_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $14$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $11$hi;
+ i64toi32_i32$2 = $11_1;
+ i64toi32_i32$1 = $14$hi;
+ i64toi32_i32$3 = $20_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $15_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $15$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $9$hi;
+ i64toi32_i32$2 = $15$hi;
+ return $20($9_1 | 0, i64toi32_i32$1 | 0, $15_1 | 0, i64toi32_i32$2 | 0) | 0 | 0;
+ }
+
+ function legalstub$21($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $19_1 = 0, $20_1 = 0, $5_1 = 0, $5$hi = 0, $8$hi = 0, $9_1 = 0, $9$hi = 0, $11_1 = 0, $11$hi = 0, $14$hi = 0, $15_1 = 0, $15$hi = 0;
+ i64toi32_i32$0 = 0;
+ $5_1 = $0_1;
+ $5$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $19_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;
+ $19_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $8$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $5$hi;
+ i64toi32_i32$0 = $5_1;
+ i64toi32_i32$2 = $8$hi;
+ i64toi32_i32$3 = $19_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $9_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $9$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $11_1 = $2_1;
+ $11$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $20_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $20_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $14$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $11$hi;
+ i64toi32_i32$2 = $11_1;
+ i64toi32_i32$1 = $14$hi;
+ i64toi32_i32$3 = $20_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $15_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $15$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $9$hi;
+ i64toi32_i32$2 = $15$hi;
+ return $21($9_1 | 0, i64toi32_i32$1 | 0, $15_1 | 0, i64toi32_i32$2 | 0) | 0 | 0;
+ }
+
+ function legalstub$22($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $19_1 = 0, $20_1 = 0, $5_1 = 0, $5$hi = 0, $8$hi = 0, $9_1 = 0, $9$hi = 0, $11_1 = 0, $11$hi = 0, $14$hi = 0, $15_1 = 0, $15$hi = 0;
+ i64toi32_i32$0 = 0;
+ $5_1 = $0_1;
+ $5$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $19_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;
+ $19_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $8$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $5$hi;
+ i64toi32_i32$0 = $5_1;
+ i64toi32_i32$2 = $8$hi;
+ i64toi32_i32$3 = $19_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $9_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $9$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $11_1 = $2_1;
+ $11$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $20_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $20_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $14$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $11$hi;
+ i64toi32_i32$2 = $11_1;
+ i64toi32_i32$1 = $14$hi;
+ i64toi32_i32$3 = $20_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $15_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $15$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $9$hi;
+ i64toi32_i32$2 = $15$hi;
+ return $22($9_1 | 0, i64toi32_i32$1 | 0, $15_1 | 0, i64toi32_i32$2 | 0) | 0 | 0;
+ }
+
+ function legalstub$23($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $19_1 = 0, $20_1 = 0, $5_1 = 0, $5$hi = 0, $8$hi = 0, $9_1 = 0, $9$hi = 0, $11_1 = 0, $11$hi = 0, $14$hi = 0, $15_1 = 0, $15$hi = 0;
+ i64toi32_i32$0 = 0;
+ $5_1 = $0_1;
+ $5$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $19_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;
+ $19_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $8$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $5$hi;
+ i64toi32_i32$0 = $5_1;
+ i64toi32_i32$2 = $8$hi;
+ i64toi32_i32$3 = $19_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $9_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $9$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $11_1 = $2_1;
+ $11$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $20_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $20_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $14$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $11$hi;
+ i64toi32_i32$2 = $11_1;
+ i64toi32_i32$1 = $14$hi;
+ i64toi32_i32$3 = $20_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $15_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $15$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $9$hi;
+ i64toi32_i32$2 = $15$hi;
+ return $23($9_1 | 0, i64toi32_i32$1 | 0, $15_1 | 0, i64toi32_i32$2 | 0) | 0 | 0;
+ }
+
+ function legalstub$24($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $19_1 = 0, $20_1 = 0, $5_1 = 0, $5$hi = 0, $8$hi = 0, $9_1 = 0, $9$hi = 0, $11_1 = 0, $11$hi = 0, $14$hi = 0, $15_1 = 0, $15$hi = 0;
+ i64toi32_i32$0 = 0;
+ $5_1 = $0_1;
+ $5$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $19_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;
+ $19_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $8$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $5$hi;
+ i64toi32_i32$0 = $5_1;
+ i64toi32_i32$2 = $8$hi;
+ i64toi32_i32$3 = $19_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $9_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $9$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $11_1 = $2_1;
+ $11$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $20_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $20_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $14$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $11$hi;
+ i64toi32_i32$2 = $11_1;
+ i64toi32_i32$1 = $14$hi;
+ i64toi32_i32$3 = $20_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $15_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $15$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $9$hi;
+ i64toi32_i32$2 = $15$hi;
+ return $24($9_1 | 0, i64toi32_i32$1 | 0, $15_1 | 0, i64toi32_i32$2 | 0) | 0 | 0;
+ }
+
+ function legalstub$25($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $19_1 = 0, $20_1 = 0, $5_1 = 0, $5$hi = 0, $8$hi = 0, $9_1 = 0, $9$hi = 0, $11_1 = 0, $11$hi = 0, $14$hi = 0, $15_1 = 0, $15$hi = 0;
+ i64toi32_i32$0 = 0;
+ $5_1 = $0_1;
+ $5$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $19_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;
+ $19_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $8$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $5$hi;
+ i64toi32_i32$0 = $5_1;
+ i64toi32_i32$2 = $8$hi;
+ i64toi32_i32$3 = $19_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $9_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $9$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $11_1 = $2_1;
+ $11$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $20_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $20_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $14$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $11$hi;
+ i64toi32_i32$2 = $11_1;
+ i64toi32_i32$1 = $14$hi;
+ i64toi32_i32$3 = $20_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $15_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $15$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $9$hi;
+ i64toi32_i32$2 = $15$hi;
+ return $25($9_1 | 0, i64toi32_i32$1 | 0, $15_1 | 0, i64toi32_i32$2 | 0) | 0 | 0;
+ }
+
+ function legalstub$26($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $19_1 = 0, $20_1 = 0, $5_1 = 0, $5$hi = 0, $8$hi = 0, $9_1 = 0, $9$hi = 0, $11_1 = 0, $11$hi = 0, $14$hi = 0, $15_1 = 0, $15$hi = 0;
+ i64toi32_i32$0 = 0;
+ $5_1 = $0_1;
+ $5$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $19_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;
+ $19_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $8$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $5$hi;
+ i64toi32_i32$0 = $5_1;
+ i64toi32_i32$2 = $8$hi;
+ i64toi32_i32$3 = $19_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $9_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $9$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $11_1 = $2_1;
+ $11$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $20_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $20_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $14$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $11$hi;
+ i64toi32_i32$2 = $11_1;
+ i64toi32_i32$1 = $14$hi;
+ i64toi32_i32$3 = $20_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $15_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $15$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $9$hi;
+ i64toi32_i32$2 = $15$hi;
+ return $26($9_1 | 0, i64toi32_i32$1 | 0, $15_1 | 0, i64toi32_i32$2 | 0) | 0 | 0;
+ }
+
+ function legalstub$27($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $19_1 = 0, $20_1 = 0, $5_1 = 0, $5$hi = 0, $8$hi = 0, $9_1 = 0, $9$hi = 0, $11_1 = 0, $11$hi = 0, $14$hi = 0, $15_1 = 0, $15$hi = 0;
+ i64toi32_i32$0 = 0;
+ $5_1 = $0_1;
+ $5$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $19_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;
+ $19_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $8$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $5$hi;
+ i64toi32_i32$0 = $5_1;
+ i64toi32_i32$2 = $8$hi;
+ i64toi32_i32$3 = $19_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $9_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $9$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $11_1 = $2_1;
+ $11$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $20_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $20_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $14$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $11$hi;
+ i64toi32_i32$2 = $11_1;
+ i64toi32_i32$1 = $14$hi;
+ i64toi32_i32$3 = $20_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $15_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $15$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $9$hi;
+ i64toi32_i32$2 = $15$hi;
+ return $27($9_1 | 0, i64toi32_i32$1 | 0, $15_1 | 0, i64toi32_i32$2 | 0) | 0 | 0;
+ }
+
+ function legalstub$28($0_1, $1_1, $2_1, $3_1) {
+ $0_1 = $0_1 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $19_1 = 0, $20_1 = 0, $5_1 = 0, $5$hi = 0, $8$hi = 0, $9_1 = 0, $9$hi = 0, $11_1 = 0, $11$hi = 0, $14$hi = 0, $15_1 = 0, $15$hi = 0;
+ i64toi32_i32$0 = 0;
+ $5_1 = $0_1;
+ $5$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$2 = $1_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $19_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;
+ $19_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ }
+ $8$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $5$hi;
+ i64toi32_i32$0 = $5_1;
+ i64toi32_i32$2 = $8$hi;
+ i64toi32_i32$3 = $19_1;
+ i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
+ $9_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0;
+ $9$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ $11_1 = $2_1;
+ $11$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $3_1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $20_1 = 0;
+ }
+ } else {
+ {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $20_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ }
+ $14$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $11$hi;
+ i64toi32_i32$2 = $11_1;
+ i64toi32_i32$1 = $14$hi;
+ i64toi32_i32$3 = $20_1;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ $15_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ $15$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = $9$hi;
+ i64toi32_i32$2 = $15$hi;
+ return $28($9_1 | 0, i64toi32_i32$1 | 0, $15_1 | 0, i64toi32_i32$2 | 0) | 0 | 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;
@@ -1807,40 +3940,40 @@ function asmFunc(global, env, buffer) {
var FUNCTION_TABLE = [];
return {
- add: $0,
- sub: $1,
- mul: $2,
- div_s: $3,
- div_u: $4,
- rem_s: $5,
- rem_u: $6,
- and: $7,
- or: $8,
- xor: $9,
- shl: $10,
- shr_s: $11,
- shr_u: $12,
- rotl: $13,
- rotr: $14,
- clz: $15,
- ctz: $16,
- popcnt: $17,
- eqz: $18,
- eq: $19,
- ne: $20,
- lt_s: $21,
- lt_u: $22,
- le_s: $23,
- le_u: $24,
- gt_s: $25,
- gt_u: $26,
- ge_s: $27,
- ge_u: $28
+ add: legalstub$0,
+ sub: legalstub$1,
+ mul: legalstub$2,
+ div_s: legalstub$3,
+ div_u: legalstub$4,
+ rem_s: legalstub$5,
+ rem_u: legalstub$6,
+ and: legalstub$7,
+ or: legalstub$8,
+ xor: legalstub$9,
+ shl: legalstub$10,
+ shr_s: legalstub$11,
+ shr_u: legalstub$12,
+ rotl: legalstub$13,
+ rotr: legalstub$14,
+ clz: legalstub$15,
+ ctz: legalstub$16,
+ popcnt: legalstub$17,
+ eqz: legalstub$18,
+ eq: legalstub$19,
+ ne: legalstub$20,
+ lt_s: legalstub$21,
+ lt_u: legalstub$22,
+ le_s: legalstub$23,
+ le_u: legalstub$24,
+ gt_s: legalstub$25,
+ gt_u: legalstub$26,
+ ge_s: legalstub$27,
+ ge_u: legalstub$28
};
}
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'); },setTempRet0},memasmFunc);
export const add = retasmFunc.add;
export const sub = retasmFunc.sub;
export const mul = retasmFunc.mul;