diff options
author | Alon Zakai <alonzakai@gmail.com> | 2019-04-22 14:00:35 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-22 14:00:35 -0700 |
commit | ff710e63eaed7cf8fbf3042843f6243597da49be (patch) | |
tree | 204c03398c17c136690a2798d099554e6698f4f2 | |
parent | f87de2ae0d430f8d4204df8fceb194c24e29b413 (diff) | |
download | binaryen-ff710e63eaed7cf8fbf3042843f6243597da49be.tar.gz binaryen-ff710e63eaed7cf8fbf3042843f6243597da49be.tar.bz2 binaryen-ff710e63eaed7cf8fbf3042843f6243597da49be.zip |
wasm2js: unreachability fixes (#2037)
Also test in pass-debug mode, for better coverage.
-rwxr-xr-x | check.py | 16 | ||||
-rw-r--r-- | scripts/test/shared.py | 14 | ||||
-rwxr-xr-x | scripts/test/wasm2js.py | 4 | ||||
-rw-r--r-- | src/passes/I64ToI32Lowering.cpp | 44 | ||||
-rw-r--r-- | test/passes/flatten_i64-to-i32-lowering.txt | 60 | ||||
-rw-r--r-- | test/passes/flatten_i64-to-i32-lowering.wast | 10 | ||||
-rw-r--r-- | test/wasm2js/block.2asm.js | 12 | ||||
-rw-r--r-- | test/wasm2js/br.2asm.js | 15 | ||||
-rw-r--r-- | test/wasm2js/br_table.2asm.js | 6 | ||||
-rw-r--r-- | test/wasm2js/br_table_temp.2asm.js | 1 | ||||
-rw-r--r-- | test/wasm2js/i64.2asm.js | 242 | ||||
-rw-r--r-- | test/wasm2js/int_exprs.2asm.js | 2662 | ||||
-rw-r--r-- | test/wasm2js/left-to-right.2asm.js | 242 | ||||
-rw-r--r-- | test/wasm2js/loop.2asm.js | 8 | ||||
-rw-r--r-- | test/wasm2js/traps.2asm.js | 484 | ||||
-rw-r--r-- | test/wasm2js/unreachable-insts.2asm.js | 31 | ||||
-rw-r--r-- | test/wasm2js/unreachable-insts.wast | 13 | ||||
-rw-r--r-- | test/wasm2js/unreachable.2asm.js | 522 |
18 files changed, 2488 insertions, 1898 deletions
@@ -27,7 +27,7 @@ from scripts.test.shared import ( binary_format_check, delete_from_orbit, fail, fail_with_error, fail_if_not_identical, fail_if_not_contained, has_vanilla_emcc, has_vanilla_llvm, minify_check, options, tests, requested, warnings, - has_shell_timeout, fail_if_not_identical_to_file + has_shell_timeout, fail_if_not_identical_to_file, with_pass_debug ) # For shared.num_failures. Cannot import directly because modifications made in @@ -42,20 +42,6 @@ if options.interpreter: assert os.path.exists(options.interpreter), 'interpreter not found' -# run a check with BINARYEN_PASS_DEBUG set, to do full validation -def with_pass_debug(check): - old_pass_debug = os.environ.get('BINARYEN_PASS_DEBUG') - try: - os.environ['BINARYEN_PASS_DEBUG'] = '1' - check() - finally: - if old_pass_debug is not None: - os.environ['BINARYEN_PASS_DEBUG'] = old_pass_debug - else: - if 'BINARYEN_PASS_DEBUG' in os.environ: - del os.environ['BINARYEN_PASS_DEBUG'] - - def run_help_tests(): print '[ checking --help is useful... ]\n' diff --git a/scripts/test/shared.py b/scripts/test/shared.py index 14860a74c..8624448d9 100644 --- a/scripts/test/shared.py +++ b/scripts/test/shared.py @@ -435,3 +435,17 @@ def minify_check(wast, verify_final_result=True): def files_with_pattern(*path_pattern): return sorted(glob.glob(os.path.join(*path_pattern))) + + +# run a check with BINARYEN_PASS_DEBUG set, to do full validation +def with_pass_debug(check): + old_pass_debug = os.environ.get('BINARYEN_PASS_DEBUG') + try: + os.environ['BINARYEN_PASS_DEBUG'] = '1' + check() + finally: + if old_pass_debug is not None: + os.environ['BINARYEN_PASS_DEBUG'] = old_pass_debug + else: + if 'BINARYEN_PASS_DEBUG' in os.environ: + del os.environ['BINARYEN_PASS_DEBUG'] diff --git a/scripts/test/wasm2js.py b/scripts/test/wasm2js.py index 1cad83a1b..5b83e1b21 100755 --- a/scripts/test/wasm2js.py +++ b/scripts/test/wasm2js.py @@ -19,7 +19,7 @@ import os from support import run_command, split_wast from shared import ( WASM2JS, MOZJS, NODEJS, fail_if_not_identical, options, tests, - fail_if_not_identical_to_file + fail_if_not_identical_to_file, with_pass_debug ) # tests with i64s, invokes, etc. @@ -73,6 +73,8 @@ def test_wasm2js_output(): cmd += ['--allow-asserts'] out = run_command(cmd) + # also verify it passes pass-debug verifications + with_pass_debug(lambda: run_command(cmd)) open('a.2asm.asserts.mjs', 'w').write(out) diff --git a/src/passes/I64ToI32Lowering.cpp b/src/passes/I64ToI32Lowering.cpp index e6dc90607..f16003745 100644 --- a/src/passes/I64ToI32Lowering.cpp +++ b/src/passes/I64ToI32Lowering.cpp @@ -223,6 +223,7 @@ struct I64ToI32Lowering : public WalkerPass<PostWalker<I64ToI32Lowering>> { void visitBlock(Block* curr) { if (curr->list.size() == 0) return; + if (handleUnreachable(curr)) return; if (curr->type == i64) curr->type = i32; auto highBitsIt = labelHighBitVars.find(curr->name); if (!hasOutParam(curr->list.back())) { @@ -272,6 +273,7 @@ struct I64ToI32Lowering : public WalkerPass<PostWalker<I64ToI32Lowering>> { } void visitLoop(Loop* curr) { + // TODO: in flat IR, no chance for an out param assert(labelHighBitVars.find(curr->name) == labelHighBitVars.end()); if (curr->type != i64) return; curr->type = i32; @@ -279,6 +281,7 @@ struct I64ToI32Lowering : public WalkerPass<PostWalker<I64ToI32Lowering>> { } void visitBreak(Break* curr) { + // TODO: in flat IR, no chance for an out param if (!hasOutParam(curr->value)) return; assert(curr->value != nullptr); TempVar valHighBits = fetchOutParam(curr->value); @@ -301,6 +304,7 @@ struct I64ToI32Lowering : public WalkerPass<PostWalker<I64ToI32Lowering>> { } void visitSwitch(Switch* curr) { + // TODO: in flat IR, no chance for an out param if (!hasOutParam(curr->value)) return; TempVar outParam = fetchOutParam(curr->value); TempVar tmp = getTemp(); @@ -478,8 +482,8 @@ struct I64ToI32Lowering : public WalkerPass<PostWalker<I64ToI32Lowering>> { } void visitSetGlobal(SetGlobal* curr) { - if (handleUnreachable(curr)) return; if (!originallyI64Globals.count(curr->name)) return; + if (handleUnreachable(curr)) return; TempVar highBits = fetchOutParam(curr->value); auto* setHigh = builder->makeSetGlobal( makeHighName(curr->name), @@ -550,6 +554,7 @@ struct I64ToI32Lowering : public WalkerPass<PostWalker<I64ToI32Lowering>> { TempVar ptrTemp = getTemp(); SetLocal* setPtr = builder->makeSetLocal(ptrTemp, curr->ptr); curr->ptr = builder->makeGetLocal(ptrTemp, i32); + curr->finalize(); Store* storeHigh = builder->makeStore( 4, curr->offset + 4, @@ -941,11 +946,7 @@ struct I64ToI32Lowering : public WalkerPass<PostWalker<I64ToI32Lowering>> { void visitUnary(Unary* curr) { if (!unaryNeedsLowering(curr->op)) return; - if (curr->type == unreachable || curr->value->type == unreachable) { - assert(!hasOutParam(curr->value)); - replaceCurrent(curr->value); - return; - } + if (handleUnreachable(curr)) return; assert(hasOutParam(curr->value) || curr->type == i64 || curr->type == f64); switch (curr->op) { case ClzInt64: @@ -1463,25 +1464,8 @@ struct I64ToI32Lowering : public WalkerPass<PostWalker<I64ToI32Lowering>> { } void visitBinary(Binary* curr) { + if (handleUnreachable(curr)) return; if (!binaryNeedsLowering(curr->op)) return; - if (!hasOutParam(curr->left)) { - // left unreachable, replace self with left - replaceCurrent(curr->left); - if (hasOutParam(curr->right)) { - // free temp var - fetchOutParam(curr->right); - } - return; - } - if (!hasOutParam(curr->right)) { - // right unreachable, replace self with left then right - replaceCurrent( - builder->blockify(builder->makeDrop(curr->left), curr->right) - ); - // free temp var - fetchOutParam(curr->left); - return; - } // left and right reachable, lower normally TempVar leftLow = getTemp(); TempVar leftHigh = fetchOutParam(curr->left); @@ -1668,16 +1652,26 @@ private: // If e.g. a select is unreachable, then one arm may have an out param // but not the other. In this case dce should really have been run - // before; handle it in a simple way here. + // before; handle it in a simple way here by replacing the node with + // a block of its children. + // This is valid only for nodes that execute their children + // unconditionally before themselves, so it is not valid for an if, + // in particular. bool handleUnreachable(Expression* curr) { if (curr->type != unreachable) return false; std::vector<Expression*> children; + bool hasUnreachable = false; for (auto* child : ChildIterator(curr)) { if (isConcreteType(child->type)) { child = builder->makeDrop(child); + } else if (child->type == unreachable) { + hasUnreachable = true; } children.push_back(child); } + if (!hasUnreachable) return false; + // This has an unreachable child, so we can replace it with + // the children. auto* block = builder->makeBlock(children); assert(block->type == unreachable); replaceCurrent(block); diff --git a/test/passes/flatten_i64-to-i32-lowering.txt b/test/passes/flatten_i64-to-i32-lowering.txt index 7d9ff6835..1db2481c8 100644 --- a/test/passes/flatten_i64-to-i32-lowering.txt +++ b/test/passes/flatten_i64-to-i32-lowering.txt @@ -206,7 +206,7 @@ (local $1 i32) (local $1$hi i32) (local $i64toi32_i32$0 i32) - (block $label$1 + (block (unreachable) (unreachable) ) @@ -239,3 +239,61 @@ (nop) ) ) +(module + (type $0 (func (param i32 i32))) + (type $1 (func)) + (global $f (mut i32) (i32.const -1412567121)) + (global $g (mut i32) (global.get $f)) + (global $f$hi (mut i32) (i32.const 305419896)) + (global $g$hi (mut i32) (global.get $f$hi)) + (global $i64toi32_i32$HIGH_BITS (mut i32) (i32.const 0)) + (export "exp" (func $1)) + (func $call (; 0 ;) (type $0) (param $0 i32) (param $0$hi i32) + (nop) + ) + (func $1 (; 1 ;) (type $1) + (local $0 i32) + (local $0$hi i32) + (local $i64toi32_i32$0 i32) + (block + (block + (local.set $0 + (block (result i32) + (local.set $i64toi32_i32$0 + (global.get $f$hi) + ) + (global.get $f) + ) + ) + (local.set $0$hi + (local.get $i64toi32_i32$0) + ) + ) + (call $call + (block (result i32) + (local.set $i64toi32_i32$0 + (local.get $0$hi) + ) + (local.get $0) + ) + (local.get $i64toi32_i32$0) + ) + (nop) + (block + (global.set $f + (block (result i32) + (local.set $i64toi32_i32$0 + (i32.const 287454020) + ) + (i32.const 1432778632) + ) + ) + (global.set $f$hi + (local.get $i64toi32_i32$0) + ) + ) + (nop) + ) + (nop) + ) +) diff --git a/test/passes/flatten_i64-to-i32-lowering.wast b/test/passes/flatten_i64-to-i32-lowering.wast index 29323d376..2f3bb37ca 100644 --- a/test/passes/flatten_i64-to-i32-lowering.wast +++ b/test/passes/flatten_i64-to-i32-lowering.wast @@ -41,3 +41,13 @@ ) ) ) +(module + (global $f (mut i64) (i64.const 0x12345678ABCDEFAF)) + (global $g (mut i64) (global.get $f)) + (func $call (param i64)) + (func "exp" + (call $call (global.get $f)) + (global.set $f (i64.const 0x1122334455667788)) + ) +) + diff --git a/test/wasm2js/block.2asm.js b/test/wasm2js/block.2asm.js index cff354c48..3bb752e61 100644 --- a/test/wasm2js/block.2asm.js +++ b/test/wasm2js/block.2asm.js @@ -135,10 +135,8 @@ function asmFunc(global, env, buffer) { $0 = 0; $1_1 = $0; block : { - block47 : { - $2_1 = 1; - break block; - } + $2_1 = 1; + break block; } $0 = $1_1 + $2_1 | 0; $5_1 = $0; @@ -151,10 +149,8 @@ function asmFunc(global, env, buffer) { $0 = $9_1 + $10_1 | 0; $13_1 = $0; block51 : { - block52 : { - $14_1 = 8; - break block51; - } + $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 1aa2f3edc..83401094a 100644 --- a/test/wasm2js/br.2asm.js +++ b/test/wasm2js/br.2asm.js @@ -449,15 +449,14 @@ function asmFunc(global, env, buffer) { } function $47() { - var i64toi32_i32$0 = 0, $0 = 0, $0$hi = 0; + var $0 = 0, $0$hi = 0, i64toi32_i32$1 = 0; block : { - i64toi32_i32$0 = 0; $0 = 45; - $0$hi = i64toi32_i32$0; + $0$hi = 0; break block; } - i64toi32_i32$0 = $0$hi; - i64toi32_i32$HIGH_BITS = i64toi32_i32$0; + i64toi32_i32$1 = $0$hi; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; return $0 | 0; } @@ -519,10 +518,8 @@ function asmFunc(global, env, buffer) { function $54() { var $0 = 0; block : { - block0 : { - $0 = 8; - break block; - } + $0 = 8; + break block; } return 1 + $0 | 0 | 0; } diff --git a/test/wasm2js/br_table.2asm.js b/test/wasm2js/br_table.2asm.js index bd66eb523..849d11945 100644 --- a/test/wasm2js/br_table.2asm.js +++ b/test/wasm2js/br_table.2asm.js @@ -49973,7 +49973,7 @@ function asmFunc(global, env, buffer) { } function $54() { - var i64toi32_i32$0 = 0, $1_1 = 0, $1$hi = 0; + var i64toi32_i32$0 = 0, $1_1 = 0, $1$hi = 0, i64toi32_i32$1 = 0; block : { i64toi32_i32$0 = 0; $1_1 = 45; @@ -49983,8 +49983,8 @@ function asmFunc(global, env, buffer) { break block; }; } - i64toi32_i32$0 = $1$hi; - i64toi32_i32$HIGH_BITS = i64toi32_i32$0; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; return $1_1 | 0; } diff --git a/test/wasm2js/br_table_temp.2asm.js b/test/wasm2js/br_table_temp.2asm.js index e6e397f01..a5f423d22 100644 --- a/test/wasm2js/br_table_temp.2asm.js +++ b/test/wasm2js/br_table_temp.2asm.js @@ -49977,7 +49977,6 @@ function asmFunc(global, env, buffer) { break block; }; } - i64toi32_i32$0 = $1$hi; return $1_1 | 0; } diff --git a/test/wasm2js/i64.2asm.js b/test/wasm2js/i64.2asm.js index 73a67a79a..a92057d30 100644 --- a/test/wasm2js/i64.2asm.js +++ b/test/wasm2js/i64.2asm.js @@ -3094,141 +3094,139 @@ function asmFunc(global, env, buffer) { label$7 : { label$8 : { label$9 : { - label$10 : { - label$11 : { - i64toi32_i32$0 = var$0$hi; - i64toi32_i32$2 = var$0; - i64toi32_i32$1 = 0; - i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { - { - i64toi32_i32$1 = 0; - $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - } - } else { - { - i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; - } - } - var$2 = $37; - if (var$2) { - block : { - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { - 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 | 0) == (0 | 0)) { - break label$9 - } - var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; - if (var$2 >>> 0 <= 31 >>> 0) { - break label$8 - } - break label$2; - } - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$1 = var$1; - i64toi32_i32$0 = 1; - i64toi32_i32$3 = 0; - if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { - break label$2 - } - i64toi32_i32$1 = var$0$hi; - var$2 = var$0; - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; - i64toi32_i32$1 = 0; - legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0); - i64toi32_i32$1 = 0; - i64toi32_i32$2 = var$2; - i64toi32_i32$HIGH_BITS = i64toi32_i32$1; - return i64toi32_i32$2 | 0; - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$3 = var$1; + label$11 : { + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$2 = var$0; i64toi32_i32$1 = 0; - i64toi32_i32$0 = 32; - i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> 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; + 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$3 = $39; - i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { - break label$7 - } - if ((var$3 | 0) == (0 | 0)) { - break label$6 - } - var$4 = var$3 + 4294967295 | 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) { + var$2 = $37; + if (var$2) { { - 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; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + if ((var$3 | 0) == (0 | 0)) { + 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 | 0) == (0 | 0)) { + 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; } } - $63$hi = i64toi32_i32$3; - i64toi32_i32$3 = var$0$hi; - i64toi32_i32$1 = var$0; - i64toi32_i32$2 = 0; - i64toi32_i32$0 = 4294967295; - i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $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$2 = var$1$hi; + i64toi32_i32$1 = var$1; + i64toi32_i32$0 = 1; + i64toi32_i32$3 = 0; + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$2 + } + i64toi32_i32$1 = var$0$hi; + var$2 = var$0; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 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$3 | 0; + 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 | 0) == (0 | 0)) { + break label$7 + } + if ((var$3 | 0) == (0 | 0)) { + break label$6 + } + var$4 = var$3 + 4294967295 | 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 = 4294967295; + 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 + 4294967295 | 0; if ((var$4 & var$3 | 0 | 0) == (0 | 0)) { @@ -3347,7 +3345,7 @@ function asmFunc(global, env, buffer) { var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { - block3 : { + { i64toi32_i32$2 = var$1$hi; i64toi32_i32$1 = var$1; i64toi32_i32$3 = 4294967295; diff --git a/test/wasm2js/int_exprs.2asm.js b/test/wasm2js/int_exprs.2asm.js index ee8b7da4d..09dd71093 100644 --- a/test/wasm2js/int_exprs.2asm.js +++ b/test/wasm2js/int_exprs.2asm.js @@ -1368,141 +1368,139 @@ function asmFunc(global, env, buffer) { label$7 : { label$8 : { label$9 : { - label$10 : { - label$11 : { - i64toi32_i32$0 = var$0$hi; - i64toi32_i32$2 = var$0; - i64toi32_i32$1 = 0; - i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { - { - i64toi32_i32$1 = 0; - $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - } - } else { - { - i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; - } - } - var$2 = $37; - if (var$2) { - block : { - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { - 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 | 0) == (0 | 0)) { - break label$9 - } - var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; - if (var$2 >>> 0 <= 31 >>> 0) { - break label$8 - } - break label$2; - } - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$1 = var$1; - i64toi32_i32$0 = 1; - i64toi32_i32$3 = 0; - if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { - break label$2 - } - i64toi32_i32$1 = var$0$hi; - var$2 = var$0; - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; - i64toi32_i32$1 = 0; - legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0); - i64toi32_i32$1 = 0; - i64toi32_i32$2 = var$2; - i64toi32_i32$HIGH_BITS = i64toi32_i32$1; - return i64toi32_i32$2 | 0; - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$3 = var$1; + label$11 : { + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$2 = var$0; i64toi32_i32$1 = 0; - i64toi32_i32$0 = 32; - i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> 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; + 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$3 = $39; - i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { - break label$7 - } - if ((var$3 | 0) == (0 | 0)) { - break label$6 - } - var$4 = var$3 + 4294967295 | 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 { + var$2 = $37; + if (var$2) { { - 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; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + if ((var$3 | 0) == (0 | 0)) { + 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 | 0) == (0 | 0)) { + 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; } } - $63$hi = i64toi32_i32$3; - i64toi32_i32$3 = var$0$hi; - i64toi32_i32$1 = var$0; - i64toi32_i32$2 = 0; - i64toi32_i32$0 = 4294967295; - i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $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$2 = var$1$hi; + i64toi32_i32$1 = var$1; + i64toi32_i32$0 = 1; + i64toi32_i32$3 = 0; + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$2 + } + i64toi32_i32$1 = var$0$hi; + var$2 = var$0; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; + i64toi32_i32$1 = 0; + legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0); i64toi32_i32$1 = 0; - i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0; + i64toi32_i32$2 = var$2; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; - return i64toi32_i32$3 | 0; + 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 | 0) == (0 | 0)) { + break label$7 + } + if ((var$3 | 0) == (0 | 0)) { + break label$6 + } + var$4 = var$3 + 4294967295 | 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 = 4294967295; + 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 + 4294967295 | 0; if ((var$4 & var$3 | 0 | 0) == (0 | 0)) { @@ -1621,7 +1619,7 @@ function asmFunc(global, env, buffer) { var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { - block3 : { + { i64toi32_i32$2 = var$1$hi; i64toi32_i32$1 = var$1; i64toi32_i32$3 = 4294967295; @@ -2311,141 +2309,139 @@ function asmFunc(global, env, buffer) { label$7 : { label$8 : { label$9 : { - label$10 : { - label$11 : { - i64toi32_i32$0 = var$0$hi; - i64toi32_i32$2 = var$0; - i64toi32_i32$1 = 0; - i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { - { - i64toi32_i32$1 = 0; - $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - } - } else { - { - i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; - } - } - var$2 = $37; - if (var$2) { - block : { - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { - 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 | 0) == (0 | 0)) { - break label$9 - } - var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; - if (var$2 >>> 0 <= 31 >>> 0) { - break label$8 - } - break label$2; - } - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$1 = var$1; - i64toi32_i32$0 = 1; - i64toi32_i32$3 = 0; - if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { - break label$2 - } - i64toi32_i32$1 = var$0$hi; - var$2 = var$0; - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; - i64toi32_i32$1 = 0; - legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0); - i64toi32_i32$1 = 0; - i64toi32_i32$2 = var$2; - i64toi32_i32$HIGH_BITS = i64toi32_i32$1; - return i64toi32_i32$2 | 0; - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$3 = var$1; + label$11 : { + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$2 = var$0; i64toi32_i32$1 = 0; - i64toi32_i32$0 = 32; - i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> 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; + 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$3 = $39; - i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { - break label$7 - } - if ((var$3 | 0) == (0 | 0)) { - break label$6 - } - var$4 = var$3 + 4294967295 | 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) { + var$2 = $37; + if (var$2) { { - 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; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + if ((var$3 | 0) == (0 | 0)) { + 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 | 0) == (0 | 0)) { + 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; } } - $63$hi = i64toi32_i32$3; - i64toi32_i32$3 = var$0$hi; - i64toi32_i32$1 = var$0; - i64toi32_i32$2 = 0; - i64toi32_i32$0 = 4294967295; - i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $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$2 = var$1$hi; + i64toi32_i32$1 = var$1; + i64toi32_i32$0 = 1; + i64toi32_i32$3 = 0; + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$2 + } + i64toi32_i32$1 = var$0$hi; + var$2 = var$0; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; + i64toi32_i32$1 = 0; + legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0); i64toi32_i32$1 = 0; - i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0; + i64toi32_i32$2 = var$2; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; - return i64toi32_i32$3 | 0; + 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 | 0) == (0 | 0)) { + break label$7 + } + if ((var$3 | 0) == (0 | 0)) { + break label$6 } + var$4 = var$3 + 4294967295 | 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 = 4294967295; + 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 + 4294967295 | 0; if ((var$4 & var$3 | 0 | 0) == (0 | 0)) { @@ -2564,7 +2560,7 @@ function asmFunc(global, env, buffer) { var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { - block3 : { + { i64toi32_i32$2 = var$1$hi; i64toi32_i32$1 = var$1; i64toi32_i32$3 = 4294967295; @@ -3110,141 +3106,139 @@ function asmFunc(global, env, buffer) { label$7 : { label$8 : { label$9 : { - label$10 : { - label$11 : { - i64toi32_i32$0 = var$0$hi; - i64toi32_i32$2 = var$0; - i64toi32_i32$1 = 0; - i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { - { - i64toi32_i32$1 = 0; - $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - } - } else { - { - i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; - } - } - var$2 = $37; - if (var$2) { - block : { - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { - 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 | 0) == (0 | 0)) { - break label$9 - } - var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; - if (var$2 >>> 0 <= 31 >>> 0) { - break label$8 - } - break label$2; - } - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$1 = var$1; - i64toi32_i32$0 = 1; - i64toi32_i32$3 = 0; - if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { - break label$2 - } - i64toi32_i32$1 = var$0$hi; - var$2 = var$0; - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; - i64toi32_i32$1 = 0; - legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0); - i64toi32_i32$1 = 0; - i64toi32_i32$2 = var$2; - i64toi32_i32$HIGH_BITS = i64toi32_i32$1; - return i64toi32_i32$2 | 0; - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$3 = var$1; + label$11 : { + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$2 = var$0; i64toi32_i32$1 = 0; - i64toi32_i32$0 = 32; - i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> 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; + 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$3 = $39; - i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { - break label$7 - } - if ((var$3 | 0) == (0 | 0)) { - break label$6 - } - var$4 = var$3 + 4294967295 | 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 { + var$2 = $37; + if (var$2) { { - 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; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + if ((var$3 | 0) == (0 | 0)) { + 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 | 0) == (0 | 0)) { + 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; } } - $63$hi = i64toi32_i32$3; - i64toi32_i32$3 = var$0$hi; - i64toi32_i32$1 = var$0; - i64toi32_i32$2 = 0; - i64toi32_i32$0 = 4294967295; - i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $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$2 = var$1$hi; + i64toi32_i32$1 = var$1; + i64toi32_i32$0 = 1; + i64toi32_i32$3 = 0; + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$2 + } + i64toi32_i32$1 = var$0$hi; + var$2 = var$0; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 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$3 | 0; + 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 | 0) == (0 | 0)) { + break label$7 + } + if ((var$3 | 0) == (0 | 0)) { + break label$6 + } + var$4 = var$3 + 4294967295 | 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 = 4294967295; + 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 + 4294967295 | 0; if ((var$4 & var$3 | 0 | 0) == (0 | 0)) { @@ -3363,7 +3357,7 @@ function asmFunc(global, env, buffer) { var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { - block3 : { + { i64toi32_i32$2 = var$1$hi; i64toi32_i32$1 = var$1; i64toi32_i32$3 = 4294967295; @@ -3888,141 +3882,139 @@ function asmFunc(global, env, buffer) { label$7 : { label$8 : { label$9 : { - label$10 : { - label$11 : { - i64toi32_i32$0 = var$0$hi; - i64toi32_i32$2 = var$0; - i64toi32_i32$1 = 0; - i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { - { - i64toi32_i32$1 = 0; - $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - } - } else { - { - i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; - } - } - var$2 = $37; - if (var$2) { - block : { - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { - 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 | 0) == (0 | 0)) { - break label$9 - } - var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; - if (var$2 >>> 0 <= 31 >>> 0) { - break label$8 - } - break label$2; - } - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$1 = var$1; - i64toi32_i32$0 = 1; - i64toi32_i32$3 = 0; - if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { - break label$2 - } - i64toi32_i32$1 = var$0$hi; - var$2 = var$0; - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; - i64toi32_i32$1 = 0; - legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0); - i64toi32_i32$1 = 0; - i64toi32_i32$2 = var$2; - i64toi32_i32$HIGH_BITS = i64toi32_i32$1; - return i64toi32_i32$2 | 0; - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$3 = var$1; + label$11 : { + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$2 = var$0; i64toi32_i32$1 = 0; - i64toi32_i32$0 = 32; - i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> 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; + 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$3 = $39; - i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { - break label$7 - } - if ((var$3 | 0) == (0 | 0)) { - break label$6 - } - var$4 = var$3 + 4294967295 | 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 { + var$2 = $37; + if (var$2) { { - 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; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + if ((var$3 | 0) == (0 | 0)) { + 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 | 0) == (0 | 0)) { + 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; } } - $63$hi = i64toi32_i32$3; - i64toi32_i32$3 = var$0$hi; - i64toi32_i32$1 = var$0; - i64toi32_i32$2 = 0; - i64toi32_i32$0 = 4294967295; - i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $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$2 = var$1$hi; + i64toi32_i32$1 = var$1; + i64toi32_i32$0 = 1; + i64toi32_i32$3 = 0; + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$2 + } + i64toi32_i32$1 = var$0$hi; + var$2 = var$0; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 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$3 | 0; + 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 | 0) == (0 | 0)) { + break label$7 + } + if ((var$3 | 0) == (0 | 0)) { + break label$6 + } + var$4 = var$3 + 4294967295 | 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 = 4294967295; + 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 + 4294967295 | 0; if ((var$4 & var$3 | 0 | 0) == (0 | 0)) { @@ -4141,7 +4133,7 @@ function asmFunc(global, env, buffer) { var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { - block3 : { + { i64toi32_i32$2 = var$1$hi; i64toi32_i32$1 = var$1; i64toi32_i32$3 = 4294967295; @@ -4707,141 +4699,139 @@ function asmFunc(global, env, buffer) { label$7 : { label$8 : { label$9 : { - label$10 : { - label$11 : { - i64toi32_i32$0 = var$0$hi; - i64toi32_i32$2 = var$0; - i64toi32_i32$1 = 0; - i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { - { - i64toi32_i32$1 = 0; - $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - } - } else { - { - i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; - } - } - var$2 = $37; - if (var$2) { - block : { - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { - 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 | 0) == (0 | 0)) { - break label$9 - } - var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; - if (var$2 >>> 0 <= 31 >>> 0) { - break label$8 - } - break label$2; - } - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$1 = var$1; - i64toi32_i32$0 = 1; - i64toi32_i32$3 = 0; - if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { - break label$2 - } - i64toi32_i32$1 = var$0$hi; - var$2 = var$0; - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; - i64toi32_i32$1 = 0; - legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0); - i64toi32_i32$1 = 0; - i64toi32_i32$2 = var$2; - i64toi32_i32$HIGH_BITS = i64toi32_i32$1; - return i64toi32_i32$2 | 0; - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$3 = var$1; + label$11 : { + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$2 = var$0; i64toi32_i32$1 = 0; - i64toi32_i32$0 = 32; - i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> 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; + 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$3 = $39; - i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { - break label$7 - } - if ((var$3 | 0) == (0 | 0)) { - break label$6 - } - var$4 = var$3 + 4294967295 | 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) { + var$2 = $37; + if (var$2) { { - 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; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + if ((var$3 | 0) == (0 | 0)) { + 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 | 0) == (0 | 0)) { + 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; } } - $63$hi = i64toi32_i32$3; - i64toi32_i32$3 = var$0$hi; - i64toi32_i32$1 = var$0; - i64toi32_i32$2 = 0; - i64toi32_i32$0 = 4294967295; - i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $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$2 = var$1$hi; + i64toi32_i32$1 = var$1; + i64toi32_i32$0 = 1; + i64toi32_i32$3 = 0; + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$2 + } + i64toi32_i32$1 = var$0$hi; + var$2 = var$0; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 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$3 | 0; + 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 | 0) == (0 | 0)) { + break label$7 + } + if ((var$3 | 0) == (0 | 0)) { + break label$6 + } + var$4 = var$3 + 4294967295 | 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 = 4294967295; + 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 + 4294967295 | 0; if ((var$4 & var$3 | 0 | 0) == (0 | 0)) { @@ -4960,7 +4950,7 @@ function asmFunc(global, env, buffer) { var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { - block3 : { + { i64toi32_i32$2 = var$1$hi; i64toi32_i32$1 = var$1; i64toi32_i32$3 = 4294967295; @@ -5544,141 +5534,139 @@ function asmFunc(global, env, buffer) { label$7 : { label$8 : { label$9 : { - label$10 : { - label$11 : { - i64toi32_i32$0 = var$0$hi; - i64toi32_i32$2 = var$0; - i64toi32_i32$1 = 0; - i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { - { - i64toi32_i32$1 = 0; - $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - } - } else { - { - i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; - } - } - var$2 = $37; - if (var$2) { - block : { - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { - 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 | 0) == (0 | 0)) { - break label$9 - } - var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; - if (var$2 >>> 0 <= 31 >>> 0) { - break label$8 - } - break label$2; - } - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$1 = var$1; - i64toi32_i32$0 = 1; - i64toi32_i32$3 = 0; - if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { - break label$2 - } - i64toi32_i32$1 = var$0$hi; - var$2 = var$0; - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; - i64toi32_i32$1 = 0; - legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0); - i64toi32_i32$1 = 0; - i64toi32_i32$2 = var$2; - i64toi32_i32$HIGH_BITS = i64toi32_i32$1; - return i64toi32_i32$2 | 0; - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$3 = var$1; + label$11 : { + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$2 = var$0; i64toi32_i32$1 = 0; - i64toi32_i32$0 = 32; - i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> 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; + 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$3 = $39; - i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { - break label$7 - } - if ((var$3 | 0) == (0 | 0)) { - break label$6 - } - var$4 = var$3 + 4294967295 | 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) { + var$2 = $37; + if (var$2) { { - 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; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + if ((var$3 | 0) == (0 | 0)) { + 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 | 0) == (0 | 0)) { + 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; } } - $63$hi = i64toi32_i32$3; - i64toi32_i32$3 = var$0$hi; - i64toi32_i32$1 = var$0; - i64toi32_i32$2 = 0; - i64toi32_i32$0 = 4294967295; - i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $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$2 = var$1$hi; + i64toi32_i32$1 = var$1; + i64toi32_i32$0 = 1; + i64toi32_i32$3 = 0; + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$2 + } + i64toi32_i32$1 = var$0$hi; + var$2 = var$0; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; + i64toi32_i32$1 = 0; + legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0); i64toi32_i32$1 = 0; - i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0; + i64toi32_i32$2 = var$2; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; - return i64toi32_i32$3 | 0; + 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 | 0) == (0 | 0)) { + break label$7 + } + if ((var$3 | 0) == (0 | 0)) { + break label$6 + } + var$4 = var$3 + 4294967295 | 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 = 4294967295; + 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 + 4294967295 | 0; if ((var$4 & var$3 | 0 | 0) == (0 | 0)) { @@ -5797,7 +5785,7 @@ function asmFunc(global, env, buffer) { var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { - block3 : { + { i64toi32_i32$2 = var$1$hi; i64toi32_i32$1 = var$1; i64toi32_i32$3 = 4294967295; @@ -6381,141 +6369,139 @@ function asmFunc(global, env, buffer) { label$7 : { label$8 : { label$9 : { - label$10 : { - label$11 : { - i64toi32_i32$0 = var$0$hi; - i64toi32_i32$2 = var$0; - i64toi32_i32$1 = 0; - i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { - { - i64toi32_i32$1 = 0; - $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - } - } else { - { - i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; - } - } - var$2 = $37; - if (var$2) { - block : { - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { - 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 | 0) == (0 | 0)) { - break label$9 - } - var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; - if (var$2 >>> 0 <= 31 >>> 0) { - break label$8 - } - break label$2; - } - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$1 = var$1; - i64toi32_i32$0 = 1; - i64toi32_i32$3 = 0; - if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { - break label$2 - } - i64toi32_i32$1 = var$0$hi; - var$2 = var$0; - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; - i64toi32_i32$1 = 0; - legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0); - i64toi32_i32$1 = 0; - i64toi32_i32$2 = var$2; - i64toi32_i32$HIGH_BITS = i64toi32_i32$1; - return i64toi32_i32$2 | 0; - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$3 = var$1; + label$11 : { + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$2 = var$0; i64toi32_i32$1 = 0; - i64toi32_i32$0 = 32; - i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> 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; + 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$3 = $39; - i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { - break label$7 - } - if ((var$3 | 0) == (0 | 0)) { - break label$6 - } - var$4 = var$3 + 4294967295 | 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) { + var$2 = $37; + if (var$2) { { - 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; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + if ((var$3 | 0) == (0 | 0)) { + 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 | 0) == (0 | 0)) { + 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; } } - $63$hi = i64toi32_i32$3; - i64toi32_i32$3 = var$0$hi; - i64toi32_i32$1 = var$0; - i64toi32_i32$2 = 0; - i64toi32_i32$0 = 4294967295; - i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $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$2 = var$1$hi; + i64toi32_i32$1 = var$1; + i64toi32_i32$0 = 1; + i64toi32_i32$3 = 0; + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$2 + } + i64toi32_i32$1 = var$0$hi; + var$2 = var$0; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; + i64toi32_i32$1 = 0; + legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0); i64toi32_i32$1 = 0; - i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0; + i64toi32_i32$2 = var$2; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; - return i64toi32_i32$3 | 0; + 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 | 0) == (0 | 0)) { + break label$7 } + if ((var$3 | 0) == (0 | 0)) { + break label$6 + } + var$4 = var$3 + 4294967295 | 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 = 4294967295; + 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 + 4294967295 | 0; if ((var$4 & var$3 | 0 | 0) == (0 | 0)) { @@ -6634,7 +6620,7 @@ function asmFunc(global, env, buffer) { var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { - block3 : { + { i64toi32_i32$2 = var$1$hi; i64toi32_i32$1 = var$1; i64toi32_i32$3 = 4294967295; @@ -7218,141 +7204,139 @@ function asmFunc(global, env, buffer) { label$7 : { label$8 : { label$9 : { - label$10 : { - label$11 : { - i64toi32_i32$0 = var$0$hi; - i64toi32_i32$2 = var$0; - i64toi32_i32$1 = 0; - i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { - { - i64toi32_i32$1 = 0; - $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - } - } else { - { - i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; - } - } - var$2 = $37; - if (var$2) { - block : { - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { - 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 | 0) == (0 | 0)) { - break label$9 - } - var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; - if (var$2 >>> 0 <= 31 >>> 0) { - break label$8 - } - break label$2; - } - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$1 = var$1; - i64toi32_i32$0 = 1; - i64toi32_i32$3 = 0; - if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { - break label$2 - } - i64toi32_i32$1 = var$0$hi; - var$2 = var$0; - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; - i64toi32_i32$1 = 0; - legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0); - i64toi32_i32$1 = 0; - i64toi32_i32$2 = var$2; - i64toi32_i32$HIGH_BITS = i64toi32_i32$1; - return i64toi32_i32$2 | 0; - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$3 = var$1; + label$11 : { + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$2 = var$0; i64toi32_i32$1 = 0; - i64toi32_i32$0 = 32; - i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> 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; + 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$3 = $39; - i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { - break label$7 - } - if ((var$3 | 0) == (0 | 0)) { - break label$6 - } - var$4 = var$3 + 4294967295 | 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) { + var$2 = $37; + if (var$2) { { - 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; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + if ((var$3 | 0) == (0 | 0)) { + 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 | 0) == (0 | 0)) { + 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; } } - $63$hi = i64toi32_i32$3; - i64toi32_i32$3 = var$0$hi; - i64toi32_i32$1 = var$0; - i64toi32_i32$2 = 0; - i64toi32_i32$0 = 4294967295; - i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $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$2 = var$1$hi; + i64toi32_i32$1 = var$1; + i64toi32_i32$0 = 1; + i64toi32_i32$3 = 0; + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$2 + } + i64toi32_i32$1 = var$0$hi; + var$2 = var$0; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 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$3 | 0; + 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 | 0) == (0 | 0)) { + break label$7 + } + if ((var$3 | 0) == (0 | 0)) { + break label$6 + } + var$4 = var$3 + 4294967295 | 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 = 4294967295; + 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 + 4294967295 | 0; if ((var$4 & var$3 | 0 | 0) == (0 | 0)) { @@ -7471,7 +7455,7 @@ function asmFunc(global, env, buffer) { var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { - block3 : { + { i64toi32_i32$2 = var$1$hi; i64toi32_i32$1 = var$1; i64toi32_i32$3 = 4294967295; @@ -8070,141 +8054,139 @@ function asmFunc(global, env, buffer) { label$7 : { label$8 : { label$9 : { - label$10 : { - label$11 : { - i64toi32_i32$0 = var$0$hi; - i64toi32_i32$2 = var$0; - i64toi32_i32$1 = 0; - i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { - { - i64toi32_i32$1 = 0; - $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - } - } else { - { - i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; - } - } - var$2 = $37; - if (var$2) { - block : { - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { - 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 | 0) == (0 | 0)) { - break label$9 - } - var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; - if (var$2 >>> 0 <= 31 >>> 0) { - break label$8 - } - break label$2; - } - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$1 = var$1; - i64toi32_i32$0 = 1; - i64toi32_i32$3 = 0; - if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { - break label$2 - } - i64toi32_i32$1 = var$0$hi; - var$2 = var$0; - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; - i64toi32_i32$1 = 0; - legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0); - i64toi32_i32$1 = 0; - i64toi32_i32$2 = var$2; - i64toi32_i32$HIGH_BITS = i64toi32_i32$1; - return i64toi32_i32$2 | 0; - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$3 = var$1; + label$11 : { + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$2 = var$0; i64toi32_i32$1 = 0; - i64toi32_i32$0 = 32; - i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> 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; + 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$3 = $39; - i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { - break label$7 - } - if ((var$3 | 0) == (0 | 0)) { - break label$6 - } - var$4 = var$3 + 4294967295 | 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 { + var$2 = $37; + if (var$2) { { - 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; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + if ((var$3 | 0) == (0 | 0)) { + 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 | 0) == (0 | 0)) { + 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; } } - $63$hi = i64toi32_i32$3; - i64toi32_i32$3 = var$0$hi; - i64toi32_i32$1 = var$0; - i64toi32_i32$2 = 0; - i64toi32_i32$0 = 4294967295; - i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $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$2 = var$1$hi; + i64toi32_i32$1 = var$1; + i64toi32_i32$0 = 1; + i64toi32_i32$3 = 0; + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$2 + } + i64toi32_i32$1 = var$0$hi; + var$2 = var$0; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 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$3 | 0; + 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 | 0) == (0 | 0)) { + break label$7 + } + if ((var$3 | 0) == (0 | 0)) { + break label$6 + } + var$4 = var$3 + 4294967295 | 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 = 4294967295; + 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 + 4294967295 | 0; if ((var$4 & var$3 | 0 | 0) == (0 | 0)) { @@ -8323,7 +8305,7 @@ function asmFunc(global, env, buffer) { var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { - block3 : { + { i64toi32_i32$2 = var$1$hi; i64toi32_i32$1 = var$1; i64toi32_i32$3 = 4294967295; @@ -8924,141 +8906,139 @@ function asmFunc(global, env, buffer) { label$7 : { label$8 : { label$9 : { - label$10 : { - label$11 : { - i64toi32_i32$0 = var$0$hi; - i64toi32_i32$2 = var$0; - i64toi32_i32$1 = 0; - i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { - { - i64toi32_i32$1 = 0; - $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - } - } else { - { - i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; - } - } - var$2 = $37; - if (var$2) { - block : { - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { - 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 | 0) == (0 | 0)) { - break label$9 - } - var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; - if (var$2 >>> 0 <= 31 >>> 0) { - break label$8 - } - break label$2; - } - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$1 = var$1; - i64toi32_i32$0 = 1; - i64toi32_i32$3 = 0; - if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { - break label$2 - } - i64toi32_i32$1 = var$0$hi; - var$2 = var$0; - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; - i64toi32_i32$1 = 0; - legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0); - i64toi32_i32$1 = 0; - i64toi32_i32$2 = var$2; - i64toi32_i32$HIGH_BITS = i64toi32_i32$1; - return i64toi32_i32$2 | 0; - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$3 = var$1; + label$11 : { + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$2 = var$0; i64toi32_i32$1 = 0; - i64toi32_i32$0 = 32; - i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> 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; + 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$3 = $39; - i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { - break label$7 - } - if ((var$3 | 0) == (0 | 0)) { - break label$6 - } - var$4 = var$3 + 4294967295 | 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) { + var$2 = $37; + if (var$2) { { - 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; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + if ((var$3 | 0) == (0 | 0)) { + 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 | 0) == (0 | 0)) { + 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; } } - $63$hi = i64toi32_i32$3; - i64toi32_i32$3 = var$0$hi; - i64toi32_i32$1 = var$0; - i64toi32_i32$2 = 0; - i64toi32_i32$0 = 4294967295; - i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $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$2 = var$1$hi; + i64toi32_i32$1 = var$1; + i64toi32_i32$0 = 1; + i64toi32_i32$3 = 0; + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$2 + } + i64toi32_i32$1 = var$0$hi; + var$2 = var$0; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; + i64toi32_i32$1 = 0; + legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0); i64toi32_i32$1 = 0; - i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0; + i64toi32_i32$2 = var$2; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; - return i64toi32_i32$3 | 0; + 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 | 0) == (0 | 0)) { + break label$7 + } + if ((var$3 | 0) == (0 | 0)) { + break label$6 + } + var$4 = var$3 + 4294967295 | 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 = 4294967295; + 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 + 4294967295 | 0; if ((var$4 & var$3 | 0 | 0) == (0 | 0)) { @@ -9177,7 +9157,7 @@ function asmFunc(global, env, buffer) { var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { - block3 : { + { i64toi32_i32$2 = var$1$hi; i64toi32_i32$1 = var$1; i64toi32_i32$3 = 4294967295; @@ -9778,141 +9758,139 @@ function asmFunc(global, env, buffer) { label$7 : { label$8 : { label$9 : { - label$10 : { - label$11 : { - i64toi32_i32$0 = var$0$hi; - i64toi32_i32$2 = var$0; - i64toi32_i32$1 = 0; - i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { - { - i64toi32_i32$1 = 0; - $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - } - } else { - { - i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; - } - } - var$2 = $37; - if (var$2) { - block : { - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { - 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 | 0) == (0 | 0)) { - break label$9 - } - var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; - if (var$2 >>> 0 <= 31 >>> 0) { - break label$8 - } - break label$2; - } - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$1 = var$1; - i64toi32_i32$0 = 1; - i64toi32_i32$3 = 0; - if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { - break label$2 - } - i64toi32_i32$1 = var$0$hi; - var$2 = var$0; - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; - i64toi32_i32$1 = 0; - legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0); - i64toi32_i32$1 = 0; - i64toi32_i32$2 = var$2; - i64toi32_i32$HIGH_BITS = i64toi32_i32$1; - return i64toi32_i32$2 | 0; - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$3 = var$1; + label$11 : { + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$2 = var$0; i64toi32_i32$1 = 0; - i64toi32_i32$0 = 32; - i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> 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; + 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$3 = $39; - i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { - break label$7 - } - if ((var$3 | 0) == (0 | 0)) { - break label$6 - } - var$4 = var$3 + 4294967295 | 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) { + var$2 = $37; + if (var$2) { { - 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; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + if ((var$3 | 0) == (0 | 0)) { + 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 | 0) == (0 | 0)) { + 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; } } - $63$hi = i64toi32_i32$3; - i64toi32_i32$3 = var$0$hi; - i64toi32_i32$1 = var$0; - i64toi32_i32$2 = 0; - i64toi32_i32$0 = 4294967295; - i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $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$2 = var$1$hi; + i64toi32_i32$1 = var$1; + i64toi32_i32$0 = 1; + i64toi32_i32$3 = 0; + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$2 + } + i64toi32_i32$1 = var$0$hi; + var$2 = var$0; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 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$3 | 0; + 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 | 0) == (0 | 0)) { + break label$7 + } + if ((var$3 | 0) == (0 | 0)) { + break label$6 + } + var$4 = var$3 + 4294967295 | 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 = 4294967295; + 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 + 4294967295 | 0; if ((var$4 & var$3 | 0 | 0) == (0 | 0)) { @@ -10031,7 +10009,7 @@ function asmFunc(global, env, buffer) { var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { - block3 : { + { i64toi32_i32$2 = var$1$hi; i64toi32_i32$1 = var$1; i64toi32_i32$3 = 4294967295; diff --git a/test/wasm2js/left-to-right.2asm.js b/test/wasm2js/left-to-right.2asm.js index 490293751..2b669abf7 100644 --- a/test/wasm2js/left-to-right.2asm.js +++ b/test/wasm2js/left-to-right.2asm.js @@ -1772,141 +1772,139 @@ function asmFunc(global, env, buffer) { label$7 : { label$8 : { label$9 : { - label$10 : { - label$11 : { - i64toi32_i32$0 = var$0$hi; - i64toi32_i32$2 = var$0; - i64toi32_i32$1 = 0; - i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { - { - i64toi32_i32$1 = 0; - $37_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) { - block : { - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { - 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 | 0) == (0 | 0)) { - break label$9 - } - var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; - if (var$2 >>> 0 <= 31 >>> 0) { - break label$8 - } - break label$2; - } - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$1 = var$1; - i64toi32_i32$0 = 1; - i64toi32_i32$3 = 0; - if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { - break label$2 - } - i64toi32_i32$1 = var$0$hi; - var$2 = var$0; - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; - i64toi32_i32$1 = 0; - legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0); - i64toi32_i32$1 = 0; - i64toi32_i32$2 = var$2; - i64toi32_i32$HIGH_BITS = i64toi32_i32$1; - return i64toi32_i32$2 | 0; - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$3 = var$1; + label$11 : { + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$2 = var$0; i64toi32_i32$1 = 0; - i64toi32_i32$0 = 32; - i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $39_1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $37_1 = i64toi32_i32$0 >>> 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; + 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$3 = $39_1; - i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { - break label$7 - } - if ((var$3 | 0) == (0 | 0)) { - break label$6 - } - var$4 = var$3 + 4294967295 | 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) { + var$2 = $37_1; + if (var$2) { { - 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; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + if ((var$3 | 0) == (0 | 0)) { + 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 | 0) == (0 | 0)) { + 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; } } - $63$hi = i64toi32_i32$3; - i64toi32_i32$3 = var$0$hi; - i64toi32_i32$1 = var$0; - i64toi32_i32$2 = 0; - i64toi32_i32$0 = 4294967295; - i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $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$2 = var$1$hi; + i64toi32_i32$1 = var$1; + i64toi32_i32$0 = 1; + i64toi32_i32$3 = 0; + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$2 + } + i64toi32_i32$1 = var$0$hi; + var$2 = var$0; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 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$3 | 0; + 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 | 0) == (0 | 0)) { + break label$7 + } + if ((var$3 | 0) == (0 | 0)) { + break label$6 + } + var$4 = var$3 + 4294967295 | 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_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 = 4294967295; + 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 + 4294967295 | 0; if ((var$4 & var$3 | 0 | 0) == (0 | 0)) { @@ -2025,7 +2023,7 @@ function asmFunc(global, env, buffer) { var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { - block3 : { + { i64toi32_i32$2 = var$1$hi; i64toi32_i32$1 = var$1; i64toi32_i32$3 = 4294967295; diff --git a/test/wasm2js/loop.2asm.js b/test/wasm2js/loop.2asm.js index 84646905b..eb891c8b4 100644 --- a/test/wasm2js/loop.2asm.js +++ b/test/wasm2js/loop.2asm.js @@ -293,10 +293,8 @@ function asmFunc(global, env, buffer) { $1_1 = $0; block : { loop_in : do { - block54 : { - $2_1 = 1; - break block; - } + $2_1 = 1; + break block; break loop_in; } while (1); } @@ -351,7 +349,7 @@ function asmFunc(global, env, buffer) { } function $14() { - var $0 = 0, $1_1 = 0, $6_1 = 0, $2_1 = 0, $7_1 = 0, $3_1 = 0, $8_1 = 0, $5_1 = 0, wasm2js_i32$0 = 0; + var $0 = 0, $1_1 = 0, $2_1 = 0, $3_1 = 0, $5_1 = 0, wasm2js_i32$0 = 0; $0 = 0; $1_1 = $0; loop_in : do { diff --git a/test/wasm2js/traps.2asm.js b/test/wasm2js/traps.2asm.js index 85b1c6a3f..4dd6c2536 100644 --- a/test/wasm2js/traps.2asm.js +++ b/test/wasm2js/traps.2asm.js @@ -416,141 +416,139 @@ function asmFunc(global, env, buffer) { label$7 : { label$8 : { label$9 : { - label$10 : { - label$11 : { - i64toi32_i32$0 = var$0$hi; - i64toi32_i32$2 = var$0; - i64toi32_i32$1 = 0; - i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { - { - i64toi32_i32$1 = 0; - $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - } - } else { - { - i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; - } - } - var$2 = $37; - if (var$2) { - block : { - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { - 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 | 0) == (0 | 0)) { - break label$9 - } - var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; - if (var$2 >>> 0 <= 31 >>> 0) { - break label$8 - } - break label$2; - } - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$1 = var$1; - i64toi32_i32$0 = 1; - i64toi32_i32$3 = 0; - if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { - break label$2 - } - i64toi32_i32$1 = var$0$hi; - var$2 = var$0; - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; - i64toi32_i32$1 = 0; - legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0); - i64toi32_i32$1 = 0; - i64toi32_i32$2 = var$2; - i64toi32_i32$HIGH_BITS = i64toi32_i32$1; - return i64toi32_i32$2 | 0; - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$3 = var$1; + label$11 : { + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$2 = var$0; i64toi32_i32$1 = 0; - i64toi32_i32$0 = 32; - i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> 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; + 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$3 = $39; - i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { - break label$7 - } - if ((var$3 | 0) == (0 | 0)) { - break label$6 - } - var$4 = var$3 + 4294967295 | 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) { + var$2 = $37; + if (var$2) { { - 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; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + if ((var$3 | 0) == (0 | 0)) { + 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 | 0) == (0 | 0)) { + 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; } } - $63$hi = i64toi32_i32$3; - i64toi32_i32$3 = var$0$hi; - i64toi32_i32$1 = var$0; - i64toi32_i32$2 = 0; - i64toi32_i32$0 = 4294967295; - i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $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$2 = var$1$hi; + i64toi32_i32$1 = var$1; + i64toi32_i32$0 = 1; + i64toi32_i32$3 = 0; + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$2 + } + i64toi32_i32$1 = var$0$hi; + var$2 = var$0; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 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$3 | 0; + 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 | 0) == (0 | 0)) { + break label$7 + } + if ((var$3 | 0) == (0 | 0)) { + break label$6 + } + var$4 = var$3 + 4294967295 | 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 = 4294967295; + 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 + 4294967295 | 0; if ((var$4 & var$3 | 0 | 0) == (0 | 0)) { @@ -669,7 +667,7 @@ function asmFunc(global, env, buffer) { var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { - block3 : { + { i64toi32_i32$2 = var$1$hi; i64toi32_i32$1 = var$1; i64toi32_i32$3 = 4294967295; @@ -1344,141 +1342,139 @@ function asmFunc(global, env, buffer) { label$7 : { label$8 : { label$9 : { - label$10 : { - label$11 : { - i64toi32_i32$0 = var$0$hi; - i64toi32_i32$2 = var$0; - i64toi32_i32$1 = 0; - i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { - { - i64toi32_i32$1 = 0; - $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - } - } else { - { - i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; - $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; - } - } - var$2 = $37; - if (var$2) { - block : { - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { - 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 | 0) == (0 | 0)) { - break label$9 - } - var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; - if (var$2 >>> 0 <= 31 >>> 0) { - break label$8 - } - break label$2; - } - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$1 = var$1; - i64toi32_i32$0 = 1; - i64toi32_i32$3 = 0; - if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { - break label$2 - } - i64toi32_i32$1 = var$0$hi; - var$2 = var$0; - i64toi32_i32$1 = var$1$hi; - var$3 = var$1; - var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; - i64toi32_i32$1 = 0; - legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0); - i64toi32_i32$1 = 0; - i64toi32_i32$2 = var$2; - i64toi32_i32$HIGH_BITS = i64toi32_i32$1; - return i64toi32_i32$2 | 0; - } - i64toi32_i32$2 = var$1$hi; - i64toi32_i32$3 = var$1; + label$11 : { + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$2 = var$0; i64toi32_i32$1 = 0; - i64toi32_i32$0 = 32; - i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; - if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $37 = i64toi32_i32$0 >>> 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; + 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$3 = $39; - i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { - break label$7 - } - if ((var$3 | 0) == (0 | 0)) { - break label$6 - } - var$4 = var$3 + 4294967295 | 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) { + var$2 = $37; + if (var$2) { { - 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; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + if ((var$3 | 0) == (0 | 0)) { + 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 | 0) == (0 | 0)) { + 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; } } - $63$hi = i64toi32_i32$3; - i64toi32_i32$3 = var$0$hi; - i64toi32_i32$1 = var$0; - i64toi32_i32$2 = 0; - i64toi32_i32$0 = 4294967295; - i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; - $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$2 = var$1$hi; + i64toi32_i32$1 = var$1; + i64toi32_i32$0 = 1; + i64toi32_i32$3 = 0; + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$2 + } + i64toi32_i32$1 = var$0$hi; + var$2 = var$0; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; - i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 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$3 | 0; + 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 | 0) == (0 | 0)) { + break label$7 + } + if ((var$3 | 0) == (0 | 0)) { + break label$6 + } + var$4 = var$3 + 4294967295 | 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 = 4294967295; + 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 + 4294967295 | 0; if ((var$4 & var$3 | 0 | 0) == (0 | 0)) { @@ -1597,7 +1593,7 @@ function asmFunc(global, env, buffer) { var$0$hi = i64toi32_i32$2; label$13 : { if (var$2) { - block3 : { + { i64toi32_i32$2 = var$1$hi; i64toi32_i32$1 = var$1; i64toi32_i32$3 = 4294967295; diff --git a/test/wasm2js/unreachable-insts.2asm.js b/test/wasm2js/unreachable-insts.2asm.js new file mode 100644 index 000000000..a88a82e9e --- /dev/null +++ b/test/wasm2js/unreachable-insts.2asm.js @@ -0,0 +1,31 @@ + +function asmFunc(global, env, buffer) { + "almost asm"; + var HEAP8 = new global.Int8Array(buffer); + var HEAP16 = new global.Int16Array(buffer); + var HEAP32 = new global.Int32Array(buffer); + var HEAPU8 = new global.Uint8Array(buffer); + var HEAPU16 = new global.Uint16Array(buffer); + var HEAPU32 = new global.Uint32Array(buffer); + var HEAPF32 = new global.Float32Array(buffer); + var HEAPF64 = new global.Float64Array(buffer); + var Math_imul = global.Math.imul; + var Math_fround = global.Math.fround; + var Math_abs = global.Math.abs; + var Math_clz32 = global.Math.clz32; + var Math_min = global.Math.min; + var Math_max = global.Math.max; + var Math_floor = global.Math.floor; + var Math_ceil = global.Math.ceil; + var Math_sqrt = global.Math.sqrt; + var abort = env.abort; + var nan = global.NaN; + var infinity = global.Infinity; + var FUNCTION_TABLE = []; + return { + + }; +} + +const memasmFunc = new ArrayBuffer(65536); +const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc); diff --git a/test/wasm2js/unreachable-insts.wast b/test/wasm2js/unreachable-insts.wast new file mode 100644 index 000000000..1e3d31439 --- /dev/null +++ b/test/wasm2js/unreachable-insts.wast @@ -0,0 +1,13 @@ +(module + (type $0 (func (param f64 f64 f32))) + (memory $0 1 1) + (func $0 (; 0 ;) (type $0) (param $0 f64) (param $1 f64) (param $2 f32) + (f64.store offset=22 align=1 + (block $label$1 (result i32) + (unreachable) + ) + (f64.const 1) + ) + ) +) + diff --git a/test/wasm2js/unreachable.2asm.js b/test/wasm2js/unreachable.2asm.js new file mode 100644 index 000000000..0f4aef7a6 --- /dev/null +++ b/test/wasm2js/unreachable.2asm.js @@ -0,0 +1,522 @@ +import { setTempRet0 } from 'env'; + +function asmFunc(global, env, buffer) { + "almost asm"; + var HEAP8 = new global.Int8Array(buffer); + var HEAP16 = new global.Int16Array(buffer); + var HEAP32 = new global.Int32Array(buffer); + var HEAPU8 = new global.Uint8Array(buffer); + var HEAPU16 = new global.Uint16Array(buffer); + var HEAPU32 = new global.Uint32Array(buffer); + var HEAPF32 = new global.Float32Array(buffer); + var HEAPF64 = new global.Float64Array(buffer); + var Math_imul = global.Math.imul; + var Math_fround = global.Math.fround; + var Math_abs = global.Math.abs; + var Math_clz32 = global.Math.clz32; + var Math_min = global.Math.min; + var Math_max = global.Math.max; + var Math_floor = global.Math.floor; + var Math_ceil = global.Math.ceil; + var Math_sqrt = global.Math.sqrt; + var abort = env.abort; + var nan = global.NaN; + var infinity = global.Infinity; + var setTempRet0 = env.setTempRet0; + var i64toi32_i32$HIGH_BITS = 0; + function dummy() { + + } + + function dummy3($0, $1, $2_1) { + $0 = $0 | 0; + $1 = $1 | 0; + $2_1 = $2_1 | 0; + } + + function $2() { + return abort() | 0; + } + + function $3() { + return abort() | 0; + } + + function $4() { + return +abort(); + } + + function $5() { + return +abort(); + } + + function $6() { + var $0 = 0; + return abort() | 0; + } + + function $7() { + var $0 = 0, wasm2js_i32$0 = 0; + dummy(); + wasm2js_i32$0 = abort(); + return wasm2js_i32$0 | 0; + } + + function $8() { + dummy(); + abort(); + } + + function $9() { + var wasm2js_i32$0 = 0; + dummy(); + wasm2js_i32$0 = abort(); + return wasm2js_i32$0 | 0; + } + + function $10() { + var $0 = 0; + return abort() | 0; + } + + function $11() { + var $0 = 0, wasm2js_i32$0 = 0; + dummy(); + wasm2js_i32$0 = abort(); + return wasm2js_i32$0 | 0; + } + + function $12() { + dummy(); + abort(); + } + + function $13() { + var wasm2js_i32$0 = 0; + dummy(); + wasm2js_i32$0 = abort(); + return wasm2js_i32$0 | 0; + } + + function $14() { + var $0 = 0; + block : { + dummy(); + $0 = 1; + break block; + } + return $0 | 0; + } + + function $15() { + var $0 = 0, $2_1 = 0, wasm2js_i32$0 = 0; + loop_in : do { + abort(); + break loop_in; + } while (1); + return wasm2js_i32$0 | 0; + } + + function $16() { + var $0 = 0, $2_1 = 0, wasm2js_i32$0 = 0; + loop_in : do { + dummy(); + wasm2js_i32$0 = abort(); + break loop_in; + } while (1); + return wasm2js_i32$0 | 0; + } + + function $17() { + loop_in : do { + dummy(); + abort(); + break loop_in; + } while (1); + } + + function $18() { + var $0 = 0; + block : { + loop_in : do { + dummy(); + $0 = 1; + break block; + break loop_in; + } while (1); + } + return $0 | 0; + } + + function $19() { + return abort() | 0; + } + + function $20() { + abort(); + } + + function $21() { + var $0 = 0; + return abort() | 0; + } + + function $22() { + var $0 = 0; + return abort() | 0; + } + + function $23() { + abort(); + } + + function $24() { + var $0 = 0; + return abort() | 0; + } + + function $25() { + var $1 = 0; + return abort() | 0; + } + + function $26() { + return abort() | 0; + } + + function $27() { + var $0 = 0; + return abort() | 0; + } + + function $28($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4_1 = 0; + if ($0) { + abort() + } else { + $4_1 = $1 + } + return $4_1 | 0; + } + + function $29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4_1 = 0; + if ($0) { + $4_1 = $1 + } else { + abort() + } + return $4_1 | 0; + } + + function $30($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $2_1 = 0, $3_1 = 0; + return abort() | 0; + } + + function $31($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $2_1 = 0, $3_1 = 0, wasm2js_i32$0 = 0; + $2_1 = $0; + wasm2js_i32$0 = abort(); + return wasm2js_i32$0 | 0; + } + + function $32() { + return abort() | 0; + } + + function $33() { + abort(); + } + + function $34() { + abort(); + } + + function $35() { + abort(); + } + + function $36() { + abort(); + } + + function $37() { + abort(); + } + + function $38() { + abort(); + } + + function $39() { + abort(); + } + + function $40() { + abort(); + } + + function $41() { + return Math_fround(abort()); + } + + function $42() { + return abort() | 0; + } + + function $43() { + abort(); + } + + function $44() { + abort(); + } + + function $45() { + abort(); + } + + function $46() { + abort(); + } + + function $47() { + return Math_fround(abort()); + } + + function $48() { + return abort() | 0; + } + + function $49() { + return abort() | 0; + } + + function $50() { + return abort() | 0; + } + + function $51() { + return abort() | 0; + } + + function $52() { + return abort() | 0; + } + + function $53() { + return abort() | 0; + } + + function $54() { + return abort() | 0; + } + + function legalstub$26() { + var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $7_1 = 0, $0 = 0, $0$hi = 0, i64toi32_i32$2 = 0; + i64toi32_i32$0 = $26() | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $0 = i64toi32_i32$0; + $0$hi = i64toi32_i32$1; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + { + i64toi32_i32$0 = 0; + $7_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + } + } else { + { + i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $7_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + } + setTempRet0($7_1 | 0); + i64toi32_i32$0 = $0$hi; + return $0 | 0; + } + + function legalstub$41() { + return +(+Math_fround($41())); + } + + function legalstub$42() { + var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $7_1 = 0, $0 = 0, $0$hi = 0, i64toi32_i32$2 = 0; + i64toi32_i32$0 = $42() | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $0 = i64toi32_i32$0; + $0$hi = i64toi32_i32$1; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + { + i64toi32_i32$0 = 0; + $7_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + } + } else { + { + i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $7_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + } + setTempRet0($7_1 | 0); + i64toi32_i32$0 = $0$hi; + return $0 | 0; + } + + function legalstub$47() { + return +(+Math_fround($47())); + } + + function legalstub$49() { + var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $7_1 = 0, $0 = 0, $0$hi = 0, i64toi32_i32$2 = 0; + i64toi32_i32$0 = $49() | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $0 = i64toi32_i32$0; + $0$hi = i64toi32_i32$1; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + { + i64toi32_i32$0 = 0; + $7_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + } + } else { + { + i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $7_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + } + setTempRet0($7_1 | 0); + i64toi32_i32$0 = $0$hi; + return $0 | 0; + } + + var FUNCTION_TABLE = []; + return { + type_i32: $2, + type_i64: $3, + type_f32: $4, + type_f64: $5, + as_func_first: $6, + as_func_mid: $7, + as_func_last: $8, + as_func_value: $9, + as_block_first: $10, + as_block_mid: $11, + as_block_last: $12, + as_block_value: $13, + as_block_broke: $14, + as_loop_first: $15, + as_loop_mid: $16, + as_loop_last: $17, + as_loop_broke: $18, + as_br_value: $19, + as_br_if_cond: $20, + as_br_if_value: $21, + as_br_if_value_cond: $22, + as_br_table_index: $23, + as_br_table_value: $24, + as_br_table_value_index: $25, + as_return_value: legalstub$26, + as_if_cond: $27, + as_if_then: $28, + as_if_else: $29, + as_select_first: $30, + as_select_second: $31, + as_select_cond: $32, + as_call_first: $33, + as_call_mid: $34, + as_call_last: $35, + as_call_indirect_func: $36, + as_call_indirect_first: $37, + as_call_indirect_mid: $38, + as_call_indirect_last: $39, + as_local_set_value: $40, + as_load_address: legalstub$41, + as_loadN_address: legalstub$42, + as_store_address: $43, + as_store_value: $44, + as_storeN_address: $45, + as_storeN_value: $46, + as_unary_operand: legalstub$47, + as_binary_left: $48, + as_binary_right: legalstub$49, + as_test_operand: $50, + as_compare_left: $51, + as_compare_right: $52, + as_convert_operand: $53, + as_grow_memory_size: $54 + }; +} + +const memasmFunc = new ArrayBuffer(65536); +const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0},memasmFunc); +export const type_i32 = retasmFunc.type_i32; +export const type_i64 = retasmFunc.type_i64; +export const type_f32 = retasmFunc.type_f32; +export const type_f64 = retasmFunc.type_f64; +export const as_func_first = retasmFunc.as_func_first; +export const as_func_mid = retasmFunc.as_func_mid; +export const as_func_last = retasmFunc.as_func_last; +export const as_func_value = retasmFunc.as_func_value; +export const as_block_first = retasmFunc.as_block_first; +export const as_block_mid = retasmFunc.as_block_mid; +export const as_block_last = retasmFunc.as_block_last; +export const as_block_value = retasmFunc.as_block_value; +export const as_block_broke = retasmFunc.as_block_broke; +export const as_loop_first = retasmFunc.as_loop_first; +export const as_loop_mid = retasmFunc.as_loop_mid; +export const as_loop_last = retasmFunc.as_loop_last; +export const as_loop_broke = retasmFunc.as_loop_broke; +export const as_br_value = retasmFunc.as_br_value; +export const as_br_if_cond = retasmFunc.as_br_if_cond; +export const as_br_if_value = retasmFunc.as_br_if_value; +export const as_br_if_value_cond = retasmFunc.as_br_if_value_cond; +export const as_br_table_index = retasmFunc.as_br_table_index; +export const as_br_table_value = retasmFunc.as_br_table_value; +export const as_br_table_value_index = retasmFunc.as_br_table_value_index; +export const as_return_value = retasmFunc.as_return_value; +export const as_if_cond = retasmFunc.as_if_cond; +export const as_if_then = retasmFunc.as_if_then; +export const as_if_else = retasmFunc.as_if_else; +export const as_select_first = retasmFunc.as_select_first; +export const as_select_second = retasmFunc.as_select_second; +export const as_select_cond = retasmFunc.as_select_cond; +export const as_call_first = retasmFunc.as_call_first; +export const as_call_mid = retasmFunc.as_call_mid; +export const as_call_last = retasmFunc.as_call_last; +export const as_call_indirect_func = retasmFunc.as_call_indirect_func; +export const as_call_indirect_first = retasmFunc.as_call_indirect_first; +export const as_call_indirect_mid = retasmFunc.as_call_indirect_mid; +export const as_call_indirect_last = retasmFunc.as_call_indirect_last; +export const as_local_set_value = retasmFunc.as_local_set_value; +export const as_load_address = retasmFunc.as_load_address; +export const as_loadN_address = retasmFunc.as_loadN_address; +export const as_store_address = retasmFunc.as_store_address; +export const as_store_value = retasmFunc.as_store_value; +export const as_storeN_address = retasmFunc.as_storeN_address; +export const as_storeN_value = retasmFunc.as_storeN_value; +export const as_unary_operand = retasmFunc.as_unary_operand; +export const as_binary_left = retasmFunc.as_binary_left; +export const as_binary_right = retasmFunc.as_binary_right; +export const as_test_operand = retasmFunc.as_test_operand; +export const as_compare_left = retasmFunc.as_compare_left; +export const as_compare_right = retasmFunc.as_compare_right; +export const as_convert_operand = retasmFunc.as_convert_operand; +export const as_grow_memory_size = retasmFunc.as_grow_memory_size; |