diff options
Diffstat (limited to 'tools/eliminator/eliminator-test.js')
-rw-r--r-- | tools/eliminator/eliminator-test.js | 6140 |
1 files changed, 73 insertions, 6067 deletions
diff --git a/tools/eliminator/eliminator-test.js b/tools/eliminator/eliminator-test.js index 3e8580b7..a0ba414d 100644 --- a/tools/eliminator/eliminator-test.js +++ b/tools/eliminator/eliminator-test.js @@ -1,6068 +1,74 @@ -function f() { - var unused; - var x = GLOB[1]; - var y = x + 1; - var z = y / 2; - HEAP[123] = z; +function a() { + var $210 = HEAP32[100]; // heaps alias each other! so this cannot be eliminated + HEAP32[1e3] = HEAP32[5]; + HEAP32[90] = $210; + chak(); + var $210a = HEAP32[100]; // function calls can also modify memory + something(); + HEAP32[90] = $210a; + chak(); + var $a = $hack; // no mem use (just a global), so ok to eliminate + HEAP32[1e3] = HEAP32[5]; + HEAP32[90] = $a; + chak(); + var $bb = HEAP32[11]; // ok to eliminate + var $b = ($bb+7)|0; // ok to eliminate by itself, but not with inlined $bb which is mem-using! + HEAP32[1e3] = HEAP32[5]; + HEAP32[90] = $b; + chak(); + var $bb2 = HEAP32[11]; + HEAP32[111] = 321; + var $b2 = ($bb2+7)|0; + HEAP32[1e3] = HEAP32[5]; + HEAP32[90] = $b2; + chak(); + var $d = HEAP32[100]; // alias on next line, but that is where we are consumed - so ok. + HEAP32[1e3] = $d; + chak(); + var $e = func(); + HEAP32[1e3] = $e; + chak(); + var $e2 = func(); + tor($e2); + chak(); + var $e3 = HEAP[9]; + tor($e3); + barrier(); // same stuff, but with a var on top and assigns as the first and only def + var $$210, $$210a, $$a, $$bb, $$b, $$bb2, $$b2, $$d, $$e, $$e2, $$e3; + $$210 = HEAP32[100]; // heaps alias each other! so this cannot be eliminated + HEAP32[1e3] = HEAP32[5]; + HEAP32[90] = $$210; + chak(); + $$210a = HEAP32[100]; // function calls can also modify memory + something(); + HEAP32[90] = $$210a; + chak(); + $$a = $$hack; // no mem use, so ok to eliminate + HEAP32[1e3] = HEAP32[5]; + HEAP32[90] = $$a; + chak(); + $$bb = HEAP32[11]; // ok to eliminate + $$b = ($$bb+7)|0; // ok to eliminate by itself, but not with inlined $$bb which is mem-using! + HEAP32[1e3] = HEAP32[5]; + HEAP32[90] = $$b; + chak(); + $$bb2 = HEAP32[11]; + HEAP32[111] = 321; + $$b2 = ($$bb2+7)|0; + HEAP32[1e3] = HEAP32[5]; + HEAP32[90] = $$b2; + chak(); + $$d = HEAP32[100]; // alias on next line, but that is where we are consumed - so ok. + HEAP32[1e3] = $$d; + chak(); + $$e = func(); + HEAP32[1e3] = $$e; + chak(); + $$e2 = func(); + tor($$e2); + chak(); + $$e3 = HEAP[9]; + tor($$e3); + // TODO: (,a,b) 'seq' } -function g(a1, a2) { - var a = 1; - var b = a * 2; - var c = b - 1; - var qqq = "qwe"; - a = c; - foo(c); - var ww = 1, www, zzz = 2; - foo(zzz); - for (var i = 0; i < 5; i++) { - var q = { - a: 1 - } + [ 2, 3 ]; - } - for (var iterator in SOME_GLOBAL) { - quux(iterator); - } - var $0 = HEAP[5]; - MAYBE_HEAP[myglobal] = 123; - var $1 = $0 < 0; - if ($1) { - __label__ = 1; - } else { - __label__ = 2; - } - var sadijn = new asd; - sadijn2 = "qwe%sert"; - this.Module || (this.Module = {}); - var obj = { - 'quoted': 1, - "doublequoted": 2, - unquoted: 3, - 4: 5 - }; -} -function h() { - var out; - bar(hello); - var hello = 5; - if (0) { - var sb1 = 21; - } - out = sb1; - if (0) { - var sb2 = 23; - } else { - out = sb2; - } - if (0) { - out = sb3; - } else { - var sb3 = 23; - } - for (var it = 0; it < 5; it++) { - x = y ? x + 1 : 7; - var x = -5; - } - var oneUse = glob; - if (1) { - otherGlob = oneUse; - breakMe(); - } - var oneUse2 = glob2; - while (1) { - otherGlob2 = oneUse2; - breakMe(); - } - return out; -} -function strtok_part(b, j, f) { - var a; - for (;;) { - h = a == 13 ? h : 0; - a = HEAP[d + h]; - if (a == g != 0) break; - var h = h + 1; - if (a != 0) a = 13; - } -} -function py() { - var $4 = HEAP[__PyThreadState_Current]; - var $5 = $4 + 12; - var $7 = HEAP[$5] + 1; - var $8 = $7 + 12; - HEAP[$8] = 99; -} -function otherPy() { - var $4 = HEAP[__PyThreadState_Current]; - var $5 = $4 + 12; - var $7 = HEAP[$5] + 1; - var $8 = $4 + 12; - HEAP[$8] = $7; -} -var anon = function(x) { - var $4 = HEAP[__PyThreadState_Current]; - var $5 = $4 + 12; - var $7 = HEAP[$5] + 1; - var $8 = $4 + 12; - HEAP[$8] = $7; -} -function r($0) { - HEAP[$0 + 5 + 2] = 99+5+2+1; -} -function t() { - var $cmp2=($10) < ($11); - if ($cmp2) { __label__ = 3; } - var $cmp3=($12) < ($13); - if (!($cmp3)) { __label__ = 4; } -} -function f2() { - var $arrayidx64_phi_trans_insert = $vla + ($storemerge312 << 2) | 0; - var $_pre = HEAPU32[$arrayidx64_phi_trans_insert >> 2]; - var $phitmp = $storemerge312 + 1 | 0; - var $storemerge312 = $phitmp; - var $8 = $_pre; - c($8); -} -function f3($s, $tree, $k) { - // HEAP vars alias each other, and the loop can confuse us - var $0 = HEAPU32[($s + 2908 + ($k << 2) | 0) >> 2]; - while (1) { - HEAP32[($s + 2908 + ($storemerge_in << 2) | 0) >> 2] = $9; - } - HEAP32[($s + 2908 + ($storemerge_in << 2) | 0) >> 2] = $0; -} -function llvm3_1() { - while (check()) { - var $inc = $aj_0 + 1; - if ($curri_01 % $zj_0 == 0) { - break; - } - var $j_0 = $inc; - run($j_0 / 2); - } -} -function _inflate($strm, $flush) { - var __stackBase__ = STACKTOP; - STACKTOP += 4; - var __label__; - var $hbuf = __stackBase__; - var $cmp = ($strm | 0) == 0; - $_$2 : do { - if ($cmp) { - var $retval_0 = -2; - } else { - var $state1 = $strm + 28 | 0; - var $0 = HEAPU32[$state1 >> 2]; - var $cmp2 = ($0 | 0) == 0; - if ($cmp2) { - var $retval_0 = -2; - break; - } - var $next_out = $strm + 12 | 0; - var $1 = HEAP32[$next_out >> 2]; - var $cmp4 = ($1 | 0) == 0; - if ($cmp4) { - var $retval_0 = -2; - break; - } - var $next_in = $strm | 0; - var $2 = HEAP32[$next_in >> 2]; - var $cmp6 = ($2 | 0) == 0; - if ($cmp6) { - var $avail_in = $strm + 4 | 0; - var $3 = HEAP32[$avail_in >> 2]; - var $cmp7 = ($3 | 0) == 0; - if (!$cmp7) { - var $retval_0 = -2; - break; - } - } - var $4 = $0; - var $mode = $0 | 0; - var $5 = HEAP32[$mode >> 2]; - var $cmp9 = ($5 | 0) == 11; - if ($cmp9) { - HEAP32[$mode >> 2] = 12; - var $_pre = HEAP32[$next_out >> 2]; - var $_pre882 = HEAP32[$next_in >> 2]; - var $8 = $_pre; - var $7 = $_pre882; - var $6 = 12; - } else { - var $8 = $1; - var $7 = $2; - var $6 = $5; - } - var $6; - var $7; - var $8; - var $avail_out = $strm + 16 | 0; - var $9 = HEAP32[$avail_out >> 2]; - var $avail_in15 = $strm + 4 | 0; - var $10 = HEAPU32[$avail_in15 >> 2]; - var $11 = $0 + 56 | 0; - var $12 = HEAP32[$11 >> 2]; - var $13 = $0 + 60 | 0; - var $14 = HEAP32[$13 >> 2]; - var $15 = $0 + 8 | 0; - var $16 = $0 + 24 | 0; - var $arrayidx = $hbuf | 0; - var $arrayidx40 = $hbuf + 1 | 0; - var $17 = $0 + 16 | 0; - var $head = $0 + 32 | 0; - var $18 = $head; - var $msg = $strm + 24 | 0; - var $19 = $0 + 36 | 0; - var $20 = $0 + 20 | 0; - var $adler = $strm + 48 | 0; - var $21 = $0 + 64 | 0; - var $22 = $0 + 12 | 0; - var $flush_off = $flush - 5 | 0; - var $23 = $flush_off >>> 0 < 2; - var $24 = $0 + 4 | 0; - var $cmp660 = ($flush | 0) == 6; - var $25 = $0 + 7108 | 0; - var $26 = $0 + 84 | 0; - var $lencode1215 = $0 + 76 | 0; - var $27 = $lencode1215; - var $28 = $0 + 72 | 0; - var $29 = $0 + 7112 | 0; - var $30 = $0 + 68 | 0; - var $31 = $0 + 44 | 0; - var $32 = $0 + 7104 | 0; - var $33 = $0 + 48 | 0; - var $window = $0 + 52 | 0; - var $34 = $window; - var $35 = $0 + 40 | 0; - var $total_out = $strm + 20 | 0; - var $36 = $0 + 28 | 0; - var $arrayidx199 = $hbuf + 2 | 0; - var $arrayidx202 = $hbuf + 3 | 0; - var $37 = $0 + 96 | 0; - var $38 = $0 + 100 | 0; - var $39 = $0 + 92 | 0; - var $40 = $0 + 104 | 0; - var $lens = $0 + 112 | 0; - var $41 = $lens; - var $codes = $0 + 1328 | 0; - var $next861 = $0 + 108 | 0; - var $42 = $next861; - var $43 = $next861 | 0; - var $arraydecay860_c = $codes; - var $44 = $0 + 76 | 0; - var $arraydecay864 = $lens; - var $work = $0 + 752 | 0; - var $arraydecay867 = $work; - var $arrayidx1128 = $0 + 624 | 0; - var $45 = $arrayidx1128; - var $46 = $0 + 80 | 0; - var $47 = $0 + 88 | 0; - var $distcode1395 = $0 + 80 | 0; - var $48 = $distcode1395; - var $ret_0 = 0; - var $next_0 = $7; - var $put_0 = $8; - var $have_0 = $10; - var $left_0 = $9; - var $hold_0 = $12; - var $bits_0 = $14; - var $out_0 = $9; - var $49 = $6; - $_$12 : while (1) { - var $49; - var $out_0; - var $bits_0; - var $hold_0; - var $left_0; - var $have_0; - var $put_0; - var $next_0; - var $ret_0; - $_$14 : do { - if (($49 | 0) == 0) { - var $50 = HEAPU32[$15 >> 2]; - var $cmp19 = ($50 | 0) == 0; - if ($cmp19) { - HEAP32[$mode >> 2] = 12; - var $ret_0_be = $ret_0; - var $next_0_be = $next_0; - var $put_0_be = $put_0; - var $have_0_be = $have_0; - var $left_0_be = $left_0; - var $hold_0_be = $hold_0; - var $bits_0_be = $bits_0; - var $out_0_be = $out_0; - __label__ = 268; - break; - } - var $next_1 = $next_0; - var $have_1 = $have_0; - var $hold_1 = $hold_0; - var $bits_1 = $bits_0; - while (1) { - var $bits_1; - var $hold_1; - var $have_1; - var $next_1; - var $cmp24 = $bits_1 >>> 0 < 16; - if (!$cmp24) { - break; - } - var $cmp26 = ($have_1 | 0) == 0; - if ($cmp26) { - var $ret_8 = $ret_0; - var $next_58 = $next_1; - var $have_58 = 0; - var $hold_54 = $hold_1; - var $bits_54 = $bits_1; - var $out_4 = $out_0; - break $_$12; - } - // XXX first chunk with a difference (no impact) - var $dec = $have_1 - 1 | 0; - var $incdec_ptr = $next_1 + 1 | 0; - var $51 = HEAPU8[$next_1]; - var $conv = $51 & 255; - var $shl = $conv << $bits_1; - var $add = $shl + $hold_1 | 0; - var $add29 = $bits_1 + 8 | 0; - var $next_1 = $incdec_ptr; - var $have_1 = $dec; - var $hold_1 = $add; - var $bits_1 = $add29; - } - var $and = $50 & 2; - var $tobool = ($and | 0) != 0; - var $cmp34 = ($hold_1 | 0) == 35615; - var $or_cond = $tobool & $cmp34; - if ($or_cond) { - var $call = _crc32(0, 0, 0); - HEAP32[$16 >> 2] = $call; - HEAP8[$arrayidx] = 31; - HEAP8[$arrayidx40] = -117; - var $52 = HEAP32[$16 >> 2]; - var $call42 = _crc32($52, $arrayidx, 2); - HEAP32[$16 >> 2] = $call42; - HEAP32[$mode >> 2] = 1; - var $ret_0_be = $ret_0; - var $next_0_be = $next_1; - var $put_0_be = $put_0; - var $have_0_be = $have_1; - var $left_0_be = $left_0; - var $hold_0_be = 0; - var $bits_0_be = 0; - var $out_0_be = $out_0; - __label__ = 268; - break; - } - HEAP32[$17 >> 2] = 0; - var $53 = HEAP32[$18 >> 2]; - var $cmp49 = ($53 | 0) == 0; - if ($cmp49) { - var $54 = $50; - } else { - var $done = $53 + 48 | 0; - HEAP32[$done >> 2] = -1; - var $_pre884 = HEAP32[$15 >> 2]; - var $54 = $_pre884; - } - var $54; - var $and55 = $54 & 1; - var $tobool56 = ($and55 | 0) == 0; - do { - if (!$tobool56) { - var $and58 = $hold_1 << 8; - var $shl59 = $and58 & 65280; - var $shr60 = $hold_1 >>> 8; - var $add61 = $shl59 + $shr60 | 0; - var $rem = ($add61 >>> 0) % 31; - var $tobool62 = ($rem | 0) == 0; - if (!$tobool62) { - break; - } - var $and66 = $hold_1 & 15; - var $cmp67 = ($and66 | 0) == 8; - if ($cmp67) { - var $shr74 = $hold_1 >>> 4; - var $sub = $bits_1 - 4 | 0; - var $and76 = $shr74 & 15; - var $add77 = $and76 + 8 | 0; - var $55 = HEAPU32[$19 >> 2]; - var $cmp78 = ($55 | 0) == 0; - do { - if (!$cmp78) { - var $cmp83 = $add77 >>> 0 > $55 >>> 0; - if (!$cmp83) { - break; - } - HEAP32[$msg >> 2] = STRING_TABLE.__str3100 | 0; - HEAP32[$mode >> 2] = 29; - var $ret_0_be = $ret_0; - var $next_0_be = $next_1; - var $put_0_be = $put_0; - var $have_0_be = $have_1; - var $left_0_be = $left_0; - var $hold_0_be = $shr74; - var $bits_0_be = $sub; - var $out_0_be = $out_0; - __label__ = 268; - break $_$14; - } - HEAP32[$19 >> 2] = $add77; - } while (0); - var $shl90 = 1 << $add77; - HEAP32[$20 >> 2] = $shl90; - var $call91 = _adler32(0, 0, 0); - HEAP32[$16 >> 2] = $call91; - HEAP32[$adler >> 2] = $call91; - var $and93 = $hold_1 >>> 12; - var $56 = $and93 & 2; - var $57 = $56 ^ 11; - HEAP32[$mode >> 2] = $57; - var $ret_0_be = $ret_0; - var $next_0_be = $next_1; - var $put_0_be = $put_0; - var $have_0_be = $have_1; - var $left_0_be = $left_0; - var $hold_0_be = 0; - var $bits_0_be = 0; - var $out_0_be = $out_0; - __label__ = 268; - break $_$14; - } - HEAP32[$msg >> 2] = STRING_TABLE.__str299 | 0; - HEAP32[$mode >> 2] = 29; - var $ret_0_be = $ret_0; - var $next_0_be = $next_1; - var $put_0_be = $put_0; - var $have_0_be = $have_1; - var $left_0_be = $left_0; - var $hold_0_be = $hold_1; - var $bits_0_be = $bits_1; - var $out_0_be = $out_0; - __label__ = 268; - break $_$14; - } - } while (0); - HEAP32[$msg >> 2] = STRING_TABLE.__str198 | 0; - HEAP32[$mode >> 2] = 29; - var $ret_0_be = $ret_0; - var $next_0_be = $next_1; - var $put_0_be = $put_0; - var $have_0_be = $have_1; - var $left_0_be = $left_0; - var $hold_0_be = $hold_1; - var $bits_0_be = $bits_1; - var $out_0_be = $out_0; - __label__ = 268; - break; - } else if (($49 | 0) == 1) { - var $next_2 = $next_0; - var $have_2 = $have_0; - var $hold_2 = $hold_0; - var $bits_2 = $bits_0; - while (1) { - var $bits_2; - var $hold_2; - var $have_2; - var $next_2; - var $cmp101 = $bits_2 >>> 0 < 16; - if (!$cmp101) { - break; - } - var $cmp105 = ($have_2 | 0) == 0; - if ($cmp105) { - var $ret_8 = $ret_0; - var $next_58 = $next_2; - var $have_58 = 0; - var $hold_54 = $hold_2; - var $bits_54 = $bits_2; - var $out_4 = $out_0; - break $_$12; - } - var $dec109 = $have_2 - 1 | 0; - var $incdec_ptr110 = $next_2 + 1 | 0; - var $58 = HEAPU8[$next_2]; - var $conv111 = $58 & 255; - var $shl112 = $conv111 << $bits_2; - var $add113 = $shl112 + $hold_2 | 0; - var $add114 = $bits_2 + 8 | 0; - var $next_2 = $incdec_ptr110; - var $have_2 = $dec109; - var $hold_2 = $add113; - var $bits_2 = $add114; - } - HEAP32[$17 >> 2] = $hold_2; - var $and120 = $hold_2 & 255; - var $cmp121 = ($and120 | 0) == 8; - if (!$cmp121) { - HEAP32[$msg >> 2] = STRING_TABLE.__str299 | 0; - HEAP32[$mode >> 2] = 29; - var $ret_0_be = $ret_0; - var $next_0_be = $next_2; - var $put_0_be = $put_0; - var $have_0_be = $have_2; - var $left_0_be = $left_0; - var $hold_0_be = $hold_2; - var $bits_0_be = $bits_2; - var $out_0_be = $out_0; - __label__ = 268; - break; - } - var $and128 = $hold_2 & 57344; - var $tobool129 = ($and128 | 0) == 0; - if ($tobool129) { - var $59 = HEAPU32[$18 >> 2]; - var $cmp135 = ($59 | 0) == 0; - if ($cmp135) { - var $60 = $hold_2; - } else { - var $shr138 = $hold_2 >>> 8; - var $and139 = $shr138 & 1; - var $text = $59 | 0; - HEAP32[$text >> 2] = $and139; - var $_pre887 = HEAP32[$17 >> 2]; - var $60 = $_pre887; - } - var $60; - var $and143 = $60 & 512; - var $tobool144 = ($and143 | 0) == 0; - if (!$tobool144) { - var $conv147 = $hold_2 & 255; - HEAP8[$arrayidx] = $conv147; - var $shr149 = $hold_2 >>> 8; - var $conv150 = $shr149 & 255; - HEAP8[$arrayidx40] = $conv150; - var $61 = HEAP32[$16 >> 2]; - var $call154 = _crc32($61, $arrayidx, 2); - HEAP32[$16 >> 2] = $call154; - } - HEAP32[$mode >> 2] = 2; - var $next_3 = $next_2; - var $have_3 = $have_2; - var $hold_3 = 0; - var $bits_3 = 0; - __label__ = 44; - break; - } - HEAP32[$msg >> 2] = STRING_TABLE.__str4101 | 0; - HEAP32[$mode >> 2] = 29; - var $ret_0_be = $ret_0; - var $next_0_be = $next_2; - var $put_0_be = $put_0; - var $have_0_be = $have_2; - var $left_0_be = $left_0; - var $hold_0_be = $hold_2; - var $bits_0_be = $bits_2; - var $out_0_be = $out_0; - __label__ = 268; - break; - } else if (($49 | 0) == 2) { - var $next_3 = $next_0; - var $have_3 = $have_0; - var $hold_3 = $hold_0; - var $bits_3 = $bits_0; - __label__ = 44; - } else if (($49 | 0) == 3) { - var $next_4 = $next_0; - var $have_4 = $have_0; - var $hold_4 = $hold_0; - var $bits_4 = $bits_0; - __label__ = 52; - } else if (($49 | 0) == 4) { - var $next_5 = $next_0; - var $have_5 = $have_0; - var $hold_5 = $hold_0; - var $bits_5 = $bits_0; - __label__ = 60; - } else if (($49 | 0) == 5) { - var $next_8 = $next_0; - var $have_8 = $have_0; - var $hold_8 = $hold_0; - var $bits_8 = $bits_0; - __label__ = 71; - } else if (($49 | 0) == 6) { - var $_pre888 = HEAP32[$17 >> 2]; - var $next_11 = $next_0; - var $have_11 = $have_0; - var $hold_9 = $hold_0; - var $bits_9 = $bits_0; - var $89 = $_pre888; - __label__ = 81; - break; - } else if (($49 | 0) == 7) { - var $next_13 = $next_0; - var $have_13 = $have_0; - var $hold_10 = $hold_0; - var $bits_10 = $bits_0; - __label__ = 94; - } else if (($49 | 0) == 8) { - var $next_15 = $next_0; - var $have_15 = $have_0; - var $hold_11 = $hold_0; - var $bits_11 = $bits_0; - __label__ = 107; - } else if (($49 | 0) == 9) { - var $next_18 = $next_0; - var $have_18 = $have_0; - var $hold_14 = $hold_0; - var $bits_14 = $bits_0; - while (1) { - var $bits_14; - var $hold_14; - var $have_18; - var $next_18; - var $cmp552 = $bits_14 >>> 0 < 32; - if (!$cmp552) { - break; - } - var $cmp556 = ($have_18 | 0) == 0; - if ($cmp556) { - var $ret_8 = $ret_0; - var $next_58 = $next_18; - var $have_58 = 0; - var $hold_54 = $hold_14; - var $bits_54 = $bits_14; - var $out_4 = $out_0; - break $_$12; - } - var $dec560 = $have_18 - 1 | 0; - var $incdec_ptr561 = $next_18 + 1 | 0; - var $114 = HEAPU8[$next_18]; - var $conv562 = $114 & 255; - var $shl563 = $conv562 << $bits_14; - var $add564 = $shl563 + $hold_14 | 0; - var $add565 = $bits_14 + 8 | 0; - var $next_18 = $incdec_ptr561; - var $have_18 = $dec560; - var $hold_14 = $add564; - var $bits_14 = $add565; - } - var $add581 = _llvm_bswap_i32($hold_14); - HEAP32[$16 >> 2] = $add581; - HEAP32[$adler >> 2] = $add581; - HEAP32[$mode >> 2] = 10; - var $next_19 = $next_18; - var $have_19 = $have_18; - var $hold_15 = 0; - var $bits_15 = 0; - __label__ = 120; - break; - } else if (($49 | 0) == 10) { - var $next_19 = $next_0; - var $have_19 = $have_0; - var $hold_15 = $hold_0; - var $bits_15 = $bits_0; - __label__ = 120; - } else if (($49 | 0) == 11) { - var $next_20 = $next_0; - var $have_20 = $have_0; - var $hold_16 = $hold_0; - var $bits_16 = $bits_0; - __label__ = 123; - } else if (($49 | 0) == 12) { - var $next_21 = $next_0; - var $have_21 = $have_0; - var $hold_17 = $hold_0; - var $bits_17 = $bits_0; - __label__ = 124; - } else if (($49 | 0) == 13) { - var $and681 = $bits_0 & 7; - var $shr682 = $hold_0 >>> ($and681 >>> 0); - var $sub684 = $bits_0 - $and681 | 0; - var $next_23 = $next_0; - var $have_23 = $have_0; - var $hold_19 = $shr682; - var $bits_19 = $sub684; - while (1) { - var $bits_19; - var $hold_19; - var $have_23; - var $next_23; - var $cmp689 = $bits_19 >>> 0 < 32; - if (!$cmp689) { - break; - } - var $cmp693 = ($have_23 | 0) == 0; - if ($cmp693) { - var $ret_8 = $ret_0; - var $next_58 = $next_23; - var $have_58 = 0; - var $hold_54 = $hold_19; - var $bits_54 = $bits_19; - var $out_4 = $out_0; - break $_$12; - } - var $dec697 = $have_23 - 1 | 0; - var $incdec_ptr698 = $next_23 + 1 | 0; - var $118 = HEAPU8[$next_23]; - var $conv699 = $118 & 255; - var $shl700 = $conv699 << $bits_19; - var $add701 = $shl700 + $hold_19 | 0; - var $add702 = $bits_19 + 8 | 0; - var $next_23 = $incdec_ptr698; - var $have_23 = $dec697; - var $hold_19 = $add701; - var $bits_19 = $add702; - } - var $and708 = $hold_19 & 65535; - var $shr709 = $hold_19 >>> 16; - var $xor = $shr709 ^ 65535; - var $cmp710 = ($and708 | 0) == ($xor | 0); - if (!$cmp710) { - HEAP32[$msg >> 2] = STRING_TABLE.__str7104 | 0; - HEAP32[$mode >> 2] = 29; - var $ret_0_be = $ret_0; - var $next_0_be = $next_23; - var $put_0_be = $put_0; - var $have_0_be = $have_23; - var $left_0_be = $left_0; - var $hold_0_be = $hold_19; - var $bits_0_be = $bits_19; - var $out_0_be = $out_0; - __label__ = 268; - break; - } - HEAP32[$21 >> 2] = $and708; - HEAP32[$mode >> 2] = 14; - if ($cmp660) { - var $ret_8 = $ret_0; - var $next_58 = $next_23; - var $have_58 = $have_23; - var $hold_54 = 0; - var $bits_54 = 0; - var $out_4 = $out_0; - break $_$12; - } - var $next_24 = $next_23; - var $have_24 = $have_23; - var $hold_20 = 0; - var $bits_20 = 0; - __label__ = 143; - break; - } else if (($49 | 0) == 14) { - var $next_24 = $next_0; - var $have_24 = $have_0; - var $hold_20 = $hold_0; - var $bits_20 = $bits_0; - __label__ = 143; - } else if (($49 | 0) == 15) { - var $next_25 = $next_0; - var $have_25 = $have_0; - var $hold_21 = $hold_0; - var $bits_21 = $bits_0; - __label__ = 144; - } else if (($49 | 0) == 16) { - var $next_26 = $next_0; - var $have_26 = $have_0; - var $hold_22 = $hold_0; - var $bits_22 = $bits_0; - while (1) { - var $bits_22; - var $hold_22; - var $have_26; - var $next_26; - var $cmp755 = $bits_22 >>> 0 < 14; - if (!$cmp755) { - break; - } - var $cmp759 = ($have_26 | 0) == 0; - if ($cmp759) { - var $ret_8 = $ret_0; - var $next_58 = $next_26; - var $have_58 = 0; - var $hold_54 = $hold_22; - var $bits_54 = $bits_22; - var $out_4 = $out_0; - break $_$12; - } - var $dec763 = $have_26 - 1 | 0; - var $incdec_ptr764 = $next_26 + 1 | 0; - var $121 = HEAPU8[$next_26]; - var $conv765 = $121 & 255; - var $shl766 = $conv765 << $bits_22; - var $add767 = $shl766 + $hold_22 | 0; - var $add768 = $bits_22 + 8 | 0; - var $next_26 = $incdec_ptr764; - var $have_26 = $dec763; - var $hold_22 = $add767; - var $bits_22 = $add768; - } - var $and774 = $hold_22 & 31; - var $add775 = $and774 + 257 | 0; - HEAP32[$37 >> 2] = $add775; - var $shr777 = $hold_22 >>> 5; - var $and781 = $shr777 & 31; - var $add782 = $and781 + 1 | 0; - HEAP32[$38 >> 2] = $add782; - var $shr784 = $hold_22 >>> 10; - var $and788 = $shr784 & 15; - var $add789 = $and788 + 4 | 0; - HEAP32[$39 >> 2] = $add789; - var $shr791 = $hold_22 >>> 14; - var $sub792 = $bits_22 - 14 | 0; - var $cmp796 = $add775 >>> 0 > 286; - var $cmp800 = $add782 >>> 0 > 30; - var $or_cond894 = $cmp796 | $cmp800; - if ($or_cond894) { - HEAP32[$msg >> 2] = STRING_TABLE.__str8105 | 0; - HEAP32[$mode >> 2] = 29; - var $ret_0_be = $ret_0; - var $next_0_be = $next_26; - var $put_0_be = $put_0; - var $have_0_be = $have_26; - var $left_0_be = $left_0; - var $hold_0_be = $shr791; - var $bits_0_be = $sub792; - var $out_0_be = $out_0; - __label__ = 268; - break; - } - HEAP32[$40 >> 2] = 0; - HEAP32[$mode >> 2] = 17; - var $next_27 = $next_26; - var $have_27 = $have_26; - var $hold_23 = $shr791; - var $bits_23 = $sub792; - __label__ = 154; - break; - } else if (($49 | 0) == 17) { - var $next_27 = $next_0; - var $have_27 = $have_0; - var $hold_23 = $hold_0; - var $bits_23 = $bits_0; - __label__ = 154; - } else if (($49 | 0) == 18) { - var $ret_1_ph = $ret_0; - var $next_29_ph = $next_0; - var $have_29_ph = $have_0; - var $hold_25_ph = $hold_0; - var $bits_25_ph = $bits_0; - __label__ = 164; - } else if (($49 | 0) == 19) { - var $ret_2 = $ret_0; - var $next_37 = $next_0; - var $have_37 = $have_0; - var $hold_33 = $hold_0; - var $bits_33 = $bits_0; - __label__ = 205; - } else if (($49 | 0) == 20) { - var $ret_3 = $ret_0; - var $next_38 = $next_0; - var $have_38 = $have_0; - var $hold_34 = $hold_0; - var $bits_34 = $bits_0; - __label__ = 206; - } else if (($49 | 0) == 21) { - var $_pre889 = HEAP32[$28 >> 2]; - var $ret_4 = $ret_0; - var $next_42 = $next_0; - var $have_42 = $have_0; - var $hold_38 = $hold_0; - var $bits_38 = $bits_0; - var $156 = $_pre889; - __label__ = 227; - break; - } else if (($49 | 0) == 22) { - var $ret_5_ph = $ret_0; - var $next_45_ph = $next_0; - var $have_45_ph = $have_0; - var $hold_41_ph = $hold_0; - var $bits_41_ph = $bits_0; - __label__ = 234; - } else if (($49 | 0) == 23) { - var $_pre891 = HEAP32[$28 >> 2]; - var $ret_6 = $ret_0; - var $next_48 = $next_0; - var $have_48 = $have_0; - var $hold_44 = $hold_0; - var $bits_44 = $bits_0; - var $167 = $_pre891; - __label__ = 248; - break; - } else if (($49 | 0) == 24) { - var $ret_7 = $ret_0; - var $next_51 = $next_0; - var $have_51 = $have_0; - var $hold_47 = $hold_0; - var $bits_47 = $bits_0; - __label__ = 254; - } else if (($49 | 0) == 25) { - var $cmp1615 = ($left_0 | 0) == 0; - if ($cmp1615) { - var $ret_8 = $ret_0; - var $next_58 = $next_0; - var $have_58 = $have_0; - var $hold_54 = $hold_0; - var $bits_54 = $bits_0; - var $out_4 = $out_0; - break $_$12; - } - var $186 = HEAP32[$21 >> 2]; - var $conv1620 = $186 & 255; - var $incdec_ptr1621 = $put_0 + 1 | 0; - HEAP8[$put_0] = $conv1620; - var $dec1622 = $left_0 - 1 | 0; - HEAP32[$mode >> 2] = 20; - var $ret_0_be = $ret_0; - var $next_0_be = $next_0; - var $put_0_be = $incdec_ptr1621; - var $have_0_be = $have_0; - var $left_0_be = $dec1622; - var $hold_0_be = $hold_0; - var $bits_0_be = $bits_0; - var $out_0_be = $out_0; - __label__ = 268; - break; - } else if (($49 | 0) == 26) { - var $187 = HEAP32[$15 >> 2]; - var $tobool1626 = ($187 | 0) == 0; - do { - if (!$tobool1626) { - var $next_52 = $next_0; - var $have_52 = $have_0; - var $hold_48 = $hold_0; - var $bits_48 = $bits_0; - while (1) { - var $bits_48; - var $hold_48; - var $have_52; - var $next_52; - var $cmp1630 = $bits_48 >>> 0 < 32; - if (!$cmp1630) { - break; - } - var $cmp1634 = ($have_52 | 0) == 0; - if ($cmp1634) { - var $ret_8 = $ret_0; - var $next_58 = $next_52; - var $have_58 = 0; - var $hold_54 = $hold_48; - var $bits_54 = $bits_48; - var $out_4 = $out_0; - break $_$12; - } - var $dec1638 = $have_52 - 1 | 0; - var $incdec_ptr1639 = $next_52 + 1 | 0; - var $188 = HEAPU8[$next_52]; - var $conv1640 = $188 & 255; - var $shl1641 = $conv1640 << $bits_48; - var $add1642 = $shl1641 + $hold_48 | 0; - var $add1643 = $bits_48 + 8 | 0; - var $next_52 = $incdec_ptr1639; - var $have_52 = $dec1638; - var $hold_48 = $add1642; - var $bits_48 = $add1643; - } - var $sub1649 = $out_0 - $left_0 | 0; - var $189 = HEAP32[$total_out >> 2]; - var $add1650 = $189 + $sub1649 | 0; - HEAP32[$total_out >> 2] = $add1650; - var $190 = HEAP32[$36 >> 2]; - var $add1651 = $190 + $sub1649 | 0; - HEAP32[$36 >> 2] = $add1651; - var $tobool1652 = ($out_0 | 0) == ($left_0 | 0); - if (!$tobool1652) { - var $191 = HEAP32[$17 >> 2]; - var $tobool1655 = ($191 | 0) == 0; - var $192 = HEAP32[$16 >> 2]; - var $idx_neg1658 = -$sub1649 | 0; - var $add_ptr1659 = $put_0 + $idx_neg1658 | 0; - if ($tobool1655) { - var $call1665 = _adler32($192, $add_ptr1659, $sub1649); - var $cond1667 = $call1665; - } else { - var $call1660 = _crc32($192, $add_ptr1659, $sub1649); - var $cond1667 = $call1660; - } - var $cond1667; - |