diff options
-rw-r--r-- | src/wasm2js.h | 17 | ||||
-rw-r--r-- | test/wasm2js/block.2asm.js | 2 | ||||
-rw-r--r-- | test/wasm2js/br_table_to_loop.2asm.js | 10 | ||||
-rw-r--r-- | test/wasm2js/call.2asm.js | 8 | ||||
-rw-r--r-- | test/wasm2js/call_indirect.2asm.js | 6 | ||||
-rw-r--r-- | test/wasm2js/f32.2asm.js | 2 | ||||
-rw-r--r-- | test/wasm2js/f64.2asm.js | 2 | ||||
-rw-r--r-- | test/wasm2js/fac.2asm.js | 14 | ||||
-rw-r--r-- | test/wasm2js/float_misc.2asm.js | 4 | ||||
-rw-r--r-- | test/wasm2js/i32.2asm.js | 9 | ||||
-rw-r--r-- | test/wasm2js/i64-ctz.2asm.js | 9 | ||||
-rw-r--r-- | test/wasm2js/i64.2asm.js | 25 | ||||
-rw-r--r-- | test/wasm2js/int_exprs.2asm.js | 154 | ||||
-rw-r--r-- | test/wasm2js/labels.2asm.js | 15 | ||||
-rw-r--r-- | test/wasm2js/left-to-right.2asm.js | 14 | ||||
-rw-r--r-- | test/wasm2js/loop.2asm.js | 39 | ||||
-rw-r--r-- | test/wasm2js/stack-modified.2asm.js | 25 | ||||
-rw-r--r-- | test/wasm2js/traps.2asm.js | 28 | ||||
-rw-r--r-- | test/wasm2js/unary-ops.2asm.js | 18 |
19 files changed, 188 insertions, 213 deletions
diff --git a/src/wasm2js.h b/src/wasm2js.h index 84c65b189..fdfa77b84 100644 --- a/src/wasm2js.h +++ b/src/wasm2js.h @@ -823,9 +823,14 @@ Ref Wasm2JSBuilder::processFunctionBody(Module* m, Function* func, bool standalo Ref visitLoop(Loop* curr) { Name asmLabel = curr->name; continueLabels.insert(asmLabel); - Ref body = blockify(visit(curr->body, result)); - flattenAppend(body, ValueBuilder::makeBreak(fromName(asmLabel, NameScope::Label))); - Ref ret = ValueBuilder::makeDo(body, ValueBuilder::makeInt(1)); + Ref body = visit(curr->body, result); + // if we can reach the end of the block, we must leave the while (1) loop + if (curr->body->type != unreachable) { + assert(curr->body->type == none); // flat IR + body = blockify(body); + flattenAppend(body, ValueBuilder::makeBreak(fromName(asmLabel, NameScope::Label))); + } + Ref ret = ValueBuilder::makeWhile(ValueBuilder::makeInt(1), body); return ValueBuilder::makeLabel(fromName(asmLabel, NameScope::Label), ret); } @@ -1207,10 +1212,8 @@ Ref Wasm2JSBuilder::processFunctionBody(Module* m, Function* func, bool standalo << std::endl; WASM_UNREACHABLE(); case EqZInt32: - return ValueBuilder::makeBinary( - makeAsmCoercion(visit(curr->value, - EXPRESSION_RESULT), ASM_INT), EQ, - makeAsmCoercion(ValueBuilder::makeInt(0), ASM_INT)); + // XXX !x does change the type to bool, which is correct, but may be slower? + return ValueBuilder::makeUnary(L_NOT, visit(curr->value, EXPRESSION_RESULT)); case ReinterpretFloat32: { ABI::wasm2js::ensureScratchMemoryHelpers(module, ABI::wasm2js::SCRATCH_STORE_F32); ABI::wasm2js::ensureScratchMemoryHelpers(module, ABI::wasm2js::SCRATCH_LOAD_I32); diff --git a/test/wasm2js/block.2asm.js b/test/wasm2js/block.2asm.js index d08822100..b7684456c 100644 --- a/test/wasm2js/block.2asm.js +++ b/test/wasm2js/block.2asm.js @@ -68,7 +68,7 @@ function asmFunc(global, env, buffer) { function $8() { dummy(); - return (13 | 0) == (0 | 0) | 0; + return !13 | 0; } function $9() { diff --git a/test/wasm2js/br_table_to_loop.2asm.js b/test/wasm2js/br_table_to_loop.2asm.js index 46979b23e..42f8081f2 100644 --- a/test/wasm2js/br_table_to_loop.2asm.js +++ b/test/wasm2js/br_table_to_loop.2asm.js @@ -23,7 +23,7 @@ function asmFunc(global, env, buffer) { var infinity = global.Infinity; function $0() { block : { - loop : do { + loop : while (1) { switch (1 | 0) { case 0: break block; @@ -32,14 +32,13 @@ function asmFunc(global, env, buffer) { default: break block; }; - break loop; - } while (1); + }; } } function $1() { block : { - loop : do { + loop : while (1) { switch (1 | 0) { case 0: continue loop; @@ -48,8 +47,7 @@ function asmFunc(global, env, buffer) { default: continue loop; }; - break loop; - } while (1); + }; } } diff --git a/test/wasm2js/call.2asm.js b/test/wasm2js/call.2asm.js index 163e6f87d..986856e32 100644 --- a/test/wasm2js/call.2asm.js +++ b/test/wasm2js/call.2asm.js @@ -146,7 +146,7 @@ function asmFunc(global, env, buffer) { $0$hi = $0$hi | 0; var i64toi32_i32$5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, $8 = 0, $8$hi = 0, i64toi32_i32$3 = 0, $6 = 0, $6$hi = 0; i64toi32_i32$0 = $0$hi; - if (($0 | i64toi32_i32$0) == (0 | 0)) { + if (!($0 | i64toi32_i32$0)) { { i64toi32_i32$0 = 0; $8 = 1; @@ -184,7 +184,7 @@ function asmFunc(global, env, buffer) { $1$hi = $1$hi | 0; var i64toi32_i32$5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, $11 = 0, $11$hi = 0, i64toi32_i32$3 = 0, $6 = 0, $6$hi = 0, $9 = 0, $9$hi = 0; i64toi32_i32$0 = $0$hi; - if (($0 | i64toi32_i32$0) == (0 | 0)) { + if (!($0 | i64toi32_i32$0)) { { i64toi32_i32$0 = $1$hi; $11 = $1; @@ -286,7 +286,7 @@ function asmFunc(global, env, buffer) { $0$hi = $0$hi | 0; var i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, $6 = 0, i64toi32_i32$3 = 0; i64toi32_i32$0 = $0$hi; - if (($0 | i64toi32_i32$0) == (0 | 0)) { + if (!($0 | i64toi32_i32$0)) { $6 = 44 } else { { @@ -305,7 +305,7 @@ function asmFunc(global, env, buffer) { $0$hi = $0$hi | 0; var i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, $6 = 0, i64toi32_i32$3 = 0; i64toi32_i32$0 = $0$hi; - if (($0 | i64toi32_i32$0) == (0 | 0)) { + if (!($0 | i64toi32_i32$0)) { $6 = 99 } else { { diff --git a/test/wasm2js/call_indirect.2asm.js b/test/wasm2js/call_indirect.2asm.js index fbba86cef..a99d714fb 100644 --- a/test/wasm2js/call_indirect.2asm.js +++ b/test/wasm2js/call_indirect.2asm.js @@ -225,7 +225,7 @@ function asmFunc(global, env, buffer) { $0$hi = $0$hi | 0; var i64toi32_i32$5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, $8 = 0, $8$hi = 0, i64toi32_i32$3 = 0, $6 = 0, $6$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0; i64toi32_i32$0 = $0$hi; - if (($0 | i64toi32_i32$0) == (0 | 0)) { + if (!($0 | i64toi32_i32$0)) { { i64toi32_i32$0 = 0; $8 = 1; @@ -319,7 +319,7 @@ function asmFunc(global, env, buffer) { function even($0) { $0 = $0 | 0; var $6 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; - if (($0 | 0) == (0 | 0)) { + if (!$0) { $6 = 44 } else { $6 = ((wasm2js_i32$1 = $0 - 1 | 0, wasm2js_i32$0 = 15), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0) | 0) @@ -330,7 +330,7 @@ function asmFunc(global, env, buffer) { function odd($0) { $0 = $0 | 0; var $6 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; - if (($0 | 0) == (0 | 0)) { + if (!$0) { $6 = 99 } else { $6 = ((wasm2js_i32$1 = $0 - 1 | 0, wasm2js_i32$0 = 14), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0) | 0) diff --git a/test/wasm2js/f32.2asm.js b/test/wasm2js/f32.2asm.js index 8615d293c..0c852356e 100644 --- a/test/wasm2js/f32.2asm.js +++ b/test/wasm2js/f32.2asm.js @@ -124,7 +124,7 @@ function asmFunc(global, env, buffer) { var var$1 = Math_fround(0), var$2 = Math_fround(0), wasm2js_f32$0 = Math_fround(0), wasm2js_f32$1 = Math_fround(0), wasm2js_i32$0 = 0; var$1 = Math_fround(Math_floor(var$0)); var$2 = Math_fround(var$0 - var$1); - if ((var$2 < Math_fround(.5) | 0) == (0 | 0)) { + if (!(var$2 < Math_fround(.5))) { { var$0 = Math_fround(Math_ceil(var$0)); if (var$2 > Math_fround(.5)) { diff --git a/test/wasm2js/f64.2asm.js b/test/wasm2js/f64.2asm.js index cfedc6a0b..7eda48599 100644 --- a/test/wasm2js/f64.2asm.js +++ b/test/wasm2js/f64.2asm.js @@ -148,7 +148,7 @@ function asmFunc(global, env, buffer) { var var$1 = 0.0, var$2 = 0.0, wasm2js_f64$0 = 0.0, wasm2js_f64$1 = 0.0, wasm2js_i32$0 = 0; var$1 = Math_floor(var$0); var$2 = var$0 - var$1; - if ((var$2 < .5 | 0) == (0 | 0)) { + if (!(var$2 < .5)) { { var$0 = Math_ceil(var$0); if (var$2 > .5) { diff --git a/test/wasm2js/fac.2asm.js b/test/wasm2js/fac.2asm.js index 8a46f34aa..9bc9896d6 100644 --- a/test/wasm2js/fac.2asm.js +++ b/test/wasm2js/fac.2asm.js @@ -105,7 +105,7 @@ function asmFunc(global, env, buffer) { $2_1 = 1; $2$hi = i64toi32_i32$0; block : { - loop_in : do { + loop_in : while (1) { i64toi32_i32$0 = $1$hi; i64toi32_i32$2 = $1; i64toi32_i32$1 = 0; @@ -133,8 +133,7 @@ function asmFunc(global, env, buffer) { } } continue loop_in; - break loop_in; - } while (1); + }; } i64toi32_i32$5 = $2$hi; i64toi32_i32$3 = $2_1; @@ -153,7 +152,7 @@ function asmFunc(global, env, buffer) { res = 1; res$hi = i64toi32_i32$0; done : { - loop : do { + loop : while (1) { i64toi32_i32$0 = i$hi; i64toi32_i32$2 = i; i64toi32_i32$1 = 0; @@ -181,8 +180,7 @@ function asmFunc(global, env, buffer) { } } continue loop; - break loop; - } while (1); + }; } i64toi32_i32$5 = res$hi; i64toi32_i32$3 = res; @@ -224,7 +222,7 @@ function asmFunc(global, env, buffer) { if ($10) { break block } - loop_in : do { + loop_in : while (1) { i64toi32_i32$2 = $1$hi; i64toi32_i32$2 = $0$hi; i64toi32_i32$2 = $1$hi; @@ -270,7 +268,7 @@ function asmFunc(global, env, buffer) { continue loop_in } break loop_in; - } while (1); + }; } i64toi32_i32$2 = $1$hi; i64toi32_i32$5 = $1; diff --git a/test/wasm2js/float_misc.2asm.js b/test/wasm2js/float_misc.2asm.js index 8e28dbb96..0284b5623 100644 --- a/test/wasm2js/float_misc.2asm.js +++ b/test/wasm2js/float_misc.2asm.js @@ -233,7 +233,7 @@ function asmFunc(global, env, buffer) { var var$1 = Math_fround(0), var$2 = Math_fround(0), wasm2js_f32$0 = Math_fround(0), wasm2js_f32$1 = Math_fround(0), wasm2js_i32$0 = 0; var$1 = Math_fround(Math_floor(var$0)); var$2 = Math_fround(var$0 - var$1); - if ((var$2 < Math_fround(.5) | 0) == (0 | 0)) { + if (!(var$2 < Math_fround(.5))) { { var$0 = Math_fround(Math_ceil(var$0)); if (var$2 > Math_fround(.5)) { @@ -250,7 +250,7 @@ function asmFunc(global, env, buffer) { var var$1 = 0.0, var$2 = 0.0, wasm2js_f64$0 = 0.0, wasm2js_f64$1 = 0.0, wasm2js_i32$0 = 0; var$1 = Math_floor(var$0); var$2 = var$0 - var$1; - if ((var$2 < .5 | 0) == (0 | 0)) { + if (!(var$2 < .5)) { { var$0 = Math_ceil(var$0); if (var$2 > .5) { diff --git a/test/wasm2js/i32.2asm.js b/test/wasm2js/i32.2asm.js index c9e8a4012..49c9c2f36 100644 --- a/test/wasm2js/i32.2asm.js +++ b/test/wasm2js/i32.2asm.js @@ -128,7 +128,7 @@ function asmFunc(global, env, buffer) { function $18(x) { x = x | 0; - return (x | 0) == (0 | 0) | 0; + return !x | 0; } function $19(x, y) { @@ -201,16 +201,15 @@ function asmFunc(global, env, buffer) { function __wasm_popcnt_i32(var$0) { var var$1 = 0, $5_1 = 0; label$1 : { - label$2 : do { + label$2 : while (1) { $5_1 = var$1; - if ((var$0 | 0) == (0 | 0)) { + if (!var$0) { break label$1 } var$0 = var$0 & var$0 - 1; var$1 = var$1 + 1 | 0; continue label$2; - break label$2; - } while (1); + }; } return $5_1; } diff --git a/test/wasm2js/i64-ctz.2asm.js b/test/wasm2js/i64-ctz.2asm.js index 34fe8b89d..b135075b5 100644 --- a/test/wasm2js/i64-ctz.2asm.js +++ b/test/wasm2js/i64-ctz.2asm.js @@ -151,7 +151,7 @@ function asmFunc(global, env, buffer) { function __wasm_ctz_i64(var$0, var$0$hi) { var i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, i64toi32_i32$5 = 0, i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $10 = 0, $5$hi = 0, $8$hi = 0; i64toi32_i32$0 = var$0$hi; - if (((var$0 | i64toi32_i32$0) == (0 | 0) | 0) == (0 | 0)) { + if (!!(var$0 | i64toi32_i32$0)) { { i64toi32_i32$0 = var$0$hi; i64toi32_i32$2 = var$0; @@ -199,10 +199,10 @@ function asmFunc(global, env, buffer) { function __wasm_popcnt_i64(var$0, var$0$hi) { var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$5 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, var$1$hi = 0, var$1 = 0, $5 = 0, $5$hi = 0, $4 = 0, $9$hi = 0; label$1 : { - label$2 : do { + label$2 : while (1) { i64toi32_i32$0 = var$1$hi; i64toi32_i32$0 = var$0$hi; - $4 = (var$0 | i64toi32_i32$0) == (0 | 0); + $4 = !(var$0 | i64toi32_i32$0); i64toi32_i32$0 = var$1$hi; $5 = var$1; $5$hi = i64toi32_i32$0; @@ -237,8 +237,7 @@ function asmFunc(global, env, buffer) { var$1 = i64toi32_i32$1; var$1$hi = i64toi32_i32$4; continue label$2; - break label$2; - } while (1); + }; } i64toi32_i32$4 = $5$hi; i64toi32_i32$5 = $5; diff --git a/test/wasm2js/i64.2asm.js b/test/wasm2js/i64.2asm.js index 512f07dd1..30dc5e536 100644 --- a/test/wasm2js/i64.2asm.js +++ b/test/wasm2js/i64.2asm.js @@ -371,7 +371,7 @@ function asmFunc(global, env, buffer) { x$hi = x$hi | 0; var i64toi32_i32$0 = 0; i64toi32_i32$0 = x$hi; - return (x | i64toi32_i32$0) == (0 | 0) | 0; + return !(x | i64toi32_i32$0) | 0; } function $19(x, x$hi, y, y$hi) { @@ -2990,7 +2990,7 @@ function asmFunc(global, env, buffer) { { i64toi32_i32$1 = var$1$hi; var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$11 } i64toi32_i32$1 = var$1$hi; @@ -3010,7 +3010,7 @@ function asmFunc(global, env, buffer) { } } var$4 = $38; - if ((var$4 | 0) == (0 | 0)) { + if (!var$4) { break label$9 } var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; @@ -3057,10 +3057,10 @@ function asmFunc(global, env, buffer) { } var$3 = $39; i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { + if (!var$0) { break label$7 } - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$6 } var$4 = var$3 + -1 | 0; @@ -3103,7 +3103,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3; } var$4 = var$3 + -1 | 0; - if ((var$4 & var$3) == (0 | 0)) { + if (!(var$4 & var$3)) { break label$5 } var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0; @@ -3231,7 +3231,7 @@ function asmFunc(global, env, buffer) { } var$8 = i64toi32_i32$4; var$8$hi = i64toi32_i32$5; - label$15 : do { + label$15 : while (1) { i64toi32_i32$5 = var$5$hi; i64toi32_i32$2 = var$5; i64toi32_i32$1 = 0; @@ -3360,7 +3360,7 @@ function asmFunc(global, env, buffer) { continue label$15 } break label$15; - } while (1); + }; break label$13; } } @@ -3409,7 +3409,7 @@ function asmFunc(global, env, buffer) { function __wasm_ctz_i64(var$0, var$0$hi) { var i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, i64toi32_i32$5 = 0, i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $10_1 = 0, $5$hi = 0, $8$hi = 0; i64toi32_i32$0 = var$0$hi; - if (((var$0 | i64toi32_i32$0) == (0 | 0) | 0) == (0 | 0)) { + if (!!(var$0 | i64toi32_i32$0)) { { i64toi32_i32$0 = var$0$hi; i64toi32_i32$2 = var$0; @@ -3519,10 +3519,10 @@ function asmFunc(global, env, buffer) { function __wasm_popcnt_i64(var$0, var$0$hi) { var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$5 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, var$1$hi = 0, var$1 = 0, $5_1 = 0, $5$hi = 0, $4_1 = 0, $9$hi = 0; label$1 : { - label$2 : do { + label$2 : while (1) { i64toi32_i32$0 = var$1$hi; i64toi32_i32$0 = var$0$hi; - $4_1 = (var$0 | i64toi32_i32$0) == (0 | 0); + $4_1 = !(var$0 | i64toi32_i32$0); i64toi32_i32$0 = var$1$hi; $5_1 = var$1; $5$hi = i64toi32_i32$0; @@ -3557,8 +3557,7 @@ function asmFunc(global, env, buffer) { var$1 = i64toi32_i32$1; var$1$hi = i64toi32_i32$4; continue label$2; - break label$2; - } while (1); + }; } i64toi32_i32$4 = $5$hi; i64toi32_i32$5 = $5_1; diff --git a/test/wasm2js/int_exprs.2asm.js b/test/wasm2js/int_exprs.2asm.js index a0594bf12..e5b4d8658 100644 --- a/test/wasm2js/int_exprs.2asm.js +++ b/test/wasm2js/int_exprs.2asm.js @@ -1352,7 +1352,7 @@ function asmFunc(global, env, buffer) { { i64toi32_i32$1 = var$1$hi; var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$11 } i64toi32_i32$1 = var$1$hi; @@ -1372,7 +1372,7 @@ function asmFunc(global, env, buffer) { } } var$4 = $38; - if ((var$4 | 0) == (0 | 0)) { + if (!var$4) { break label$9 } var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; @@ -1419,10 +1419,10 @@ function asmFunc(global, env, buffer) { } var$3 = $39; i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { + if (!var$0) { break label$7 } - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$6 } var$4 = var$3 + -1 | 0; @@ -1465,7 +1465,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3; } var$4 = var$3 + -1 | 0; - if ((var$4 & var$3) == (0 | 0)) { + if (!(var$4 & var$3)) { break label$5 } var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0; @@ -1593,7 +1593,7 @@ function asmFunc(global, env, buffer) { } var$8 = i64toi32_i32$4; var$8$hi = i64toi32_i32$5; - label$15 : do { + label$15 : while (1) { i64toi32_i32$5 = var$5$hi; i64toi32_i32$2 = var$5; i64toi32_i32$1 = 0; @@ -1722,7 +1722,7 @@ function asmFunc(global, env, buffer) { continue label$15 } break label$15; - } while (1); + }; break label$13; } } @@ -2262,7 +2262,7 @@ function asmFunc(global, env, buffer) { { i64toi32_i32$1 = var$1$hi; var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$11 } i64toi32_i32$1 = var$1$hi; @@ -2282,7 +2282,7 @@ function asmFunc(global, env, buffer) { } } var$4 = $38; - if ((var$4 | 0) == (0 | 0)) { + if (!var$4) { break label$9 } var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; @@ -2329,10 +2329,10 @@ function asmFunc(global, env, buffer) { } var$3 = $39; i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { + if (!var$0) { break label$7 } - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$6 } var$4 = var$3 + -1 | 0; @@ -2375,7 +2375,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3; } var$4 = var$3 + -1 | 0; - if ((var$4 & var$3) == (0 | 0)) { + if (!(var$4 & var$3)) { break label$5 } var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0; @@ -2503,7 +2503,7 @@ function asmFunc(global, env, buffer) { } var$8 = i64toi32_i32$4; var$8$hi = i64toi32_i32$5; - label$15 : do { + label$15 : while (1) { i64toi32_i32$5 = var$5$hi; i64toi32_i32$2 = var$5; i64toi32_i32$1 = 0; @@ -2632,7 +2632,7 @@ function asmFunc(global, env, buffer) { continue label$15 } break label$15; - } while (1); + }; break label$13; } } @@ -3030,7 +3030,7 @@ function asmFunc(global, env, buffer) { { i64toi32_i32$1 = var$1$hi; var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$11 } i64toi32_i32$1 = var$1$hi; @@ -3050,7 +3050,7 @@ function asmFunc(global, env, buffer) { } } var$4 = $38; - if ((var$4 | 0) == (0 | 0)) { + if (!var$4) { break label$9 } var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; @@ -3097,10 +3097,10 @@ function asmFunc(global, env, buffer) { } var$3 = $39; i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { + if (!var$0) { break label$7 } - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$6 } var$4 = var$3 + -1 | 0; @@ -3143,7 +3143,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3; } var$4 = var$3 + -1 | 0; - if ((var$4 & var$3) == (0 | 0)) { + if (!(var$4 & var$3)) { break label$5 } var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0; @@ -3271,7 +3271,7 @@ function asmFunc(global, env, buffer) { } var$8 = i64toi32_i32$4; var$8$hi = i64toi32_i32$5; - label$15 : do { + label$15 : while (1) { i64toi32_i32$5 = var$5$hi; i64toi32_i32$2 = var$5; i64toi32_i32$1 = 0; @@ -3400,7 +3400,7 @@ function asmFunc(global, env, buffer) { continue label$15 } break label$15; - } while (1); + }; break label$13; } } @@ -3785,7 +3785,7 @@ function asmFunc(global, env, buffer) { { i64toi32_i32$1 = var$1$hi; var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$11 } i64toi32_i32$1 = var$1$hi; @@ -3805,7 +3805,7 @@ function asmFunc(global, env, buffer) { } } var$4 = $38; - if ((var$4 | 0) == (0 | 0)) { + if (!var$4) { break label$9 } var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; @@ -3852,10 +3852,10 @@ function asmFunc(global, env, buffer) { } var$3 = $39; i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { + if (!var$0) { break label$7 } - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$6 } var$4 = var$3 + -1 | 0; @@ -3898,7 +3898,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3; } var$4 = var$3 + -1 | 0; - if ((var$4 & var$3) == (0 | 0)) { + if (!(var$4 & var$3)) { break label$5 } var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0; @@ -4026,7 +4026,7 @@ function asmFunc(global, env, buffer) { } var$8 = i64toi32_i32$4; var$8$hi = i64toi32_i32$5; - label$15 : do { + label$15 : while (1) { i64toi32_i32$5 = var$5$hi; i64toi32_i32$2 = var$5; i64toi32_i32$1 = 0; @@ -4155,7 +4155,7 @@ function asmFunc(global, env, buffer) { continue label$15 } break label$15; - } while (1); + }; break label$13; } } @@ -4583,7 +4583,7 @@ function asmFunc(global, env, buffer) { { i64toi32_i32$1 = var$1$hi; var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$11 } i64toi32_i32$1 = var$1$hi; @@ -4603,7 +4603,7 @@ function asmFunc(global, env, buffer) { } } var$4 = $38; - if ((var$4 | 0) == (0 | 0)) { + if (!var$4) { break label$9 } var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; @@ -4650,10 +4650,10 @@ function asmFunc(global, env, buffer) { } var$3 = $39; i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { + if (!var$0) { break label$7 } - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$6 } var$4 = var$3 + -1 | 0; @@ -4696,7 +4696,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3; } var$4 = var$3 + -1 | 0; - if ((var$4 & var$3) == (0 | 0)) { + if (!(var$4 & var$3)) { break label$5 } var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0; @@ -4824,7 +4824,7 @@ function asmFunc(global, env, buffer) { } var$8 = i64toi32_i32$4; var$8$hi = i64toi32_i32$5; - label$15 : do { + label$15 : while (1) { i64toi32_i32$5 = var$5$hi; i64toi32_i32$2 = var$5; i64toi32_i32$1 = 0; @@ -4953,7 +4953,7 @@ function asmFunc(global, env, buffer) { continue label$15 } break label$15; - } while (1); + }; break label$13; } } @@ -5395,7 +5395,7 @@ function asmFunc(global, env, buffer) { { i64toi32_i32$1 = var$1$hi; var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$11 } i64toi32_i32$1 = var$1$hi; @@ -5415,7 +5415,7 @@ function asmFunc(global, env, buffer) { } } var$4 = $38; - if ((var$4 | 0) == (0 | 0)) { + if (!var$4) { break label$9 } var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; @@ -5462,10 +5462,10 @@ function asmFunc(global, env, buffer) { } var$3 = $39; i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { + if (!var$0) { break label$7 } - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$6 } var$4 = var$3 + -1 | 0; @@ -5508,7 +5508,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3; } var$4 = var$3 + -1 | 0; - if ((var$4 & var$3) == (0 | 0)) { + if (!(var$4 & var$3)) { break label$5 } var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0; @@ -5636,7 +5636,7 @@ function asmFunc(global, env, buffer) { } var$8 = i64toi32_i32$4; var$8$hi = i64toi32_i32$5; - label$15 : do { + label$15 : while (1) { i64toi32_i32$5 = var$5$hi; i64toi32_i32$2 = var$5; i64toi32_i32$1 = 0; @@ -5765,7 +5765,7 @@ function asmFunc(global, env, buffer) { continue label$15 } break label$15; - } while (1); + }; break label$13; } } @@ -6207,7 +6207,7 @@ function asmFunc(global, env, buffer) { { i64toi32_i32$1 = var$1$hi; var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$11 } i64toi32_i32$1 = var$1$hi; @@ -6227,7 +6227,7 @@ function asmFunc(global, env, buffer) { } } var$4 = $38; - if ((var$4 | 0) == (0 | 0)) { + if (!var$4) { break label$9 } var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; @@ -6274,10 +6274,10 @@ function asmFunc(global, env, buffer) { } var$3 = $39; i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { + if (!var$0) { break label$7 } - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$6 } var$4 = var$3 + -1 | 0; @@ -6320,7 +6320,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3; } var$4 = var$3 + -1 | 0; - if ((var$4 & var$3) == (0 | 0)) { + if (!(var$4 & var$3)) { break label$5 } var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0; @@ -6448,7 +6448,7 @@ function asmFunc(global, env, buffer) { } var$8 = i64toi32_i32$4; var$8$hi = i64toi32_i32$5; - label$15 : do { + label$15 : while (1) { i64toi32_i32$5 = var$5$hi; i64toi32_i32$2 = var$5; i64toi32_i32$1 = 0; @@ -6577,7 +6577,7 @@ function asmFunc(global, env, buffer) { continue label$15 } break label$15; - } while (1); + }; break label$13; } } @@ -7019,7 +7019,7 @@ function asmFunc(global, env, buffer) { { i64toi32_i32$1 = var$1$hi; var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$11 } i64toi32_i32$1 = var$1$hi; @@ -7039,7 +7039,7 @@ function asmFunc(global, env, buffer) { } } var$4 = $38; - if ((var$4 | 0) == (0 | 0)) { + if (!var$4) { break label$9 } var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; @@ -7086,10 +7086,10 @@ function asmFunc(global, env, buffer) { } var$3 = $39; i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { + if (!var$0) { break label$7 } - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$6 } var$4 = var$3 + -1 | 0; @@ -7132,7 +7132,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3; } var$4 = var$3 + -1 | 0; - if ((var$4 & var$3) == (0 | 0)) { + if (!(var$4 & var$3)) { break label$5 } var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0; @@ -7260,7 +7260,7 @@ function asmFunc(global, env, buffer) { } var$8 = i64toi32_i32$4; var$8$hi = i64toi32_i32$5; - label$15 : do { + label$15 : while (1) { i64toi32_i32$5 = var$5$hi; i64toi32_i32$2 = var$5; i64toi32_i32$1 = 0; @@ -7389,7 +7389,7 @@ function asmFunc(global, env, buffer) { continue label$15 } break label$15; - } while (1); + }; break label$13; } } @@ -7846,7 +7846,7 @@ function asmFunc(global, env, buffer) { { i64toi32_i32$1 = var$1$hi; var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$11 } i64toi32_i32$1 = var$1$hi; @@ -7866,7 +7866,7 @@ function asmFunc(global, env, buffer) { } } var$4 = $38; - if ((var$4 | 0) == (0 | 0)) { + if (!var$4) { break label$9 } var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; @@ -7913,10 +7913,10 @@ function asmFunc(global, env, buffer) { } var$3 = $39; i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { + if (!var$0) { break label$7 } - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$6 } var$4 = var$3 + -1 | 0; @@ -7959,7 +7959,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3; } var$4 = var$3 + -1 | 0; - if ((var$4 & var$3) == (0 | 0)) { + if (!(var$4 & var$3)) { break label$5 } var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0; @@ -8087,7 +8087,7 @@ function asmFunc(global, env, buffer) { } var$8 = i64toi32_i32$4; var$8$hi = i64toi32_i32$5; - label$15 : do { + label$15 : while (1) { i64toi32_i32$5 = var$5$hi; i64toi32_i32$2 = var$5; i64toi32_i32$1 = 0; @@ -8216,7 +8216,7 @@ function asmFunc(global, env, buffer) { continue label$15 } break label$15; - } while (1); + }; break label$13; } } @@ -8675,7 +8675,7 @@ function asmFunc(global, env, buffer) { { i64toi32_i32$1 = var$1$hi; var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$11 } i64toi32_i32$1 = var$1$hi; @@ -8695,7 +8695,7 @@ function asmFunc(global, env, buffer) { } } var$4 = $38; - if ((var$4 | 0) == (0 | 0)) { + if (!var$4) { break label$9 } var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; @@ -8742,10 +8742,10 @@ function asmFunc(global, env, buffer) { } var$3 = $39; i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { + if (!var$0) { break label$7 } - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$6 } var$4 = var$3 + -1 | 0; @@ -8788,7 +8788,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3; } var$4 = var$3 + -1 | 0; - if ((var$4 & var$3) == (0 | 0)) { + if (!(var$4 & var$3)) { break label$5 } var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0; @@ -8916,7 +8916,7 @@ function asmFunc(global, env, buffer) { } var$8 = i64toi32_i32$4; var$8$hi = i64toi32_i32$5; - label$15 : do { + label$15 : while (1) { i64toi32_i32$5 = var$5$hi; i64toi32_i32$2 = var$5; i64toi32_i32$1 = 0; @@ -9045,7 +9045,7 @@ function asmFunc(global, env, buffer) { continue label$15 } break label$15; - } while (1); + }; break label$13; } } @@ -9504,7 +9504,7 @@ function asmFunc(global, env, buffer) { { i64toi32_i32$1 = var$1$hi; var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$11 } i64toi32_i32$1 = var$1$hi; @@ -9524,7 +9524,7 @@ function asmFunc(global, env, buffer) { } } var$4 = $38; - if ((var$4 | 0) == (0 | 0)) { + if (!var$4) { break label$9 } var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; @@ -9571,10 +9571,10 @@ function asmFunc(global, env, buffer) { } var$3 = $39; i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { + if (!var$0) { break label$7 } - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$6 } var$4 = var$3 + -1 | 0; @@ -9617,7 +9617,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3; } var$4 = var$3 + -1 | 0; - if ((var$4 & var$3) == (0 | 0)) { + if (!(var$4 & var$3)) { break label$5 } var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0; @@ -9745,7 +9745,7 @@ function asmFunc(global, env, buffer) { } var$8 = i64toi32_i32$4; var$8$hi = i64toi32_i32$5; - label$15 : do { + label$15 : while (1) { i64toi32_i32$5 = var$5$hi; i64toi32_i32$2 = var$5; i64toi32_i32$1 = 0; @@ -9874,7 +9874,7 @@ function asmFunc(global, env, buffer) { continue label$15 } break label$15; - } while (1); + }; break label$13; } } diff --git a/test/wasm2js/labels.2asm.js b/test/wasm2js/labels.2asm.js index 1e384a69d..e92791960 100644 --- a/test/wasm2js/labels.2asm.js +++ b/test/wasm2js/labels.2asm.js @@ -34,7 +34,7 @@ function asmFunc(global, env, buffer) { var i = 0, $6_1 = 0; i = 0; exit : { - cont : do { + cont : while (1) { i = i + 1 | 0; if ((i | 0) == (5 | 0)) { { @@ -43,8 +43,7 @@ function asmFunc(global, env, buffer) { } } continue cont; - break cont; - } while (1); + }; } return $6_1 | 0; } @@ -53,7 +52,7 @@ function asmFunc(global, env, buffer) { var i = 0, $8_1 = 0; i = 0; exit : { - cont : do { + cont : while (1) { i = i + 1 | 0; if ((i | 0) == (5 | 0)) { continue cont @@ -66,8 +65,7 @@ function asmFunc(global, env, buffer) { } i = i + 1 | 0; continue cont; - break cont; - } while (1); + }; } return $8_1 | 0; } @@ -93,7 +91,7 @@ function asmFunc(global, env, buffer) { var i = 0, $9_1 = 0; i = 1; exit : { - cont : do { + cont : while (1) { i = i + i | 0; if (i >>> 0 > max >>> 0) { { @@ -102,8 +100,7 @@ function asmFunc(global, env, buffer) { } } continue cont; - break cont; - } while (1); + }; } return $9_1 | 0; } diff --git a/test/wasm2js/left-to-right.2asm.js b/test/wasm2js/left-to-right.2asm.js index 0c92f249c..cb551e9ac 100644 --- a/test/wasm2js/left-to-right.2asm.js +++ b/test/wasm2js/left-to-right.2asm.js @@ -1678,7 +1678,7 @@ function asmFunc(global, env, buffer) { { i64toi32_i32$1 = var$1$hi; var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$11 } i64toi32_i32$1 = var$1$hi; @@ -1698,7 +1698,7 @@ function asmFunc(global, env, buffer) { } } var$4 = $38_1; - if ((var$4 | 0) == (0 | 0)) { + if (!var$4) { break label$9 } var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; @@ -1745,10 +1745,10 @@ function asmFunc(global, env, buffer) { } var$3 = $39_1; i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { + if (!var$0) { break label$7 } - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$6 } var$4 = var$3 + -1 | 0; @@ -1791,7 +1791,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3; } var$4 = var$3 + -1 | 0; - if ((var$4 & var$3) == (0 | 0)) { + if (!(var$4 & var$3)) { break label$5 } var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0; @@ -1919,7 +1919,7 @@ function asmFunc(global, env, buffer) { } var$8 = i64toi32_i32$4; var$8$hi = i64toi32_i32$5; - label$15 : do { + label$15 : while (1) { i64toi32_i32$5 = var$5$hi; i64toi32_i32$2 = var$5; i64toi32_i32$1 = 0; @@ -2048,7 +2048,7 @@ function asmFunc(global, env, buffer) { continue label$15 } break label$15; - } while (1); + }; break label$13; } } diff --git a/test/wasm2js/loop.2asm.js b/test/wasm2js/loop.2asm.js index 3ed99264a..ab6a3b130 100644 --- a/test/wasm2js/loop.2asm.js +++ b/test/wasm2js/loop.2asm.js @@ -107,7 +107,7 @@ function asmFunc(global, env, buffer) { var $2_1 = 0; dummy(); $2_1 = 13; - return ($2_1 | 0) == (0 | 0) | 0; + return !$2_1 | 0; } function $9() { @@ -122,10 +122,7 @@ function asmFunc(global, env, buffer) { function $10() { block : { - loop_in : do { - break block; - break loop_in; - } while (1); + loop_in : while (1) break block; } block48 : { if (1) { @@ -155,11 +152,10 @@ function asmFunc(global, env, buffer) { function $11() { var $0 = 0, $1_1 = 0, $3_1 = 0; block : { - loop_in : do { + loop_in : while (1) { $0 = 18; break block; - break loop_in; - } while (1); + }; } return $0 | 0; } @@ -214,10 +210,7 @@ function asmFunc(global, env, buffer) { var $0 = 0, $1_1 = 0, $2_1 = 0, $3_1 = 0, $5_1 = 0; $0 = 0; $1_1 = $0; - loop_in : do { - continue loop_in; - break loop_in; - } while (1); + loop_in : while (1) continue loop_in; } function fx() { @@ -240,9 +233,9 @@ function asmFunc(global, env, buffer) { $1_1 = 1; $1$hi = i64toi32_i32$0; block : { - loop_in : do { + loop_in : while (1) { i64toi32_i32$0 = $0$hi; - if (($0 | i64toi32_i32$0) == (0 | 0)) { + if (!($0 | i64toi32_i32$0)) { break block } i64toi32_i32$0 = $0$hi; @@ -261,8 +254,7 @@ function asmFunc(global, env, buffer) { $0 = $0 - i64toi32_i32$3 | 0; $0$hi = i64toi32_i32$5; continue loop_in; - break loop_in; - } while (1); + }; } i64toi32_i32$5 = $1$hi; i64toi32_i32$HIGH_BITS = i64toi32_i32$5; @@ -280,7 +272,7 @@ function asmFunc(global, env, buffer) { $2_1 = 2; $2$hi = i64toi32_i32$0; block : { - loop_in : do { + loop_in : while (1) { i64toi32_i32$0 = $2$hi; i64toi32_i32$0 = $0$hi; i64toi32_i32$0 = $2$hi; @@ -302,8 +294,7 @@ function asmFunc(global, env, buffer) { $2_1 = i64toi32_i32$4; $2$hi = i64toi32_i32$5; continue loop_in; - break loop_in; - } while (1); + }; } i64toi32_i32$5 = $1$hi; i64toi32_i32$HIGH_BITS = $1$hi; @@ -315,13 +306,13 @@ function asmFunc(global, env, buffer) { $1_1 = Math_fround($1_1); var $2_1 = Math_fround(0), $3_1 = Math_fround(0); block : { - loop_in : do { + loop_in : while (1) { if ($0 == Math_fround(0.0)) { break block } $2_1 = $1_1; block71 : { - loop_in72 : do { + loop_in72 : while (1) { if ($2_1 == Math_fround(0.0)) { break block71 } @@ -331,14 +322,12 @@ function asmFunc(global, env, buffer) { $3_1 = Math_fround($3_1 + $2_1); $2_1 = Math_fround($2_1 - Math_fround(2.0)); continue loop_in72; - break loop_in72; - } while (1); + }; } $3_1 = Math_fround($3_1 / $0); $0 = Math_fround($0 - Math_fround(1.0)); continue loop_in; - break loop_in; - } while (1); + }; } return Math_fround($3_1); } diff --git a/test/wasm2js/stack-modified.2asm.js b/test/wasm2js/stack-modified.2asm.js index b4e93e00b..84c59cadb 100644 --- a/test/wasm2js/stack-modified.2asm.js +++ b/test/wasm2js/stack-modified.2asm.js @@ -35,7 +35,7 @@ function asmFunc(global, env, buffer) { var$2 = 1; var$2$hi = i64toi32_i32$0; label$1 : { - label$2 : do { + label$2 : while (1) { i64toi32_i32$0 = var$1$hi; i64toi32_i32$2 = var$1; i64toi32_i32$1 = 0; @@ -63,8 +63,7 @@ function asmFunc(global, env, buffer) { } } continue label$2; - break label$2; - } while (1); + }; } i64toi32_i32$5 = var$2$hi; i64toi32_i32$3 = var$2; @@ -83,7 +82,7 @@ function asmFunc(global, env, buffer) { var$2 = 1; var$2$hi = i64toi32_i32$0; label$1 : { - label$2 : do { + label$2 : while (1) { i64toi32_i32$0 = var$1$hi; i64toi32_i32$2 = var$1; i64toi32_i32$1 = 0; @@ -111,8 +110,7 @@ function asmFunc(global, env, buffer) { } } continue label$2; - break label$2; - } while (1); + }; } i64toi32_i32$5 = var$2$hi; i64toi32_i32$3 = var$2; @@ -131,7 +129,7 @@ function asmFunc(global, env, buffer) { var$2 = 1; var$2$hi = i64toi32_i32$0; label$1 : { - label$2 : do { + label$2 : while (1) { i64toi32_i32$0 = var$1$hi; i64toi32_i32$2 = var$1; i64toi32_i32$1 = 0; @@ -159,8 +157,7 @@ function asmFunc(global, env, buffer) { } } continue label$2; - break label$2; - } while (1); + }; } i64toi32_i32$5 = var$2$hi; i64toi32_i32$3 = var$2; @@ -179,7 +176,7 @@ function asmFunc(global, env, buffer) { var$2 = 1; var$2$hi = i64toi32_i32$0; label$1 : { - label$2 : do { + label$2 : while (1) { i64toi32_i32$0 = var$1$hi; i64toi32_i32$2 = var$1; i64toi32_i32$1 = 0; @@ -207,8 +204,7 @@ function asmFunc(global, env, buffer) { } } continue label$2; - break label$2; - } while (1); + }; } i64toi32_i32$5 = var$2$hi; i64toi32_i32$3 = var$2; @@ -227,7 +223,7 @@ function asmFunc(global, env, buffer) { var$2 = 1; var$2$hi = i64toi32_i32$0; label$1 : { - label$2 : do { + label$2 : while (1) { i64toi32_i32$0 = var$1$hi; i64toi32_i32$2 = var$1; i64toi32_i32$1 = 0; @@ -255,8 +251,7 @@ function asmFunc(global, env, buffer) { } } continue label$2; - break label$2; - } while (1); + }; } i64toi32_i32$5 = var$2$hi; i64toi32_i32$3 = var$2; diff --git a/test/wasm2js/traps.2asm.js b/test/wasm2js/traps.2asm.js index 294086f24..5ab7b0759 100644 --- a/test/wasm2js/traps.2asm.js +++ b/test/wasm2js/traps.2asm.js @@ -420,7 +420,7 @@ function asmFunc(global, env, buffer) { { i64toi32_i32$1 = var$1$hi; var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$11 } i64toi32_i32$1 = var$1$hi; @@ -440,7 +440,7 @@ function asmFunc(global, env, buffer) { } } var$4 = $38; - if ((var$4 | 0) == (0 | 0)) { + if (!var$4) { break label$9 } var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; @@ -487,10 +487,10 @@ function asmFunc(global, env, buffer) { } var$3 = $39; i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { + if (!var$0) { break label$7 } - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$6 } var$4 = var$3 + -1 | 0; @@ -533,7 +533,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3; } var$4 = var$3 + -1 | 0; - if ((var$4 & var$3) == (0 | 0)) { + if (!(var$4 & var$3)) { break label$5 } var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0; @@ -661,7 +661,7 @@ function asmFunc(global, env, buffer) { } var$8 = i64toi32_i32$4; var$8$hi = i64toi32_i32$5; - label$15 : do { + label$15 : while (1) { i64toi32_i32$5 = var$5$hi; i64toi32_i32$2 = var$5; i64toi32_i32$1 = 0; @@ -790,7 +790,7 @@ function asmFunc(global, env, buffer) { continue label$15 } break label$15; - } while (1); + }; break label$13; } } @@ -1319,7 +1319,7 @@ function asmFunc(global, env, buffer) { { i64toi32_i32$1 = var$1$hi; var$3 = var$1; - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$11 } i64toi32_i32$1 = var$1$hi; @@ -1339,7 +1339,7 @@ function asmFunc(global, env, buffer) { } } var$4 = $38; - if ((var$4 | 0) == (0 | 0)) { + if (!var$4) { break label$9 } var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; @@ -1386,10 +1386,10 @@ function asmFunc(global, env, buffer) { } var$3 = $39; i64toi32_i32$1 = var$0$hi; - if ((var$0 | 0) == (0 | 0)) { + if (!var$0) { break label$7 } - if ((var$3 | 0) == (0 | 0)) { + if (!var$3) { break label$6 } var$4 = var$3 + -1 | 0; @@ -1432,7 +1432,7 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$3; } var$4 = var$3 + -1 | 0; - if ((var$4 & var$3) == (0 | 0)) { + if (!(var$4 & var$3)) { break label$5 } var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0; @@ -1560,7 +1560,7 @@ function asmFunc(global, env, buffer) { } var$8 = i64toi32_i32$4; var$8$hi = i64toi32_i32$5; - label$15 : do { + label$15 : while (1) { i64toi32_i32$5 = var$5$hi; i64toi32_i32$2 = var$5; i64toi32_i32$1 = 0; @@ -1689,7 +1689,7 @@ function asmFunc(global, env, buffer) { continue label$15 } break label$15; - } while (1); + }; break label$13; } } diff --git a/test/wasm2js/unary-ops.2asm.js b/test/wasm2js/unary-ops.2asm.js index e0e5a39bf..d0831c7e4 100644 --- a/test/wasm2js/unary-ops.2asm.js +++ b/test/wasm2js/unary-ops.2asm.js @@ -75,7 +75,7 @@ function asmFunc(global, env, buffer) { $0$hi = $0$hi | 0; var i64toi32_i32$0 = 0; i64toi32_i32$0 = $0$hi; - return ($0 | i64toi32_i32$0) == (0 | 0) | 0; + return !($0 | i64toi32_i32$0) | 0; } function $6($0) { @@ -414,7 +414,7 @@ function asmFunc(global, env, buffer) { function __wasm_ctz_i64(var$0, var$0$hi) { var i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, i64toi32_i32$5 = 0, i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $10 = 0, $5$hi = 0, $8$hi = 0; i64toi32_i32$0 = var$0$hi; - if (((var$0 | i64toi32_i32$0) == (0 | 0) | 0) == (0 | 0)) { + if (!!(var$0 | i64toi32_i32$0)) { { i64toi32_i32$0 = var$0$hi; i64toi32_i32$2 = var$0; @@ -462,16 +462,15 @@ function asmFunc(global, env, buffer) { function __wasm_popcnt_i32(var$0) { var var$1 = 0, $5_1 = 0; label$1 : { - label$2 : do { + label$2 : while (1) { $5_1 = var$1; - if ((var$0 | 0) == (0 | 0)) { + if (!var$0) { break label$1 } var$0 = var$0 & var$0 - 1; var$1 = var$1 + 1 | 0; continue label$2; - break label$2; - } while (1); + }; } return $5_1; } @@ -479,10 +478,10 @@ function asmFunc(global, env, buffer) { function __wasm_popcnt_i64(var$0, var$0$hi) { var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$5 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, var$1$hi = 0, var$1 = 0, $5_1 = 0, $5$hi = 0, $4_1 = 0, $9$hi = 0; label$1 : { - label$2 : do { + label$2 : while (1) { i64toi32_i32$0 = var$1$hi; i64toi32_i32$0 = var$0$hi; - $4_1 = (var$0 | i64toi32_i32$0) == (0 | 0); + $4_1 = !(var$0 | i64toi32_i32$0); i64toi32_i32$0 = var$1$hi; $5_1 = var$1; $5$hi = i64toi32_i32$0; @@ -517,8 +516,7 @@ function asmFunc(global, env, buffer) { var$1 = i64toi32_i32$1; var$1$hi = i64toi32_i32$4; continue label$2; - break label$2; - } while (1); + }; } i64toi32_i32$4 = $5$hi; i64toi32_i32$5 = $5_1; |