diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-10-25 18:18:28 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-10-25 18:18:28 -0700 |
commit | 74fcbe26d5e006617b61c6c1022249a1181c410a (patch) | |
tree | 9fd2cc1f51618afdf3d5b658b9dd898d60323ae8 | |
parent | 17c89bcff9cc6198cfd4ddd05a1151f295fe21ca (diff) |
add no-unsigned malloc test for eliminator
-rw-r--r-- | tools/eliminator/eliminator-test-output.js | 1651 | ||||
-rw-r--r-- | tools/eliminator/eliminator-test.js | 2626 |
2 files changed, 4275 insertions, 2 deletions
diff --git a/tools/eliminator/eliminator-test-output.js b/tools/eliminator/eliminator-test-output.js index 5a59e873..69bc3632 100644 --- a/tools/eliminator/eliminator-test-output.js +++ b/tools/eliminator/eliminator-test-output.js @@ -4486,4 +4486,1653 @@ function _malloc($bytes) { return $mem_0; return null; } -// EMSCRIPTEN_GENERATED_FUNCTIONS: ["a", "f", "g", "h", "py", "r", "t", "f2", "f3", "llvm3_1", "_inflate", "_malloc"] +function _mallocNoU($bytes) { + var __label__; + var $1 = $bytes >>> 0 < 245; + $_$2 : do { + if ($1) { + if ($bytes >>> 0 < 11) { + var $8 = 16; + } else { + var $8 = ($bytes + 11 | 0) & -8; + } + var $8; + var $9 = $8 >>> 3; + var $10 = HEAP32[(__gm_ | 0) >> 2]; + var $11 = $10 >>> ($9 >>> 0); + if (!(($11 & 3 | 0) == 0)) { + var $17 = ($11 & 1 ^ 1) + $9 | 0; + var $18 = $17 << 1; + var $20 = __gm_ + 40 + ($18 << 2) | 0; + var $21 = __gm_ + 40 + (($18 + 2 | 0) << 2) | 0; + var $22 = HEAP32[$21 >> 2]; + var $23 = $22 + 8 | 0; + var $24 = HEAP32[$23 >> 2]; + if (($20 | 0) == ($24 | 0)) { + HEAP32[(__gm_ | 0) >> 2] = $10 & (1 << $17 ^ -1); + } else { + if ($24 >>> 0 < HEAP32[(__gm_ + 16 | 0) >> 2] >>> 0) { + _abort(); + } else { + HEAP32[$21 >> 2] = $24; + HEAP32[($24 + 12 | 0) >> 2] = $20; + } + } + var $38 = $17 << 3; + HEAP32[($22 + 4 | 0) >> 2] = $38 | 3; + var $43 = $22 + ($38 | 4) | 0; + HEAP32[$43 >> 2] = HEAP32[$43 >> 2] | 1; + var $mem_0 = $23; + __label__ = 331; + break; + } + if (!($8 >>> 0 > HEAP32[(__gm_ + 8 | 0) >> 2] >>> 0)) { + var $nb_0 = $8; + __label__ = 155; + break; + } + if (!(($11 | 0) == 0)) { + var $54 = 2 << $9; + var $57 = $11 << $9 & ($54 | (-$54 | 0)); + var $60 = ($57 & (-$57 | 0)) - 1 | 0; + var $62 = $60 >>> 12 & 16; + var $63 = $60 >>> ($62 >>> 0); + var $65 = $63 >>> 5 & 8; + var $66 = $63 >>> ($65 >>> 0); + var $68 = $66 >>> 2 & 4; + var $69 = $66 >>> ($68 >>> 0); + var $71 = $69 >>> 1 & 2; + var $72 = $69 >>> ($71 >>> 0); + var $74 = $72 >>> 1 & 1; + var $80 = ($65 | $62 | $68 | $71 | $74) + ($72 >>> ($74 >>> 0)) | 0; + var $81 = $80 << 1; + var $83 = __gm_ + 40 + ($81 << 2) | 0; + var $84 = __gm_ + 40 + (($81 + 2 | 0) << 2) | 0; + var $85 = HEAP32[$84 >> 2]; + var $86 = $85 + 8 | 0; + var $87 = HEAP32[$86 >> 2]; + if (($83 | 0) == ($87 | 0)) { + HEAP32[(__gm_ | 0) >> 2] = $10 & (1 << $80 ^ -1); + } else { + if ($87 >>> 0 < HEAP32[(__gm_ + 16 | 0) >> 2] >>> 0) { + _abort(); + } else { + HEAP32[$84 >> 2] = $87; + HEAP32[($87 + 12 | 0) >> 2] = $83; + } + } + var $101 = $80 << 3; + var $102 = $101 - $8 | 0; + HEAP32[($85 + 4 | 0) >> 2] = $8 | 3; + var $105 = $85; + var $107 = $105 + $8 | 0; + HEAP32[($105 + ($8 | 4) | 0) >> 2] = $102 | 1; + HEAP32[($105 + $101 | 0) >> 2] = $102; + var $113 = HEAP32[(__gm_ + 8 | 0) >> 2]; + if (!(($113 | 0) == 0)) { + var $116 = HEAP32[(__gm_ + 20 | 0) >> 2]; + var $119 = $113 >>> 2 & 1073741822; + var $121 = __gm_ + 40 + ($119 << 2) | 0; + var $122 = HEAP32[(__gm_ | 0) >> 2]; + var $123 = 1 << ($113 >>> 3); + var $125 = ($122 & $123 | 0) == 0; + do { + if ($125) { + HEAP32[(__gm_ | 0) >> 2] = $122 | $123; + var $F4_0 = $121; + var $_pre_phi = __gm_ + 40 + (($119 + 2 | 0) << 2) | 0; + } else { + var $129 = __gm_ + 40 + (($119 + 2 | 0) << 2) | 0; + var $130 = HEAP32[$129 >> 2]; + if (!($130 >>> 0 < HEAP32[(__gm_ + 16 | 0) >> 2] >>> 0)) { + var $F4_0 = $130; + var $_pre_phi = $129; + break; + } + _abort(); + } + } while (0); + var $_pre_phi; + var $F4_0; + HEAP32[$_pre_phi >> 2] = $116; + HEAP32[($F4_0 + 12 | 0) >> 2] = $116; + HEAP32[($116 + 8 | 0) >> 2] = $F4_0; + HEAP32[($116 + 12 | 0) >> 2] = $121; + } + HEAP32[(__gm_ + 8 | 0) >> 2] = $102; + HEAP32[(__gm_ + 20 | 0) >> 2] = $107; + var $mem_0 = $86; + __label__ = 331; + break; + } + var $142 = HEAP32[(__gm_ + 4 | 0) >> 2]; + if (($142 | 0) == 0) { + var $nb_0 = $8; + __label__ = 155; + break; + } + var $147 = ($142 & (-$142 | 0)) - 1 | 0; + var $149 = $147 >>> 12 & 16; + var $150 = $147 >>> ($149 >>> 0); + var $152 = $150 >>> 5 & 8; + var $153 = $150 >>> ($152 >>> 0); + var $155 = $153 >>> 2 & 4; + var $156 = $153 >>> ($155 >>> 0); + var $158 = $156 >>> 1 & 2; + var $159 = $156 >>> ($158 >>> 0); + var $161 = $159 >>> 1 & 1; + var $169 = HEAP32[(__gm_ + 304 + ((($152 | $149 | $155 | $158 | $161) + ($159 >>> ($161 >>> 0)) | 0) << 2) | 0) >> 2]; + var $t_0_i = $169; + var $v_0_i = $169; + var $rsize_0_i = (HEAP32[($169 + 4 | 0) >> 2] & -8) - $8 | 0; + while (1) { + var $rsize_0_i; + var $v_0_i; + var $t_0_i; + var $176 = HEAP32[($t_0_i + 16 | 0) >> 2]; + if (($176 | 0) == 0) { + var $180 = HEAP32[($t_0_i + 20 | 0) >> 2]; + if (($180 | 0) == 0) { + break; + } + var $182 = $180; + } else { + var $182 = $176; + } + var $182; + var $186 = (HEAP32[($182 + 4 | 0) >> 2] & -8) - $8 | 0; + var $187 = $186 >>> 0 < $rsize_0_i >>> 0; + var $t_0_i = $182; + var $v_0_i = $187 ? $182 : $v_0_i; + var $rsize_0_i = $187 ? $186 : $rsize_0_i; + } + var $189 = $v_0_i; + var $190 = HEAP32[(__gm_ + 16 | 0) >> 2]; + var $191 = $189 >>> 0 < $190 >>> 0; + do { + if (!$191) { + var $193 = $189 + $8 | 0; + var $194 = $193; + if (!($189 >>> 0 < $193 >>> 0)) { + break; + } + var $198 = HEAP32[($v_0_i + 24 | 0) >> 2]; + var $200 = HEAP32[($v_0_i + 12 | 0) >> 2]; + var $201 = ($200 | 0) == ($v_0_i | 0); + do { + if ($201) { + var $212 = $v_0_i + 20 | 0; + var $213 = HEAP32[$212 >> 2]; + if (($213 | 0) == 0) { + var $216 = $v_0_i + 16 | 0; + var $217 = HEAP32[$216 >> 2]; + if (($217 | 0) == 0) { + var $R_1_i = 0; + break; + } + var $RP_0_i = $216; + var $R_0_i = $217; + } else { + var $RP_0_i = $212; + var $R_0_i = $213; + __label__ = 39; + } + while (1) { + var $R_0_i; + var $RP_0_i; + var $219 = $R_0_i + 20 | 0; + var $220 = HEAP32[$219 >> 2]; + if (!(($220 | 0) == 0)) { + var $RP_0_i = $219; + var $R_0_i = $220; + continue; + } + var $223 = $R_0_i + 16 | 0; + var $224 = HEAP32[$223 >> 2]; + if (($224 | 0) == 0) { + break; + } + var $RP_0_i = $223; + var $R_0_i = $224; + } + if ($RP_0_i >>> 0 < $190 >>> 0) { + _abort(); + } else { + HEAP32[$RP_0_i >> 2] = 0; + var $R_1_i = $R_0_i; + } + } else { + var $204 = HEAP32[($v_0_i + 8 | 0) >> 2]; + if ($204 >>> 0 < $190 >>> 0) { + _abort(); + } else { + HEAP32[($204 + 12 | 0) >> 2] = $200; + HEAP32[($200 + 8 | 0) >> 2] = $204; + var $R_1_i = $200; + } + } + } while (0); + var $R_1_i; + var $232 = ($198 | 0) == 0; + $_$62 : do { + if (!$232) { + var $234 = $v_0_i + 28 | 0; + var $236 = __gm_ + 304 + (HEAP32[$234 >> 2] << 2) | 0; + var $238 = ($v_0_i | 0) == (HEAP32[$236 >> 2] | 0); + do { + if ($238) { + HEAP32[$236 >> 2] = $R_1_i; + if (!(($R_1_i | 0) == 0)) { + break; + } + HEAP32[(__gm_ + 4 | 0) >> 2] = HEAP32[(__gm_ + 4 | 0) >> 2] & (1 << HEAP32[$234 >> 2] ^ -1); + break $_$62; + } + if ($198 >>> 0 < HEAP32[(__gm_ + 16 | 0) >> 2] >>> 0) { + _abort(); + } else { + var $250 = $198 + 16 | 0; + if ((HEAP32[$250 >> 2] | 0) == ($v_0_i | 0)) { + HEAP32[$250 >> 2] = $R_1_i; + } else { + HEAP32[($198 + 20 | 0) >> 2] = $R_1_i; + } + if (($R_1_i | 0) == 0) { + break $_$62; + } + } + } while (0); + if ($R_1_i >>> 0 < HEAP32[(__gm_ + 16 | 0) >> 2] >>> 0) { + _abort(); + } else { + HEAP32[($R_1_i + 24 | 0) >> 2] = $198; + var $266 = HEAP32[($v_0_i + 16 | 0) >> 2]; + if (!(($266 | 0) == 0)) { + if ($266 >>> 0 < HEAP32[(__gm_ + 16 | 0) >> 2] >>> 0) { + _abort(); + } else { + HEAP32[($R_1_i + 16 | 0) >> 2] = $266; + HEAP32[($266 + 24 | 0) >> 2] = $R_1_i; + } + } + var $278 = HEAP32[($v_0_i + 20 | 0) >> 2]; + if (($278 | 0) == 0) { + break; + } + if ($278 >>> 0 < HEAP32[(__gm_ + 16 | 0) >> 2] >>> 0) { + _abort(); + } else { + HEAP32[($R_1_i + 20 | 0) >> 2] = $278; + HEAP32[($278 + 24 | 0) >> 2] = $R_1_i; + } + } + } + } while (0); + if ($rsize_0_i >>> 0 < 16) { + var $292 = $rsize_0_i + $8 | 0; + HEAP32[($v_0_i + 4 | 0) >> 2] = $292 | 3; + var $296 = $189 + ($292 + 4 | 0) | 0; + HEAP32[$296 >> 2] = HEAP32[$296 >> 2] | 1; + } else { + HEAP32[($v_0_i + 4 | 0) >> 2] = $8 | 3; + HEAP32[($189 + ($8 | 4) | 0) >> 2] = $rsize_0_i | 1; + HEAP32[($189 + ($rsize_0_i + $8 | 0) | 0) >> 2] = $rsize_0_i; + var $307 = HEAP32[(__gm_ + 8 | 0) >> 2]; + if (!(($307 | 0) == 0)) { + var $310 = HEAP32[(__gm_ + 20 | 0) >> 2]; + var $313 = $307 >>> 2 & 1073741822; + var $315 = __gm_ + 40 + ($313 << 2) | 0; + var $316 = HEAP32[(__gm_ | 0) >> 2]; + var $317 = 1 << ($307 >>> 3); + var $319 = ($316 & $317 | 0) == 0; + do { + if ($319) { + HEAP32[(__gm_ | 0) >> 2] = $316 | $317; + var $F1_0_i = $315; + var $_pre_phi_i = __gm_ + 40 + (($313 + 2 | 0) << 2) | 0; + } else { + var $323 = __gm_ + 40 + (($313 + 2 | 0) << 2) | 0; + var $324 = HEAP32[$323 >> 2]; + if (!($324 >>> 0 < HEAP32[(__gm_ + 16 | 0) >> 2] >>> 0)) { + var $F1_0_i = $324; + var $_pre_phi_i = $323; + break; + } + _abort(); + } + } while (0); + var $_pre_phi_i; + var $F1_0_i; + HEAP32[$_pre_phi_i >> 2] = $310; + HEAP32[($F1_0_i + 12 | 0) >> 2] = $310; + HEAP32[($310 + 8 | 0) >> 2] = $F1_0_i; + HEAP32[($310 + 12 | 0) >> 2] = $315; + } + HEAP32[(__gm_ + 8 | 0) >> 2] = $rsize_0_i; + HEAP32[(__gm_ + 20 | 0) >> 2] = $194; + } + var $335 = $v_0_i + 8 | 0; + if (($335 | 0) == 0) { + var $nb_0 = $8; + __label__ = 155; + break $_$2; + } + var $mem_0 = $335; + __label__ = 331; + break $_$2; + } + } while (0); + _abort(); + } else { + if ($bytes >>> 0 > 4294967231) { + var $nb_0 = -1; + __label__ = 155; + break; + } + var $341 = $bytes + 11 | 0; + var $342 = $341 & -8; + var $343 = HEAP32[(__gm_ + 4 | 0) >> 2]; + if (($343 | 0) == 0) { + var $nb_0 = $342; + __label__ = 155; + break; + } + var $346 = -$342 | 0; + var $347 = $341 >>> 8; + var $348 = ($347 | 0) == 0; + do { + if ($348) { + var $idx_0_i = 0; + } else { + if ($342 >>> 0 > 16777215) { + var $idx_0_i = 31; + break; + } + var $354 = ($347 + 1048320 | 0) >>> 16 & 8; + var $355 = $347 << $354; + var $358 = ($355 + 520192 | 0) >>> 16 & 4; + var $359 = $355 << $358; + var $362 = ($359 + 245760 | 0) >>> 16 & 2; + var $368 = (14 - ($358 | $354 | $362) | 0) + ($359 << $362 >>> 15) | 0; + var $idx_0_i = $342 >>> (($368 + 7 | 0) >>> 0) & 1 | $368 << 1; + } + } while (0); + var $idx_0_i; + var $376 = HEAP32[(__gm_ + 304 + ($idx_0_i << 2) | 0) >> 2]; + var $377 = ($376 | 0) == 0; + $_$110 : do { + if ($377) { + var $v_2_i = 0; + var $rsize_2_i = $346; + var $t_1_i = 0; + } else { + if (($idx_0_i | 0) == 31) { + var $384 = 0; + } else { + var $384 = 25 - ($idx_0_i >>> 1) | 0; + } + var $384; + var $v_0_i15 = 0; + var $rsize_0_i14 = $346; + var $t_0_i13 = $376; + var $sizebits_0_i = $342 << $384; + var $rst_0_i = 0; + while (1) { + var $rst_0_i; + var $sizebits_0_i; + var $t_0_i13; + var $rsize_0_i14; + var $v_0_i15; + var $389 = HEAP32[($t_0_i13 + 4 | 0) >> 2] & -8; + var $390 = $389 - $342 | 0; + if ($390 >>> 0 < $rsize_0_i14 >>> 0) { + if (($389 | 0) == ($342 | 0)) { + var $v_2_i = $t_0_i13; + var $rsize_2_i = $390; + var $t_1_i = $t_0_i13; + break $_$110; + } + var $v_1_i = $t_0_i13; + var $rsize_1_i = $390; + } else { + var $v_1_i = $v_0_i15; + var $rsize_1_i = $rsize_0_i14; + } + var $rsize_1_i; + var $v_1_i; + var $396 = HEAP32[($t_0_i13 + 20 | 0) >> 2]; + var $399 = HEAP32[($t_0_i13 + 16 + ($sizebits_0_i >>> 31 << 2) | 0) >> 2]; + var $rst_1_i = ($396 | 0) == 0 | ($396 | 0) == ($399 | 0) ? $rst_0_i : $396; + if (($399 | 0) == 0) { + var $v_2_i = $v_1_i; + var $rsize_2_i = $rsize_1_i; + var $t_1_i = $rst_1_i; + break $_$110; + } + var $v_0_i15 = $v_1_i; + var $rsize_0_i14 = $rsize_1_i; + var $t_0_i13 = $399; + var $sizebits_0_i = $sizebits_0_i << 1; + var $rst_0_i = $rst_1_i; + } + } + } while (0); + var $t_1_i; + var $rsize_2_i; + var $v_2_i; + if (($t_1_i | 0) == 0 & ($v_2_i | 0) == 0) { + var $407 = 2 << $idx_0_i; + var $410 = $343 & ($407 | (-$407 | 0)); + if (($410 | 0) == 0) { + var $nb_0 = $342; + __label__ = 155; + break; + } + var $415 = ($410 & (-$410 | 0)) - 1 | 0; + var $417 = $415 >>> 12 & 16; + var $418 = $415 >>> ($417 >>> 0); + var $420 = $418 >>> 5 & 8; + var $421 = $418 >>> ($420 >>> 0); + var $423 = $421 >>> 2 & 4; + var $424 = $421 >>> ($423 >>> 0); + var $426 = $424 >>> 1 & 2; + var $427 = $424 >>> ($426 >>> 0); + var $429 = $427 >>> 1 & 1; + var $t_2_ph_i = HEAP32[(__gm_ + 304 + ((($420 | $417 | $423 | $426 | $429) + ($427 >>> ($429 >>> 0)) | 0) << 2) | 0) >> 2]; + } else { + var $t_2_ph_i = $t_1_i; + } + var $t_2_ph_i; + var $438 = ($t_2_ph_i | 0) == 0; + $_$125 : do { + if ($438) { + var $rsize_3_lcssa_i = $rsize_2_i; + var $v_3_lcssa_i = $v_2_i; + } else { + var $t_224_i = $t_2_ph_i; + var $rsize_325_i = $rsize_2_i; + var $v_326_i = $v_2_i; + while (1) { + var $v_326_i; + var $rsize_325_i; + var $t_224_i; + var $442 = (HEAP32[($t_224_i + 4 | 0) >> 2] & -8) - $342 | 0; + var $443 = $442 >>> 0 < $rsize_325_i >>> 0; + var $_rsize_3_i = $443 ? $442 : $rsize_325_i; + var $t_2_v_3_i = $443 ? $t_224_i : $v_326_i; + var $445 = HEAP32[($t_224_i + 16 | 0) >> 2]; + if (!(($445 | 0) == 0)) { + var $t_224_i = $445; + var $rsize_325_i = $_rsize_3_i; + var $v_326_i = $t_2_v_3_i; + continue; + } + var $448 = HEAP32[($t_224_i + 20 | 0) >> 2]; + if (($448 | 0) == 0) { + var $rsize_3_lcssa_i = $_rsize_3_i; + var $v_3_lcssa_i = $t_2_v_3_i; + break $_$125; + } + var $t_224_i = $448; + var $rsize_325_i = $_rsize_3_i; + var $v_326_i = $t_2_v_3_i; + } + } + } while (0); + var $v_3_lcssa_i; + var $rsize_3_lcssa_i; + if (($v_3_lcssa_i | 0) == 0) { + var $nb_0 = $342; + __label__ = 155; + break; + } + if (!($rsize_3_lcssa_i >>> 0 < (HEAP32[(__gm_ + 8 | 0) >> 2] - $342 | 0) >>> 0)) { + var $nb_0 = $342; + __label__ = 155; + break; + } + var $456 = $v_3_lcssa_i; + var $457 = HEAP32[(__gm_ + 16 | 0) >> 2]; + var $458 = $456 >>> 0 < $457 >>> 0; + do { + if (!$458) { + var $460 = $456 + $342 | 0; + var $461 = $460; + if (!($456 >>> 0 < $460 >>> 0)) { + break; + } + var $465 = HEAP32[($v_3_lcssa_i + 24 | 0) >> 2]; + var $467 = HEAP32[($v_3_lcssa_i + 12 | 0) >> 2]; + var $468 = ($467 | 0) == ($v_3_lcssa_i | 0); + do { + if ($468) { + var $479 = $v_3_lcssa_i + 20 | 0; + var $480 = HEAP32[$479 >> 2]; + if (($480 | 0) == 0) { + var $483 = $v_3_lcssa_i + 16 | 0; + var $484 = HEAP32[$483 >> 2]; + if (($484 | 0) == 0) { + var $R_1_i19 = 0; + break; + } + var $RP_0_i17 = $483; + var $R_0_i16 = $484; + } else { + var $RP_0_i17 = $479; + var $R_0_i16 = $480; + __label__ = 103; + } + while (1) { + var $R_0_i16; + var $RP_0_i17; + var $486 = $R_0_i16 + 20 | 0; + var $487 = HEAP32[$486 >> 2]; + if (!(($487 | 0) == 0)) { + var $RP_0_i17 = $486; + var $R_0_i16 = $487; + continue; + } + var $490 = $R_0_i16 + 16 | 0; + var $491 = HEAP32[$490 >> 2]; + if (($491 | 0) == 0) { + break; + } + var $RP_0_i17 = $490; + var $R_0_i16 = $491; + } + if ($RP_0_i17 >>> 0 < $457 >>> 0) { + _abort(); + } else { + HEAP32[$RP_0_i17 >> 2] = 0; + var $R_1_i19 = $R_0_i16; + } + } else { + var $471 = HEAP32[($v_3_lcssa_i + 8 | 0) >> 2]; + if ($471 >>> 0 < $457 >>> 0) { + _abort(); + } else { + HEAP32[($471 + 12 | 0) >> 2] = $467; + HEAP32[($467 + 8 | 0) >> 2] = $471; + var $R_1_i19 = $467; + } + } + } while (0); + var $R_1_i19; + var $499 = ($465 | 0) == 0; + $_$151 : do { + if (!$499) { + var $501 = $v_3_lcssa_i + 28 | 0; + var $503 = __gm_ + 304 + (HEAP32[$501 >> 2] << 2) | 0; + var $505 = ($v_3_lcssa_i | 0) == (HEAP32[$503 >> 2] | 0); + do { + if ($505) { + HEAP32[$503 >> 2] = $R_1_i19; + if (!(($R_1_i19 | 0) == 0)) { + break; + } + HEAP32[(__gm_ + 4 | 0) >> 2] = HEAP32[(__gm_ + 4 | 0) >> 2] & (1 << HEAP32[$501 >> 2] ^ -1); + break $_$151; + } + if ($465 >>> 0 < HEAP32[(__gm_ + 16 | 0) >> 2] >>> 0) { + _abort(); + } else { + var $517 = $465 + 16 | 0; + if ((HEAP32[$517 >> 2] | 0) == ($v_3_lcssa_i | 0)) { + HEAP32[$517 >> 2] = $R_1_i19; + } else { + HEAP32[($465 + 20 | 0) >> 2] = $R_1_i19; + } + if (($R_1_i19 | 0) == 0) { + break $_$151; + } + } + } while (0); + if ($R_1_i19 >>> 0 < HEAP32[(__gm_ + 16 | 0) >> 2] >>> 0) { + _abort(); + } else { + HEAP32[($R_1_i19 + 24 | 0) >> 2] = $465; + var $533 = HEAP32[($v_3_lcssa_i + 16 | 0) >> 2]; + if (!(($533 | 0) == 0)) { + if ($533 >>> 0 < HEAP32[(__gm_ + 16 | 0) >> 2] >>> 0) { + _abort(); + } else { + HEAP32[($R_1_i19 + 16 | 0) >> 2] = $533; + HEAP32[($533 + 24 | 0) >> 2] = $R_1_i19; + } + } + var $545 = HEAP32[($v_3_lcssa_i + 20 | 0) >> 2]; + if (($545 | 0) == 0) { + break; + } + if ($545 >>> 0 < HEAP32[(__gm_ + 16 | 0) >> 2] >>> 0) { + _abort(); + } else { + HEAP32[($R_1_i19 + 20 | 0) >> 2] = $545; + HEAP32[($545 + 24 | 0) >> 2] = $R_1_i19; + } + } + } + } while (0); + var $557 = $rsize_3_lcssa_i >>> 0 < 16; + $_$179 : do { + if ($557) { + var $559 = $rsize_3_lcssa_i + $342 | 0; + HEAP32[($v_3_lcssa_i + 4 | 0) >> 2] = $559 | 3; + var $563 = $456 + ($559 + 4 | 0) | 0; + HEAP32[$563 >> 2] = HEAP32[$563 >> 2] | 1; + } else { + HEAP32[($v_3_lcssa_i + 4 | 0) >> 2] = $342 | 3; + HEAP32[($456 + ($342 | 4) | 0) >> 2] = $rsize_3_lcssa_i | 1; + HEAP32[($456 + ($rsize_3_lcssa_i + $342 | 0) | 0) >> 2] = $rsize_3_lcssa_i; + if ($rsize_3_lcssa_i >>> 0 < 256) { + var $578 = $rsize_3_lcssa_i >>> 2 & 1073741822; + var $580 = __gm_ + 40 + ($578 << 2) | 0; + var $581 = HEAP32[(__gm_ | 0) >> 2]; + var $582 = 1 << ($rsize_3_lcssa_i >>> 3); + var $584 = ($581 & $582 | 0) == 0; + do { + if ($584) { + HEAP32[(__gm_ | 0) >> 2] = $581 | $582; + var $F5_0_i = $580; + var $_pre_phi_i25 = __gm_ + 40 + (($578 + 2 | 0) << 2) | 0; + } else { + var $588 = __gm_ + 40 + (($578 + 2 | 0) << 2) | 0; + var $589 = HEAP32[$588 >> 2]; + if (!($589 >>> 0 < HEAP32[(__gm_ + 16 | 0) >> 2] >>> 0)) { + var $F5_0_i = $589; + var $_pre_phi_i25 = $588; + break; + } + _abort(); + } + } while (0); + var $_pre_phi_i25; + var $F5_0_i; + HEAP32[$_pre_phi_i25 >> 2] = $461; + HEAP32[($F5_0_i + 12 | 0) >> 2] = $461; + HEAP32[($456 + ($342 + 8 | 0) | 0) >> 2] = $F5_0_i; + HEAP32[($456 + ($342 + 12 | 0) | 0) >> 2] = $580; + } else { + var $601 = $460; + var $602 = $rsize_3_lcssa_i >>> 8; + var $603 = ($602 | 0) == 0; + do { + if ($603) { + var $I7_0_i = 0; + } else { + if ($rsize_3_lcssa_i >>> 0 > 16777215) { + var $I7_0_i = 31; + break; + } + var $609 = ($602 + 1048320 | 0) >>> 16 & 8; + var $610 = $602 << $609; + var $613 = ($610 + 520192 | 0) >>> 16 & 4; + var $614 = $610 << $613; + var $617 = ($614 + 245760 | 0) >>> 16 & 2; + var $623 = (14 - ($613 | $609 | $617) | 0) + ($614 << $617 >>> 15) | 0; + var $I7_0_i = $rsize_3_lcssa_i >>> (($623 + 7 | 0) >>> 0) & 1 | $623 << 1; + } + } while (0); + var $I7_0_i; + var $630 = __gm_ + 304 + ($I7_0_i << 2) | 0; + HEAP32[($456 + ($342 + 28 | 0) | 0) >> 2] = $I7_0_i; + HEAP32[($456 + ($342 + 20 | 0) | 0) >> 2] = 0; + HEAP32[($456 + ($342 + 16 | 0) | 0) >> 2] = 0; + var $637 = HEAP32[(__gm_ + 4 | 0) >> 2]; + var $638 = 1 << $I7_0_i; + if (($637 & $638 | 0) == 0) { + HEAP32[(__gm_ + 4 | 0) >> 2] = $637 | $638; + HEAP32[$630 >> 2] = $601; + HEAP32[($456 + ($342 + 24 | 0) | 0) >> 2] = $630; + HEAP32[($456 + ($342 + 12 | 0) | 0) >> 2] = $601; + HEAP32[($456 + ($342 + 8 | 0) | 0) >> 2] = $601; + } else { + if (($I7_0_i | 0) == 31) { + var $657 = 0; + } else { + var $657 = 25 - ($I7_0_i >>> 1) | 0; + } + var $657; + var $K12_0_i = $rsize_3_lcssa_i << $657; + var $T_0_i = HEAP32[$630 >> 2]; + while (1) { + var $T_0_i; + var $K12_0_i; + if ((HEAP32[($T_0_i + 4 | 0) >> 2] & -8 | 0) == ($rsize_3_lcssa_i | 0)) { + var $683 = $T_0_i + 8 | 0; + var $684 = HEAP32[$683 >> 2]; + var $686 = HEAP32[(__gm_ + 16 | 0) >> 2]; + var $687 = $T_0_i >>> 0 < $686 >>> 0; + do { + if (!$687) { + if ($684 >>> 0 < $686 >>> 0) { + break; + } + HEAP32[($684 + 12 | 0) >> 2] = $601; + HEAP32[$683 >> 2] = $601; + HEAP32[($456 + ($342 + 8 | 0) | 0) >> 2] = $684; + HEAP32[($456 + ($342 + 12 | 0) | 0) >> 2] = $T_0_i; + HEAP32[($456 + ($342 + 24 | 0) | 0) >> 2] = 0; + break $_$179; + } + } while (0); + _abort(); + } else { + var $666 = $T_0_i + 16 + ($K12_0_i >>> 31 << 2) | 0; + var $667 = HEAP32[$666 >> 2]; + if (!(($667 | 0) == 0)) { + var $K12_0_i = $K12_0_i << 1; + var $T_0_i = $667; + continue; + } + if (!($666 >>> 0 < HEAP32[(__gm_ + 16 | 0) >> 2] >>> 0)) { + HEAP32[$666 >> 2] = $601; + HEAP32[($456 + ($342 + 24 | 0) | 0) >> 2] = $T_0_i; + HEAP32[($456 + ($342 + 12 | 0) | 0) >> 2] = $601; + HEAP32[($456 + ($342 + 8 | 0) | 0) >> 2] = $601; + break $_$179; + } + _abort(); + } + } + } + } + } + } while (0); + var $700 = $v_3_lcssa_i + 8 | 0; + if (($700 | 0) == 0) { + var $nb_0 = $342; + __label__ = 155; + break $_$2; + } + var $mem_0 = $700; + __label__ = 331; + break $_$2; + } + } while (0); + _abort(); + } + } while (0); + $_$215 : do { + if (__label__ == 155) { + var $nb_0; + var $703 = HEAP32[(__gm_ + 8 | 0) >> 2]; + if ($nb_0 >>> 0 > $703 >>> 0) { + var $732 = HEAP32[(__gm_ + 12 | 0) >> 2]; + if ($nb_0 >>> 0 < $732 >>> 0) { + var $735 = $732 - $nb_0 | 0; + HEAP32[(__gm_ + 12 | 0) >> 2] = $735; + var $736 = HEAP32[(__gm_ + 24 | 0) >> 2]; + var $737 = $736; + HEAP32[(__gm_ + 24 | 0) >> 2] = $737 + $nb_0 | 0; + HEAP32[($737 + ($nb_0 + 4 | 0) | 0) >> 2] = $735 | 1; + HEAP32[($736 + 4 | 0) >> 2] = $nb_0 | 3; + var $mem_0 = $736 + 8 | 0; + } else { + var $749 = (HEAP32[(_mparams | 0) >> 2] | 0) == 0; + do { + if ($749) { + if (!((HEAP32[(_mparams | 0) >> 2] | 0) == 0)) { + break; + } + var $754 = _sysconf(8); + if ((($754 - 1 | 0) & $754 | 0) == 0) { + HEAP32[(_mparams + 8 | 0) >> 2] = $754; + HEAP32[(_mparams + 4 | 0) >> 2] = $754; + HEAP32[(_mparams + 12 | 0) >> 2] = -1; + HEAP32[(_mparams + 16 | 0) >> 2] = 2097152; + HEAP32[(_mparams + 20 | 0) >> 2] = 0; + HEAP32[(__gm_ + 440 | 0) >> 2] = 0; + HEAP32[(_mparams | 0) >> 2] = _time(0) & -16 ^ 1431655768; + } else { + _abort(); + } + } + } while (0); + var $765 = (HEAP32[(__gm_ + 440 | 0) >> 2] & 4 | 0) == 0; + $_$234 : do { + if ($765) { + var $767 = HEAP32[(__gm_ + 24 | 0) >> 2]; + var $768 = ($767 | 0) == 0; + $_$236 : do { + if (!$768) { + var $770 = $767; + var $sp_0_i_i = __gm_ + 444 | 0; + while (1) { + var $sp_0_i_i; + var $772 = $sp_0_i_i | 0; + var $773 = HEAP32[$772 >> 2]; + if (!($773 >>> 0 > $770 >>> 0)) { + var $776 = $sp_0_i_i + 4 | 0; + if (($773 + HEAP32[$776 >> 2] | 0) >>> 0 > $770 >>> 0) { + break; + } + } + var $782 = HEAP32[($sp_0_i_i + 8 | 0) >> 2]; + if (($782 | 0) == 0) { + __label__ = 174; + break $_$236; + } + var $sp_0_i_i = $782; + } + if (($sp_0_i_i | 0) == 0) { + __label__ = 174; + break; + } + var $811 = HEAP32[(_mparams + 8 | 0) >> 2]; + var $816 = ((($nb_0 + 47 | 0) - HEAP32[(__gm_ + 12 | 0) >> 2] | 0) + $811 | 0) & (-$811 | 0); + if (!($816 >>> 0 < 2147483647)) { + var $tsize_0242932_ph_i = 0; + __label__ = 189; + break; + } + var $819 = _sbrk($816); + var $823 = ($819 | 0) == (HEAP32[$772 >> 2] + HEAP32[$776 >> 2] | 0 | 0); + var $tbase_0_i = $823 ? $819 : -1; + var $tsize_0_i = $823 ? $816 : 0; + var $asize_1_i = $816; + var $br_0_i = $819; + __label__ = 181; + break; + } + __label__ = 174; + } while (0); + do { + if (__label__ == 174) { + var $785 = _sbrk(0); + if (($785 | 0) == -1) { + var $tsize_0242932_ph_i = 0; + __label__ = 189; + break; + } + var $788 = HEAP32[(_mparams + 8 | 0) >> 2]; + var $792 = (($nb_0 + 47 | 0) + $788 | 0) & (-$788 | 0); + var $793 = $785; + var $794 = HEAP32[(_mparams + 4 | 0) >> 2]; + var $795 = $794 - 1 | 0; + if (($795 & $793 | 0) == 0) { + var $asize_0_i = $792; + } else { + var $asize_0_i = ($792 - $793 | 0) + (($795 + $793 | 0) & (-$794 | 0)) | 0; + } + var $asize_0_i; + if (!($asize_0_i >>> 0 < 2147483647)) { + var $tsize_0242932_ph_i = 0; + __label__ = 189; + break; + } + var $807 = _sbrk($asize_0_i); + var $808 = ($807 | 0) == ($785 | 0); + var $tbase_0_i = $808 ? $785 : -1; + var $tsize_0_i = $808 ? $asize_0_i : 0; + var $asize_1_i = $asize_0_i; + var $br_0_i = $807; + __label__ = 181; + break; + } + } while (0); + $_$253 : do { + if (__label__ == 181) { + var $br_0_i; + var $asize_1_i; + var $tsize_0_i; + var $tbase_0_i; + var $825 = -$asize_1_i | 0; + if (!(($tbase_0_i | 0) == -1)) { + var $tsize_242_i = $tsize_0_i; + var $tbase_243_i = $tbase_0_i; + __label__ = 194; + break $_$234; + } + var $or_cond_i28 = ($br_0_i | 0) != -1 & $asize_1_i >>> 0 < 2147483647; + do { + if ($or_cond_i28) { + if (!($asize_1_i >>> 0 < ($nb_0 + 48 | 0) >>> 0)) { + var $asize_2_i = $asize_1_i; + break; + } + var $834 = HEAP32[(_mparams + 8 | 0) >> 2]; + var $839 = ((($nb_0 + 47 | 0) - $asize_1_i | 0) + $834 | 0) & (-$834 | 0); + if (!($839 >>> 0 < 2147483647)) { + var $asize_2_i = $asize_1_ |