summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2019-05-03 11:26:41 -0700
committerGitHub <noreply@github.com>2019-05-03 11:26:41 -0700
commit909ac3410093c0b35b3181abcd44b9fb9ceb4781 (patch)
tree99b75f23843e1a435231e76f8e39835999ca9ee9
parent80b509cfb8fa35d229643f35e423e6d049ab8849 (diff)
downloadbinaryen-909ac3410093c0b35b3181abcd44b9fb9ceb4781.tar.gz
binaryen-909ac3410093c0b35b3181abcd44b9fb9ceb4781.tar.bz2
binaryen-909ac3410093c0b35b3181abcd44b9fb9ceb4781.zip
wasm2js: avoid some slow operations when not optimizing (#2082)
Without this PR, wasm2js0.test_printf in emscripten took an extremely long time to compile.
-rw-r--r--src/wasm2js.h10
-rw-r--r--test/wasm2js/block.2asm.js39
-rw-r--r--test/wasm2js/br.2asm.js28
-rw-r--r--test/wasm2js/br_if.2asm.js91
-rw-r--r--test/wasm2js/br_table.2asm.js40
-rw-r--r--test/wasm2js/br_table_temp.2asm.js40
-rw-r--r--test/wasm2js/f32.2asm.js12
-rw-r--r--test/wasm2js/f64.2asm.js12
-rw-r--r--test/wasm2js/fac.2asm.js102
-rw-r--r--test/wasm2js/float_misc.2asm.js24
-rw-r--r--test/wasm2js/func.2asm.js8
-rw-r--r--test/wasm2js/i64.2asm.js452
-rw-r--r--test/wasm2js/int_exprs.2asm.js4972
-rw-r--r--test/wasm2js/labels.2asm.js152
-rw-r--r--test/wasm2js/left-to-right.2asm.js458
-rw-r--r--test/wasm2js/loop.2asm.js278
-rw-r--r--test/wasm2js/stack-modified.2asm.js170
-rw-r--r--test/wasm2js/switch.2asm.js6
-rw-r--r--test/wasm2js/traps.2asm.js904
-rw-r--r--test/wasm2js/unreachable.2asm.js40
20 files changed, 4087 insertions, 3751 deletions
diff --git a/src/wasm2js.h b/src/wasm2js.h
index 731bf0a8c..e721d3d58 100644
--- a/src/wasm2js.h
+++ b/src/wasm2js.h
@@ -301,12 +301,14 @@ Ref Wasm2JSBuilder::processWasm(Module* wasm, Name funcName) {
// Finally, get the code into the flat form we need for wasm2js itself, and
// optimize that a little in a way that keeps flat property.
runner.add("flatten");
- runner.add("remove-unused-names");
- runner.add("merge-blocks");
+ // Regardless of optimization level, run some simple optimizations to undo
+ // some of the effects of flattening.
runner.add("simplify-locals-notee-nostructure");
- // Coalescing is slow if we didn't run full optimizations earlier, so don't
- // run it automatically.
+ // Some operations can be very slow if we didn't run full optimizations
+ // earlier, so don't run them automatically.
if (options.optimizeLevel > 0) {
+ runner.add("remove-unused-names");
+ runner.add("merge-blocks");
runner.add("coalesce-locals");
}
runner.add("reorder-locals");
diff --git a/test/wasm2js/block.2asm.js b/test/wasm2js/block.2asm.js
index 5d652f743..51b13270c 100644
--- a/test/wasm2js/block.2asm.js
+++ b/test/wasm2js/block.2asm.js
@@ -34,19 +34,25 @@ function asmFunc(global, env, buffer) {
}
function $3() {
- dummy();
- dummy();
- dummy();
- dummy();
- dummy();
- dummy();
- dummy();
+ block : {
+ dummy();
+ dummy();
+ dummy();
+ dummy();
+ }
+ block1 : {
+ dummy();
+ dummy();
+ dummy();
+ }
return 8 | 0;
}
function $4() {
- dummy();
- dummy();
+ block : {
+ dummy();
+ dummy();
+ }
return 9 | 0;
}
@@ -125,14 +131,13 @@ function asmFunc(global, env, buffer) {
$0 = 0;
$1_1 = $0;
block : {
- $2_1 = 1;
- break block;
+ block47 : {
+ $2_1 = 1;
+ break block;
+ }
}
$0 = $1_1 + $2_1 | 0;
$5_1 = $0;
- block49 : {
- break block49;
- }
$0 = $5_1 + 2 | 0;
$9_1 = $0;
block50 : {
@@ -142,8 +147,10 @@ function asmFunc(global, env, buffer) {
$0 = $9_1 + $10_1 | 0;
$13_1 = $0;
block51 : {
- $14_1 = 8;
- break block51;
+ block52 : {
+ $14_1 = 8;
+ break block51;
+ }
}
$0 = $13_1 + $14_1 | 0;
return $0 | 0;
diff --git a/test/wasm2js/br.2asm.js b/test/wasm2js/br.2asm.js
index ff5270db0..f02b0a154 100644
--- a/test/wasm2js/br.2asm.js
+++ b/test/wasm2js/br.2asm.js
@@ -115,8 +115,10 @@ function asmFunc(global, env, buffer) {
function $13() {
var $0 = 0, $1_1 = 0, $3_1 = 0;
block : {
- $0 = 3;
- break block;
+ loop_in : while (1) {
+ $0 = 3;
+ break block;
+ };
}
return $0 | 0;
}
@@ -124,9 +126,11 @@ function asmFunc(global, env, buffer) {
function $14() {
var $0 = 0, $1_1 = 0, $3_1 = 0;
block : {
- dummy();
- $0 = 4;
- break block;
+ loop_in : while (1) {
+ dummy();
+ $0 = 4;
+ break block;
+ };
}
return $0 | 0;
}
@@ -134,9 +138,11 @@ function asmFunc(global, env, buffer) {
function $15() {
var $0 = 0;
block : {
- dummy();
- $0 = 5;
- break block;
+ loop_in : while (1) {
+ dummy();
+ $0 = 5;
+ break block;
+ };
}
return $0 | 0;
}
@@ -505,8 +511,10 @@ function asmFunc(global, env, buffer) {
function $54() {
var $0 = 0;
block : {
- $0 = 8;
- break block;
+ block0 : {
+ $0 = 8;
+ break block;
+ }
}
return 1 + $0 | 0 | 0;
}
diff --git a/test/wasm2js/br_if.2asm.js b/test/wasm2js/br_if.2asm.js
index 8e388a646..691dc6985 100644
--- a/test/wasm2js/br_if.2asm.js
+++ b/test/wasm2js/br_if.2asm.js
@@ -50,9 +50,9 @@ function asmFunc(global, env, buffer) {
function $3($0) {
$0 = $0 | 0;
- dummy();
- dummy();
block : {
+ dummy();
+ dummy();
if ($0) {
break block
}
@@ -89,10 +89,10 @@ function asmFunc(global, env, buffer) {
function $6($0) {
$0 = $0 | 0;
var $2_1 = 0;
- dummy();
- dummy();
- $2_1 = 11;
block : {
+ dummy();
+ dummy();
+ $2_1 = 11;
if ($0) {
break block
}
@@ -103,10 +103,12 @@ function asmFunc(global, env, buffer) {
function $7($0) {
$0 = $0 | 0;
block : {
- if ($0) {
- break block
- }
- return 2 | 0;
+ loop_in : while (1) {
+ if ($0) {
+ break block
+ }
+ return 2 | 0;
+ };
}
return 3 | 0;
}
@@ -114,22 +116,27 @@ function asmFunc(global, env, buffer) {
function $8($0) {
$0 = $0 | 0;
block : {
- dummy();
- if ($0) {
- break block
- }
- return 2 | 0;
+ loop_in : while (1) {
+ dummy();
+ if ($0) {
+ break block
+ }
+ return 2 | 0;
+ };
}
return 4 | 0;
}
function $9($0) {
$0 = $0 | 0;
- dummy();
fake_return_waka123 : {
- if ($0) {
- break fake_return_waka123
- }
+ loop_in : while (1) {
+ dummy();
+ if ($0) {
+ break fake_return_waka123
+ }
+ break loop_in;
+ };
}
}
@@ -164,10 +171,12 @@ function asmFunc(global, env, buffer) {
function $12($0) {
$0 = $0 | 0;
var $2_1 = 0;
- $2_1 = 8;
block : {
- if ($0) {
- break block
+ block0 : {
+ $2_1 = 8;
+ if ($0) {
+ break block
+ }
}
$2_1 = 4 + 16 | 0;
}
@@ -178,9 +187,11 @@ function asmFunc(global, env, buffer) {
$0 = $0 | 0;
var $2_1 = 0;
block : {
- $2_1 = 8;
- if ($0) {
- break block
+ block1 : {
+ $2_1 = 8;
+ if ($0) {
+ break block
+ }
}
$2_1 = 4;
break block;
@@ -191,10 +202,12 @@ function asmFunc(global, env, buffer) {
function $14($0) {
$0 = $0 | 0;
var $2_1 = 0;
- $2_1 = 8;
block : {
- if ($0) {
- break block
+ block2 : {
+ $2_1 = 8;
+ if ($0) {
+ break block
+ }
}
$2_1 = 4;
if (1) {
@@ -208,10 +221,12 @@ function asmFunc(global, env, buffer) {
function $15($0) {
$0 = $0 | 0;
var $2_1 = 0;
- $2_1 = 8;
block : {
- if ($0) {
- break block
+ block3 : {
+ $2_1 = 8;
+ if ($0) {
+ break block
+ }
}
$2_1 = 4;
if (1) {
@@ -226,9 +241,11 @@ function asmFunc(global, env, buffer) {
$0 = $0 | 0;
var $2_1 = 0;
block : {
- $2_1 = 8;
- if ($0) {
- break block
+ block4 : {
+ $2_1 = 8;
+ if ($0) {
+ break block
+ }
}
$2_1 = 4;
switch (1 | 0) {
@@ -243,9 +260,11 @@ function asmFunc(global, env, buffer) {
$0 = $0 | 0;
var $2_1 = 0;
block : {
- $2_1 = 8;
- if ($0) {
- break block
+ block5 : {
+ $2_1 = 8;
+ if ($0) {
+ break block
+ }
}
$2_1 = 4;
switch (1 | 0) {
diff --git a/test/wasm2js/br_table.2asm.js b/test/wasm2js/br_table.2asm.js
index 80e543532..952e99b1b 100644
--- a/test/wasm2js/br_table.2asm.js
+++ b/test/wasm2js/br_table.2asm.js
@@ -98,12 +98,6 @@ function asmFunc(global, env, buffer) {
function $9($0) {
$0 = $0 | 0;
- block : {
- switch ($0 | 0) {
- default:
- break block;
- };
- }
return 22 | 0;
}
@@ -12593,10 +12587,12 @@ function asmFunc(global, env, buffer) {
function $20() {
var $1_1 = 0, $2_1 = 0, $4_1 = 0;
fake_return_waka123 : {
- $1_1 = 3;
- switch (0 | 0) {
- default:
- break fake_return_waka123;
+ loop_in : while (1) {
+ $1_1 = 3;
+ switch (0 | 0) {
+ default:
+ break fake_return_waka123;
+ };
};
}
return $1_1 | 0;
@@ -12605,11 +12601,13 @@ function asmFunc(global, env, buffer) {
function $21() {
var $1_1 = 0, $2_1 = 0, $4_1 = 0;
fake_return_waka123 : {
- dummy();
- $1_1 = 4;
- switch (-1 | 0) {
- default:
- break fake_return_waka123;
+ loop_in : while (1) {
+ dummy();
+ $1_1 = 4;
+ switch (-1 | 0) {
+ default:
+ break fake_return_waka123;
+ };
};
}
return $1_1 | 0;
@@ -12618,11 +12616,13 @@ function asmFunc(global, env, buffer) {
function $22() {
var $1_1 = 0;
fake_return_waka123 : {
- dummy();
- $1_1 = 5;
- switch (1 | 0) {
- default:
- break fake_return_waka123;
+ loop_in : while (1) {
+ dummy();
+ $1_1 = 5;
+ switch (1 | 0) {
+ default:
+ break fake_return_waka123;
+ };
};
}
return $1_1 | 0;
diff --git a/test/wasm2js/br_table_temp.2asm.js b/test/wasm2js/br_table_temp.2asm.js
index f8e7c4700..b55d6ab24 100644
--- a/test/wasm2js/br_table_temp.2asm.js
+++ b/test/wasm2js/br_table_temp.2asm.js
@@ -94,12 +94,6 @@ function asmFunc(global, env, buffer) {
function $9($0) {
$0 = $0 | 0;
- block : {
- switch ($0 | 0) {
- default:
- break block;
- };
- }
return 22 | 0;
}
@@ -12589,10 +12583,12 @@ function asmFunc(global, env, buffer) {
function $20() {
var $1_1 = 0, $2_1 = 0, $4_1 = 0;
fake_return_waka123 : {
- $1_1 = 3;
- switch (0 | 0) {
- default:
- break fake_return_waka123;
+ loop_in : while (1) {
+ $1_1 = 3;
+ switch (0 | 0) {
+ default:
+ break fake_return_waka123;
+ };
};
}
return $1_1 | 0;
@@ -12601,11 +12597,13 @@ function asmFunc(global, env, buffer) {
function $21() {
var $1_1 = 0, $2_1 = 0, $4_1 = 0;
fake_return_waka123 : {
- dummy();
- $1_1 = 4;
- switch (-1 | 0) {
- default:
- break fake_return_waka123;
+ loop_in : while (1) {
+ dummy();
+ $1_1 = 4;
+ switch (-1 | 0) {
+ default:
+ break fake_return_waka123;
+ };
};
}
return $1_1 | 0;
@@ -12614,11 +12612,13 @@ function asmFunc(global, env, buffer) {
function $22() {
var $1_1 = 0;
fake_return_waka123 : {
- dummy();
- $1_1 = 5;
- switch (1 | 0) {
- default:
- break fake_return_waka123;
+ loop_in : while (1) {
+ dummy();
+ $1_1 = 5;
+ switch (1 | 0) {
+ default:
+ break fake_return_waka123;
+ };
};
}
return $1_1 | 0;
diff --git a/test/wasm2js/f32.2asm.js b/test/wasm2js/f32.2asm.js
index 107c3ea2d..ccd67a000 100644
--- a/test/wasm2js/f32.2asm.js
+++ b/test/wasm2js/f32.2asm.js
@@ -126,12 +126,14 @@ function asmFunc(global, env, buffer) {
var$1 = Math_fround(Math_floor(var$0));
var$2 = Math_fround(var$0 - var$1);
if (!(var$2 < Math_fround(.5))) {
- var$0 = Math_fround(Math_ceil(var$0));
- if (var$2 > Math_fround(.5)) {
- return Math_fround(var$0)
+ block : {
+ var$0 = Math_fround(Math_ceil(var$0));
+ if (var$2 > Math_fround(.5)) {
+ return Math_fround(var$0)
+ }
+ var$2 = Math_fround(var$1 * Math_fround(.5));
+ var$1 = Math_fround(var$2 - Math_fround(Math_floor(var$2))) == Math_fround(0.0) ? var$1 : var$0;
}
- var$2 = Math_fround(var$1 * Math_fround(.5));
- var$1 = Math_fround(var$2 - Math_fround(Math_floor(var$2))) == Math_fround(0.0) ? var$1 : var$0;
}
return Math_fround(var$1);
}
diff --git a/test/wasm2js/f64.2asm.js b/test/wasm2js/f64.2asm.js
index cf4d31c92..ee8123f40 100644
--- a/test/wasm2js/f64.2asm.js
+++ b/test/wasm2js/f64.2asm.js
@@ -150,12 +150,14 @@ function asmFunc(global, env, buffer) {
var$1 = Math_floor(var$0);
var$2 = var$0 - var$1;
if (!(var$2 < .5)) {
- var$0 = Math_ceil(var$0);
- if (var$2 > .5) {
- return +var$0
+ block : {
+ var$0 = Math_ceil(var$0);
+ if (var$2 > .5) {
+ return +var$0
+ }
+ var$2 = var$1 * .5;
+ var$1 = var$2 - Math_floor(var$2) == 0.0 ? var$1 : var$0;
}
- var$2 = var$1 * .5;
- var$1 = var$2 - Math_floor(var$2) == 0.0 ? var$1 : var$0;
}
return +var$1;
}
diff --git a/test/wasm2js/fac.2asm.js b/test/wasm2js/fac.2asm.js
index 737ae3c59..d154a9742 100644
--- a/test/wasm2js/fac.2asm.js
+++ b/test/wasm2js/fac.2asm.js
@@ -105,22 +105,24 @@ function asmFunc(global, env, buffer) {
if ((i64toi32_i32$2 | 0) == (i64toi32_i32$3 | 0) & (i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) | 0) {
break block
} else {
- i64toi32_i32$2 = $1$hi;
- i64toi32_i32$2 = $2$hi;
- i64toi32_i32$2 = $1$hi;
- i64toi32_i32$0 = $2$hi;
- i64toi32_i32$0 = __wasm_i64_mul($1 | 0, i64toi32_i32$2 | 0, $2_1 | 0, i64toi32_i32$0 | 0) | 0;
- i64toi32_i32$2 = i64toi32_i32$HIGH_BITS;
- $2_1 = i64toi32_i32$0;
- $2$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $1$hi;
- i64toi32_i32$3 = $1;
- i64toi32_i32$0 = 0;
- i64toi32_i32$1 = 1;
- i64toi32_i32$5 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
- $1 = i64toi32_i32$3 - i64toi32_i32$1 | 0;
- $1$hi = i64toi32_i32$5;
+ block0 : {
+ i64toi32_i32$2 = $1$hi;
+ i64toi32_i32$2 = $2$hi;
+ i64toi32_i32$2 = $1$hi;
+ i64toi32_i32$0 = $2$hi;
+ i64toi32_i32$0 = __wasm_i64_mul($1 | 0, i64toi32_i32$2 | 0, $2_1 | 0, i64toi32_i32$0 | 0) | 0;
+ i64toi32_i32$2 = i64toi32_i32$HIGH_BITS;
+ $2_1 = i64toi32_i32$0;
+ $2$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $1$hi;
+ i64toi32_i32$3 = $1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$1 = 1;
+ i64toi32_i32$5 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ $1 = i64toi32_i32$3 - i64toi32_i32$1 | 0;
+ $1$hi = i64toi32_i32$5;
+ }
}
continue loop_in;
};
@@ -150,22 +152,24 @@ function asmFunc(global, env, buffer) {
if ((i64toi32_i32$2 | 0) == (i64toi32_i32$3 | 0) & (i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) | 0) {
break done
} else {
- i64toi32_i32$2 = i$hi;
- i64toi32_i32$2 = res$hi;
- i64toi32_i32$2 = i$hi;
- i64toi32_i32$0 = res$hi;
- i64toi32_i32$0 = __wasm_i64_mul(i | 0, i64toi32_i32$2 | 0, res | 0, i64toi32_i32$0 | 0) | 0;
- i64toi32_i32$2 = i64toi32_i32$HIGH_BITS;
- res = i64toi32_i32$0;
- res$hi = i64toi32_i32$2;
- i64toi32_i32$2 = i$hi;
- i64toi32_i32$3 = i;
- i64toi32_i32$0 = 0;
- i64toi32_i32$1 = 1;
- i64toi32_i32$5 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
- i = i64toi32_i32$3 - i64toi32_i32$1 | 0;
- i$hi = i64toi32_i32$5;
+ block : {
+ i64toi32_i32$2 = i$hi;
+ i64toi32_i32$2 = res$hi;
+ i64toi32_i32$2 = i$hi;
+ i64toi32_i32$0 = res$hi;
+ i64toi32_i32$0 = __wasm_i64_mul(i | 0, i64toi32_i32$2 | 0, res | 0, i64toi32_i32$0 | 0) | 0;
+ i64toi32_i32$2 = i64toi32_i32$HIGH_BITS;
+ res = i64toi32_i32$0;
+ res$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i$hi;
+ i64toi32_i32$3 = i;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$1 = 1;
+ i64toi32_i32$5 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ i = i64toi32_i32$3 - i64toi32_i32$1 | 0;
+ i$hi = i64toi32_i32$5;
+ }
}
continue loop;
};
@@ -183,26 +187,26 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$0 = 0;
$1 = 1;
$1$hi = i64toi32_i32$0;
- i64toi32_i32$0 = $0$hi;
- i64toi32_i32$2 = $0_1;
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = 2;
- if ((i64toi32_i32$0 | 0) < (i64toi32_i32$1 | 0)) {
- $10 = 1
- } else {
- if ((i64toi32_i32$0 | 0) <= (i64toi32_i32$1 | 0)) {
- if (i64toi32_i32$2 >>> 0 >= i64toi32_i32$3 >>> 0) {
- $11 = 0
+ block : {
+ i64toi32_i32$0 = $0$hi;
+ i64toi32_i32$2 = $0_1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 2;
+ if ((i64toi32_i32$0 | 0) < (i64toi32_i32$1 | 0)) {
+ $10 = 1
+ } else {
+ if ((i64toi32_i32$0 | 0) <= (i64toi32_i32$1 | 0)) {
+ if (i64toi32_i32$2 >>> 0 >= i64toi32_i32$3 >>> 0) {
+ $11 = 0
+ } else {
+ $11 = 1
+ }
+ $12 = $11;
} else {
- $11 = 1
+ $12 = 0
}
- $12 = $11;
- } else {
- $12 = 0
+ $10 = $12;
}
- $10 = $12;
- }
- block : {
if ($10) {
break block
}
diff --git a/test/wasm2js/float_misc.2asm.js b/test/wasm2js/float_misc.2asm.js
index 9dd282da3..a81f9dc25 100644
--- a/test/wasm2js/float_misc.2asm.js
+++ b/test/wasm2js/float_misc.2asm.js
@@ -235,12 +235,14 @@ function asmFunc(global, env, buffer) {
var$1 = Math_fround(Math_floor(var$0));
var$2 = Math_fround(var$0 - var$1);
if (!(var$2 < Math_fround(.5))) {
- var$0 = Math_fround(Math_ceil(var$0));
- if (var$2 > Math_fround(.5)) {
- return Math_fround(var$0)
+ block : {
+ var$0 = Math_fround(Math_ceil(var$0));
+ if (var$2 > Math_fround(.5)) {
+ return Math_fround(var$0)
+ }
+ var$2 = Math_fround(var$1 * Math_fround(.5));
+ var$1 = Math_fround(var$2 - Math_fround(Math_floor(var$2))) == Math_fround(0.0) ? var$1 : var$0;
}
- var$2 = Math_fround(var$1 * Math_fround(.5));
- var$1 = Math_fround(var$2 - Math_fround(Math_floor(var$2))) == Math_fround(0.0) ? var$1 : var$0;
}
return Math_fround(var$1);
}
@@ -251,12 +253,14 @@ function asmFunc(global, env, buffer) {
var$1 = Math_floor(var$0);
var$2 = var$0 - var$1;
if (!(var$2 < .5)) {
- var$0 = Math_ceil(var$0);
- if (var$2 > .5) {
- return +var$0
+ block : {
+ var$0 = Math_ceil(var$0);
+ if (var$2 > .5) {
+ return +var$0
+ }
+ var$2 = var$1 * .5;
+ var$1 = var$2 - Math_floor(var$2) == 0.0 ? var$1 : var$0;
}
- var$2 = var$1 * .5;
- var$1 = var$2 - Math_floor(var$2) == 0.0 ? var$1 : var$0;
}
return +var$1;
}
diff --git a/test/wasm2js/func.2asm.js b/test/wasm2js/func.2asm.js
index 91f0c2f3f..7aecd4e6b 100644
--- a/test/wasm2js/func.2asm.js
+++ b/test/wasm2js/func.2asm.js
@@ -183,8 +183,10 @@ function asmFunc(global, env, buffer) {
}
function $47() {
- dummy();
- dummy();
+ block : {
+ dummy();
+ dummy();
+ }
}
function $48() {
@@ -279,8 +281,8 @@ function asmFunc(global, env, buffer) {
function $62($0) {
$0 = $0 | 0;
var $2_1 = 0;
- $2_1 = 50;
fake_return_waka123 : {
+ $2_1 = 50;
if ($0) {
break fake_return_waka123
}
diff --git a/test/wasm2js/i64.2asm.js b/test/wasm2js/i64.2asm.js
index c4b408bb2..f96e46577 100644
--- a/test/wasm2js/i64.2asm.js
+++ b/test/wasm2js/i64.2asm.js
@@ -2738,121 +2738,125 @@ function asmFunc(global, env, buffer) {
label$7 : {
label$8 : {
label$9 : {
- label$11 : {
- i64toi32_i32$0 = var$0$hi;
- i64toi32_i32$2 = var$0;
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
i64toi32_i32$1 = 0;
- $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$2 = $37;
- if (var$2) {
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- if (!var$3) {
- break label$11
- }
- i64toi32_i32$1 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$2 = 0;
i64toi32_i32$3 = 32;
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ i64toi32_i32$1 = 0;
+ $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
} else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
}
- var$4 = $38;
- if (!var$4) {
- break label$9
+ var$2 = $37;
+ if (var$2) {
+ block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if (!var$3) {
+ break label$11
+ }
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $38;
+ if (!var$4) {
+ break label$9
+ }
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) {
+ break label$8
+ }
+ break label$2;
+ }
}
- var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
- if (var$2 >>> 0 <= 31 >>> 0) {
- break label$8
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
+ break label$2
}
- break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
}
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = 0;
- if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
- break label$2
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
}
+ var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- var$2 = var$0;
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ if (!var$0) {
+ break label$7
+ }
+ if (!var$3) {
+ break label$6
+ }
+ var$4 = var$3 + -1 | 0;
+ if (var$4 & var$3 | 0) {
+ break label$6
+ }
i64toi32_i32$1 = 0;
- legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $40 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $63$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $65$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $63$hi;
+ i64toi32_i32$3 = $40;
+ i64toi32_i32$1 = $65$hi;
+ i64toi32_i32$0 = $65;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$2;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$2 | 0;
- }
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$3 = var$1;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = 0;
- $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$3 = $39;
- i64toi32_i32$1 = var$0$hi;
- if (!var$0) {
- break label$7
- }
- if (!var$3) {
- break label$6
- }
- var$4 = var$3 + -1 | 0;
- if (var$4 & var$3 | 0) {
- break label$6
- }
- i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$4 & var$2 | 0;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $40 = 0;
- } else {
- i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
- $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ return i64toi32_i32$3 | 0;
}
- $63$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$1 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = -1;
- i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
- $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
- $65$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $63$hi;
- i64toi32_i32$3 = $40;
- i64toi32_i32$1 = $65$hi;
- i64toi32_i32$0 = $65;
- i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
- legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$3 | 0;
}
var$4 = var$3 + -1 | 0;
if (!(var$4 & var$3 | 0)) {
@@ -2955,132 +2959,134 @@ function asmFunc(global, env, buffer) {
var$0$hi = i64toi32_i32$2;
label$13 : {
if (var$2) {
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$3 = -1;
- i64toi32_i32$0 = -1;
- i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
- if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
- i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
- }
- var$8 = i64toi32_i32$4;
- var$8$hi = i64toi32_i32$5;
- label$15 : while (1) {
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$2 = var$5;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- $45 = 0;
- } else {
- i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
- $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- }
- $140 = $45;
- $140$hi = i64toi32_i32$1;
- i64toi32_i32$1 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
- }
- $142$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $140$hi;
- i64toi32_i32$1 = $140;
- i64toi32_i32$5 = $142$hi;
- i64toi32_i32$0 = $46;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
- var$5$hi = i64toi32_i32$5;
- $144 = var$5;
- $144$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$2 = var$8;
- i64toi32_i32$1 = var$5$hi;
- i64toi32_i32$0 = var$5;
- i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
- i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
- i64toi32_i32$5 = i64toi32_i32$3;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
- $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
- }
- var$6 = $47;
- var$6$hi = i64toi32_i32$2;
+ block3 : {
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$2 = var$6$hi;
- i64toi32_i32$4 = var$6;
- i64toi32_i32$5 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
- $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
- $151$hi = i64toi32_i32$5;
- i64toi32_i32$5 = $144$hi;
- i64toi32_i32$2 = $144;
- i64toi32_i32$4 = $151$hi;
- i64toi32_i32$0 = $151;
- i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
- i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
- var$5 = i64toi32_i32$1;
- var$5$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- $48 = 0;
- } else {
- i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
- $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- }
- $154$hi = i64toi32_i32$2;
- i64toi32_i32$2 = var$7$hi;
- i64toi32_i32$2 = $154$hi;
- i64toi32_i32$3 = $48;
- i64toi32_i32$5 = var$7$hi;
- i64toi32_i32$0 = var$7;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
- var$0$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$6$hi;
- i64toi32_i32$2 = var$6;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
- var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
- var$6$hi = i64toi32_i32$3;
- var$7 = var$6;
- var$7$hi = i64toi32_i32$3;
- var$2 = var$2 + -1 | 0;
- if (var$2) {
- continue label$15
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = -1;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
+ i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
}
- break label$15;
- };
- break label$13;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : while (1) {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $45 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $140 = $45;
+ $140$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $142$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $140$hi;
+ i64toi32_i32$1 = $140;
+ i64toi32_i32$5 = $142$hi;
+ i64toi32_i32$0 = $46;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $144 = var$5;
+ $144$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $47;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $151$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $144$hi;
+ i64toi32_i32$2 = $144;
+ i64toi32_i32$4 = $151$hi;
+ i64toi32_i32$0 = $151;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $154$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $154$hi;
+ i64toi32_i32$3 = $48;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + -1 | 0;
+ if (var$2) {
+ continue label$15
+ }
+ break label$15;
+ };
+ break label$13;
+ }
}
}
i64toi32_i32$3 = var$5$hi;
diff --git a/test/wasm2js/int_exprs.2asm.js b/test/wasm2js/int_exprs.2asm.js
index 5b8e0c64c..cfa8794ac 100644
--- a/test/wasm2js/int_exprs.2asm.js
+++ b/test/wasm2js/int_exprs.2asm.js
@@ -1224,121 +1224,125 @@ function asmFunc(global, env, buffer) {
label$7 : {
label$8 : {
label$9 : {
- label$11 : {
- i64toi32_i32$0 = var$0$hi;
- i64toi32_i32$2 = var$0;
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
i64toi32_i32$1 = 0;
- $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$2 = $37;
- if (var$2) {
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- if (!var$3) {
- break label$11
- }
- i64toi32_i32$1 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$2 = 0;
i64toi32_i32$3 = 32;
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ i64toi32_i32$1 = 0;
+ $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
} else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
}
- var$4 = $38;
- if (!var$4) {
- break label$9
+ var$2 = $37;
+ if (var$2) {
+ block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if (!var$3) {
+ break label$11
+ }
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $38;
+ if (!var$4) {
+ break label$9
+ }
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) {
+ break label$8
+ }
+ break label$2;
+ }
}
- var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
- if (var$2 >>> 0 <= 31 >>> 0) {
- break label$8
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
+ break label$2
}
- break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
}
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = 0;
- if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
- break label$2
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
}
+ var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- var$2 = var$0;
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ if (!var$0) {
+ break label$7
+ }
+ if (!var$3) {
+ break label$6
+ }
+ var$4 = var$3 + -1 | 0;
+ if (var$4 & var$3 | 0) {
+ break label$6
+ }
i64toi32_i32$1 = 0;
- legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $40 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $63$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $65$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $63$hi;
+ i64toi32_i32$3 = $40;
+ i64toi32_i32$1 = $65$hi;
+ i64toi32_i32$0 = $65;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$2;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$2 | 0;
- }
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$3 = var$1;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = 0;
- $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$3 = $39;
- i64toi32_i32$1 = var$0$hi;
- if (!var$0) {
- break label$7
+ return i64toi32_i32$3 | 0;
}
- if (!var$3) {
- break label$6
- }
- var$4 = var$3 + -1 | 0;
- if (var$4 & var$3 | 0) {
- break label$6
- }
- i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$4 & var$2 | 0;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $40 = 0;
- } else {
- i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
- $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- }
- $63$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$1 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = -1;
- i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
- $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
- $65$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $63$hi;
- i64toi32_i32$3 = $40;
- i64toi32_i32$1 = $65$hi;
- i64toi32_i32$0 = $65;
- i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
- legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$3 | 0;
}
var$4 = var$3 + -1 | 0;
if (!(var$4 & var$3 | 0)) {
@@ -1441,132 +1445,134 @@ function asmFunc(global, env, buffer) {
var$0$hi = i64toi32_i32$2;
label$13 : {
if (var$2) {
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$3 = -1;
- i64toi32_i32$0 = -1;
- i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
- if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
- i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
- }
- var$8 = i64toi32_i32$4;
- var$8$hi = i64toi32_i32$5;
- label$15 : while (1) {
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$2 = var$5;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- $45 = 0;
- } else {
- i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
- $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- }
- $140 = $45;
- $140$hi = i64toi32_i32$1;
- i64toi32_i32$1 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
- }
- $142$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $140$hi;
- i64toi32_i32$1 = $140;
- i64toi32_i32$5 = $142$hi;
- i64toi32_i32$0 = $46;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
- var$5$hi = i64toi32_i32$5;
- $144 = var$5;
- $144$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$2 = var$8;
- i64toi32_i32$1 = var$5$hi;
- i64toi32_i32$0 = var$5;
- i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
- i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
- i64toi32_i32$5 = i64toi32_i32$3;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
- $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
- }
- var$6 = $47;
- var$6$hi = i64toi32_i32$2;
+ block3 : {
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$2 = var$6$hi;
- i64toi32_i32$4 = var$6;
- i64toi32_i32$5 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
- $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
- $151$hi = i64toi32_i32$5;
- i64toi32_i32$5 = $144$hi;
- i64toi32_i32$2 = $144;
- i64toi32_i32$4 = $151$hi;
- i64toi32_i32$0 = $151;
- i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
- i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
- var$5 = i64toi32_i32$1;
- var$5$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- $48 = 0;
- } else {
- i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
- $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- }
- $154$hi = i64toi32_i32$2;
- i64toi32_i32$2 = var$7$hi;
- i64toi32_i32$2 = $154$hi;
- i64toi32_i32$3 = $48;
- i64toi32_i32$5 = var$7$hi;
- i64toi32_i32$0 = var$7;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
- var$0$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$6$hi;
- i64toi32_i32$2 = var$6;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
- var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
- var$6$hi = i64toi32_i32$3;
- var$7 = var$6;
- var$7$hi = i64toi32_i32$3;
- var$2 = var$2 + -1 | 0;
- if (var$2) {
- continue label$15
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = -1;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
+ i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
}
- break label$15;
- };
- break label$13;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : while (1) {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $45 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $140 = $45;
+ $140$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $142$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $140$hi;
+ i64toi32_i32$1 = $140;
+ i64toi32_i32$5 = $142$hi;
+ i64toi32_i32$0 = $46;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $144 = var$5;
+ $144$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $47;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $151$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $144$hi;
+ i64toi32_i32$2 = $144;
+ i64toi32_i32$4 = $151$hi;
+ i64toi32_i32$0 = $151;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $154$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $154$hi;
+ i64toi32_i32$3 = $48;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + -1 | 0;
+ if (var$2) {
+ continue label$15
+ }
+ break label$15;
+ };
+ break label$13;
+ }
}
}
i64toi32_i32$3 = var$5$hi;
@@ -2065,121 +2071,125 @@ function asmFunc(global, env, buffer) {
label$7 : {
label$8 : {
label$9 : {
- label$11 : {
- i64toi32_i32$0 = var$0$hi;
- i64toi32_i32$2 = var$0;
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
i64toi32_i32$1 = 0;
- $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$2 = $37;
- if (var$2) {
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- if (!var$3) {
- break label$11
- }
- i64toi32_i32$1 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$2 = 0;
i64toi32_i32$3 = 32;
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ i64toi32_i32$1 = 0;
+ $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
} else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
}
- var$4 = $38;
- if (!var$4) {
- break label$9
+ var$2 = $37;
+ if (var$2) {
+ block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if (!var$3) {
+ break label$11
+ }
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $38;
+ if (!var$4) {
+ break label$9
+ }
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) {
+ break label$8
+ }
+ break label$2;
+ }
}
- var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
- if (var$2 >>> 0 <= 31 >>> 0) {
- break label$8
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
+ break label$2
}
- break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
}
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = 0;
- if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
- break label$2
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
}
+ var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- var$2 = var$0;
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ if (!var$0) {
+ break label$7
+ }
+ if (!var$3) {
+ break label$6
+ }
+ var$4 = var$3 + -1 | 0;
+ if (var$4 & var$3 | 0) {
+ break label$6
+ }
i64toi32_i32$1 = 0;
- legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $40 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $63$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $65$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $63$hi;
+ i64toi32_i32$3 = $40;
+ i64toi32_i32$1 = $65$hi;
+ i64toi32_i32$0 = $65;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$2;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$2 | 0;
+ return i64toi32_i32$3 | 0;
}
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$3 = var$1;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = 0;
- $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$3 = $39;
- i64toi32_i32$1 = var$0$hi;
- if (!var$0) {
- break label$7
- }
- if (!var$3) {
- break label$6
- }
- var$4 = var$3 + -1 | 0;
- if (var$4 & var$3 | 0) {
- break label$6
- }
- i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$4 & var$2 | 0;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $40 = 0;
- } else {
- i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
- $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- }
- $63$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$1 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = -1;
- i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
- $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
- $65$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $63$hi;
- i64toi32_i32$3 = $40;
- i64toi32_i32$1 = $65$hi;
- i64toi32_i32$0 = $65;
- i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
- legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$3 | 0;
}
var$4 = var$3 + -1 | 0;
if (!(var$4 & var$3 | 0)) {
@@ -2282,132 +2292,134 @@ function asmFunc(global, env, buffer) {
var$0$hi = i64toi32_i32$2;
label$13 : {
if (var$2) {
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$3 = -1;
- i64toi32_i32$0 = -1;
- i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
- if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
- i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
- }
- var$8 = i64toi32_i32$4;
- var$8$hi = i64toi32_i32$5;
- label$15 : while (1) {
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$2 = var$5;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- $45 = 0;
- } else {
- i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
- $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- }
- $140 = $45;
- $140$hi = i64toi32_i32$1;
- i64toi32_i32$1 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
- }
- $142$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $140$hi;
- i64toi32_i32$1 = $140;
- i64toi32_i32$5 = $142$hi;
- i64toi32_i32$0 = $46;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
- var$5$hi = i64toi32_i32$5;
- $144 = var$5;
- $144$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$2 = var$8;
- i64toi32_i32$1 = var$5$hi;
- i64toi32_i32$0 = var$5;
- i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
- i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
- i64toi32_i32$5 = i64toi32_i32$3;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
- $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
- }
- var$6 = $47;
- var$6$hi = i64toi32_i32$2;
+ block3 : {
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$2 = var$6$hi;
- i64toi32_i32$4 = var$6;
- i64toi32_i32$5 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
- $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
- $151$hi = i64toi32_i32$5;
- i64toi32_i32$5 = $144$hi;
- i64toi32_i32$2 = $144;
- i64toi32_i32$4 = $151$hi;
- i64toi32_i32$0 = $151;
- i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
- i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
- var$5 = i64toi32_i32$1;
- var$5$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- $48 = 0;
- } else {
- i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
- $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- }
- $154$hi = i64toi32_i32$2;
- i64toi32_i32$2 = var$7$hi;
- i64toi32_i32$2 = $154$hi;
- i64toi32_i32$3 = $48;
- i64toi32_i32$5 = var$7$hi;
- i64toi32_i32$0 = var$7;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
- var$0$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$6$hi;
- i64toi32_i32$2 = var$6;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
- var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
- var$6$hi = i64toi32_i32$3;
- var$7 = var$6;
- var$7$hi = i64toi32_i32$3;
- var$2 = var$2 + -1 | 0;
- if (var$2) {
- continue label$15
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = -1;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
+ i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
}
- break label$15;
- };
- break label$13;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : while (1) {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $45 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $140 = $45;
+ $140$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $142$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $140$hi;
+ i64toi32_i32$1 = $140;
+ i64toi32_i32$5 = $142$hi;
+ i64toi32_i32$0 = $46;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $144 = var$5;
+ $144$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $47;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $151$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $144$hi;
+ i64toi32_i32$2 = $144;
+ i64toi32_i32$4 = $151$hi;
+ i64toi32_i32$0 = $151;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $154$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $154$hi;
+ i64toi32_i32$3 = $48;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + -1 | 0;
+ if (var$2) {
+ continue label$15
+ }
+ break label$15;
+ };
+ break label$13;
+ }
}
}
i64toi32_i32$3 = var$5$hi;
@@ -2782,121 +2794,125 @@ function asmFunc(global, env, buffer) {
label$7 : {
label$8 : {
label$9 : {
- label$11 : {
- i64toi32_i32$0 = var$0$hi;
- i64toi32_i32$2 = var$0;
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
i64toi32_i32$1 = 0;
- $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$2 = $37;
- if (var$2) {
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- if (!var$3) {
- break label$11
- }
- i64toi32_i32$1 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$2 = 0;
i64toi32_i32$3 = 32;
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ i64toi32_i32$1 = 0;
+ $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
} else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
}
- var$4 = $38;
- if (!var$4) {
- break label$9
+ var$2 = $37;
+ if (var$2) {
+ block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if (!var$3) {
+ break label$11
+ }
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $38;
+ if (!var$4) {
+ break label$9
+ }
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) {
+ break label$8
+ }
+ break label$2;
+ }
}
- var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
- if (var$2 >>> 0 <= 31 >>> 0) {
- break label$8
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
+ break label$2
}
- break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
}
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = 0;
- if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
- break label$2
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
}
+ var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- var$2 = var$0;
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ if (!var$0) {
+ break label$7
+ }
+ if (!var$3) {
+ break label$6
+ }
+ var$4 = var$3 + -1 | 0;
+ if (var$4 & var$3 | 0) {
+ break label$6
+ }
i64toi32_i32$1 = 0;
- legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $40 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $63$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $65$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $63$hi;
+ i64toi32_i32$3 = $40;
+ i64toi32_i32$1 = $65$hi;
+ i64toi32_i32$0 = $65;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$2;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$2 | 0;
- }
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$3 = var$1;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = 0;
- $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ return i64toi32_i32$3 | 0;
}
- var$3 = $39;
- i64toi32_i32$1 = var$0$hi;
- if (!var$0) {
- break label$7
- }
- if (!var$3) {
- break label$6
- }
- var$4 = var$3 + -1 | 0;
- if (var$4 & var$3 | 0) {
- break label$6
- }
- i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$4 & var$2 | 0;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $40 = 0;
- } else {
- i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
- $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- }
- $63$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$1 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = -1;
- i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
- $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
- $65$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $63$hi;
- i64toi32_i32$3 = $40;
- i64toi32_i32$1 = $65$hi;
- i64toi32_i32$0 = $65;
- i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
- legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$3 | 0;
}
var$4 = var$3 + -1 | 0;
if (!(var$4 & var$3 | 0)) {
@@ -2999,132 +3015,134 @@ function asmFunc(global, env, buffer) {
var$0$hi = i64toi32_i32$2;
label$13 : {
if (var$2) {
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$3 = -1;
- i64toi32_i32$0 = -1;
- i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
- if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
- i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
- }
- var$8 = i64toi32_i32$4;
- var$8$hi = i64toi32_i32$5;
- label$15 : while (1) {
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$2 = var$5;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- $45 = 0;
- } else {
- i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
- $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- }
- $140 = $45;
- $140$hi = i64toi32_i32$1;
- i64toi32_i32$1 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
- }
- $142$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $140$hi;
- i64toi32_i32$1 = $140;
- i64toi32_i32$5 = $142$hi;
- i64toi32_i32$0 = $46;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
- var$5$hi = i64toi32_i32$5;
- $144 = var$5;
- $144$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$2 = var$8;
- i64toi32_i32$1 = var$5$hi;
- i64toi32_i32$0 = var$5;
- i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
- i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
- i64toi32_i32$5 = i64toi32_i32$3;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
- $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
- }
- var$6 = $47;
- var$6$hi = i64toi32_i32$2;
+ block3 : {
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$2 = var$6$hi;
- i64toi32_i32$4 = var$6;
- i64toi32_i32$5 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
- $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
- $151$hi = i64toi32_i32$5;
- i64toi32_i32$5 = $144$hi;
- i64toi32_i32$2 = $144;
- i64toi32_i32$4 = $151$hi;
- i64toi32_i32$0 = $151;
- i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
- i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
- var$5 = i64toi32_i32$1;
- var$5$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- $48 = 0;
- } else {
- i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
- $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- }
- $154$hi = i64toi32_i32$2;
- i64toi32_i32$2 = var$7$hi;
- i64toi32_i32$2 = $154$hi;
- i64toi32_i32$3 = $48;
- i64toi32_i32$5 = var$7$hi;
- i64toi32_i32$0 = var$7;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
- var$0$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$6$hi;
- i64toi32_i32$2 = var$6;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
- var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
- var$6$hi = i64toi32_i32$3;
- var$7 = var$6;
- var$7$hi = i64toi32_i32$3;
- var$2 = var$2 + -1 | 0;
- if (var$2) {
- continue label$15
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = -1;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
+ i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
}
- break label$15;
- };
- break label$13;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : while (1) {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $45 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $140 = $45;
+ $140$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $142$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $140$hi;
+ i64toi32_i32$1 = $140;
+ i64toi32_i32$5 = $142$hi;
+ i64toi32_i32$0 = $46;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $144 = var$5;
+ $144$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $47;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $151$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $144$hi;
+ i64toi32_i32$2 = $144;
+ i64toi32_i32$4 = $151$hi;
+ i64toi32_i32$0 = $151;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $154$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $154$hi;
+ i64toi32_i32$3 = $48;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + -1 | 0;
+ if (var$2) {
+ continue label$15
+ }
+ break label$15;
+ };
+ break label$13;
+ }
}
}
i64toi32_i32$3 = var$5$hi;
@@ -3478,121 +3496,125 @@ function asmFunc(global, env, buffer) {
label$7 : {
label$8 : {
label$9 : {
- label$11 : {
- i64toi32_i32$0 = var$0$hi;
- i64toi32_i32$2 = var$0;
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
i64toi32_i32$1 = 0;
- $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$2 = $37;
- if (var$2) {
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- if (!var$3) {
- break label$11
- }
- i64toi32_i32$1 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$2 = 0;
i64toi32_i32$3 = 32;
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ i64toi32_i32$1 = 0;
+ $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
} else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
}
- var$4 = $38;
- if (!var$4) {
- break label$9
+ var$2 = $37;
+ if (var$2) {
+ block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if (!var$3) {
+ break label$11
+ }
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $38;
+ if (!var$4) {
+ break label$9
+ }
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) {
+ break label$8
+ }
+ break label$2;
+ }
}
- var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
- if (var$2 >>> 0 <= 31 >>> 0) {
- break label$8
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
+ break label$2
}
- break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
}
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = 0;
- if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
- break label$2
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
}
+ var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- var$2 = var$0;
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ if (!var$0) {
+ break label$7
+ }
+ if (!var$3) {
+ break label$6
+ }
+ var$4 = var$3 + -1 | 0;
+ if (var$4 & var$3 | 0) {
+ break label$6
+ }
i64toi32_i32$1 = 0;
- legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $40 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $63$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $65$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $63$hi;
+ i64toi32_i32$3 = $40;
+ i64toi32_i32$1 = $65$hi;
+ i64toi32_i32$0 = $65;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$2;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$2 | 0;
- }
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$3 = var$1;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = 0;
- $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$3 = $39;
- i64toi32_i32$1 = var$0$hi;
- if (!var$0) {
- break label$7
+ return i64toi32_i32$3 | 0;
}
- if (!var$3) {
- break label$6
- }
- var$4 = var$3 + -1 | 0;
- if (var$4 & var$3 | 0) {
- break label$6
- }
- i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$4 & var$2 | 0;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $40 = 0;
- } else {
- i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
- $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- }
- $63$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$1 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = -1;
- i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
- $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
- $65$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $63$hi;
- i64toi32_i32$3 = $40;
- i64toi32_i32$1 = $65$hi;
- i64toi32_i32$0 = $65;
- i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
- legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$3 | 0;
}
var$4 = var$3 + -1 | 0;
if (!(var$4 & var$3 | 0)) {
@@ -3695,132 +3717,134 @@ function asmFunc(global, env, buffer) {
var$0$hi = i64toi32_i32$2;
label$13 : {
if (var$2) {
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$3 = -1;
- i64toi32_i32$0 = -1;
- i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
- if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
- i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
- }
- var$8 = i64toi32_i32$4;
- var$8$hi = i64toi32_i32$5;
- label$15 : while (1) {
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$2 = var$5;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- $45 = 0;
- } else {
- i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
- $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- }
- $140 = $45;
- $140$hi = i64toi32_i32$1;
- i64toi32_i32$1 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
- }
- $142$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $140$hi;
- i64toi32_i32$1 = $140;
- i64toi32_i32$5 = $142$hi;
- i64toi32_i32$0 = $46;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
- var$5$hi = i64toi32_i32$5;
- $144 = var$5;
- $144$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$2 = var$8;
- i64toi32_i32$1 = var$5$hi;
- i64toi32_i32$0 = var$5;
- i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
- i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
- i64toi32_i32$5 = i64toi32_i32$3;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
- $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
- }
- var$6 = $47;
- var$6$hi = i64toi32_i32$2;
+ block3 : {
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$2 = var$6$hi;
- i64toi32_i32$4 = var$6;
- i64toi32_i32$5 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
- $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
- $151$hi = i64toi32_i32$5;
- i64toi32_i32$5 = $144$hi;
- i64toi32_i32$2 = $144;
- i64toi32_i32$4 = $151$hi;
- i64toi32_i32$0 = $151;
- i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
- i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
- var$5 = i64toi32_i32$1;
- var$5$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- $48 = 0;
- } else {
- i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
- $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- }
- $154$hi = i64toi32_i32$2;
- i64toi32_i32$2 = var$7$hi;
- i64toi32_i32$2 = $154$hi;
- i64toi32_i32$3 = $48;
- i64toi32_i32$5 = var$7$hi;
- i64toi32_i32$0 = var$7;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
- var$0$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$6$hi;
- i64toi32_i32$2 = var$6;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
- var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
- var$6$hi = i64toi32_i32$3;
- var$7 = var$6;
- var$7$hi = i64toi32_i32$3;
- var$2 = var$2 + -1 | 0;
- if (var$2) {
- continue label$15
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = -1;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
+ i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
}
- break label$15;
- };
- break label$13;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : while (1) {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $45 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $140 = $45;
+ $140$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $142$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $140$hi;
+ i64toi32_i32$1 = $140;
+ i64toi32_i32$5 = $142$hi;
+ i64toi32_i32$0 = $46;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $144 = var$5;
+ $144$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $47;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $151$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $144$hi;
+ i64toi32_i32$2 = $144;
+ i64toi32_i32$4 = $151$hi;
+ i64toi32_i32$0 = $151;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $154$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $154$hi;
+ i64toi32_i32$3 = $48;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + -1 | 0;
+ if (var$2) {
+ continue label$15
+ }
+ break label$15;
+ };
+ break label$13;
+ }
}
}
i64toi32_i32$3 = var$5$hi;
@@ -4207,121 +4231,125 @@ function asmFunc(global, env, buffer) {
label$7 : {
label$8 : {
label$9 : {
- label$11 : {
- i64toi32_i32$0 = var$0$hi;
- i64toi32_i32$2 = var$0;
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
i64toi32_i32$1 = 0;
- $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$2 = $37;
- if (var$2) {
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- if (!var$3) {
- break label$11
- }
- i64toi32_i32$1 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$2 = 0;
i64toi32_i32$3 = 32;
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ i64toi32_i32$1 = 0;
+ $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
} else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
}
- var$4 = $38;
- if (!var$4) {
- break label$9
+ var$2 = $37;
+ if (var$2) {
+ block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if (!var$3) {
+ break label$11
+ }
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $38;
+ if (!var$4) {
+ break label$9
+ }
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) {
+ break label$8
+ }
+ break label$2;
+ }
}
- var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
- if (var$2 >>> 0 <= 31 >>> 0) {
- break label$8
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
+ break label$2
}
- break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
}
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = 0;
- if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
- break label$2
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
}
+ var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- var$2 = var$0;
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ if (!var$0) {
+ break label$7
+ }
+ if (!var$3) {
+ break label$6
+ }
+ var$4 = var$3 + -1 | 0;
+ if (var$4 & var$3 | 0) {
+ break label$6
+ }
i64toi32_i32$1 = 0;
- legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $40 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $63$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $65$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $63$hi;
+ i64toi32_i32$3 = $40;
+ i64toi32_i32$1 = $65$hi;
+ i64toi32_i32$0 = $65;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$2;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$2 | 0;
- }
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$3 = var$1;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = 0;
- $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$3 = $39;
- i64toi32_i32$1 = var$0$hi;
- if (!var$0) {
- break label$7
- }
- if (!var$3) {
- break label$6
- }
- var$4 = var$3 + -1 | 0;
- if (var$4 & var$3 | 0) {
- break label$6
+ return i64toi32_i32$3 | 0;
}
- i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$4 & var$2 | 0;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $40 = 0;
- } else {
- i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
- $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- }
- $63$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$1 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = -1;
- i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
- $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
- $65$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $63$hi;
- i64toi32_i32$3 = $40;
- i64toi32_i32$1 = $65$hi;
- i64toi32_i32$0 = $65;
- i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
- legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$3 | 0;
}
var$4 = var$3 + -1 | 0;
if (!(var$4 & var$3 | 0)) {
@@ -4424,132 +4452,134 @@ function asmFunc(global, env, buffer) {
var$0$hi = i64toi32_i32$2;
label$13 : {
if (var$2) {
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$3 = -1;
- i64toi32_i32$0 = -1;
- i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
- if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
- i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
- }
- var$8 = i64toi32_i32$4;
- var$8$hi = i64toi32_i32$5;
- label$15 : while (1) {
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$2 = var$5;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- $45 = 0;
- } else {
- i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
- $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- }
- $140 = $45;
- $140$hi = i64toi32_i32$1;
- i64toi32_i32$1 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
- }
- $142$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $140$hi;
- i64toi32_i32$1 = $140;
- i64toi32_i32$5 = $142$hi;
- i64toi32_i32$0 = $46;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
- var$5$hi = i64toi32_i32$5;
- $144 = var$5;
- $144$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$2 = var$8;
- i64toi32_i32$1 = var$5$hi;
- i64toi32_i32$0 = var$5;
- i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
- i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
- i64toi32_i32$5 = i64toi32_i32$3;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
- $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
- }
- var$6 = $47;
- var$6$hi = i64toi32_i32$2;
+ block3 : {
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$2 = var$6$hi;
- i64toi32_i32$4 = var$6;
- i64toi32_i32$5 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
- $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
- $151$hi = i64toi32_i32$5;
- i64toi32_i32$5 = $144$hi;
- i64toi32_i32$2 = $144;
- i64toi32_i32$4 = $151$hi;
- i64toi32_i32$0 = $151;
- i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
- i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
- var$5 = i64toi32_i32$1;
- var$5$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- $48 = 0;
- } else {
- i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
- $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = -1;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
+ i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
}
- $154$hi = i64toi32_i32$2;
- i64toi32_i32$2 = var$7$hi;
- i64toi32_i32$2 = $154$hi;
- i64toi32_i32$3 = $48;
- i64toi32_i32$5 = var$7$hi;
- i64toi32_i32$0 = var$7;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
- var$0$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$6$hi;
- i64toi32_i32$2 = var$6;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
- var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
- var$6$hi = i64toi32_i32$3;
- var$7 = var$6;
- var$7$hi = i64toi32_i32$3;
- var$2 = var$2 + -1 | 0;
- if (var$2) {
- continue label$15
- }
- break label$15;
- };
- break label$13;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : while (1) {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $45 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $140 = $45;
+ $140$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $142$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $140$hi;
+ i64toi32_i32$1 = $140;
+ i64toi32_i32$5 = $142$hi;
+ i64toi32_i32$0 = $46;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $144 = var$5;
+ $144$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $47;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $151$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $144$hi;
+ i64toi32_i32$2 = $144;
+ i64toi32_i32$4 = $151$hi;
+ i64toi32_i32$0 = $151;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $154$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $154$hi;
+ i64toi32_i32$3 = $48;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + -1 | 0;
+ if (var$2) {
+ continue label$15
+ }
+ break label$15;
+ };
+ break label$13;
+ }
}
}
i64toi32_i32$3 = var$5$hi;
@@ -4954,121 +4984,125 @@ function asmFunc(global, env, buffer) {
label$7 : {
label$8 : {
label$9 : {
- label$11 : {
- i64toi32_i32$0 = var$0$hi;
- i64toi32_i32$2 = var$0;
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
i64toi32_i32$1 = 0;
- $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$2 = $37;
- if (var$2) {
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- if (!var$3) {
- break label$11
- }
- i64toi32_i32$1 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$2 = 0;
i64toi32_i32$3 = 32;
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ i64toi32_i32$1 = 0;
+ $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
} else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
}
- var$4 = $38;
- if (!var$4) {
- break label$9
+ var$2 = $37;
+ if (var$2) {
+ block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if (!var$3) {
+ break label$11
+ }
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $38;
+ if (!var$4) {
+ break label$9
+ }
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) {
+ break label$8
+ }
+ break label$2;
+ }
}
- var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
- if (var$2 >>> 0 <= 31 >>> 0) {
- break label$8
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
+ break label$2
}
- break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
}
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = 0;
- if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
- break label$2
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
}
+ var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- var$2 = var$0;
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ if (!var$0) {
+ break label$7
+ }
+ if (!var$3) {
+ break label$6
+ }
+ var$4 = var$3 + -1 | 0;
+ if (var$4 & var$3 | 0) {
+ break label$6
+ }
i64toi32_i32$1 = 0;
- legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $40 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $63$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $65$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $63$hi;
+ i64toi32_i32$3 = $40;
+ i64toi32_i32$1 = $65$hi;
+ i64toi32_i32$0 = $65;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$2;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$2 | 0;
- }
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$3 = var$1;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = 0;
- $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$3 = $39;
- i64toi32_i32$1 = var$0$hi;
- if (!var$0) {
- break label$7
- }
- if (!var$3) {
- break label$6
- }
- var$4 = var$3 + -1 | 0;
- if (var$4 & var$3 | 0) {
- break label$6
- }
- i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$4 & var$2 | 0;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $40 = 0;
- } else {
- i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
- $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ return i64toi32_i32$3 | 0;
}
- $63$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$1 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = -1;
- i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
- $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
- $65$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $63$hi;
- i64toi32_i32$3 = $40;
- i64toi32_i32$1 = $65$hi;
- i64toi32_i32$0 = $65;
- i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
- legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$3 | 0;
}
var$4 = var$3 + -1 | 0;
if (!(var$4 & var$3 | 0)) {
@@ -5171,132 +5205,134 @@ function asmFunc(global, env, buffer) {
var$0$hi = i64toi32_i32$2;
label$13 : {
if (var$2) {
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$3 = -1;
- i64toi32_i32$0 = -1;
- i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
- if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
- i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
- }
- var$8 = i64toi32_i32$4;
- var$8$hi = i64toi32_i32$5;
- label$15 : while (1) {
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$2 = var$5;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- $45 = 0;
- } else {
- i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
- $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- }
- $140 = $45;
- $140$hi = i64toi32_i32$1;
- i64toi32_i32$1 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
- }
- $142$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $140$hi;
- i64toi32_i32$1 = $140;
- i64toi32_i32$5 = $142$hi;
- i64toi32_i32$0 = $46;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
- var$5$hi = i64toi32_i32$5;
- $144 = var$5;
- $144$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$2 = var$8;
- i64toi32_i32$1 = var$5$hi;
- i64toi32_i32$0 = var$5;
- i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
- i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
- i64toi32_i32$5 = i64toi32_i32$3;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
- $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
- }
- var$6 = $47;
- var$6$hi = i64toi32_i32$2;
+ block3 : {
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$2 = var$6$hi;
- i64toi32_i32$4 = var$6;
- i64toi32_i32$5 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
- $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
- $151$hi = i64toi32_i32$5;
- i64toi32_i32$5 = $144$hi;
- i64toi32_i32$2 = $144;
- i64toi32_i32$4 = $151$hi;
- i64toi32_i32$0 = $151;
- i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
- i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
- var$5 = i64toi32_i32$1;
- var$5$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- $48 = 0;
- } else {
- i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
- $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- }
- $154$hi = i64toi32_i32$2;
- i64toi32_i32$2 = var$7$hi;
- i64toi32_i32$2 = $154$hi;
- i64toi32_i32$3 = $48;
- i64toi32_i32$5 = var$7$hi;
- i64toi32_i32$0 = var$7;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
- var$0$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$6$hi;
- i64toi32_i32$2 = var$6;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
- var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
- var$6$hi = i64toi32_i32$3;
- var$7 = var$6;
- var$7$hi = i64toi32_i32$3;
- var$2 = var$2 + -1 | 0;
- if (var$2) {
- continue label$15
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = -1;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
+ i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
}
- break label$15;
- };
- break label$13;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : while (1) {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $45 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $140 = $45;
+ $140$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $142$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $140$hi;
+ i64toi32_i32$1 = $140;
+ i64toi32_i32$5 = $142$hi;
+ i64toi32_i32$0 = $46;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $144 = var$5;
+ $144$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $47;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $151$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $144$hi;
+ i64toi32_i32$2 = $144;
+ i64toi32_i32$4 = $151$hi;
+ i64toi32_i32$0 = $151;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $154$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $154$hi;
+ i64toi32_i32$3 = $48;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + -1 | 0;
+ if (var$2) {
+ continue label$15
+ }
+ break label$15;
+ };
+ break label$13;
+ }
}
}
i64toi32_i32$3 = var$5$hi;
@@ -5701,121 +5737,125 @@ function asmFunc(global, env, buffer) {
label$7 : {
label$8 : {
label$9 : {
- label$11 : {
- i64toi32_i32$0 = var$0$hi;
- i64toi32_i32$2 = var$0;
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
i64toi32_i32$1 = 0;
- $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$2 = $37;
- if (var$2) {
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- if (!var$3) {
- break label$11
- }
- i64toi32_i32$1 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$2 = 0;
i64toi32_i32$3 = 32;
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ i64toi32_i32$1 = 0;
+ $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
} else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
}
- var$4 = $38;
- if (!var$4) {
- break label$9
+ var$2 = $37;
+ if (var$2) {
+ block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if (!var$3) {
+ break label$11
+ }
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $38;
+ if (!var$4) {
+ break label$9
+ }
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) {
+ break label$8
+ }
+ break label$2;
+ }
}
- var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
- if (var$2 >>> 0 <= 31 >>> 0) {
- break label$8
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
+ break label$2
}
- break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
}
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = 0;
- if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
- break label$2
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
}
+ var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- var$2 = var$0;
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ if (!var$0) {
+ break label$7
+ }
+ if (!var$3) {
+ break label$6
+ }
+ var$4 = var$3 + -1 | 0;
+ if (var$4 & var$3 | 0) {
+ break label$6
+ }
i64toi32_i32$1 = 0;
- legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $40 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $63$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $65$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $63$hi;
+ i64toi32_i32$3 = $40;
+ i64toi32_i32$1 = $65$hi;
+ i64toi32_i32$0 = $65;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$2;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$2 | 0;
+ return i64toi32_i32$3 | 0;
}
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$3 = var$1;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = 0;
- $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$3 = $39;
- i64toi32_i32$1 = var$0$hi;
- if (!var$0) {
- break label$7
- }
- if (!var$3) {
- break label$6
- }
- var$4 = var$3 + -1 | 0;
- if (var$4 & var$3 | 0) {
- break label$6
- }
- i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$4 & var$2 | 0;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $40 = 0;
- } else {
- i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
- $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- }
- $63$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$1 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = -1;
- i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
- $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
- $65$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $63$hi;
- i64toi32_i32$3 = $40;
- i64toi32_i32$1 = $65$hi;
- i64toi32_i32$0 = $65;
- i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
- legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$3 | 0;
}
var$4 = var$3 + -1 | 0;
if (!(var$4 & var$3 | 0)) {
@@ -5918,132 +5958,134 @@ function asmFunc(global, env, buffer) {
var$0$hi = i64toi32_i32$2;
label$13 : {
if (var$2) {
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$3 = -1;
- i64toi32_i32$0 = -1;
- i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
- if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
- i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
- }
- var$8 = i64toi32_i32$4;
- var$8$hi = i64toi32_i32$5;
- label$15 : while (1) {
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$2 = var$5;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- $45 = 0;
- } else {
- i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
- $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- }
- $140 = $45;
- $140$hi = i64toi32_i32$1;
- i64toi32_i32$1 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
- }
- $142$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $140$hi;
- i64toi32_i32$1 = $140;
- i64toi32_i32$5 = $142$hi;
- i64toi32_i32$0 = $46;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
- var$5$hi = i64toi32_i32$5;
- $144 = var$5;
- $144$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$2 = var$8;
- i64toi32_i32$1 = var$5$hi;
- i64toi32_i32$0 = var$5;
- i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
- i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
- i64toi32_i32$5 = i64toi32_i32$3;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
- $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
- }
- var$6 = $47;
- var$6$hi = i64toi32_i32$2;
+ block3 : {
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$2 = var$6$hi;
- i64toi32_i32$4 = var$6;
- i64toi32_i32$5 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
- $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
- $151$hi = i64toi32_i32$5;
- i64toi32_i32$5 = $144$hi;
- i64toi32_i32$2 = $144;
- i64toi32_i32$4 = $151$hi;
- i64toi32_i32$0 = $151;
- i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
- i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
- var$5 = i64toi32_i32$1;
- var$5$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- $48 = 0;
- } else {
- i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
- $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = -1;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
+ i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
}
- $154$hi = i64toi32_i32$2;
- i64toi32_i32$2 = var$7$hi;
- i64toi32_i32$2 = $154$hi;
- i64toi32_i32$3 = $48;
- i64toi32_i32$5 = var$7$hi;
- i64toi32_i32$0 = var$7;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
- var$0$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$6$hi;
- i64toi32_i32$2 = var$6;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
- var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
- var$6$hi = i64toi32_i32$3;
- var$7 = var$6;
- var$7$hi = i64toi32_i32$3;
- var$2 = var$2 + -1 | 0;
- if (var$2) {
- continue label$15
- }
- break label$15;
- };
- break label$13;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : while (1) {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $45 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $140 = $45;
+ $140$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $142$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $140$hi;
+ i64toi32_i32$1 = $140;
+ i64toi32_i32$5 = $142$hi;
+ i64toi32_i32$0 = $46;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $144 = var$5;
+ $144$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $47;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $151$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $144$hi;
+ i64toi32_i32$2 = $144;
+ i64toi32_i32$4 = $151$hi;
+ i64toi32_i32$0 = $151;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $154$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $154$hi;
+ i64toi32_i32$3 = $48;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + -1 | 0;
+ if (var$2) {
+ continue label$15
+ }
+ break label$15;
+ };
+ break label$13;
+ }
}
}
i64toi32_i32$3 = var$5$hi;
@@ -6448,121 +6490,125 @@ function asmFunc(global, env, buffer) {
label$7 : {
label$8 : {
label$9 : {
- label$11 : {
- i64toi32_i32$0 = var$0$hi;
- i64toi32_i32$2 = var$0;
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
i64toi32_i32$1 = 0;
- $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$2 = $37;
- if (var$2) {
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- if (!var$3) {
- break label$11
- }
- i64toi32_i32$1 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$2 = 0;
i64toi32_i32$3 = 32;
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ i64toi32_i32$1 = 0;
+ $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
} else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
}
- var$4 = $38;
- if (!var$4) {
- break label$9
+ var$2 = $37;
+ if (var$2) {
+ block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if (!var$3) {
+ break label$11
+ }
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $38;
+ if (!var$4) {
+ break label$9
+ }
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) {
+ break label$8
+ }
+ break label$2;
+ }
}
- var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
- if (var$2 >>> 0 <= 31 >>> 0) {
- break label$8
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
+ break label$2
}
- break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
}
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = 0;
- if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
- break label$2
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
}
+ var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- var$2 = var$0;
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ if (!var$0) {
+ break label$7
+ }
+ if (!var$3) {
+ break label$6
+ }
+ var$4 = var$3 + -1 | 0;
+ if (var$4 & var$3 | 0) {
+ break label$6
+ }
i64toi32_i32$1 = 0;
- legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $40 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $63$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $65$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $63$hi;
+ i64toi32_i32$3 = $40;
+ i64toi32_i32$1 = $65$hi;
+ i64toi32_i32$0 = $65;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$2;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$2 | 0;
- }
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$3 = var$1;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = 0;
- $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$3 = $39;
- i64toi32_i32$1 = var$0$hi;
- if (!var$0) {
- break label$7
- }
- if (!var$3) {
- break label$6
- }
- var$4 = var$3 + -1 | 0;
- if (var$4 & var$3 | 0) {
- break label$6
- }
- i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$4 & var$2 | 0;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $40 = 0;
- } else {
- i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
- $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ return i64toi32_i32$3 | 0;
}
- $63$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$1 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = -1;
- i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
- $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
- $65$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $63$hi;
- i64toi32_i32$3 = $40;
- i64toi32_i32$1 = $65$hi;
- i64toi32_i32$0 = $65;
- i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
- legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$3 | 0;
}
var$4 = var$3 + -1 | 0;
if (!(var$4 & var$3 | 0)) {
@@ -6665,132 +6711,134 @@ function asmFunc(global, env, buffer) {
var$0$hi = i64toi32_i32$2;
label$13 : {
if (var$2) {
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$3 = -1;
- i64toi32_i32$0 = -1;
- i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
- if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
- i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
- }
- var$8 = i64toi32_i32$4;
- var$8$hi = i64toi32_i32$5;
- label$15 : while (1) {
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$2 = var$5;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- $45 = 0;
- } else {
- i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
- $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- }
- $140 = $45;
- $140$hi = i64toi32_i32$1;
- i64toi32_i32$1 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
- }
- $142$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $140$hi;
- i64toi32_i32$1 = $140;
- i64toi32_i32$5 = $142$hi;
- i64toi32_i32$0 = $46;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
- var$5$hi = i64toi32_i32$5;
- $144 = var$5;
- $144$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$2 = var$8;
- i64toi32_i32$1 = var$5$hi;
- i64toi32_i32$0 = var$5;
- i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
- i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
- i64toi32_i32$5 = i64toi32_i32$3;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
- $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
- }
- var$6 = $47;
- var$6$hi = i64toi32_i32$2;
+ block3 : {
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$2 = var$6$hi;
- i64toi32_i32$4 = var$6;
- i64toi32_i32$5 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
- $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
- $151$hi = i64toi32_i32$5;
- i64toi32_i32$5 = $144$hi;
- i64toi32_i32$2 = $144;
- i64toi32_i32$4 = $151$hi;
- i64toi32_i32$0 = $151;
- i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
- i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
- var$5 = i64toi32_i32$1;
- var$5$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- $48 = 0;
- } else {
- i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
- $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- }
- $154$hi = i64toi32_i32$2;
- i64toi32_i32$2 = var$7$hi;
- i64toi32_i32$2 = $154$hi;
- i64toi32_i32$3 = $48;
- i64toi32_i32$5 = var$7$hi;
- i64toi32_i32$0 = var$7;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
- var$0$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$6$hi;
- i64toi32_i32$2 = var$6;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
- var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
- var$6$hi = i64toi32_i32$3;
- var$7 = var$6;
- var$7$hi = i64toi32_i32$3;
- var$2 = var$2 + -1 | 0;
- if (var$2) {
- continue label$15
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = -1;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
+ i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
}
- break label$15;
- };
- break label$13;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : while (1) {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $45 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $140 = $45;
+ $140$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $142$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $140$hi;
+ i64toi32_i32$1 = $140;
+ i64toi32_i32$5 = $142$hi;
+ i64toi32_i32$0 = $46;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $144 = var$5;
+ $144$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $47;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $151$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $144$hi;
+ i64toi32_i32$2 = $144;
+ i64toi32_i32$4 = $151$hi;
+ i64toi32_i32$0 = $151;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $154$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $154$hi;
+ i64toi32_i32$3 = $48;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + -1 | 0;
+ if (var$2) {
+ continue label$15
+ }
+ break label$15;
+ };
+ break label$13;
+ }
}
}
i64toi32_i32$3 = var$5$hi;
@@ -7210,121 +7258,125 @@ function asmFunc(global, env, buffer) {
label$7 : {
label$8 : {
label$9 : {
- label$11 : {
- i64toi32_i32$0 = var$0$hi;
- i64toi32_i32$2 = var$0;
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
i64toi32_i32$1 = 0;
- $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$2 = $37;
- if (var$2) {
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- if (!var$3) {
- break label$11
- }
- i64toi32_i32$1 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$2 = 0;
i64toi32_i32$3 = 32;
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ i64toi32_i32$1 = 0;
+ $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
} else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
}
- var$4 = $38;
- if (!var$4) {
- break label$9
+ var$2 = $37;
+ if (var$2) {
+ block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if (!var$3) {
+ break label$11
+ }
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $38;
+ if (!var$4) {
+ break label$9
+ }
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) {
+ break label$8
+ }
+ break label$2;
+ }
}
- var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
- if (var$2 >>> 0 <= 31 >>> 0) {
- break label$8
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
+ break label$2
}
- break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
}
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = 0;
- if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
- break label$2
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
}
+ var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- var$2 = var$0;
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ if (!var$0) {
+ break label$7
+ }
+ if (!var$3) {
+ break label$6
+ }
+ var$4 = var$3 + -1 | 0;
+ if (var$4 & var$3 | 0) {
+ break label$6
+ }
i64toi32_i32$1 = 0;
- legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $40 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $63$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $65$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $63$hi;
+ i64toi32_i32$3 = $40;
+ i64toi32_i32$1 = $65$hi;
+ i64toi32_i32$0 = $65;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$2;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$2 | 0;
- }
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$3 = var$1;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = 0;
- $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$3 = $39;
- i64toi32_i32$1 = var$0$hi;
- if (!var$0) {
- break label$7
+ return i64toi32_i32$3 | 0;
}
- if (!var$3) {
- break label$6
- }
- var$4 = var$3 + -1 | 0;
- if (var$4 & var$3 | 0) {
- break label$6
- }
- i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$4 & var$2 | 0;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $40 = 0;
- } else {
- i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
- $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- }
- $63$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$1 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = -1;
- i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
- $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
- $65$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $63$hi;
- i64toi32_i32$3 = $40;
- i64toi32_i32$1 = $65$hi;
- i64toi32_i32$0 = $65;
- i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
- legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$3 | 0;
}
var$4 = var$3 + -1 | 0;
if (!(var$4 & var$3 | 0)) {
@@ -7427,132 +7479,134 @@ function asmFunc(global, env, buffer) {
var$0$hi = i64toi32_i32$2;
label$13 : {
if (var$2) {
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$3 = -1;
- i64toi32_i32$0 = -1;
- i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
- if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
- i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
- }
- var$8 = i64toi32_i32$4;
- var$8$hi = i64toi32_i32$5;
- label$15 : while (1) {
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$2 = var$5;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- $45 = 0;
- } else {
- i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
- $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- }
- $140 = $45;
- $140$hi = i64toi32_i32$1;
- i64toi32_i32$1 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
- }
- $142$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $140$hi;
- i64toi32_i32$1 = $140;
- i64toi32_i32$5 = $142$hi;
- i64toi32_i32$0 = $46;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
- var$5$hi = i64toi32_i32$5;
- $144 = var$5;
- $144$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$2 = var$8;
- i64toi32_i32$1 = var$5$hi;
- i64toi32_i32$0 = var$5;
- i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
- i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
- i64toi32_i32$5 = i64toi32_i32$3;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
- $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
- }
- var$6 = $47;
- var$6$hi = i64toi32_i32$2;
+ block3 : {
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$2 = var$6$hi;
- i64toi32_i32$4 = var$6;
- i64toi32_i32$5 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
- $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
- $151$hi = i64toi32_i32$5;
- i64toi32_i32$5 = $144$hi;
- i64toi32_i32$2 = $144;
- i64toi32_i32$4 = $151$hi;
- i64toi32_i32$0 = $151;
- i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
- i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
- var$5 = i64toi32_i32$1;
- var$5$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- $48 = 0;
- } else {
- i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
- $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = -1;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
+ i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
}
- $154$hi = i64toi32_i32$2;
- i64toi32_i32$2 = var$7$hi;
- i64toi32_i32$2 = $154$hi;
- i64toi32_i32$3 = $48;
- i64toi32_i32$5 = var$7$hi;
- i64toi32_i32$0 = var$7;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
- var$0$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$6$hi;
- i64toi32_i32$2 = var$6;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
- var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
- var$6$hi = i64toi32_i32$3;
- var$7 = var$6;
- var$7$hi = i64toi32_i32$3;
- var$2 = var$2 + -1 | 0;
- if (var$2) {
- continue label$15
- }
- break label$15;
- };
- break label$13;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : while (1) {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $45 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $140 = $45;
+ $140$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $142$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $140$hi;
+ i64toi32_i32$1 = $140;
+ i64toi32_i32$5 = $142$hi;
+ i64toi32_i32$0 = $46;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $144 = var$5;
+ $144$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $47;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $151$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $144$hi;
+ i64toi32_i32$2 = $144;
+ i64toi32_i32$4 = $151$hi;
+ i64toi32_i32$0 = $151;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $154$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $154$hi;
+ i64toi32_i32$3 = $48;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + -1 | 0;
+ if (var$2) {
+ continue label$15
+ }
+ break label$15;
+ };
+ break label$13;
+ }
}
}
i64toi32_i32$3 = var$5$hi;
@@ -7974,121 +8028,125 @@ function asmFunc(global, env, buffer) {
label$7 : {
label$8 : {
label$9 : {
- label$11 : {
- i64toi32_i32$0 = var$0$hi;
- i64toi32_i32$2 = var$0;
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
i64toi32_i32$1 = 0;
- $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$2 = $37;
- if (var$2) {
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- if (!var$3) {
- break label$11
- }
- i64toi32_i32$1 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$2 = 0;
i64toi32_i32$3 = 32;
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ i64toi32_i32$1 = 0;
+ $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
} else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
}
- var$4 = $38;
- if (!var$4) {
- break label$9
+ var$2 = $37;
+ if (var$2) {
+ block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if (!var$3) {
+ break label$11
+ }
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $38;
+ if (!var$4) {
+ break label$9
+ }
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) {
+ break label$8
+ }
+ break label$2;
+ }
}
- var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
- if (var$2 >>> 0 <= 31 >>> 0) {
- break label$8
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
+ break label$2
}
- break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
}
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = 0;
- if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
- break label$2
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
}
+ var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- var$2 = var$0;
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ if (!var$0) {
+ break label$7
+ }
+ if (!var$3) {
+ break label$6
+ }
+ var$4 = var$3 + -1 | 0;
+ if (var$4 & var$3 | 0) {
+ break label$6
+ }
i64toi32_i32$1 = 0;
- legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $40 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $63$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $65$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $63$hi;
+ i64toi32_i32$3 = $40;
+ i64toi32_i32$1 = $65$hi;
+ i64toi32_i32$0 = $65;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$2;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$2 | 0;
- }
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$3 = var$1;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = 0;
- $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$3 = $39;
- i64toi32_i32$1 = var$0$hi;
- if (!var$0) {
- break label$7
- }
- if (!var$3) {
- break label$6
+ return i64toi32_i32$3 | 0;
}
- var$4 = var$3 + -1 | 0;
- if (var$4 & var$3 | 0) {
- break label$6
- }
- i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$4 & var$2 | 0;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $40 = 0;
- } else {
- i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
- $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- }
- $63$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$1 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = -1;
- i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
- $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
- $65$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $63$hi;
- i64toi32_i32$3 = $40;
- i64toi32_i32$1 = $65$hi;
- i64toi32_i32$0 = $65;
- i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
- legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$3 | 0;
}
var$4 = var$3 + -1 | 0;
if (!(var$4 & var$3 | 0)) {
@@ -8191,132 +8249,134 @@ function asmFunc(global, env, buffer) {
var$0$hi = i64toi32_i32$2;
label$13 : {
if (var$2) {
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$3 = -1;
- i64toi32_i32$0 = -1;
- i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
- if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
- i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
- }
- var$8 = i64toi32_i32$4;
- var$8$hi = i64toi32_i32$5;
- label$15 : while (1) {
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$2 = var$5;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- $45 = 0;
- } else {
- i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
- $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- }
- $140 = $45;
- $140$hi = i64toi32_i32$1;
- i64toi32_i32$1 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
- }
- $142$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $140$hi;
- i64toi32_i32$1 = $140;
- i64toi32_i32$5 = $142$hi;
- i64toi32_i32$0 = $46;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
- var$5$hi = i64toi32_i32$5;
- $144 = var$5;
- $144$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$2 = var$8;
- i64toi32_i32$1 = var$5$hi;
- i64toi32_i32$0 = var$5;
- i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
- i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
- i64toi32_i32$5 = i64toi32_i32$3;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
- $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
- }
- var$6 = $47;
- var$6$hi = i64toi32_i32$2;
+ block3 : {
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$2 = var$6$hi;
- i64toi32_i32$4 = var$6;
- i64toi32_i32$5 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
- $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
- $151$hi = i64toi32_i32$5;
- i64toi32_i32$5 = $144$hi;
- i64toi32_i32$2 = $144;
- i64toi32_i32$4 = $151$hi;
- i64toi32_i32$0 = $151;
- i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
- i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
- var$5 = i64toi32_i32$1;
- var$5$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- $48 = 0;
- } else {
- i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
- $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- }
- $154$hi = i64toi32_i32$2;
- i64toi32_i32$2 = var$7$hi;
- i64toi32_i32$2 = $154$hi;
- i64toi32_i32$3 = $48;
- i64toi32_i32$5 = var$7$hi;
- i64toi32_i32$0 = var$7;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
- var$0$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$6$hi;
- i64toi32_i32$2 = var$6;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
- var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
- var$6$hi = i64toi32_i32$3;
- var$7 = var$6;
- var$7$hi = i64toi32_i32$3;
- var$2 = var$2 + -1 | 0;
- if (var$2) {
- continue label$15
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = -1;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
+ i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
}
- break label$15;
- };
- break label$13;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : while (1) {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $45 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $140 = $45;
+ $140$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $142$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $140$hi;
+ i64toi32_i32$1 = $140;
+ i64toi32_i32$5 = $142$hi;
+ i64toi32_i32$0 = $46;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $144 = var$5;
+ $144$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $47;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $151$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $144$hi;
+ i64toi32_i32$2 = $144;
+ i64toi32_i32$4 = $151$hi;
+ i64toi32_i32$0 = $151;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $154$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $154$hi;
+ i64toi32_i32$3 = $48;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + -1 | 0;
+ if (var$2) {
+ continue label$15
+ }
+ break label$15;
+ };
+ break label$13;
+ }
}
}
i64toi32_i32$3 = var$5$hi;
@@ -8738,121 +8798,125 @@ function asmFunc(global, env, buffer) {
label$7 : {
label$8 : {
label$9 : {
- label$11 : {
- i64toi32_i32$0 = var$0$hi;
- i64toi32_i32$2 = var$0;
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
i64toi32_i32$1 = 0;
- $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$2 = $37;
- if (var$2) {
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- if (!var$3) {
- break label$11
- }
- i64toi32_i32$1 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$2 = 0;
i64toi32_i32$3 = 32;
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ i64toi32_i32$1 = 0;
+ $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
} else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
}
- var$4 = $38;
- if (!var$4) {
- break label$9
+ var$2 = $37;
+ if (var$2) {
+ block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if (!var$3) {
+ break label$11
+ }
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $38;
+ if (!var$4) {
+ break label$9
+ }
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) {
+ break label$8
+ }
+ break label$2;
+ }
}
- var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
- if (var$2 >>> 0 <= 31 >>> 0) {
- break label$8
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
+ break label$2
}
- break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
}
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = 0;
- if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
- break label$2
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
}
+ var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- var$2 = var$0;
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ if (!var$0) {
+ break label$7
+ }
+ if (!var$3) {
+ break label$6
+ }
+ var$4 = var$3 + -1 | 0;
+ if (var$4 & var$3 | 0) {
+ break label$6
+ }
i64toi32_i32$1 = 0;
- legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $40 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $63$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $65$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $63$hi;
+ i64toi32_i32$3 = $40;
+ i64toi32_i32$1 = $65$hi;
+ i64toi32_i32$0 = $65;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$2;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$2 | 0;
- }
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$3 = var$1;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = 0;
- $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$3 = $39;
- i64toi32_i32$1 = var$0$hi;
- if (!var$0) {
- break label$7
- }
- if (!var$3) {
- break label$6
- }
- var$4 = var$3 + -1 | 0;
- if (var$4 & var$3 | 0) {
- break label$6
- }
- i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$4 & var$2 | 0;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $40 = 0;
- } else {
- i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
- $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ return i64toi32_i32$3 | 0;
}
- $63$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$1 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = -1;
- i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
- $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
- $65$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $63$hi;
- i64toi32_i32$3 = $40;
- i64toi32_i32$1 = $65$hi;
- i64toi32_i32$0 = $65;
- i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
- legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$3 | 0;
}
var$4 = var$3 + -1 | 0;
if (!(var$4 & var$3 | 0)) {
@@ -8955,132 +9019,134 @@ function asmFunc(global, env, buffer) {
var$0$hi = i64toi32_i32$2;
label$13 : {
if (var$2) {
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$3 = -1;
- i64toi32_i32$0 = -1;
- i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
- if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
- i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
- }
- var$8 = i64toi32_i32$4;
- var$8$hi = i64toi32_i32$5;
- label$15 : while (1) {
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$2 = var$5;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- $45 = 0;
- } else {
- i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
- $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- }
- $140 = $45;
- $140$hi = i64toi32_i32$1;
- i64toi32_i32$1 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
- }
- $142$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $140$hi;
- i64toi32_i32$1 = $140;
- i64toi32_i32$5 = $142$hi;
- i64toi32_i32$0 = $46;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
- var$5$hi = i64toi32_i32$5;
- $144 = var$5;
- $144$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$2 = var$8;
- i64toi32_i32$1 = var$5$hi;
- i64toi32_i32$0 = var$5;
- i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
- i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
- i64toi32_i32$5 = i64toi32_i32$3;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
- $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
- }
- var$6 = $47;
- var$6$hi = i64toi32_i32$2;
+ block3 : {
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$2 = var$6$hi;
- i64toi32_i32$4 = var$6;
- i64toi32_i32$5 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
- $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
- $151$hi = i64toi32_i32$5;
- i64toi32_i32$5 = $144$hi;
- i64toi32_i32$2 = $144;
- i64toi32_i32$4 = $151$hi;
- i64toi32_i32$0 = $151;
- i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
- i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
- var$5 = i64toi32_i32$1;
- var$5$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- $48 = 0;
- } else {
- i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
- $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- }
- $154$hi = i64toi32_i32$2;
- i64toi32_i32$2 = var$7$hi;
- i64toi32_i32$2 = $154$hi;
- i64toi32_i32$3 = $48;
- i64toi32_i32$5 = var$7$hi;
- i64toi32_i32$0 = var$7;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
- var$0$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$6$hi;
- i64toi32_i32$2 = var$6;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
- var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
- var$6$hi = i64toi32_i32$3;
- var$7 = var$6;
- var$7$hi = i64toi32_i32$3;
- var$2 = var$2 + -1 | 0;
- if (var$2) {
- continue label$15
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = -1;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
+ i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
}
- break label$15;
- };
- break label$13;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : while (1) {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $45 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $140 = $45;
+ $140$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $142$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $140$hi;
+ i64toi32_i32$1 = $140;
+ i64toi32_i32$5 = $142$hi;
+ i64toi32_i32$0 = $46;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $144 = var$5;
+ $144$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $47;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $151$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $144$hi;
+ i64toi32_i32$2 = $144;
+ i64toi32_i32$4 = $151$hi;
+ i64toi32_i32$0 = $151;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $154$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $154$hi;
+ i64toi32_i32$3 = $48;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + -1 | 0;
+ if (var$2) {
+ continue label$15
+ }
+ break label$15;
+ };
+ break label$13;
+ }
}
}
i64toi32_i32$3 = var$5$hi;
diff --git a/test/wasm2js/labels.2asm.js b/test/wasm2js/labels.2asm.js
index 6add316dc..c4a93491c 100644
--- a/test/wasm2js/labels.2asm.js
+++ b/test/wasm2js/labels.2asm.js
@@ -69,12 +69,15 @@ function asmFunc(global, env, buffer) {
function $3() {
var i = 0, $6_1 = 0;
i = 0;
- i = i + 1 | 0;
exit : {
- if ((i | 0) == (5 | 0)) {
- $6_1 = i;
- break exit;
- }
+ cont : while (1) {
+ i = i + 1 | 0;
+ if ((i | 0) == (5 | 0)) {
+ $6_1 = i;
+ break exit;
+ }
+ break cont;
+ };
$6_1 = i;
}
return $6_1 | 0;
@@ -98,58 +101,67 @@ function asmFunc(global, env, buffer) {
}
function $5() {
- return 1 + 1 | 0 | 0;
+ var $0_1 = 0;
+ l : while (1) {
+ $0_1 = 1;
+ break l;
+ };
+ return $0_1 + 1 | 0 | 0;
}
function $6() {
var i = 0;
i = 0;
- l : {
- break l;
- }
- i = i + 1 | 0;
- l1 : {
- break l1;
- }
- i = i + 1 | 0;
- l2 : {
- break l2;
- }
- i = i + 1 | 0;
- l3 : {
- break l3;
- }
- i = i + 1 | 0;
- l4 : {
- break l4;
+ block_1 : {
+ l : {
+ break l;
+ }
+ i = i + 1 | 0;
+ l1 : {
+ break l1;
+ }
+ i = i + 1 | 0;
+ l2 : {
+ break l2;
+ }
+ i = i + 1 | 0;
+ l3 : {
+ break l3;
+ }
+ i = i + 1 | 0;
+ l4 : {
+ break l4;
+ }
+ i = i + 1 | 0;
}
- i = i + 1 | 0;
return i | 0;
}
function $7() {
var i = 0;
i = 0;
- if_1 : {
- break if_1;
- }
- i = i + 1 | 0;
- if5 : {
- break if5;
- }
- i = i + 1 | 0;
- if6 : {
- break if6;
- }
- i = i + 1 | 0;
- if7 : {
- break if7;
- }
- i = i + 1 | 0;
- if8 : {
- break if8;
+ block_1 : {
+ if_1 : {
+ break if_1;
+ }
+ i = i + 1 | 0;
+ if5 : {
+ break if5;
+ }
+ i = i + 1 | 0;
+ if6 : {
+ break if6;
+ }
+ i = i + 1 | 0;
+ if7 : {
+ break if7;
+ }
+ i = i + 1 | 0;
+ if8 : {
+ break if8;
+ }
+ i = i + 1 | 0;
}
- i = i + 1 | 0;
return i | 0;
}
@@ -210,19 +222,19 @@ function asmFunc(global, env, buffer) {
function $10() {
var i = 0, $10_1 = 0;
i = 0;
- inner : {
- if (0) {
- break inner
- }
- i = i | 1 | 0;
- if (1) {
- break inner
- }
- i = i | 2 | 0;
- }
- i = i | 4 | 0;
- $10_1 = i;
outer : {
+ inner : {
+ if (0) {
+ break inner
+ }
+ i = i | 1 | 0;
+ if (1) {
+ break inner
+ }
+ i = i | 2 | 0;
+ }
+ i = i | 4 | 0;
+ $10_1 = i;
if (0) {
break outer
}
@@ -240,12 +252,12 @@ function asmFunc(global, env, buffer) {
function $11() {
var $2_2 = 0, $0_1 = 0;
- l1 : {
- $0_1 = 1;
- break l1;
- }
- $2_2 = $0_1;
l0 : {
+ l1 : {
+ $0_1 = 1;
+ break l1;
+ }
+ $2_2 = $0_1;
if (1) {
break l0
}
@@ -269,11 +281,11 @@ function asmFunc(global, env, buffer) {
function $13() {
var i1 = 0, $7_1 = 0, $3_2 = 0;
- i1 = 1;
- $3_2 = i1;
- i1 = 2;
- $7_1 = $3_2;
l0 : {
+ i1 = 1;
+ $3_2 = i1;
+ i1 = 2;
+ $7_1 = $3_2;
if (i1) {
break l0
}
@@ -306,10 +318,12 @@ function asmFunc(global, env, buffer) {
function $16() {
var $1_2 = 0, $2_2 = 0;
- $1_2 = 2;
- l113 : {
- $2_2 = 3;
- break l113;
+ l1 : {
+ $1_2 = 2;
+ l113 : {
+ $2_2 = 3;
+ break l113;
+ }
}
return $1_2 + $2_2 | 0 | 0;
}
diff --git a/test/wasm2js/left-to-right.2asm.js b/test/wasm2js/left-to-right.2asm.js
index 028f93574..3ff535ab5 100644
--- a/test/wasm2js/left-to-right.2asm.js
+++ b/test/wasm2js/left-to-right.2asm.js
@@ -1240,9 +1240,9 @@ function asmFunc(global, env, buffer) {
function $128() {
var $3 = 0;
- reset();
- $3 = i32_left() | 0;
block : {
+ reset();
+ $3 = i32_left() | 0;
if ((i32_right() | 0) & 0 | 0) {
break block
}
@@ -1253,8 +1253,8 @@ function asmFunc(global, env, buffer) {
function $129() {
var $2 = 0, $3 = 0, $4 = 0;
- reset();
a : {
+ reset();
b : {
$2 = i32_left() | 0;
$3 = $2;
@@ -1612,121 +1612,125 @@ function asmFunc(global, env, buffer) {
label$7 : {
label$8 : {
label$9 : {
- label$11 : {
- i64toi32_i32$0 = var$0$hi;
- i64toi32_i32$2 = var$0;
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
i64toi32_i32$1 = 0;
- $37_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 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 = $37_1;
- if (var$2) {
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- if (!var$3) {
- break label$11
- }
- i64toi32_i32$1 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$2 = 0;
i64toi32_i32$3 = 32;
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $38_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ i64toi32_i32$1 = 0;
+ $37_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
} else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 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;
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 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$4 = $38_1;
- if (!var$4) {
- break label$9
+ var$2 = $37_1;
+ if (var$2) {
+ block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if (!var$3) {
+ break label$11
+ }
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $38_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 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 = $38_1;
+ if (!var$4) {
+ break label$9
+ }
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) {
+ break label$8
+ }
+ break label$2;
+ }
}
- var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
- if (var$2 >>> 0 <= 31 >>> 0) {
- break label$8
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
+ break label$2
}
- break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
}
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = 0;
- if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
- break label$2
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $39_1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 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 = $39_1;
i64toi32_i32$1 = var$0$hi;
- var$2 = var$0;
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ if (!var$0) {
+ break label$7
+ }
+ if (!var$3) {
+ break label$6
+ }
+ var$4 = var$3 + -1 | 0;
+ if (var$4 & var$3 | 0) {
+ break label$6
+ }
i64toi32_i32$1 = 0;
- legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $40_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;
+ $40_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $63$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $65_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;
+ legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$2;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$2 | 0;
- }
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$3 = var$1;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = 0;
- $39_1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 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 = $39_1;
- i64toi32_i32$1 = var$0$hi;
- if (!var$0) {
- break label$7
- }
- if (!var$3) {
- break label$6
- }
- var$4 = var$3 + -1 | 0;
- if (var$4 & var$3 | 0) {
- break label$6
+ return i64toi32_i32$3 | 0;
}
- i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$4 & var$2 | 0;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $40_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;
- $40_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- }
- $63$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$1 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = -1;
- i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
- $65_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;
- legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$3 | 0;
}
var$4 = var$3 + -1 | 0;
if (!(var$4 & var$3 | 0)) {
@@ -1829,132 +1833,134 @@ function asmFunc(global, env, buffer) {
var$0$hi = i64toi32_i32$2;
label$13 : {
if (var$2) {
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$3 = -1;
- i64toi32_i32$0 = -1;
- i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
- if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
- i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
- }
- var$8 = i64toi32_i32$4;
- var$8$hi = i64toi32_i32$5;
- label$15 : while (1) {
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$2 = var$5;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- $45_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;
- $45_1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- }
- $140 = $45_1;
- $140$hi = i64toi32_i32$1;
- i64toi32_i32$1 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $46_1 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 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;
- }
- $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;
- $144 = var$5;
- $144$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$2 = var$8;
- i64toi32_i32$1 = var$5$hi;
- i64toi32_i32$0 = var$5;
- i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
- i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
- i64toi32_i32$5 = i64toi32_i32$3;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
- $47_1 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 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 = $47_1;
- var$6$hi = i64toi32_i32$2;
+ block3 : {
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$2 = var$6$hi;
- i64toi32_i32$4 = var$6;
- i64toi32_i32$5 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
- $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
- $151$hi = i64toi32_i32$5;
- i64toi32_i32$5 = $144$hi;
- i64toi32_i32$2 = $144;
- i64toi32_i32$4 = $151$hi;
- i64toi32_i32$0 = $151;
- i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
- i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
- var$5 = i64toi32_i32$1;
- var$5$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- $48_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;
- $48_1 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = -1;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
+ i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
}
- $154$hi = i64toi32_i32$2;
- i64toi32_i32$2 = var$7$hi;
- 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;
- var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
- var$0$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$6$hi;
- i64toi32_i32$2 = var$6;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
- var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
- var$6$hi = i64toi32_i32$3;
- var$7 = var$6;
- var$7$hi = i64toi32_i32$3;
- var$2 = var$2 + -1 | 0;
- if (var$2) {
- continue label$15
- }
- break label$15;
- };
- break label$13;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : while (1) {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $45_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;
+ $45_1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $140 = $45_1;
+ $140$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $46_1 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 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;
+ }
+ $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;
+ $144 = var$5;
+ $144$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $47_1 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 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 = $47_1;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $151$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $144$hi;
+ i64toi32_i32$2 = $144;
+ i64toi32_i32$4 = $151$hi;
+ i64toi32_i32$0 = $151;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $48_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;
+ $48_1 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $154$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $154$hi;
+ i64toi32_i32$3 = $48_1;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + -1 | 0;
+ if (var$2) {
+ continue label$15
+ }
+ break label$15;
+ };
+ break label$13;
+ }
}
}
i64toi32_i32$3 = var$5$hi;
diff --git a/test/wasm2js/loop.2asm.js b/test/wasm2js/loop.2asm.js
index 1c0733f15..1b5a05a33 100644
--- a/test/wasm2js/loop.2asm.js
+++ b/test/wasm2js/loop.2asm.js
@@ -33,51 +33,193 @@ function asmFunc(global, env, buffer) {
}
function $2() {
- return 7 | 0;
+ var $0 = 0;
+ loop_in0 : while (1) {
+ $0 = 7;
+ break loop_in0;
+ };
+ return $0 | 0;
}
function $3() {
- dummy();
- dummy();
- dummy();
- dummy();
- dummy();
- dummy();
- dummy();
- return 8 | 0;
+ var $2_1 = 0;
+ loop_in : while (1) {
+ dummy();
+ dummy();
+ dummy();
+ dummy();
+ break loop_in;
+ };
+ loop_in1 : while (1) {
+ dummy();
+ dummy();
+ dummy();
+ $2_1 = 8;
+ break loop_in1;
+ };
+ return $2_1 | 0;
}
function $4() {
- dummy();
- dummy();
- return 9 | 0;
+ var $2_1 = 0;
+ loop_in : while (1) {
+ loop_in2 : while (1) {
+ dummy();
+ break loop_in2;
+ };
+ loop_in3 : while (1) {
+ dummy();
+ $2_1 = 9;
+ break loop_in3;
+ };
+ break loop_in;
+ };
+ return $2_1 | 0;
}
function $5() {
- dummy();
- return 150 | 0;
+ var $2_1 = 0, $6_1 = 0, $10_1 = 0, $14_1 = 0, $18_1 = 0, $22 = 0, $26 = 0, $30 = 0, $34 = 0, $38 = 0, $42 = 0, $46 = 0, $50 = 0, $54 = 0, $58 = 0, $62 = 0, $66 = 0, $70 = 0, $74 = 0, $78 = 0, $82 = 0;
+ loop_in : while (1) {
+ loop_in4 : while (1) {
+ loop_in6 : while (1) {
+ loop_in8 : while (1) {
+ loop_in10 : while (1) {
+ loop_in12 : while (1) {
+ loop_in14 : while (1) {
+ loop_in16 : while (1) {
+ loop_in18 : while (1) {
+ loop_in20 : while (1) {
+ loop_in22 : while (1) {
+ loop_in24 : while (1) {
+ loop_in26 : while (1) {
+ loop_in28 : while (1) {
+ loop_in30 : while (1) {
+ loop_in32 : while (1) {
+ loop_in34 : while (1) {
+ loop_in36 : while (1) {
+ loop_in38 : while (1) {
+ loop_in40 : while (1) {
+ loop_in42 : while (1) {
+ loop_in44 : while (1) {
+ dummy();
+ $2_1 = 150;
+ break loop_in44;
+ };
+ $6_1 = $2_1;
+ break loop_in42;
+ };
+ $10_1 = $6_1;
+ break loop_in40;
+ };
+ $14_1 = $10_1;
+ break loop_in38;
+ };
+ $18_1 = $14_1;
+ break loop_in36;
+ };
+ $22 = $18_1;
+ break loop_in34;
+ };
+ $26 = $22;
+ break loop_in32;
+ };
+ $30 = $26;
+ break loop_in30;
+ };
+ $34 = $30;
+ break loop_in28;
+ };
+ $38 = $34;
+ break loop_in26;
+ };
+ $42 = $38;
+ break loop_in24;
+ };
+ $46 = $42;
+ break loop_in22;
+ };
+ $50 = $46;
+ break loop_in20;
+ };
+ $54 = $50;
+ break loop_in18;
+ };
+ $58 = $54;
+ break loop_in16;
+ };
+ $62 = $58;
+ break loop_in14;
+ };
+ $66 = $62;
+ break loop_in12;
+ };
+ $70 = $66;
+ break loop_in10;
+ };
+ $74 = $70;
+ break loop_in8;
+ };
+ $78 = $74;
+ break loop_in6;
+ };
+ $82 = $78;
+ break loop_in4;
+ };
+ break loop_in;
+ };
+ return $82 | 0;
}
function $6() {
- dummy();
- return __wasm_ctz_i32(13 | 0) | 0 | 0;
+ var $2_1 = 0;
+ loop_in : while (1) {
+ dummy();
+ $2_1 = 13;
+ break loop_in;
+ };
+ return __wasm_ctz_i32($2_1 | 0) | 0 | 0;
}
function $7() {
- dummy();
- dummy();
- return Math_imul(3, 4) | 0;
+ var $2_1 = 0, $3_1 = 0, $6_1 = 0;
+ loop_in : while (1) {
+ dummy();
+ $2_1 = 3;
+ break loop_in;
+ };
+ $3_1 = $2_1;
+ loop_in46 : while (1) {
+ dummy();
+ $6_1 = 4;
+ break loop_in46;
+ };
+ return Math_imul($3_1, $6_1) | 0;
}
function $8() {
- dummy();
- return !13 | 0;
+ var $2_1 = 0;
+ loop_in : while (1) {
+ dummy();
+ $2_1 = 13;
+ break loop_in;
+ };
+ return !$2_1 | 0;
}
function $9() {
- dummy();
- dummy();
- return Math_fround(3.0) > Math_fround(3.0) | 0;
+ var $2_1 = Math_fround(0), $3_1 = Math_fround(0), $6_1 = Math_fround(0);
+ loop_in : while (1) {
+ dummy();
+ $2_1 = Math_fround(3.0);
+ break loop_in;
+ };
+ $3_1 = $2_1;
+ loop_in47 : while (1) {
+ dummy();
+ $6_1 = Math_fround(3.0);
+ break loop_in47;
+ };
+ return $3_1 > $6_1 | 0;
}
function $10() {
@@ -85,21 +227,27 @@ function asmFunc(global, env, buffer) {
loop_in : while (1) break block;
}
block48 : {
- if (1) {
- break block48
- }
- abort();
+ loop_in49 : while (1) {
+ if (1) {
+ break block48
+ }
+ abort();
+ };
}
block50 : {
- switch (0 | 0) {
- default:
- break block50;
+ loop_in51 : while (1) {
+ switch (0 | 0) {
+ default:
+ break block50;
+ };
};
}
block52 : {
- switch (1 | 0) {
- default:
- break block52;
+ loop_in53 : while (1) {
+ switch (1 | 0) {
+ default:
+ break block52;
+ };
};
}
return 19 | 0;
@@ -119,43 +267,59 @@ function asmFunc(global, env, buffer) {
function $12() {
var $0 = 0, $5_1 = 0, $7_1 = 0;
block : {
- $0 = 18;
- break block;
+ loop_in : while (1) {
+ $0 = 18;
+ break block;
+ };
}
return $0 | 0;
}
function $13() {
- var $0 = 0, $1_1 = 0, $2_1 = 0, $5_1 = 0, $6_1 = 0, $9_1 = 0, $10_1 = 0, $17_1 = 0, $18_1 = 0, $21 = 0, $22 = 0;
+ var $0 = 0, $1_1 = 0, $2_1 = 0, $5_1 = 0, $6_1 = 0, $9_1 = 0, $10_1 = 0, $12_1 = 0, $17_1 = 0, $18_1 = 0, $21 = 0, $22 = 0;
$0 = 0;
$1_1 = $0;
block : {
- $2_1 = 1;
- break block;
+ loop_in : while (1) block54 : {
+ $2_1 = 1;
+ break block;
+ };
}
$0 = $1_1 + $2_1 | 0;
$5_1 = $0;
block55 : {
- $6_1 = 2;
- break block55;
+ loop_in56 : while (1) loop_in57 : while (1) {
+ $6_1 = 2;
+ break block55;
+ };
}
$0 = $5_1 + $6_1 | 0;
$9_1 = $0;
- block60 : {
- $10_1 = 4;
- break block60;
- }
- $0 = $9_1 + $10_1 | 0;
+ loop_in59 : while (1) {
+ block60 : {
+ loop_in61 : while (1) {
+ $10_1 = 4;
+ break block60;
+ };
+ }
+ $12_1 = $10_1;
+ break loop_in59;
+ };
+ $0 = $9_1 + $12_1 | 0;
$17_1 = $0;
block62 : {
- $18_1 = 8;
- break block62;
+ loop_in63 : while (1) {
+ $18_1 = 8;
+ break block62;
+ };
}
$0 = $17_1 + $18_1 | 0;
$21 = $0;
block64 : {
- $22 = 16;
- break block64;
+ loop_in65 : while (1) loop_in66 : while (1) {
+ $22 = 16;
+ break block64;
+ };
}
$0 = $21 + $22 | 0;
return $0 | 0;
@@ -165,17 +329,19 @@ function asmFunc(global, env, buffer) {
var $0 = 0, $1_1 = 0, $2_1 = 0, $3_1 = 0, $5_1 = 0;
$0 = 0;
$1_1 = $0;
- loop_in : while (1) continue loop_in;
+ loop_in : while (1) loop_in67 : while (1) continue loop_in;
}
function fx() {
var $0 = 0;
block : {
- $0 = 1;
- $0 = Math_imul($0, 3);
- $0 = $0 - 5 | 0;
- $0 = Math_imul($0, 7);
- break block;
+ loop_in : while (1) {
+ $0 = 1;
+ $0 = Math_imul($0, 3);
+ $0 = $0 - 5 | 0;
+ $0 = Math_imul($0, 7);
+ break block;
+ };
}
return ($0 | 0) == (-14 | 0) | 0;
}
diff --git a/test/wasm2js/stack-modified.2asm.js b/test/wasm2js/stack-modified.2asm.js
index d8a640b6e..0652254f0 100644
--- a/test/wasm2js/stack-modified.2asm.js
+++ b/test/wasm2js/stack-modified.2asm.js
@@ -43,22 +43,24 @@ function asmFunc(global, env, buffer) {
if ((i64toi32_i32$2 | 0) == (i64toi32_i32$3 | 0) & (i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) | 0) {
break label$1
} else {
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$2 = var$2$hi;
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$0 = var$2$hi;
- i64toi32_i32$0 = __wasm_i64_mul(var$1 | 0, i64toi32_i32$2 | 0, var$2 | 0, i64toi32_i32$0 | 0) | 0;
- i64toi32_i32$2 = i64toi32_i32$HIGH_BITS;
- var$2 = i64toi32_i32$0;
- var$2$hi = i64toi32_i32$2;
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$3 = var$1;
- i64toi32_i32$0 = 0;
- i64toi32_i32$1 = 1;
- i64toi32_i32$5 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
- var$1 = i64toi32_i32$3 - i64toi32_i32$1 | 0;
- var$1$hi = i64toi32_i32$5;
+ label$5 : {
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$2$hi;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$0 = var$2$hi;
+ i64toi32_i32$0 = __wasm_i64_mul(var$1 | 0, i64toi32_i32$2 | 0, var$2 | 0, i64toi32_i32$0 | 0) | 0;
+ i64toi32_i32$2 = i64toi32_i32$HIGH_BITS;
+ var$2 = i64toi32_i32$0;
+ var$2$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$1 = 1;
+ i64toi32_i32$5 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ var$1 = i64toi32_i32$3 - i64toi32_i32$1 | 0;
+ var$1$hi = i64toi32_i32$5;
+ }
}
continue label$2;
};
@@ -88,22 +90,24 @@ function asmFunc(global, env, buffer) {
if ((i64toi32_i32$2 | 0) == (i64toi32_i32$3 | 0) & (i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) | 0) {
break label$1
} else {
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$2 = var$2$hi;
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$0 = var$2$hi;
- i64toi32_i32$0 = __wasm_i64_mul(var$1 | 0, i64toi32_i32$2 | 0, var$2 | 0, i64toi32_i32$0 | 0) | 0;
- i64toi32_i32$2 = i64toi32_i32$HIGH_BITS;
- var$2 = i64toi32_i32$0;
- var$2$hi = i64toi32_i32$2;
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$3 = var$1;
- i64toi32_i32$0 = 0;
- i64toi32_i32$1 = 1;
- i64toi32_i32$5 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
- var$1 = i64toi32_i32$3 - i64toi32_i32$1 | 0;
- var$1$hi = i64toi32_i32$5;
+ block : {
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$2$hi;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$0 = var$2$hi;
+ i64toi32_i32$0 = __wasm_i64_mul(var$1 | 0, i64toi32_i32$2 | 0, var$2 | 0, i64toi32_i32$0 | 0) | 0;
+ i64toi32_i32$2 = i64toi32_i32$HIGH_BITS;
+ var$2 = i64toi32_i32$0;
+ var$2$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$1 = 1;
+ i64toi32_i32$5 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ var$1 = i64toi32_i32$3 - i64toi32_i32$1 | 0;
+ var$1$hi = i64toi32_i32$5;
+ }
}
continue label$2;
};
@@ -133,22 +137,24 @@ function asmFunc(global, env, buffer) {
if ((i64toi32_i32$2 | 0) == (i64toi32_i32$3 | 0) & (i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) | 0) {
break label$1
} else {
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$2 = var$2$hi;
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$0 = var$2$hi;
- i64toi32_i32$0 = __wasm_i64_mul(var$1 | 0, i64toi32_i32$2 | 0, var$2 | 0, i64toi32_i32$0 | 0) | 0;
- i64toi32_i32$2 = i64toi32_i32$HIGH_BITS;
- var$2 = i64toi32_i32$0;
- var$2$hi = i64toi32_i32$2;
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$3 = var$1;
- i64toi32_i32$0 = 0;
- i64toi32_i32$1 = 1;
- i64toi32_i32$5 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
- var$1 = i64toi32_i32$3 - i64toi32_i32$1 | 0;
- var$1$hi = i64toi32_i32$5;
+ block : {
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$2$hi;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$0 = var$2$hi;
+ i64toi32_i32$0 = __wasm_i64_mul(var$1 | 0, i64toi32_i32$2 | 0, var$2 | 0, i64toi32_i32$0 | 0) | 0;
+ i64toi32_i32$2 = i64toi32_i32$HIGH_BITS;
+ var$2 = i64toi32_i32$0;
+ var$2$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$1 = 1;
+ i64toi32_i32$5 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ var$1 = i64toi32_i32$3 - i64toi32_i32$1 | 0;
+ var$1$hi = i64toi32_i32$5;
+ }
}
continue label$2;
};
@@ -178,22 +184,24 @@ function asmFunc(global, env, buffer) {
if ((i64toi32_i32$2 | 0) == (i64toi32_i32$3 | 0) & (i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) | 0) {
break label$1
} else {
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$2 = var$2$hi;
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$0 = var$2$hi;
- i64toi32_i32$0 = __wasm_i64_mul(var$1 | 0, i64toi32_i32$2 | 0, var$2 | 0, i64toi32_i32$0 | 0) | 0;
- i64toi32_i32$2 = i64toi32_i32$HIGH_BITS;
- var$2 = i64toi32_i32$0;
- var$2$hi = i64toi32_i32$2;
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$3 = var$1;
- i64toi32_i32$0 = 0;
- i64toi32_i32$1 = 1;
- i64toi32_i32$5 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
- var$1 = i64toi32_i32$3 - i64toi32_i32$1 | 0;
- var$1$hi = i64toi32_i32$5;
+ block : {
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$2$hi;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$0 = var$2$hi;
+ i64toi32_i32$0 = __wasm_i64_mul(var$1 | 0, i64toi32_i32$2 | 0, var$2 | 0, i64toi32_i32$0 | 0) | 0;
+ i64toi32_i32$2 = i64toi32_i32$HIGH_BITS;
+ var$2 = i64toi32_i32$0;
+ var$2$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$1 = 1;
+ i64toi32_i32$5 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ var$1 = i64toi32_i32$3 - i64toi32_i32$1 | 0;
+ var$1$hi = i64toi32_i32$5;
+ }
}
continue label$2;
};
@@ -223,22 +231,24 @@ function asmFunc(global, env, buffer) {
if ((i64toi32_i32$2 | 0) == (i64toi32_i32$3 | 0) & (i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) | 0) {
break label$1
} else {
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$2 = var$2$hi;
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$0 = var$2$hi;
- i64toi32_i32$0 = __wasm_i64_mul(var$1 | 0, i64toi32_i32$2 | 0, var$2 | 0, i64toi32_i32$0 | 0) | 0;
- i64toi32_i32$2 = i64toi32_i32$HIGH_BITS;
- var$2 = i64toi32_i32$0;
- var$2$hi = i64toi32_i32$2;
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$3 = var$1;
- i64toi32_i32$0 = 0;
- i64toi32_i32$1 = 1;
- i64toi32_i32$5 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
- var$1 = i64toi32_i32$3 - i64toi32_i32$1 | 0;
- var$1$hi = i64toi32_i32$5;
+ block : {
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$2$hi;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$0 = var$2$hi;
+ i64toi32_i32$0 = __wasm_i64_mul(var$1 | 0, i64toi32_i32$2 | 0, var$2 | 0, i64toi32_i32$0 | 0) | 0;
+ i64toi32_i32$2 = i64toi32_i32$HIGH_BITS;
+ var$2 = i64toi32_i32$0;
+ var$2$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$1 = 1;
+ i64toi32_i32$5 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ var$1 = i64toi32_i32$3 - i64toi32_i32$1 | 0;
+ var$1$hi = i64toi32_i32$5;
+ }
}
continue label$2;
};
diff --git a/test/wasm2js/switch.2asm.js b/test/wasm2js/switch.2asm.js
index 78356d29b..8e3959526 100644
--- a/test/wasm2js/switch.2asm.js
+++ b/test/wasm2js/switch.2asm.js
@@ -182,12 +182,6 @@ function asmFunc(global, env, buffer) {
}
function $3() {
- block : {
- switch (0 | 0) {
- default:
- break block;
- };
- }
return 1 | 0;
}
diff --git a/test/wasm2js/traps.2asm.js b/test/wasm2js/traps.2asm.js
index fab1239e3..83d04cc9e 100644
--- a/test/wasm2js/traps.2asm.js
+++ b/test/wasm2js/traps.2asm.js
@@ -376,121 +376,125 @@ function asmFunc(global, env, buffer) {
label$7 : {
label$8 : {
label$9 : {
- label$11 : {
- i64toi32_i32$0 = var$0$hi;
- i64toi32_i32$2 = var$0;
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
i64toi32_i32$1 = 0;
- $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$2 = $37;
- if (var$2) {
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- if (!var$3) {
- break label$11
- }
- i64toi32_i32$1 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$2 = 0;
i64toi32_i32$3 = 32;
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ i64toi32_i32$1 = 0;
+ $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
} else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
}
- var$4 = $38;
- if (!var$4) {
- break label$9
+ var$2 = $37;
+ if (var$2) {
+ block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if (!var$3) {
+ break label$11
+ }
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $38;
+ if (!var$4) {
+ break label$9
+ }
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) {
+ break label$8
+ }
+ break label$2;
+ }
}
- var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
- if (var$2 >>> 0 <= 31 >>> 0) {
- break label$8
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
+ break label$2
}
- break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
}
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = 0;
- if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
- break label$2
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
}
+ var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- var$2 = var$0;
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ if (!var$0) {
+ break label$7
+ }
+ if (!var$3) {
+ break label$6
+ }
+ var$4 = var$3 + -1 | 0;
+ if (var$4 & var$3 | 0) {
+ break label$6
+ }
i64toi32_i32$1 = 0;
- legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $40 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $63$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $65$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $63$hi;
+ i64toi32_i32$3 = $40;
+ i64toi32_i32$1 = $65$hi;
+ i64toi32_i32$0 = $65;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$2;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$2 | 0;
- }
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$3 = var$1;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = 0;
- $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$3 = $39;
- i64toi32_i32$1 = var$0$hi;
- if (!var$0) {
- break label$7
- }
- if (!var$3) {
- break label$6
- }
- var$4 = var$3 + -1 | 0;
- if (var$4 & var$3 | 0) {
- break label$6
- }
- i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$4 & var$2 | 0;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $40 = 0;
- } else {
- i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
- $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ return i64toi32_i32$3 | 0;
}
- $63$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$1 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = -1;
- i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
- $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
- $65$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $63$hi;
- i64toi32_i32$3 = $40;
- i64toi32_i32$1 = $65$hi;
- i64toi32_i32$0 = $65;
- i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
- legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$3 | 0;
}
var$4 = var$3 + -1 | 0;
if (!(var$4 & var$3 | 0)) {
@@ -593,132 +597,134 @@ function asmFunc(global, env, buffer) {
var$0$hi = i64toi32_i32$2;
label$13 : {
if (var$2) {
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$3 = -1;
- i64toi32_i32$0 = -1;
- i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
- if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
- i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
- }
- var$8 = i64toi32_i32$4;
- var$8$hi = i64toi32_i32$5;
- label$15 : while (1) {
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$2 = var$5;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- $45 = 0;
- } else {
- i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
- $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- }
- $140 = $45;
- $140$hi = i64toi32_i32$1;
- i64toi32_i32$1 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
- }
- $142$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $140$hi;
- i64toi32_i32$1 = $140;
- i64toi32_i32$5 = $142$hi;
- i64toi32_i32$0 = $46;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
- var$5$hi = i64toi32_i32$5;
- $144 = var$5;
- $144$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$2 = var$8;
- i64toi32_i32$1 = var$5$hi;
- i64toi32_i32$0 = var$5;
- i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
- i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
- i64toi32_i32$5 = i64toi32_i32$3;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
- $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
- }
- var$6 = $47;
- var$6$hi = i64toi32_i32$2;
+ block3 : {
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$2 = var$6$hi;
- i64toi32_i32$4 = var$6;
- i64toi32_i32$5 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
- $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
- $151$hi = i64toi32_i32$5;
- i64toi32_i32$5 = $144$hi;
- i64toi32_i32$2 = $144;
- i64toi32_i32$4 = $151$hi;
- i64toi32_i32$0 = $151;
- i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
- i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
- var$5 = i64toi32_i32$1;
- var$5$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- $48 = 0;
- } else {
- i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
- $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- }
- $154$hi = i64toi32_i32$2;
- i64toi32_i32$2 = var$7$hi;
- i64toi32_i32$2 = $154$hi;
- i64toi32_i32$3 = $48;
- i64toi32_i32$5 = var$7$hi;
- i64toi32_i32$0 = var$7;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
- var$0$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$6$hi;
- i64toi32_i32$2 = var$6;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
- var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
- var$6$hi = i64toi32_i32$3;
- var$7 = var$6;
- var$7$hi = i64toi32_i32$3;
- var$2 = var$2 + -1 | 0;
- if (var$2) {
- continue label$15
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = -1;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
+ i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
}
- break label$15;
- };
- break label$13;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : while (1) {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $45 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $140 = $45;
+ $140$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $142$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $140$hi;
+ i64toi32_i32$1 = $140;
+ i64toi32_i32$5 = $142$hi;
+ i64toi32_i32$0 = $46;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $144 = var$5;
+ $144$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $47;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $151$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $144$hi;
+ i64toi32_i32$2 = $144;
+ i64toi32_i32$4 = $151$hi;
+ i64toi32_i32$0 = $151;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $154$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $154$hi;
+ i64toi32_i32$3 = $48;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + -1 | 0;
+ if (var$2) {
+ continue label$15
+ }
+ break label$15;
+ };
+ break label$13;
+ }
}
}
i64toi32_i32$3 = var$5$hi;
@@ -1206,121 +1212,125 @@ function asmFunc(global, env, buffer) {
label$7 : {
label$8 : {
label$9 : {
- label$11 : {
- i64toi32_i32$0 = var$0$hi;
- i64toi32_i32$2 = var$0;
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
i64toi32_i32$1 = 0;
- $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$2 = $37;
- if (var$2) {
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- if (!var$3) {
- break label$11
- }
- i64toi32_i32$1 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$2 = 0;
i64toi32_i32$3 = 32;
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ i64toi32_i32$1 = 0;
+ $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
} else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
}
- var$4 = $38;
- if (!var$4) {
- break label$9
+ var$2 = $37;
+ if (var$2) {
+ block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if (!var$3) {
+ break label$11
+ }
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $38;
+ if (!var$4) {
+ break label$9
+ }
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) {
+ break label$8
+ }
+ break label$2;
+ }
}
- var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
- if (var$2 >>> 0 <= 31 >>> 0) {
- break label$8
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
+ break label$2
}
- break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
}
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = 0;
- if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) {
- break label$2
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
}
+ var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- var$2 = var$0;
- i64toi32_i32$1 = var$1$hi;
- var$3 = var$1;
- var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ if (!var$0) {
+ break label$7
+ }
+ if (!var$3) {
+ break label$6
+ }
+ var$4 = var$3 + -1 | 0;
+ if (var$4 & var$3 | 0) {
+ break label$6
+ }
i64toi32_i32$1 = 0;
- legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0);
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $40 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $63$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $65$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $63$hi;
+ i64toi32_i32$3 = $40;
+ i64toi32_i32$1 = $65$hi;
+ i64toi32_i32$0 = $65;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$2;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$2 | 0;
- }
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$3 = var$1;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = 0;
- $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- } else {
- i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
- }
- var$3 = $39;
- i64toi32_i32$1 = var$0$hi;
- if (!var$0) {
- break label$7
- }
- if (!var$3) {
- break label$6
- }
- var$4 = var$3 + -1 | 0;
- if (var$4 & var$3 | 0) {
- break label$6
- }
- i64toi32_i32$1 = 0;
- i64toi32_i32$2 = var$4 & var$2 | 0;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 32;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $40 = 0;
- } else {
- i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
- $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ return i64toi32_i32$3 | 0;
}
- $63$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$1 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = -1;
- i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
- $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
- $65$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $63$hi;
- i64toi32_i32$3 = $40;
- i64toi32_i32$1 = $65$hi;
- i64toi32_i32$0 = $65;
- i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
- legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0);
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$3 | 0;
}
var$4 = var$3 + -1 | 0;
if (!(var$4 & var$3 | 0)) {
@@ -1423,132 +1433,134 @@ function asmFunc(global, env, buffer) {
var$0$hi = i64toi32_i32$2;
label$13 : {
if (var$2) {
- i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$1 = var$1;
- i64toi32_i32$3 = -1;
- i64toi32_i32$0 = -1;
- i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
- i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
- if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
- i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
- }
- var$8 = i64toi32_i32$4;
- var$8$hi = i64toi32_i32$5;
- label$15 : while (1) {
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$2 = var$5;
- i64toi32_i32$1 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- $45 = 0;
- } else {
- i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
- $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- }
- $140 = $45;
- $140$hi = i64toi32_i32$1;
- i64toi32_i32$1 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = 0;
- $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
- }
- $142$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $140$hi;
- i64toi32_i32$1 = $140;
- i64toi32_i32$5 = $142$hi;
- i64toi32_i32$0 = $46;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
- var$5$hi = i64toi32_i32$5;
- $144 = var$5;
- $144$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$5 = var$5$hi;
- i64toi32_i32$5 = var$8$hi;
- i64toi32_i32$2 = var$8;
- i64toi32_i32$1 = var$5$hi;
- i64toi32_i32$0 = var$5;
- i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
- i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
- i64toi32_i32$5 = i64toi32_i32$3;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 63;
- i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
- $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- } else {
- i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
- }
- var$6 = $47;
- var$6$hi = i64toi32_i32$2;
+ block3 : {
i64toi32_i32$2 = var$1$hi;
- i64toi32_i32$2 = var$6$hi;
- i64toi32_i32$4 = var$6;
- i64toi32_i32$5 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
- $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
- $151$hi = i64toi32_i32$5;
- i64toi32_i32$5 = $144$hi;
- i64toi32_i32$2 = $144;
- i64toi32_i32$4 = $151$hi;
- i64toi32_i32$0 = $151;
- i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
- i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
- i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
- i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
- var$5 = i64toi32_i32$1;
- var$5$hi = i64toi32_i32$3;
- i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$5 = var$0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
- i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- $48 = 0;
- } else {
- i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
- $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- }
- $154$hi = i64toi32_i32$2;
- i64toi32_i32$2 = var$7$hi;
- i64toi32_i32$2 = $154$hi;
- i64toi32_i32$3 = $48;
- i64toi32_i32$5 = var$7$hi;
- i64toi32_i32$0 = var$7;
- i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
- var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
- var$0$hi = i64toi32_i32$5;
- i64toi32_i32$5 = var$6$hi;
- i64toi32_i32$2 = var$6;
- i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 1;
- i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
- var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
- var$6$hi = i64toi32_i32$3;
- var$7 = var$6;
- var$7$hi = i64toi32_i32$3;
- var$2 = var$2 + -1 | 0;
- if (var$2) {
- continue label$15
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = -1;
+ i64toi32_i32$0 = -1;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) {
+ i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
}
- break label$15;
- };
- break label$13;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : while (1) {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $45 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $140 = $45;
+ $140$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $142$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $140$hi;
+ i64toi32_i32$1 = $140;
+ i64toi32_i32$5 = $142$hi;
+ i64toi32_i32$0 = $46;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $144 = var$5;
+ $144$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $47;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $151$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $144$hi;
+ i64toi32_i32$2 = $144;
+ i64toi32_i32$4 = $151$hi;
+ i64toi32_i32$0 = $151;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $154$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $154$hi;
+ i64toi32_i32$3 = $48;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + -1 | 0;
+ if (var$2) {
+ continue label$15
+ }
+ break label$15;
+ };
+ break label$13;
+ }
}
}
i64toi32_i32$3 = var$5$hi;
diff --git a/test/wasm2js/unreachable.2asm.js b/test/wasm2js/unreachable.2asm.js
index bc067e9ce..47a5ff4da 100644
--- a/test/wasm2js/unreachable.2asm.js
+++ b/test/wasm2js/unreachable.2asm.js
@@ -78,18 +78,24 @@ function asmFunc(global, env, buffer) {
function $11() {
var $0 = 0;
- dummy();
- abort();
+ block : {
+ dummy();
+ abort();
+ }
}
function $12() {
- dummy();
- abort();
+ block : {
+ dummy();
+ abort();
+ }
}
function $13() {
- dummy();
- abort();
+ block : {
+ dummy();
+ abort();
+ }
}
function $14() {
@@ -104,26 +110,32 @@ function asmFunc(global, env, buffer) {
function $15() {
var $0 = 0, $2_1 = 0;
- abort();
+ loop_in : while (1) abort();
}
function $16() {
var $0 = 0, $2_1 = 0;
- dummy();
- abort();
+ loop_in : while (1) {
+ dummy();
+ abort();
+ };
}
function $17() {
- dummy();
- abort();
+ loop_in : while (1) {
+ dummy();
+ abort();
+ };
}
function $18() {
var $0 = 0;
block : {
- dummy();
- $0 = 1;
- break block;
+ loop_in : while (1) {
+ dummy();
+ $0 = 1;
+ break block;
+ };
}
return $0 | 0;
}