diff options
author | Alon Zakai <azakai@google.com> | 2019-05-03 11:26:41 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-03 11:26:41 -0700 |
commit | 909ac3410093c0b35b3181abcd44b9fb9ceb4781 (patch) | |
tree | 99b75f23843e1a435231e76f8e39835999ca9ee9 | |
parent | 80b509cfb8fa35d229643f35e423e6d049ab8849 (diff) | |
download | binaryen-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.h | 10 | ||||
-rw-r--r-- | test/wasm2js/block.2asm.js | 39 | ||||
-rw-r--r-- | test/wasm2js/br.2asm.js | 28 | ||||
-rw-r--r-- | test/wasm2js/br_if.2asm.js | 91 | ||||
-rw-r--r-- | test/wasm2js/br_table.2asm.js | 40 | ||||
-rw-r--r-- | test/wasm2js/br_table_temp.2asm.js | 40 | ||||
-rw-r--r-- | test/wasm2js/f32.2asm.js | 12 | ||||
-rw-r--r-- | test/wasm2js/f64.2asm.js | 12 | ||||
-rw-r--r-- | test/wasm2js/fac.2asm.js | 102 | ||||
-rw-r--r-- | test/wasm2js/float_misc.2asm.js | 24 | ||||
-rw-r--r-- | test/wasm2js/func.2asm.js | 8 | ||||
-rw-r--r-- | test/wasm2js/i64.2asm.js | 452 | ||||
-rw-r--r-- | test/wasm2js/int_exprs.2asm.js | 4972 | ||||
-rw-r--r-- | test/wasm2js/labels.2asm.js | 152 | ||||
-rw-r--r-- | test/wasm2js/left-to-right.2asm.js | 458 | ||||
-rw-r--r-- | test/wasm2js/loop.2asm.js | 278 | ||||
-rw-r--r-- | test/wasm2js/stack-modified.2asm.js | 170 | ||||
-rw-r--r-- | test/wasm2js/switch.2asm.js | 6 | ||||
-rw-r--r-- | test/wasm2js/traps.2asm.js | 904 | ||||
-rw-r--r-- | test/wasm2js/unreachable.2asm.js | 40 |
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; } |