diff options
-rw-r--r-- | src/cfg/Relooper.cpp | 7 | ||||
-rw-r--r-- | src/passes/ReReloop.cpp | 3 | ||||
-rw-r--r-- | src/passes/Vacuum.cpp | 63 | ||||
-rw-r--r-- | src/tools/wasm-opt.cpp | 73 | ||||
-rw-r--r-- | src/wasm-validator.h | 21 | ||||
-rw-r--r-- | test/emcc_hello_world.fromasm | 4955 | ||||
-rw-r--r-- | test/emcc_hello_world.fromasm.clamp | 4955 | ||||
-rw-r--r-- | test/emcc_hello_world.fromasm.imprecise | 4947 | ||||
-rw-r--r-- | test/example/c-api-kitchen-sink.c | 3 | ||||
-rw-r--r-- | test/passes/precompute_coalesce-locals_vacuum.txt | 5 | ||||
-rw-r--r-- | test/passes/remove-unused-brs_precompute_vacuum_remove-unused-brs.txt | 12 | ||||
-rw-r--r-- | test/passes/remove-unused-names_vacuum.txt | 1 | ||||
-rw-r--r-- | test/passes/rereloop.txt | 47 | ||||
-rw-r--r-- | test/passes/rereloop.wast | 21 | ||||
-rw-r--r-- | test/passes/vacuum.txt | 58 | ||||
-rw-r--r-- | test/unreachable-import_wasm-only.fromasm | 12 | ||||
-rw-r--r-- | test/unreachable-import_wasm-only.fromasm.clamp | 12 | ||||
-rw-r--r-- | test/unreachable-import_wasm-only.fromasm.imprecise | 12 | ||||
-rw-r--r-- | test/wasm-only.fromasm | 1 | ||||
-rw-r--r-- | test/wasm-only.fromasm.clamp | 1 | ||||
-rw-r--r-- | test/wasm-only.fromasm.imprecise | 1 |
21 files changed, 7615 insertions, 7595 deletions
diff --git a/src/cfg/Relooper.cpp b/src/cfg/Relooper.cpp index 9fcc9c8be..b326d761d 100644 --- a/src/cfg/Relooper.cpp +++ b/src/cfg/Relooper.cpp @@ -328,7 +328,12 @@ wasm::Expression* Block::Render(RelooperBuilder& Builder, bool InLoop) { NextOuter->list.push_back(Outer); Outer->name = CurrName; // breaking on Outer leads to the content in NextOuter NextOuter->list.push_back(CurrContent); - NextOuter->list.push_back(Builder.makeBreak(SwitchLeave)); + // if this is not a dead end, also need to break to the outside + // this is both an optimization, and avoids incorrectness as adding + // a brak in unreachable code can make a place look reachable that isn't + if (CurrContent->type != wasm::unreachable) { + NextOuter->list.push_back(Builder.makeBreak(SwitchLeave)); + } // prepare for more nesting Outer = NextOuter; } else { diff --git a/src/passes/ReReloop.cpp b/src/passes/ReReloop.cpp index 6bdc0eb06..db2ec5698 100644 --- a/src/passes/ReReloop.cpp +++ b/src/passes/ReReloop.cpp @@ -28,6 +28,7 @@ #include "wasm-traversal.h" #include "pass.h" #include "cfg/Relooper.h" +#include "ast_utils.h" namespace wasm { @@ -314,6 +315,8 @@ struct ReReloop : public Pass { CFG::RelooperBuilder builder(*module, temp); function->body = relooper.Render(builder); } + // TODO: should this be in the relooper itself? + ReFinalize().walk(function->body); } }; diff --git a/src/passes/Vacuum.cpp b/src/passes/Vacuum.cpp index 1f820ec9d..4e47ad9a3 100644 --- a/src/passes/Vacuum.cpp +++ b/src/passes/Vacuum.cpp @@ -23,6 +23,7 @@ #include <ast_utils.h> #include <wasm-builder.h> #include <ast/block-utils.h> +#include <ast/type-updating.h> namespace wasm { @@ -31,7 +32,20 @@ struct Vacuum : public WalkerPass<PostWalker<Vacuum>> { Pass* create() override { return new Vacuum; } - bool needRefinalize = false; + TypeUpdater typeUpdater; + + Expression* replaceCurrent(Expression* expression) { + auto* old = getCurrent(); + WalkerPass<PostWalker<Vacuum>>::replaceCurrent(expression); + // also update the type updater + typeUpdater.noteReplacement(old, expression); + return expression; + } + + void doWalkFunction(Function* func) { + typeUpdater.walk(func->body); + walk(func->body); + } // returns nullptr if curr is dead, curr if it must stay as is, or another node if it can be replaced Expression* optimize(Expression* curr, bool resultUsed) { @@ -143,40 +157,39 @@ struct Vacuum : public WalkerPass<PostWalker<Vacuum>> { int skip = 0; auto& list = curr->list; size_t size = list.size(); - bool needResize = false; for (size_t z = 0; z < size; z++) { - auto* optimized = optimize(list[z], z == size - 1 && isConcreteWasmType(curr->type)); + auto* child = list[z]; + auto* optimized = optimize(child, z == size - 1 && isConcreteWasmType(curr->type)); if (!optimized) { + typeUpdater.noteRecursiveRemoval(child); skip++; - needResize = true; } else { - if (optimized != list[z]) { + if (optimized != child) { + typeUpdater.noteReplacement(child, optimized); list[z] = optimized; } if (skip > 0) { list[z - skip] = list[z]; + list[z] = nullptr; } - // if this is an unconditional br, the rest is dead code - Break* br = list[z - skip]->dynCast<Break>(); - Switch* sw = list[z - skip]->dynCast<Switch>(); - if ((br && !br->condition) || sw) { - auto* last = list.back(); - list.resize(z - skip + 1); - // if we removed the last one, and it was a return value, it must be returned - if (list.back() != last && isConcreteWasmType(last->type)) { - list.push_back(last); + // if this is unreachable, the rest is dead code + if (list[z - skip]->type == unreachable && z < size - 1) { + for (Index i = z - skip + 1; i < list.size(); i++) { + auto* remove = list[i]; + if (remove) { + typeUpdater.noteRecursiveRemoval(remove); + } } - needResize = false; - needRefinalize = true; + list.resize(z - skip + 1); + typeUpdater.maybeUpdateTypeToUnreachable(curr); + skip = 0; // nothing more to do on the list break; } } } - if (needResize) { + if (skip > 0) { list.resize(size - skip); - // resizing means we drop elements, which may include breaks, which may - // render blocks unreachable now - needRefinalize = true; + typeUpdater.maybeUpdateTypeToUnreachable(curr); } // the block may now be a trivial one that we can get rid of and just leave its contents replaceCurrent(BlockUtils::simplifyToContents(curr, this)); @@ -198,13 +211,6 @@ struct Vacuum : public WalkerPass<PostWalker<Vacuum>> { } } replaceCurrent(child); - if (curr->type != child->type) { - // e.g., if (1) unreachable is none => unreachable - // or if i32 (1) unreachable else 10 is i32 => unreachable - // in which cases we must update our parents. - // we must do this now, so that our parents see valid data - ReFinalize().walk(getFunction()->body); - } return; } if (curr->ifFalse) { @@ -307,9 +313,6 @@ struct Vacuum : public WalkerPass<PostWalker<Vacuum>> { } void visitFunction(Function* curr) { - if (needRefinalize) { - ReFinalize().walk(curr->body); - } auto* optimized = optimize(curr->body, curr->result != none); if (optimized) { curr->body = optimized; diff --git a/src/tools/wasm-opt.cpp b/src/tools/wasm-opt.cpp index bf79cb31d..468f3ce93 100644 --- a/src/tools/wasm-opt.cpp +++ b/src/tools/wasm-opt.cpp @@ -28,9 +28,64 @@ #include "wasm-s-parser.h" #include "wasm-validator.h" #include "wasm-io.h" +#include "wasm-interpreter.h" +#include "shell-interface.h" using namespace wasm; +// gets execution results from a wasm module. this is useful for fuzzing +// +// we can only get results when there are no imports. we then call each method +// that has a result, with some values +struct ExecutionResults { + std::map<Name, Literal> results; + + void get(Module& wasm) { + if (wasm.imports.size() > 0) { + std::cout << "[fuzz-exec] imports, so quitting\n"; + return; + } + for (auto& func : wasm.functions) { + if (func->result != none) { + // this is good + results[func->name] = run(func.get(), wasm); + } + } + std::cout << "[fuzz-exec] " << results.size() << " results noted\n"; + } + + bool operator==(ExecutionResults& other) { + for (auto& iter : results) { + auto name = iter.first; + if (other.results.find(name) != other.results.end()) { + if (results[name] != other.results[name]) { + return false; + } + } + } + return true; + } + + bool operator!=(ExecutionResults& other) { + return !((*this) == other); + } + + Literal run(Function* func, Module& wasm) { + ShellExternalInterface interface; + ModuleInstance instance(wasm, &interface); + LiteralList arguments; + for (WasmType param : func->params) { + // zeros in arguments TODO: more? + arguments.push_back(Literal(param)); + } + try { + return instance.callFunctionInternal(func->name, arguments); + } catch (const TrapException&) { + return Literal(); + } + } +}; + // // main // @@ -42,6 +97,7 @@ int main(int argc, const char* argv[]) { PassOptions passOptions; bool emitBinary = true; bool debugInfo = false; + bool fuzzExec = false; Options options("wasm-opt", "Optimize .wast files"); options @@ -58,6 +114,9 @@ int main(int argc, const char* argv[]) { .add("--debuginfo", "-g", "Emit names section and debug info", Options::Arguments::Zero, [&](Options *o, const std::string &arguments) { debugInfo = true; }) + .add("--fuzz-exec", "-fe", "Execute functions before and after optimization, helping fuzzing find bugs", + Options::Arguments::Zero, + [&](Options *o, const std::string &arguments) { fuzzExec = true; }) .add_positional("INFILE", Options::Arguments::One, [](Options* o, const std::string& argument) { o->extra["infile"] = argument; @@ -99,6 +158,11 @@ int main(int argc, const char* argv[]) { Fatal() << "error in validating input"; } + ExecutionResults results; + if (fuzzExec) { + results.get(wasm); + } + if (passes.size() > 0) { if (options.debug) std::cerr << "running passes...\n"; PassRunner passRunner(&wasm, passOptions); @@ -114,6 +178,15 @@ int main(int argc, const char* argv[]) { assert(WasmValidator().validate(wasm)); } + if (fuzzExec) { + ExecutionResults optimizedResults; + optimizedResults.get(wasm); + if (optimizedResults != results) { + Fatal() << "[fuzz-exec] optimization passes changed execution results"; + } + std::cout << "[fuzz-exec] results match\n"; + } + if (options.extra.count("output") > 0) { if (options.debug) std::cerr << "writing..." << std::endl; ModuleWriter writer; diff --git a/src/wasm-validator.h b/src/wasm-validator.h index 699e5910a..aa404099e 100644 --- a/src/wasm-validator.h +++ b/src/wasm-validator.h @@ -408,17 +408,26 @@ public: switch (curr->op) { case ClzInt32: case CtzInt32: - case PopcntInt32: + case PopcntInt32: { + shouldBeEqual(curr->value->type, i32, curr, "i32 unary value type must be correct"); + break; + } + case ClzInt64: + case CtzInt64: + case PopcntInt64: { + shouldBeEqual(curr->value->type, i64, curr, "i64 unary value type must be correct"); + break; + } case NegFloat32: case AbsFloat32: case CeilFloat32: case FloorFloat32: case TruncFloat32: case NearestFloat32: - case SqrtFloat32: - case ClzInt64: - case CtzInt64: - case PopcntInt64: + case SqrtFloat32: { + shouldBeEqual(curr->value->type, f32, curr, "f32 unary value type must be correct"); + break; + } case NegFloat64: case AbsFloat64: case CeilFloat64: @@ -426,7 +435,7 @@ public: case TruncFloat64: case NearestFloat64: case SqrtFloat64: { - shouldBeEqual(curr->value->type, curr->type, curr, "non-conversion unaries must return the same type"); + shouldBeEqual(curr->value->type, f64, curr, "f64 unary value type must be correct"); break; } case EqZInt32: { diff --git a/test/emcc_hello_world.fromasm b/test/emcc_hello_world.fromasm index 5032cd047..cc2627501 100644 --- a/test/emcc_hello_world.fromasm +++ b/test/emcc_hello_world.fromasm @@ -3460,69 +3460,84 @@ ) ) ) - (block $__rjto$8 - (block $__rjti$8 - (block $__rjti$7 - (block $__rjti$6 - (block $__rjti$5 - (block $__rjti$4 - (block $__rjti$3 - (block $switch-default120 - (block $switch-case42 - (block $switch-case41 - (block $switch-case40 - (block $switch-case39 - (block $switch-case38 - (block $switch-case37 - (block $switch-case36 - (block $switch-case34 - (block $switch-case33 - (block $switch-case29 - (block $switch-case28 - (block $switch-case27 - (br_table $switch-case42 $switch-default120 $switch-case40 $switch-default120 $switch-case42 $switch-case42 $switch-case42 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case41 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case29 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case42 $switch-default120 $switch-case37 $switch-case34 $switch-case42 $switch-case42 $switch-case42 $switch-default120 $switch-case34 $switch-default120 $switch-default120 $switch-default120 $switch-case38 $switch-case27 $switch-case33 $switch-case28 $switch-default120 $switch-default120 $switch-case39 $switch-default120 $switch-case36 $switch-default120 $switch-default120 $switch-case29 $switch-default120 - (i32.sub - (tee_local $18 - (select - (i32.and - (tee_local $12 - (i32.load8_s - (get_local $18) + (set_local $5 + (block $__rjto$8 i32 + (block $__rjti$8 + (block $__rjti$7 + (block $__rjti$6 + (block $__rjti$5 + (block $__rjti$4 + (block $__rjti$3 + (block $switch-default120 + (block $switch-case42 + (block $switch-case41 + (block $switch-case40 + (block $switch-case39 + (block $switch-case38 + (block $switch-case37 + (block $switch-case36 + (block $switch-case34 + (block $switch-case33 + (block $switch-case29 + (block $switch-case28 + (block $switch-case27 + (br_table $switch-case42 $switch-default120 $switch-case40 $switch-default120 $switch-case42 $switch-case42 $switch-case42 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case41 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case29 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case42 $switch-default120 $switch-case37 $switch-case34 $switch-case42 $switch-case42 $switch-case42 $switch-default120 $switch-case34 $switch-default120 $switch-default120 $switch-default120 $switch-case38 $switch-case27 $switch-case33 $switch-case28 $switch-default120 $switch-default120 $switch-case39 $switch-default120 $switch-case36 $switch-default120 $switch-default120 $switch-case29 $switch-default120 + (i32.sub + (tee_local $18 + (select + (i32.and + (tee_local $12 + (i32.load8_s + (get_local $18) + ) ) + (i32.const -33) ) - (i32.const -33) - ) - (get_local $12) - (i32.and - (i32.ne - (get_local $9) - (i32.const 0) - ) - (i32.eq - (i32.and - (get_local $12) - (i32.const 15) + (get_local $12) + (i32.and + (i32.ne + (get_local $9) + (i32.const 0) + ) + (i32.eq + (i32.and + (get_local $12) + (i32.const 15) + ) + (i32.const 3) ) - (i32.const 3) ) ) ) + (i32.const 65) ) - (i32.const 65) ) ) - ) - (block $switch-default26 - (block $switch-case25 - (block $switch-case24 - (block $switch-case23 - (block $switch-case22 - (block $switch-case21 - (block $switch-case20 - (block $switch-case19 - (br_table $switch-case19 $switch-case20 $switch-case21 $switch-case22 $switch-case23 $switch-default26 $switch-case24 $switch-case25 $switch-default26 - (get_local $9) + (block $switch-default26 + (block $switch-case25 + (block $switch-case24 + (block $switch-case23 + (block $switch-case22 + (block $switch-case21 + (block $switch-case20 + (block $switch-case19 + (br_table $switch-case19 $switch-case20 $switch-case21 $switch-case22 $switch-case23 $switch-default26 $switch-case24 $switch-case25 $switch-default26 + (get_local $9) + ) + ) + (i32.store + (i32.load + (get_local $19) + ) + (get_local $16) + ) + (set_local $5 + (get_local $10) + ) + (set_local $10 + (get_local $7) ) + (br $label$continue$L1) ) (i32.store (i32.load @@ -3539,11 +3554,26 @@ (br $label$continue$L1) ) (i32.store - (i32.load - (get_local $19) + (tee_local $5 + (i32.load + (get_local $19) + ) ) (get_local $16) ) + (i32.store offset=4 + (get_local $5) + (i32.shr_s + (i32.shl + (i32.lt_s + (get_local $16) + (i32.const 0) + ) + (i32.const 31) + ) + (i32.const 31) + ) + ) (set_local $5 (get_local $10) ) @@ -3552,27 +3582,12 @@ ) (br $label$continue$L1) ) - (i32.store - (tee_local $5 - (i32.load - (get_local $19) - ) + (i32.store16 + (i32.load + (get_local $19) ) (get_local $16) ) - (i32.store offset=4 - (get_local $5) - (i32.shr_s - (i32.shl - (i32.lt_s - (get_local $16) - (i32.const 0) - ) - (i32.const 31) - ) - (i32.const 31) - ) - ) (set_local $5 (get_local $10) ) @@ -3581,7 +3596,7 @@ ) (br $label$continue$L1) ) - (i32.store16 + (i32.store8 (i32.load (get_local $19) ) @@ -3595,7 +3610,7 @@ ) (br $label$continue$L1) ) - (i32.store8 + (i32.store (i32.load (get_local $19) ) @@ -3610,11 +3625,26 @@ (br $label$continue$L1) ) (i32.store - (i32.load - (get_local $19) + (tee_local $5 + (i32.load + (get_local $19) + ) ) (get_local $16) ) + (i32.store offset=4 + (get_local $5) + (i32.shr_s + (i32.shl + (i32.lt_s + (get_local $16) + (i32.const 0) + ) + (i32.const 31) + ) + (i32.const 31) + ) + ) (set_local $5 (get_local $10) ) @@ -3623,27 +3653,6 @@ ) (br $label$continue$L1) ) - (i32.store - (tee_local $5 - (i32.load - (get_local $19) - ) - ) - (get_local $16) - ) - (i32.store offset=4 - (get_local $5) - (i32.shr_s - (i32.shl - (i32.lt_s - (get_local $16) - (i32.const 0) - ) - (i32.const 31) - ) - (i32.const 31) - ) - ) (set_local $5 (get_local $10) ) @@ -3652,103 +3661,96 @@ ) (br $label$continue$L1) ) - (set_local $5 - (get_local $10) - ) - (set_local $10 - (get_local $7) - ) - (br $label$continue$L1) - ) - (set_local $7 - (i32.or - (get_local $11) - (i32.const 8) + (set_local $7 + (i32.or + (get_local $11) + (i32.const 8) + ) ) - ) - (set_local $6 - (select - (get_local $6) - (i32.const 8) - (i32.gt_u + (set_local $6 + (select (get_local $6) (i32.const 8) + (i32.gt_u + (get_local $6) + (i32.const 8) + ) ) ) + (set_local $18 + (i32.const 120) + ) + (br $__rjti$3) ) - (set_local $18 - (i32.const 120) + (set_local $7 + (get_local $11) ) (br $__rjti$3) ) - (set_local $7 - (get_local $11) - ) - (br $__rjti$3) - ) - (if - (i32.and - (i32.eqz - (tee_local $7 - (i32.load - (tee_local $5 - (get_local $19) + (if + (i32.and + (i32.eqz + (tee_local $7 + (i32.load + (tee_local $5 + (get_local $19) + ) ) ) ) - ) - (i32.eqz - (tee_local $8 - (i32.load offset=4 - (get_local $5) + (i32.eqz + (tee_local $8 + (i32.load offset=4 + (get_local $5) + ) ) ) ) - ) - (set_local $8 - (get_local $22) - ) - (block - (set_local $5 - (get_local $7) - ) - (set_local $7 - (get_local $8) - ) (set_local $8 (get_local $22) ) - (loop $while-in32 - (i32.store8 - (tee_local $8 - (i32.add - (get_local $8) - (i32.const -1) + (block + (set_local $5 + (get_local $7) + ) + (set_local $7 + (get_local $8) + ) + (set_local $8 + (get_local $22) + ) + (loop $while-in32 + (i32.store8 + (tee_local $8 + (i32.add + (get_local $8) + (i32.const -1) + ) ) - ) - (i32.or - (i32.and - (get_local $5) - (i32.const 7) + (i32.or + (i32.and + (get_local $5) + (i32.const 7) + ) + (i32.const 48) ) - (i32.const 48) ) - ) - (br_if $while-in32 - (i32.eqz - (i32.and - (i32.eqz - (tee_local $5 - (call $_bitshift64Lshr - (get_local $5) - (get_local $7) - (i32.const 3) + (br_if $while-in32 + (i32.eqz + (i32.and + (i32.eqz + (tee_local $5 + (call $_bitshift64Lshr + (get_local $5) + (get_local $7) + (i32.const 3) + ) ) ) - ) - (i32.eqz - (tee_local $7 - (get_global $tempRet0) + (i32.eqz + (tee_local $7 + (get_global $tempRet0) + ) ) ) ) @@ -3756,152 +3758,177 @@ ) ) ) - ) - (if - (i32.and - (get_local $11) - (i32.const 8) - ) - (block - (set_local $5 - (get_local $8) - ) - (set_local $7 + (if + (i32.and (get_local $11) + (i32.const 8) ) - (set_local $6 - (select - (tee_local $11 - (i32.add - (i32.sub - (get_local $39) - (get_local $8) + (block + (set_local $5 + (get_local $8) + ) + (set_local $7 + (get_local $11) + ) + (set_local $6 + (select + (tee_local $11 + (i32.add + (i32.sub + (get_local $39) + (get_local $8) + ) + (i32.const 1) ) - (i32.const 1) ) - ) - (get_local $6) - (i32.lt_s (get_local $6) - (get_local $11) + (i32.lt_s + (get_local $6) + (get_local $11) + ) ) ) + (set_local $8 + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) + ) + (br $__rjti$8) ) - (set_local $8 - (i32.const 0) + (block + (set_local $5 + (get_local $8) + ) + (set_local $7 + (get_local $11) + ) + (set_local $8 + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) + ) + (br $__rjti$8) ) - (set_local $9 - (i32.const 4091) + ) + ) + (set_local $5 + (i32.load + (tee_local $7 + (get_local $19) + ) + ) + ) + (if + (i32.lt_s + (tee_local $7 + (i32.load offset=4 + (get_local $7) + ) ) - (br $__rjti$8) + (i32.const 0) ) (block - (set_local $5 - (get_local $8) + (i32.store + (tee_local $8 + (get_local $19) + ) + (tee_local $5 + (call $_i64Subtract + (i32.const 0) + (i32.const 0) + (get_local $5) + (get_local $7) + ) + ) ) - (set_local $7 - (get_local $11) + (i32.store offset=4 + (get_local $8) + (tee_local $7 + (get_global $tempRet0) + ) ) (set_local $8 - (i32.const 0) + (i32.const 1) ) (set_local $9 (i32.const 4091) ) - (br $__rjti$8) + (br $__rjti$4) ) ) - ) - (set_local $5 - (i32.load - (tee_local $7 - (get_local $19) + (if + (i32.and + (get_local $11) + (i32.const 2048) ) - ) - ) - (if - (i32.lt_s - (tee_local $7 - (i32.load offset=4 - (get_local $7) + (block + (set_local $8 + (i32.const 1) ) - ) - (i32.const 0) - ) - (block - (i32.store - (tee_local $8 - (get_local $19) + (set_local $9 + (i32.const 4092) ) - (tee_local $5 - (call $_i64Subtract - (i32.const 0) - (i32.const 0) - (get_local $5) - (get_local $7) + (br $__rjti$4) + ) + (block + (set_local $8 + (tee_local $9 + (i32.and + (get_local $11) + (i32.const 1) + ) ) ) - ) - (i32.store offset=4 - (get_local $8) - (tee_local $7 - (get_global $tempRet0) + (set_local $9 + (select + (i32.const 4093) + (i32.const 4091) + (get_local $9) + ) ) + (br $__rjti$4) ) - (set_local $8 - (i32.const 1) - ) - (set_local $9 - (i32.const 4091) - ) - (br $__rjti$4) ) ) - (if - (i32.and - (get_local $11) - (i32.const 2048) - ) - (block - (set_local $8 - (i32.const 1) - ) - (set_local $9 - (i32.const 4092) + (set_local $5 + (i32.load + (tee_local $7 + (get_local $19) ) - (br $__rjti$4) ) - (block - (set_local $8 - (tee_local $9 - (i32.and - (get_local $11) - (i32.const 1) - ) - ) - ) - (set_local $9 - (select - (i32.const 4093) - (i32.const 4091) - (get_local $9) - ) - ) - (br $__rjti$4) + ) + (set_local $7 + (i32.load offset=4 + (get_local $7) ) ) + (set_local $8 + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) + ) + (br $__rjti$4) ) (set_local $5 + (get_local $19) + ) + (i32.store8 + (get_local $40) (i32.load - (tee_local $7 - (get_local $19) - ) + (get_local $5) ) ) (set_local $7 - (i32.load offset=4 - (get_local $7) - ) + (get_local $40) + ) + (set_local $11 + (get_local $8) + ) + (set_local $12 + (i32.const 1) ) (set_local $8 (i32.const 0) @@ -3909,978 +3936,979 @@ (set_local $9 (i32.const 4091) ) - (br $__rjti$4) - ) - (set_local $5 - (get_local $19) - ) - (i32.store8 - (get_local $40) - (i32.load - (get_local $5) + (br $__rjto$8 + (get_local $22) ) ) - (set_local $7 - (get_local $40) - ) - (set_local $11 - (get_local $8) - ) - (set_local $12 - (i32.const 1) - ) - (set_local $8 - (i32.const 0) - ) - (set_local $9 - (i32.const 4091) - ) (set_local $5 - (get_local $22) + (call $_strerror + (i32.load + (call $___errno_location) + ) + ) ) - (br $__rjto$8) + (br $__rjti$5) ) (set_local $5 - (call $_strerror - (i32.load - (call $___errno_location) + (select + (tee_local $5 + (i32.load + (get_local $19) + ) ) + (i32.const 4101) + (get_local $5) ) ) (br $__rjti$5) ) (set_local $5 - (select - (tee_local $5 - (i32.load - (get_local $19) - ) - ) - (i32.const 4101) + (get_local $19) + ) + (i32.store + (get_local $41) + (i32.load (get_local $5) ) ) - (br $__rjti$5) - ) - (set_local $5 - (get_local $19) - ) - (i32.store - (get_local $41) - (i32.load - (get_local $5) + (i32.store + (get_local $44) + (i32.const 0) + ) + (i32.store + (get_local $19) + (get_local $41) ) - ) - (i32.store - (get_local $44) - (i32.const 0) - ) - (i32.store - (get_local $19) - (get_local $41) - ) - (set_local $8 - (i32.const -1) - ) - (br $__rjti$6) - ) - (if - (get_local $6) - (block (set_local $8 - (get_local $6) + (i32.const -1) ) (br $__rjti$6) ) - (block - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (i32.const 0) - (get_local $11) + (if + (get_local $6) + (block + (set_local $8 + (get_local $6) + ) + (br $__rjti$6) ) - (set_local $7 - (i32.const 0) + (block + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $14) + (i32.const 0) + (get_local $11) + ) + (set_local $7 + (i32.const 0) + ) + (br $__rjti$7) ) - (br $__rjti$7) ) ) - ) - (set_local $15 - (f64.load - (get_local $19) - ) - ) - (i32.store - (get_local $21) - (i32.const 0) - ) - (f64.store - (get_global $tempDoublePtr) - (get_local $15) - ) - (set_local $31 - (if i32 - (i32.lt_s - (i32.load offset=4 - (get_global $tempDoublePtr) - ) - (i32.const 0) - ) - (block i32 - (set_local $27 - (i32.const 1) - ) - (set_local $15 - (f64.neg - (get_local $15) - ) - ) - (i32.const 4108) + (set_local $15 + (f64.load + (get_local $19) ) + ) + (i32.store + (get_local $21) + (i32.const 0) + ) + (f64.store + (get_global $tempDoublePtr) + (get_local $15) + ) + (set_local $31 (if i32 - (i32.and - (get_local $11) - (i32.const 2048) + (i32.lt_s + (i32.load offset=4 + (get_global $tempDoublePtr) + ) + (i32.const 0) ) (block i32 (set_local $27 (i32.const 1) ) - (i32.const 4111) - ) - (block i32 - (set_local $27 - (tee_local $5 - (i32.and - (get_local $11) - (i32.const 1) - ) + (set_local $15 + (f64.neg + (get_local $15) ) ) - (select - (i32.const 4114) - (i32.const 4109) - (get_local $5) - ) + (i32.const 4108) ) - ) - ) - ) - (f64.store - (get_global $tempDoublePtr) - (get_local $15) - ) - (set_local $7 - (block $do-once49 i32 - (if i32 - (i32.or - (i32.lt_u - (tee_local $5 - (i32.and - (i32.load offset=4 - (get_global $tempDoublePtr) + (if i32 + (i32.and + (get_local $11) + (i32.const 2048) + ) + (block i32 + (set_local $27 + (i32.const 1) + ) + (i32.const 4111) + ) + (block i32 + (set_local $27 + (tee_local $5 + (i32.and + (get_local $11) + (i32.const 1) ) - (i32.const 2146435072) ) ) - (i32.const 2146435072) - ) - (i32.and - (i32.eq + (select + (i32.const 4114) + (i32.const 4109) (get_local $5) - (i32.const 2146435072) ) - (i32.const 0) ) ) - (block i32 - (if - (tee_local $5 - (f64.ne - (tee_local $24 - (f64.mul - (call $_frexpl - (get_local $15) - (get_local $21) - ) - (f64.const 2) + ) + ) + (f64.store + (get_global $tempDoublePtr) + (get_local $15) + ) + (set_local $7 + (block $do-once49 i32 + (if i32 + (i32.or + (i32.lt_u + (tee_local $5 + (i32.and + (i32.load offset=4 + (get_global $tempDoublePtr) ) + (i32.const 2146435072) ) - (f64.const 0) ) + (i32.const 2146435072) ) - (i32.store - (get_local $21) - (i32.add - (i32.load - (get_local $21) - ) - (i32.const -1) + (i32.and + (i32.eq + (get_local $5) + (i32.const 2146435072) ) + (i32.const 0) ) ) - (if - (i32.eq - (tee_local $25 - (i32.or - (get_local $18) - (i32.const 32) + (block i32 + (if + (tee_local $5 + (f64.ne + (tee_local $24 + (f64.mul + (call $_frexpl + (get_local $15) + (get_local $21) + ) + (f64.const 2) + ) + ) + (f64.const 0) ) ) - (i32.const 97) - ) - (block - (set_local $9 - (select - (i32.add - (get_local $31) - (i32.const 9) - ) - (get_local $31) - (tee_local $13 - (i32.and - (get_local $18) - (i32.const 32) - ) + (i32.store + (get_local $21) + (i32.add + (i32.load + (get_local $21) ) + (i32.const -1) ) ) - (set_local $15 - (if f64 + ) + (if + (i32.eq + (tee_local $25 (i32.or - (i32.gt_u - (get_local $6) - (i32.const 11) + (get_local $18) + (i32.const 32) + ) + ) + (i32.const 97) + ) + (block + (set_local $9 + (select + (i32.add + (get_local $31) + (i32.const 9) ) - (i32.eqz - (tee_local $5 - (i32.sub - (i32.const 12) - (get_local $6) - ) + (get_local $31) + (tee_local $13 + (i32.and + (get_local $18) + (i32.const 32) ) ) ) - (get_local $24) - (block f64 - (set_local $15 - (f64.const 8) - ) - (loop $while-in54 - (set_local $15 - (f64.mul - (get_local $15) - (f64.const 16) - ) + ) + (set_local $15 + (if f64 + (i32.or + (i32.gt_u + (get_local $6) + (i32.const 11) ) - (br_if $while-in54 + (i32.eqz (tee_local $5 - (i32.add - (get_local $5) - (i32.const -1) + (i32.sub + (i32.const 12) + (get_local $6) ) ) ) ) - (if f64 - (i32.eq - (i32.load8_s - (get_local $9) - ) - (i32.const 45) + (get_local $24) + (block f64 + (set_local $15 + (f64.const 8) ) - (f64.neg - (f64.add - (get_local $15) - (f64.sub - (f64.neg - (get_local $24) - ) + (loop $while-in54 + (set_local $15 + (f64.mul (get_local $15) + (f64.const 16) + ) + ) + (br_if $while-in54 + (tee_local $5 + (i32.add + (get_local $5) + (i32.const -1) + ) ) ) ) - (f64.sub - (f64.add - (get_local $24) + (if f64 + (i32.eq + (i32.load8_s + (get_local $9) + ) + (i32.const 45) + ) + (f64.neg + (f64.add + (get_local $15) + (f64.sub + (f64.neg + (get_local $24) + ) + (get_local $15) + ) + ) + ) + (f64.sub + (f64.add + (get_local $24) + (get_local $15) + ) (get_local $15) ) - (get_local $15) ) ) ) ) - ) - (if - (i32.eq - (tee_local $5 - (call $_fmt_u - (tee_local $5 - (select - (i32.sub - (i32.const 0) - (tee_local $7 - (i32.load - (get_local $21) + (if + (i32.eq + (tee_local $5 + (call $_fmt_u + (tee_local $5 + (select + (i32.sub + (i32.const 0) + (tee_local $7 + (i32.load + (get_local $21) + ) ) ) - ) - (get_local $7) - (i32.lt_s (get_local $7) - (i32.const 0) + (i32.lt_s + (get_local $7) + (i32.const 0) + ) ) ) - ) - (i32.shr_s - (i32.shl - (i32.lt_s - (get_local $5) - (i32.const 0) + (i32.shr_s + (i32.shl + (i32.lt_s + (get_local $5) + (i32.const 0) + ) + (i32.const 31) ) (i32.const 31) ) - (i32.const 31) + (get_local $34) ) - (get_local $34) ) + (get_local $34) ) - (get_local $34) - ) - (block - (i32.store8 - (get_local $42) - (i32.const 48) - ) - (set_local $5 - (get_local $42) + (block + (i32.store8 + (get_local $42) + (i32.const 48) + ) + (set_local $5 + (get_local $42) + ) ) ) - ) - (set_local $12 - (i32.or - (get_local $27) - (i32.const 2) - ) - ) - (i32.store8 - (i32.add - (get_local $5) - (i32.const -1) - ) - (i32.add - (i32.and - (i32.shr_s - (get_local $7) - (i32.const 31) - ) + (set_local $12 + (i32.or + (get_local $27) (i32.const 2) ) - (i32.const 43) ) - ) - (i32.store8 - (tee_local $8 + (i32.store8 (i32.add (get_local $5) - (i32.const -2) + (i32.const -1) + ) + (i32.add + (i32.and + (i32.shr_s + (get_local $7) + (i32.const 31) + ) + (i32.const 2) + ) + (i32.const 43) ) ) - (i32.add - (get_local $18) - (i32.const 15) + (i32.store8 + (tee_local $8 + (i32.add + (get_local $5) + (i32.const -2) + ) + ) + (i32.add + (get_local $18) + (i32.const 15) + ) ) - ) - (set_local $18 - (i32.lt_s - (get_local $6) - (i32.const 1) + (set_local $18 + (i32.lt_s + (get_local $6) + (i32.const 1) + ) ) - ) - (set_local $17 - (i32.eqz - (i32.and - (get_local $11) - (i32.const 8) + (set_local $17 + (i32.eqz + (i32.and + (get_local $11) + (i32.const 8) + ) ) ) - ) - (set_local $5 - (get_local $23) - ) - (loop $while-in56 - (i32.store8 - (get_local $5) - (i32.or - (i32.load8_u - (i32.add - (tee_local $7 - (call $f64-to-int - (get_local $15) + (set_local $5 + (get_local $23) + ) + (loop $while-in56 + (i32.store8 + (get_local $5) + (i32.or + (i32.load8_u + (i32.add + (tee_local $7 + (call $f64-to-int + (get_local $15) + ) ) + (i32.const 4075) ) - (i32.const 4075) ) + (get_local $13) ) - (get_local $13) ) - ) - (set_local $15 - (f64.mul - (f64.sub - (get_local $15) - (f64.convert_s/i32 - (get_local $7) + (set_local $15 + (f64.mul + (f64.sub + (get_local $15) + (f64.convert_s/i32 + (get_local $7) + ) ) + (f64.const 16) ) - (f64.const 16) ) - ) - (set_local $5 - (block $do-once57 i32 - (if i32 - (i32.eq - (i32.sub - (tee_local $7 - (i32.add - (get_local $5) - (i32.const 1) + (set_local $5 + (block $do-once57 i32 + (if i32 + (i32.eq + (i32.sub + (tee_local $7 + (i32.add + (get_local $5) + (i32.const 1) + ) ) + (get_local $37) ) - (get_local $37) + (i32.const 1) ) - (i32.const 1) - ) - (block i32 - (drop - (br_if $do-once57 - (get_local $7) - (i32.and - (get_local $17) + (block i32 + (drop + (br_if $do-once57 + (get_local $7) (i32.and - (get_local $18) - (f64.eq - (get_local $15) - (f64.const 0) + (get_local $17) + (i32.and + (get_local $18) + (f64.eq + (get_local $15) + (f64.const 0) + ) ) ) ) ) + (i32.store8 + (get_local $7) + (i32.const 46) + ) + (i32.add + (get_local $5) + (i32.const 2) + ) ) - (i32.store8 - (get_local $7) - (i32.const 46) - ) - (i32.add - (get_local $5) - (i32.const 2) - ) + (get_local $7) ) - (get_local $7) ) ) - ) - (br_if $while-in56 - (f64.ne - (get_local $15) - (f64.const 0) + (br_if $while-in56 + (f64.ne + (get_local $15) + (f64.const 0) + ) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (tee_local $7 - (i32.add - (tee_local $6 - (select - (i32.sub - (i32.add - (get_local $47) - (get_local $6) - ) - (get_local $8) - ) - (i32.add + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $14) + (tee_local $7 + (i32.add + (tee_local $6 + (select (i32.sub - (get_local $45) + (i32.add + (get_local $47) + (get_local $6) + ) (get_local $8) ) - (get_local $5) - ) - (i32.and - (i32.ne - (get_local $6) - (i32.const 0) + (i32.add + (i32.sub + (get_local $45) + (get_local $8) + ) + (get_local $5) ) - (i32.lt_s - (i32.add - (get_local $46) - (get_local $5) + (i32.and + (i32.ne + (get_local $6) + (i32.const 0) + ) + (i32.lt_s + (i32.add + (get_local $46) + (get_local $5) + ) + (get_local $6) ) - (get_local $6) ) ) ) + (get_local $12) ) - (get_local $12) ) + (get_local $11) ) - (get_local $11) - ) - (if - (i32.eqz - (i32.and - (i32.load + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $9) + (get_local $12) (get_local $0) ) - (i32.const 32) ) ) - (drop - (call $___fwritex - (get_local $9) - (get_local $12) - (get_local $0) + (call $_pad + (get_local $0) + (i32.const 48) + (get_local $14) + (get_local $7) + (i32.xor + (get_local $11) + (i32.const 65536) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (get_local $14) - (get_local $7) - (i32.xor - (get_local $11) - (i32.const 65536) - ) - ) - (set_local $5 - (i32.sub - (get_local $5) - (get_local $37) + (set_local $5 + (i32.sub + (get_local $5) + (get_local $37) + ) ) - ) - (if - (i32.eqz - (i32.and - (i32.load + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $23) + (get_local $5) (get_local $0) ) - (i32.const 32) ) ) - (drop - (call $___fwritex - (get_local $23) - (get_local $5) - (get_local $0) + (call $_pad + (get_local $0) + (i32.const 48) + (i32.sub + (get_local $6) + (i32.add + (get_local $5) + (tee_local $5 + (i32.sub + (get_local $28) + (get_local $8) + ) + ) + ) ) + (i32.const 0) + (i32.const 0) ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (i32.sub - (get_local $6) - (i32.add - (get_local $5) - (tee_local $5 - (i32.sub - (get_local $28) - (get_local $8) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) ) + (i32.const 32) ) ) - ) - (i32.const 0) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (i32.load + (drop + (call $___fwritex + (get_local $8) + (get_local $5) (get_local $0) ) - (i32.const 32) ) ) - (drop - (call $___fwritex - (get_local $8) - (get_local $5) - (get_local $0) - ) - ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (get_local $7) - (i32.xor - (get_local $11) - (i32.const 8192) - ) - ) - (br $do-once49 - (select + (call $_pad + (get_local $0) + (i32.const 32) (get_local $14) (get_local $7) - (i32.lt_s - (get_local $7) + (i32.xor + (get_local $11) + (i32.const 8192) + ) + ) + (br $do-once49 + (select (get_local $14) + (get_local $7) + (i32.lt_s + (get_local $7) + (get_local $14) + ) ) ) ) ) - ) - (set_local $15 - (if f64 - (get_local $5) - (block f64 - (i32.store - (get_local $21) - (tee_local $5 - (i32.add - (i32.load - (get_local $21) + (set_local $15 + (if f64 + (get_local $5) + (block f64 + (i32.store + (get_local $21) + (tee_local $5 + (i32.add + (i32.load + (get_local $21) + ) + (i32.const -28) ) - (i32.const -28) ) ) + (f64.mul + (get_local $24) + (f64.const 268435456) + ) ) - (f64.mul + (block f64 + (set_local $5 + (i32.load + (get_local $21) + ) + ) (get_local $24) - (f64.const 268435456) ) ) - (block f64 - (set_local $5 - (i32.load - (get_local $21) + ) + (set_local $7 + (tee_local $8 + (select + (get_local $48) + (get_local $49) + (i32.lt_s + (get_local $5) + (i32.const 0) ) ) - (get_local $24) ) ) - ) - (set_local $7 - (tee_local $8 - (select - (get_local $48) - (get_local $49) - (i32.lt_s - (get_local $5) - (i32.const 0) + (loop $while-in60 + (i32.store + (get_local $7) + (tee_local $5 + (call $f64-to-int + (get_local $15) + ) ) ) - ) - ) - (loop $while-in60 - (i32.store - (get_local $7) - (tee_local $5 - (call $f64-to-int - (get_local $15) + (set_local $7 + (i32.add + (get_local $7) + (i32.const 4) ) ) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 4) - ) - ) - (br_if $while-in60 - (f64.ne - (tee_local $15 - (f64.mul - (f64.sub - (get_local $15) - (f64.convert_u/i32 - (get_local $5) + (br_if $while-in60 + (f64.ne + (tee_local $15 + (f64.mul + (f64.sub + (get_local $15) + (f64.convert_u/i32 + (get_local $5) + ) ) + (f64.const 1e9) ) - (f64.const 1e9) ) + (f64.const 0) ) - (f64.const 0) ) ) - ) - (if - (i32.gt_s - (tee_local $9 - (i32.load - (get_local $21) + (if + (i32.gt_s + (tee_local $9 + (i32.load + (get_local $21) + ) ) + (i32.const 0) ) - (i32.const 0) - ) - (block - (set_local $5 - (get_local $8) - ) - (loop $while-in62 - (set_local $13 - (select - (i32.const 29) - (get_local $9) - (i32.gt_s - (get_local $9) + (block + (set_local $5 + (get_local $8) + ) + (loop $while-in62 + (set_local $13 + (select (i32.const 29) + (get_local $9) + (i32.gt_s + (get_local $9) + (i32.const 29) + ) ) ) - ) - (block $do-once63 - (if - (i32.ge_u - (tee_local $9 - (i32.add - (get_local $7) - (i32.const -4) + (block $do-once63 + (if + (i32.ge_u + (tee_local $9 + (i32.add + (get_local $7) + (i32.const -4) + ) ) + (get_local $5) ) - (get_local $5) - ) - (block - (set_local $12 - (i32.const 0) - ) - (loop $while-in66 - (i32.store - (get_local $9) - (tee_local $20 - (call $___uremdi3 - (tee_local $12 - (call $_i64Add - (call $_bitshift64Shl - (i32.load - (get_local $9) + (block + (set_local $12 + (i32.const 0) + ) + (loop $while-in66 + (i32.store + (get_local $9) + (tee_local $20 + (call $___uremdi3 + (tee_local $12 + (call $_i64Add + (call $_bitshift64Shl + (i32.load + (get_local $9) + ) + (i32.const 0) + (get_local $13) ) + (get_global $tempRet0) + (get_local $12) (i32.const 0) - (get_local $13) ) + ) + (tee_local $17 (get_global $tempRet0) - (get_local $12) - (i32.const 0) ) + (i32.const 1000000000) + (i32.const 0) ) - (tee_local $17 - (get_global $tempRet0) - ) + ) + ) + (set_local $12 + (call $___udivdi3 + (get_local $12) + (get_local $17) (i32.const 1000000000) (i32.const 0) ) ) + (br_if $while-in66 + (i32.ge_u + (tee_local $9 + (i32.add + (get_local $9) + (i32.const -4) + ) + ) + (get_local $5) + ) + ) ) - (set_local $12 - (call $___udivdi3 + (br_if $do-once63 + (i32.eqz (get_local $12) - (get_local $17) - (i32.const 1000000000) - (i32.const 0) ) ) - (br_if $while-in66 - (i32.ge_u - (tee_local $9 - (i32.add - (get_local $9) - (i32.const -4) - ) + (i32.store + (tee_local $5 + (i32.add + (get_local $5) + (i32.const -4) ) - (get_local $5) ) - ) - ) - (br_if $do-once63 - (i32.eqz (get_local $12) ) ) - (i32.store - (tee_local $5 - (i32.add - (get_local $5) - (i32.const -4) - ) - ) - (get_local $12) - ) ) ) - ) - (loop $while-in68 - (if - (i32.gt_u - (get_local $7) - (get_local $5) - ) + (loop $while-in68 (if - (i32.eqz - (i32.load - (tee_local $9 - (i32.add - (get_local $7) - (i32.const -4) + (i32.gt_u + (get_local $7) + (get_local $5) + ) + (if + (i32.eqz + (i32.load + (tee_local $9 + (i32.add + (get_local $7) + (i32.const -4) + ) ) ) ) - ) - (block - (set_local $7 - (get_local $9) + (block + (set_local $7 + (get_local $9) + ) + (br $while-in68) ) - (br $while-in68) ) ) ) - ) - (i32.store - (get_local $21) - (tee_local $9 - (i32.sub - (i32.load - (get_local $21) + (i32.store + (get_local $21) + (tee_local $9 + (i32.sub + (i32.load + (get_local $21) + ) + (get_local $13) ) - (get_local $13) ) ) - ) - (br_if $while-in62 - (i32.gt_s - (get_local $9) - (i32.const 0) + (br_if $while-in62 + (i32.gt_s + (get_local $9) + (i32.const 0) + ) ) ) ) - ) - (set_local $5 - (get_local $8) - ) - ) - (set_local $17 - (select - (i32.const 6) - (get_local $6) - (i32.lt_s - (get_local $6) - (i32.const 0) + (set_local $5 + (get_local $8) ) ) - ) - (if - (i32.lt_s - (get_local $9) - (i32.const 0) - ) - (block - (set_local $20 - (i32.add - (call $i32s-div - (i32.add - (get_local $17) - (i32.const 25) - ) - (i32.const 9) - ) - (i32.const 1) - ) - ) - (set_local $32 - (i32.eq - (get_local $25) - (i32.const 102) + (set_local $17 + (select + (i32.const 6) + (get_local $6) + (i32.lt_s + (get_local $6) + (i32.const 0) ) ) - (set_local $6 - (get_local $5) - ) - (set_local $5 - (get_local $7) + ) + (if + (i32.lt_s + (get_local $9) + (i32.const 0) ) - (loop $while-in70 - (set_local $13 - (select - (i32.const 9) - (tee_local $7 - (i32.sub - (i32.const 0) - (get_local $9) + (block + (set_local $20 + (i32.add + (call $i32s-div + (i32.add + (get_local $17) + (i32.const 25) ) - ) - (i32.gt_s - (get_local $7) (i32.const 9) ) + (i32.const 1) ) ) - (block $do-once71 - (if - (i32.lt_u - (get_local $6) - (get_local $5) - ) - (block - (set_local $12 - (i32.add - (i32.shl - (i32.const 1) - (get_local $13) - ) - (i32.const -1) - ) - ) - (set_local $38 - (i32.shr_u - (i32.const 1000000000) - (get_local $13) + (set_local $32 + (i32.eq + (get_local $25) + (i32.const 102) + ) + ) + (set_local $6 + (get_local $5) + ) + (set_local $5 + (get_local $7) + ) + (loop $while-in70 + (set_local $13 + (select + (i32.const 9) + (tee_local $7 + (i32.sub + (i32.const 0) + (get_local $9) ) ) - (set_local $9 - (i32.const 0) + (i32.gt_s + (get_local $7) + (i32.const 9) ) - (set_local $7 + ) + ) + (block $do-once71 + (if + (i32.lt_u (get_local $6) + (get_local $5) ) - (loop $while-in74 - (i32.store - (get_local $7) + (block + (set_local $12 (i32.add - (i32.shr_u - (tee_local $33 - (i32.load - (get_local $7) - ) - ) + (i32.shl + (i32.const 1) (get_local $13) ) - (get_local $9) + (i32.const -1) + ) + ) + (set_local $38 + (i32.shr_u + (i32.const 1000000000) + (get_local $13) ) ) (set_local $9 - (i32.mul - (i32.and - (get_local $33) - (get_local $12) + (i32.const 0) + ) + (set_local $7 + (get_local $6) + ) + (loop $while-in74 + (i32.store + (get_local $7) + (i32.add + (i32.shr_u + (tee_local $33 + (i32.load + (get_local $7) + ) + ) + (get_local $13) + ) + (get_local $9) ) - (get_local $38) ) - ) - (br_if $while-in74 - (i32.lt_u - (tee_local $7 - (i32.add - (get_local $7) - (i32.const 4) + (set_local $9 + (i32.mul + (i32.and + (get_local $33) + (get_local $12) ) + (get_local $38) ) + ) + (br_if $while-in74 + (i32.lt_u + (tee_local $7 + (i32.add + (get_local $7) + (i32.const 4) + ) + ) + (get_local $5) + ) + ) + ) + (set_local $7 + (select + (get_local $6) + (i32.add + (get_local $6) + (i32.const 4) + ) + (i32.load + (get_local $6) + ) + ) + ) + (br_if $do-once71 + (i32.eqz + (get_local $9) + ) + ) + (i32.store + (get_local $5) + (get_local $9) + ) + (set_local $5 + (i32.add (get_local $5) + (i32.const 4) ) ) ) @@ -4896,490 +4924,463 @@ ) ) ) - (br_if $do-once71 - (i32.eqz - (get_local $9) + ) + ) + (set_local $12 + (select + (i32.add + (tee_local $6 + (select + (get_local $8) + (get_local $7) + (get_local $32) + ) + ) + (i32.shl + (get_local $20) + (i32.const 2) ) ) - (i32.store - (get_local $5) - (get_local $9) - ) - (set_local $5 - (i32.add - (get_local $5) - (i32.const 4) + (get_local $5) + (i32.gt_s + (i32.shr_s + (i32.sub + (get_local $5) + (get_local $6) + ) + (i32.const 2) ) + (get_local $20) ) ) - (set_local $7 - (select - (get_local $6) - (i32.add - (get_local $6) - (i32.const 4) - ) + ) + (i32.store + (get_local $21) + (tee_local $9 + (i32.add (i32.load - (get_local $6) + (get_local $21) ) + (get_local $13) ) ) ) - ) - (set_local $12 - (select - (i32.add - (tee_local $6 - (select - (get_local $8) - (get_local $7) - (get_local $32) - ) + (if + (i32.lt_s + (get_local $9) + (i32.const 0) + ) + (block + (set_local $6 + (get_local $7) ) - (i32.shl - (get_local $20) - (i32.const 2) + (set_local $5 + (get_local $12) ) + (br $while-in70) ) - (get_local $5) - (i32.gt_s - (i32.shr_s - (i32.sub - (get_local $5) - (get_local $6) - ) - (i32.const 2) + (block + (set_local $5 + (get_local $7) ) - (get_local $20) - ) - ) - ) - (i32.store - (get_local $21) - (tee_local $9 - (i32.add - (i32.load - (get_local $21) + (set_local $9 + (get_local $12) ) - (get_local $13) - ) - ) - ) - (if - (i32.lt_s - (get_local $9) - (i32.const 0) - ) - (block - (set_local $6 - (get_local $7) - ) - (set_local $5 - (get_local $12) - ) - (br $while-in70) - ) - (block - (set_local $5 - (get_local $7) - ) - (set_local $9 - (get_local $12) ) ) ) ) + (set_local $9 + (get_local $7) + ) ) - (set_local $9 - (get_local $7) + (set_local $20 + (get_local $8) ) - ) - (set_local $20 - (get_local $8) - ) - (block $do-once75 - (if - (i32.lt_u - (get_local $5) - (get_local $9) - ) - (block - (set_local $7 - (i32.mul - (i32.shr_s - (i32.sub - (get_local $20) - (get_local $5) + (block $do-once75 + (if + (i32.lt_u + (get_local $5) + (get_local $9) + ) + (block + (set_local $7 + (i32.mul + (i32.shr_s + (i32.sub + (get_local $20) + (get_local $5) + ) + (i32.const 2) ) - (i32.const 2) + (i32.const 9) ) - (i32.const 9) ) - ) - (br_if $do-once75 - (i32.lt_u - (tee_local $12 - (i32.load - (get_local $5) + (br_if $do-once75 + (i32.lt_u + (tee_local $12 + (i32.load + (get_local $5) + ) ) + (i32.const 10) ) + ) + (set_local $6 (i32.const 10) ) - ) - (set_local $6 - (i32.const 10) - ) - (loop $while-in78 - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) + (loop $while-in78 + (set_local $7 + (i32.add + (get_local $7) + (i32.const 1) + ) ) - ) - (br_if $while-in78 - (i32.ge_u - (get_local $12) - (tee_local $6 - (i32.mul - (get_local $6) - (i32.const 10) + (br_if $while-in78 + (i32.ge_u + (get_local $12) + (tee_local $6 + (i32.mul + (get_local $6) + (i32.const 10) + ) ) ) ) ) ) - ) - (set_local $7 - (i32.const 0) + (set_local $7 + (i32.const 0) + ) ) ) - ) - (set_local $5 - (if i32 - (i32.lt_s - (tee_local $6 - (i32.add - (i32.sub - (get_local $17) - (select - (get_local $7) - (i32.const 0) - (i32.ne - (get_local $25) - (i32.const 102) + (set_local $5 + (if i32 + (i32.lt_s + (tee_local $6 + (i32.add + (i32.sub + (get_local $17) + (select + (get_local $7) + (i32.const 0) + (i32.ne + (get_local $25) + (i32.const 102) + ) ) ) - ) - (i32.shr_s - (i32.shl - (i32.and - (tee_local $32 - (i32.ne - (get_local $17) - (i32.const 0) + (i32.shr_s + (i32.shl + (i32.and + (tee_local $32 + (i32.ne + (get_local $17) + (i32.const 0) + ) ) - ) - (tee_local $38 - (i32.eq - (get_local $25) - (i32.const 103) + (tee_local $38 + (i32.eq + (get_local $25) + (i32.const 103) + ) ) ) + (i32.const 31) ) (i32.const 31) ) - (i32.const 31) - ) - ) - ) - (i32.add - (i32.mul - (i32.shr_s - (i32.sub - (get_local $9) - (get_local $20) - ) - (i32.const 2) ) - (i32.const 9) ) - (i32.const -9) - ) - ) - (block i32 - (set_local $13 - (call $i32s-div - (tee_local $6 - (i32.add - (get_local $6) - (i32.const 9216) + (i32.add + (i32.mul + (i32.shr_s + (i32.sub + (get_local $9) + (get_local $20) + ) + (i32.const 2) ) + (i32.const 9) ) - (i32.const 9) + (i32.const -9) ) ) - (if - (i32.lt_s - (tee_local $6 - (i32.add - (call $i32s-rem + (block i32 + (set_local $13 + (call $i32s-div + (tee_local $6 + (i32.add (get_local $6) - (i32.const 9) + (i32.const 9216) ) - (i32.const 1) ) + (i32.const 9) ) - (i32.const 9) ) - (block - (set_local $12 - (i32.const 10) + (if + (i32.lt_s + (tee_local $6 + (i32.add + (call $i32s-rem + (get_local $6) + (i32.const 9) + ) + (i32.const 1) + ) + ) + (i32.const 9) ) - (loop $while-in80 + (block (set_local $12 - (i32.mul - (get_local $12) - (i32.const 10) - ) + (i32.const 10) ) - (br_if $while-in80 - (i32.ne - (tee_local $6 - (i32.add - (get_local $6) - (i32.const 1) + (loop $while-in80 + (set_local $12 + (i32.mul + (get_local $12) + (i32.const 10) + ) + ) + (br_if $while-in80 + (i32.ne + (tee_local $6 + (i32.add + (get_local $6) + (i32.const 1) + ) ) + (i32.const 9) ) - (i32.const 9) ) ) ) + (set_local $12 + (i32.const 10) + ) ) - (set_local $12 - (i32.const 10) - ) - ) - (set_local $13 - (call $i32u-rem - (tee_local $25 - (i32.load - (tee_local $6 - (i32.add + (set_local $13 + (call $i32u-rem + (tee_local $25 + (i32.load + (tee_local $6 (i32.add - (get_local $8) - (i32.shl - (get_local $13) - (i32.const 2) + (i32.add + (get_local $8) + (i32.shl + (get_local $13) + (i32.const 2) + ) ) + (i32.const -4092) ) - (i32.const -4092) ) ) ) + (get_local $12) ) - (get_local $12) ) - ) - (block $do-once81 - (if - (i32.eqz - (i32.and - (tee_local $33 - (i32.eq - (i32.add - (get_local $6) - (i32.const 4) + (block $do-once81 + (if + (i32.eqz + (i32.and + (tee_local $33 + (i32.eq + (i32.add + (get_local $6) + (i32.const 4) + ) + (get_local $9) ) - (get_local $9) ) - ) - (i32.eqz - (get_local $13) + (i32.eqz + (get_local $13) + ) ) ) - ) - (block - (set_local $50 - (call $i32u-div - (get_local $25) - (get_local $12) + (block + (set_local $50 + (call $i32u-div + (get_local $25) + (get_local $12) + ) ) - ) - (set_local $15 - (if f64 - (i32.lt_u - (get_local $13) - (tee_local $51 - (call $i32s-div - (get_local $12) - (i32.const 2) + (set_local $15 + (if f64 + (i32.lt_u + (get_local $13) + (tee_local $51 + (call $i32s-div + (get_local $12) + (i32.const 2) + ) ) ) - ) - (f64.const 0.5) - (select - (f64.const 1) - (f64.const 1.5) - (i32.and - (get_local $33) - (i32.eq - (get_local $13) - (get_local $51) + (f64.const 0.5) + (select + (f64.const 1) + (f64.const 1.5) + (i32.and + (get_local $33) + (i32.eq + (get_local $13) + (get_local $51) + ) ) ) ) ) - ) - (set_local $24 - (select - (f64.const 9007199254740994) - (f64.const 9007199254740992) - (i32.and - (get_local $50) - (i32.const 1) + (set_local $24 + (select + (f64.const 9007199254740994) + (f64.const 9007199254740992) + (i32.and + (get_local $50) + (i32.const 1) + ) ) ) - ) - (block $do-once83 - (if - (get_local $27) - (block - (br_if $do-once83 - (i32.ne - (i32.load8_s - (get_local $31) + (block $do-once83 + (if + (get_local $27) + (block + (br_if $do-once83 + (i32.ne + (i32.load8_s + (get_local $31) + ) + (i32.const 45) ) - (i32.const 45) ) - ) - (set_local $24 - (f64.neg - (get_local $24) + (set_local $24 + (f64.neg + (get_local $24) + ) ) - ) - (set_local $15 - (f64.neg - (get_local $15) + (set_local $15 + (f64.neg + (get_local $15) + ) ) ) ) ) - ) - (i32.store - (get_local $6) - (tee_local $13 - (i32.sub - (get_local $25) - (get_local $13) + (i32.store + (get_local $6) + (tee_local $13 + (i32.sub + (get_local $25) + (get_local $13) + ) ) ) - ) - (br_if $do-once81 - (f64.eq - (f64.add + (br_if $do-once81 + (f64.eq + (f64.add + (get_local $24) + (get_local $15) + ) (get_local $24) - (get_local $15) ) - (get_local $24) ) - ) - (i32.store - (get_local $6) - (tee_local $7 - (i32.add - (get_local $13) - (get_local $12) + (i32.store + (get_local $6) + (tee_local $7 + (i32.add + (get_local $13) + (get_local $12) + ) ) ) - ) - (if - (i32.gt_u - (get_local $7) - (i32.const 999999999) - ) - (loop $while-in86 - (i32.store - (get_local $6) - (i32.const 0) + (if + (i32.gt_u + (get_local $7) + (i32.const 999999999) ) - (if - (i32.lt_u - (tee_local $6 - (i32.add - (get_local $6) - (i32.const -4) + (loop $while-in86 + (i32.store + (get_local $6) + (i32.const 0) + ) + (if + (i32.lt_u + (tee_local $6 + (i32.add + (get_local $6) + (i32.const -4) + ) ) + (get_local $5) + ) + (i32.store + (tee_local $5 + (i32.add + (get_local $5) + (i32.const -4) + ) + ) + (i32.const 0) ) - (get_local $5) ) (i32.store - (tee_local $5 + (get_local $6) + (tee_local $7 (i32.add - (get_local $5) - (i32.const -4) + (i32.load + (get_local $6) + ) + (i32.const 1) ) ) - (i32.const 0) ) - ) - (i32.store - (get_local $6) - (tee_local $7 - (i32.add - (i32.load - (get_local $6) - ) - (i32.const 1) + (br_if $while-in86 + (i32.gt_u + (get_local $7) + (i32.const 999999999) ) ) ) - (br_if $while-in86 - (i32.gt_u - (get_local $7) - (i32.const 999999999) - ) - ) ) - ) - (set_local $7 - (i32.mul - (i32.shr_s - (i32.sub - (get_local $20) - (get_local $5) + (set_local $7 + (i32.mul + (i32.shr_s + (i32.sub + (get_local $20) + (get_local $5) + ) + (i32.const 2) ) - (i32.const 2) + (i32.const 9) ) - (i32.const 9) ) - ) - (br_if $do-once81 - (i32.lt_u - (tee_local $13 - (i32.load - (get_local $5) + (br_if $do-once81 + (i32.lt_u + (tee_local $13 + (i32.load + (get_local $5) + ) ) + (i32.const 10) ) + ) + (set_local $12 (i32.const 10) ) - ) - (set_local $12 - (i32.const 10) - ) - (loop $while-in88 - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) + (loop $while-in88 + (set_local $7 + (i32.add + (get_local $7) + (i32.const 1) + ) ) - ) - (br_if $while-in88 - (i32.ge_u - (get_local $13) - (tee_local $12 - (i32.mul - (get_local $12) - (i32.const 10) + (br_if $while-in88 + (i32.ge_u + (get_local $13) + (tee_local $12 + (i32.mul + (get_local $12) + (i32.const 10) + ) ) ) ) @@ -5387,607 +5388,565 @@ ) ) ) - ) - (set_local $12 - (get_local $5) - ) - (set_local $13 - (get_local $7) - ) - (select - (tee_local $5 - (i32.add - (get_local $6) - (i32.const 4) - ) + (set_local $12 + (get_local $5) ) - (get_local $9) - (i32.gt_u + (set_local $13 + (get_local $7) + ) + (select + (tee_local $5 + (i32.add + (get_local $6) + (i32.const 4) + ) + ) (get_local $9) - (get_local $5) + (i32.gt_u + (get_local $9) + (get_local $5) + ) ) ) - ) - (block i32 - (set_local $12 - (get_local $5) - ) - (set_local $13 - (get_local $7) + (block i32 + (set_local $12 + (get_local $5) + ) + (set_local $13 + (get_local $7) + ) + (get_local $9) ) - (get_local $9) ) ) - ) - (set_local $33 - (i32.sub - (i32.const 0) - (get_local $13) + (set_local $33 + (i32.sub + (i32.const 0) + (get_local $13) + ) ) - ) - (loop $while-in90 - (block $while-out89 - (if - (i32.le_u - (get_local $5) - (get_local $12) - ) - (block - (set_local $25 - (i32.const 0) - ) - (set_local $9 + (loop $while-in90 + (block $while-out89 + (if + (i32.le_u (get_local $5) + (get_local $12) ) - (br $while-out89) - ) - ) - (if - (i32.load - (tee_local $7 - (i32.add + (block + (set_local $25 + (i32.const 0) + ) + (set_local $9 (get_local $5) - (i32.const -4) ) + (br $while-out89) ) ) - (block - (set_local $25 - (i32.const 1) + (if + (i32.load + (tee_local $7 + (i32.add + (get_local $5) + (i32.const -4) + ) + ) ) - (set_local $9 - (get_local $5) + (block + (set_local $25 + (i32.const 1) + ) + (set_local $9 + (get_local $5) + ) ) - ) - (block - (set_local $5 - (get_local $7) + (block + (set_local $5 + (get_local $7) + ) + (br $while-in90) ) - (br $while-in90) ) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (tee_local $13 - (i32.add + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $14) + (tee_local $13 (i32.add (i32.add (i32.add - (get_local $27) - (i32.const 1) - ) - (tee_local $5 - (block $do-once91 i32 - (if i32 - (get_local $38) - (block i32 - (set_local $7 - (if i32 - (i32.and - (i32.gt_s - (tee_local $5 - (i32.add - (i32.xor - (get_local $32) - (i32.const 1) + (i32.add + (get_local $27) + (i32.const 1) + ) + (tee_local $5 + (block $do-once91 i32 + (if i32 + (get_local $38) + (block i32 + (set_local $7 + (if i32 + (i32.and + (i32.gt_s + (tee_local $5 + (i32.add + (i32.xor + (get_local $32) + (i32.const 1) + ) + (get_local $17) ) - (get_local $17) ) + (get_local $13) + ) + (i32.gt_s + (get_local $13) + (i32.const -5) ) - (get_local $13) ) - (i32.gt_s - (get_local $13) - (i32.const -5) + (block i32 + (set_local $17 + (i32.sub + (i32.add + (get_local $5) + (i32.const -1) + ) + (get_local $13) + ) + ) + (i32.add + (get_local $18) + (i32.const -1) + ) ) - ) - (block i32 - (set_local $17 - (i32.sub + (block i32 + (set_local $17 (i32.add (get_local $5) (i32.const -1) ) - (get_local $13) ) - ) - (i32.add - (get_local $18) - (i32.const -1) - ) - ) - (block i32 - (set_local $17 (i32.add - (get_local $5) - (i32.const -1) + (get_local $18) + (i32.const -2) ) ) - (i32.add - (get_local $18) - (i32.const -2) - ) ) ) - ) - (if - (tee_local $5 - (i32.and - (get_local $11) - (i32.const 8) - ) - ) - (block - (set_local $20 - (get_local $5) + (if + (tee_local $5 + (i32.and + (get_local $11) + (i32.const 8) + ) ) - (br $do-once91 - (get_local $17) + (block + (set_local $20 + (get_local $5) + ) + (br $do-once91 + (get_local $17) + ) ) ) - ) - (block $do-once93 - (if - (get_local $25) - (block - (if - (i32.eqz - (tee_local $18 - (i32.load - (i32.add - (get_local $9) - (i32.const -4) + (block $do-once93 + (if + (get_local $25) + (block + (if + (i32.eqz + (tee_local $18 + (i32.load + (i32.add + (get_local $9) + (i32.const -4) + ) ) ) ) - ) - (block - (set_local $5 - (i32.const 9) - ) - (br $do-once93) - ) - ) - (if - (call $i32u-rem - (get_local $18) - (i32.const 10) - ) - (block - (set_local $5 - (i32.const 0) + (block + (set_local $5 + (i32.const 9) + ) + (br $do-once93) ) - (br $do-once93) ) - (block - (set_local $6 + (if + (call $i32u-rem + (get_local $18) (i32.const 10) ) - (set_local $5 - (i32.const 0) + (block + (set_local $5 + (i32.const 0) + ) + (br $do-once93) ) - ) - ) - (loop $while-in96 - (set_local $5 - (i32.add - (get_local $5) - (i32.const 1) + (block + (set_local $6 + (i32.const 10) + ) + (set_local $5 + (i32.const 0) + ) ) ) - (br_if $while-in96 - (i32.eqz - (call $i32u-rem - (get_local $18) - (tee_local $6 - (i32.mul - (get_local $6) - (i32.const 10) + (loop $while-in96 + (set_local $5 + (i32.add + (get_local $5) + (i32.const 1) + ) + ) + (br_if $while-in96 + (i32.eqz + (call $i32u-rem + (get_local $18) + (tee_local $6 + (i32.mul + (get_local $6) + (i32.const 10) + ) ) ) ) ) ) ) - ) - (set_local $5 - (i32.const 9) + (set_local $5 + (i32.const 9) + ) ) ) - ) - (set_local $6 - (i32.add - (i32.mul - (i32.shr_s - (i32.sub - (get_local $9) - (get_local $20) + (set_local $6 + (i32.add + (i32.mul + (i32.shr_s + (i32.sub + (get_local $9) + (get_local $20) + ) + (i32.const 2) ) - (i32.const 2) + (i32.const 9) ) - (i32.const 9) - ) - (i32.const -9) - ) - ) - (if i32 - (i32.eq - (i32.or - (get_local $7) - (i32.const 32) + (i32.const -9) ) - (i32.const 102) ) - (block i32 - (set_local $20 - (i32.const 0) + (if i32 + (i32.eq + (i32.or + (get_local $7) + (i32.const 32) + ) + (i32.const 102) ) - (select - (get_local $17) - (tee_local $5 - (select - (i32.const 0) - (tee_local $5 - (i32.sub - (get_local $6) + (block i32 + (set_local $20 + (i32.const 0) + ) + (select + (get_local $17) + (tee_local $5 + (select + (i32.const 0) + (tee_local $5 + (i32.sub + (get_local $6) + (get_local $5) + ) + ) + (i32.lt_s (get_local $5) + (i32.const 0) ) ) - (i32.lt_s - (get_local $5) - (i32.const 0) - ) ) - ) - (i32.lt_s - (get_local $17) - (get_local $5) + (i32.lt_s + (get_local $17) + (get_local $5) + ) ) ) - ) - (block i32 - (set_local $20 - (i32.const 0) - ) - (select - (get_local $17) - (tee_local $5 - (select - (i32.const 0) - (tee_local $5 - (i32.sub - (i32.add - (get_local $6) - (get_local $13) + (block i32 + (set_local $20 + (i32.const 0) + ) + (select + (get_local $17) + (tee_local $5 + (select + (i32.const 0) + (tee_local $5 + (i32.sub + (i32.add + (get_local $6) + (get_local $13) + ) + (get_local $5) ) + ) + (i32.lt_s (get_local $5) + (i32.const 0) ) ) - (i32.lt_s - (get_local $5) - (i32.const 0) - ) ) - ) - (i32.lt_s - (get_local $17) - (get_local $5) + (i32.lt_s + (get_local $17) + (get_local $5) + ) ) ) ) ) - ) - (block i32 - (set_local $20 - (i32.and - (get_local $11) - (i32.const 8) + (block i32 + (set_local $20 + (i32.and + (get_local $11) + (i32.const 8) + ) ) + (set_local $7 + (get_local $18) + ) + (get_local $17) ) - (set_local $7 - (get_local $18) - ) - (get_local $17) ) ) ) ) - ) - (i32.ne - (tee_local $32 - (i32.or - (get_local $5) - (get_local $20) - ) - ) - (i32.const 0) - ) - ) - (tee_local $7 - (if i32 - (tee_local $17 - (i32.eq + (i32.ne + (tee_local $32 (i32.or - (get_local $7) - (i32.const 32) + (get_local $5) + (get_local $20) ) - (i32.const 102) ) + (i32.const 0) ) - (block i32 - (set_local $18 - (i32.const 0) + ) + (tee_local $7 + (if i32 + (tee_local $17 + (i32.eq + (i32.or + (get_local $7) + (i32.const 32) + ) + (i32.const 102) + ) ) - (select - (get_local $13) - (i32.const 0) - (i32.gt_s + (block i32 + (set_local $18 + (i32.const 0) + ) + (select (get_local $13) (i32.const 0) + (i32.gt_s + (get_local $13) + (i32.const 0) + ) ) ) - ) - (block i32 - (if - (i32.lt_s - (i32.sub - (get_local $28) - (tee_local $6 - (call $_fmt_u - (tee_local $6 - (select - (get_local $33) - (get_local $13) - (i32.lt_s + (block i32 + (if + (i32.lt_s + (i32.sub + (get_local $28) + (tee_local $6 + (call $_fmt_u + (tee_local $6 + (select + (get_local $33) (get_local $13) - (i32.const 0) + (i32.lt_s + (get_local $13) + (i32.const 0) + ) ) ) - ) - (i32.shr_s - (i32.shl - (i32.lt_s - (get_local $6) - (i32.const 0) + (i32.shr_s + (i32.shl + (i32.lt_s + (get_local $6) + (i32.const 0) + ) + (i32.const 31) ) (i32.const 31) ) - (i32.const 31) + (get_local $34) ) - (get_local $34) ) ) + (i32.const 2) ) - (i32.const 2) - ) - (loop $while-in98 - (i32.store8 - (tee_local $6 - (i32.add - (get_local $6) - (i32.const -1) + (loop $while-in98 + (i32.store8 + (tee_local $6 + (i32.add + (get_local $6) + (i32.const -1) + ) + ) + (i32.const 48) + ) + (br_if $while-in98 + (i32.lt_s + (i32.sub + (get_local $28) + (get_local $6) + ) + (i32.const 2) ) ) - (i32.const 48) ) - (br_if $while-in98 - (i32.lt_s - (i32.sub - (get_local $28) - (get_local $6) + ) + (i32.store8 + (i32.add + (get_local $6) + (i32.const -1) + ) + (i32.add + (i32.and + (i32.shr_s + (get_local $13) + (i32.const 31) ) (i32.const 2) ) + (i32.const 43) ) ) - ) - (i32.store8 - (i32.add - (get_local $6) - (i32.const -1) - ) - (i32.add - (i32.and - (i32.shr_s - (get_local $13) - (i32.const 31) + (i32.store8 + (tee_local $6 + (i32.add + (get_local $6) + (i32.const -2) ) - (i32.const 2) ) - (i32.const 43) + (get_local $7) ) - ) - (i32.store8 - (tee_local $6 - (i32.add - (get_local $6) - (i32.const -2) - ) + (set_local $18 + (get_local $6) + ) + (i32.sub + (get_local $28) + (get_local $6) ) - (get_local $7) - ) - (set_local $18 - (get_local $6) - ) - (i32.sub - (get_local $28) - (get_local $6) ) ) ) ) ) + (get_local $11) ) - (get_local $11) - ) - (if - (i32.eqz - (i32.and - (i32.load + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $31) + (get_local $27) (get_local $0) ) - (i32.const 32) ) ) - (drop - (call $___fwritex - (get_local $31) - (get_local $27) - (get_local $0) + (call $_pad + (get_local $0) + (i32.const 48) + (get_local $14) + (get_local $13) + (i32.xor + (get_local $11) + (i32.const 65536) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (get_local $14) - (get_local $13) - (i32.xor - (get_local $11) - (i32.const 65536) - ) - ) - (block $do-once99 - (if - (get_local $17) - (block - (set_local $6 - (tee_local $12 - (select - (get_local $8) - (get_local $12) - (i32.gt_u - (get_local $12) + (block $do-once99 + (if + (get_local $17) + (block + (set_local $6 + (tee_local $12 + (select (get_local $8) + (get_local $12) + (i32.gt_u + (get_local $12) + (get_local $8) + ) ) ) ) - ) - (loop $while-in102 - (set_local $7 - (call $_fmt_u - (i32.load - (get_local $6) + (loop $while-in102 + (set_local $7 + (call $_fmt_u + (i32.load + (get_local $6) + ) + (i32.const 0) + (get_local $30) ) - (i32.const 0) - (get_local $30) ) - ) - (block $do-once103 - (if - (i32.eq - (get_local $6) - (get_local $12) - ) - (block - (br_if $do-once103 - (i32.ne - (get_local $7) - (get_local $30) - ) - ) - (i32.store8 - (get_local $35) - (i32.const 48) - ) - (set_local $7 - (get_local $35) + (block $do-once103 + (if + (i32.eq + (get_local $6) + (get_local $12) ) - ) - (block - (br_if $do-once103 - (i32.le_u - (get_local $7) - (get_local $23) + (block + (br_if $do-once103 + (i32.ne + (get_local $7) + (get_local $30) + ) ) - ) - (loop $while-in106 (i32.store8 - (tee_local $7 - (i32.add - (get_local $7) - (i32.const -1) - ) - ) + (get_local $35) (i32.const 48) ) - (br_if $while-in106 - (i32.gt_u + (set_local $7 + (get_local $35) + ) + ) + (block + (br_if $do-once103 + (i32.le_u (get_local $7) (get_local $23) ) ) + (loop $while-in106 + (i32.store8 + (tee_local $7 + (i32.add + (get_local $7) + (i32.const -1) + ) + ) + (i32.const 48) + ) + (br_if $while-in106 + (i32.gt_u + (get_local $7) + (get_local $23) + ) + ) + ) ) ) ) - ) - (if - (i32.eqz - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) - ) - ) - (drop - (call $___fwritex - (get_local $7) - (i32.sub - (get_local $43) - (get_local $7) - ) - (get_local $0) - ) - ) - ) - (if - (i32.le_u - (tee_local $7 - (i32.add - (get_local $6) - (i32.const 4) - ) - ) - (get_local $8) - ) - (block - (set_local $6 - (get_local $7) - ) - (br $while-in102) - ) - ) - ) - (block $do-once107 - (if - (get_local $32) - (block - (br_if $do-once107 + (if + (i32.eqz (i32.and (i32.load (get_local $0) @@ -5997,187 +5956,259 @@ ) (drop (call $___fwritex - (i32.const 4143) - (i32.const 1) + (get_local $7) + (i32.sub + (get_local $43) + (get_local $7) + ) (get_local $0) ) ) ) - ) - ) - (if - (i32.and - (i32.gt_s - (get_local $5) - (i32.const 0) - ) - (i32.lt_u - (get_local $7) - (get_local $9) + (if + (i32.le_u + (tee_local $7 + (i32.add + (get_local $6) + (i32.const 4) + ) + ) + (get_local $8) + ) + (block + (set_local $6 + (get_local $7) + ) + (br $while-in102) + ) ) ) - (loop $while-in110 + (block $do-once107 (if - (i32.gt_u - (tee_local $6 - (call $_fmt_u + (get_local $32) + (block + (br_if $do-once107 + (i32.and (i32.load - (get_local $7) + (get_local $0) ) - (i32.const 0) - (get_local $30) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (i32.const 4143) + (i32.const 1) + (get_local $0) ) ) - (get_local $23) ) - (loop $while-in112 - (i32.store8 + ) + ) + (if + (i32.and + (i32.gt_s + (get_local $5) + (i32.const 0) + ) + (i32.lt_u + (get_local $7) + (get_local $9) + ) + ) + (loop $while-in110 + (if + (i32.gt_u (tee_local $6 - (i32.add - (get_local $6) - (i32.const -1) + (call $_fmt_u + (i32.load + (get_local $7) + ) + (i32.const 0) + (get_local $30) ) ) - (i32.const 48) + (get_local $23) ) - (br_if $while-in112 - (i32.gt_u - (get_local $6) - (get_local $23) + (loop $while-in112 + (i32.store8 + (tee_local $6 + (i32.add + (get_local $6) + (i32.const -1) + ) + ) + (i32.const 48) + ) + (br_if $while-in112 + (i32.gt_u + (get_local $6) + (get_local $23) + ) ) ) ) - ) - (if - (i32.eqz - (i32.and - (i32.load - (get_local $0) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) ) - (i32.const 32) ) - ) - (drop - (call $___fwritex - (get_local $6) - (select - (i32.const 9) - (get_local $5) - (i32.gt_s - (get_local $5) + (drop + (call $___fwritex + (get_local $6) + (select (i32.const 9) + (get_local $5) + (i32.gt_s + (get_local $5) + (i32.const 9) + ) ) + (get_local $0) ) - (get_local $0) ) ) - ) - (set_local $6 - (i32.add - (get_local $5) - (i32.const -9) - ) - ) - (if - (i32.and - (i32.gt_s + (set_local $6 + (i32.add (get_local $5) - (i32.const 9) + (i32.const -9) ) - (i32.lt_u - (tee_local $7 - (i32.add - (get_local $7) - (i32.const 4) + ) + (if + (i32.and + (i32.gt_s + (get_local $5) + (i32.const 9) + ) + (i32.lt_u + (tee_local $7 + (i32.add + (get_local $7) + (i32.const 4) + ) ) + (get_local $9) ) - (get_local $9) ) - ) - (block + (block + (set_local $5 + (get_local $6) + ) + (br $while-in110) + ) (set_local $5 (get_local $6) ) - (br $while-in110) - ) - (set_local $5 - (get_local $6) ) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (i32.add - (get_local $5) - (i32.const 9) - ) - (i32.const 9) - (i32.const 0) - ) - ) - (block - (set_local $9 - (select - (get_local $9) + (call $_pad + (get_local $0) + (i32.const 48) (i32.add - (get_local $12) - (i32.const 4) + (get_local $5) + (i32.const 9) ) - (get_local $25) + (i32.const 9) + (i32.const 0) ) ) - (if - (i32.gt_s - (get_local $5) - (i32.const -1) - ) - (block - (set_local $17 - (i32.eqz - (get_local $20) + (block + (set_local $9 + (select + (get_local $9) + (i32.add + (get_local $12) + (i32.const 4) ) + (get_local $25) ) - (set_local $6 - (get_local $12) - ) - (set_local $7 + ) + (if + (i32.gt_s (get_local $5) + (i32.const -1) ) - (loop $while-in114 - (if - (i32.eq - (tee_local $5 - (call $_fmt_u - (i32.load - (get_local $6) - ) - (i32.const 0) - (get_local $30) - ) - ) - (get_local $30) - ) - (block - (i32.store8 - (get_local $35) - (i32.const 48) - ) - (set_local $5 - (get_local $35) - ) + (block + (set_local $17 + (i32.eqz + (get_local $20) ) ) - (block $do-once115 + (set_local $6 + (get_local $12) + ) + (set_local $7 + (get_local $5) + ) + (loop $while-in114 (if (i32.eq - (get_local $6) - (get_local $12) + (tee_local $5 + (call $_fmt_u + (i32.load + (get_local $6) + ) + (i32.const 0) + (get_local $30) + ) + ) + (get_local $30) ) (block - (if - (i32.eqz + (i32.store8 + (get_local $35) + (i32.const 48) + ) + (set_local $5 + (get_local $35) + ) + ) + ) + (block $do-once115 + (if + (i32.eq + (get_local $6) + (get_local $12) + ) + (block + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $5) + (i32.const 1) + (get_local $0) + ) + ) + ) + (set_local $5 + (i32.add + (get_local $5) + (i32.const 1) + ) + ) + (br_if $do-once115 + (i32.and + (get_local $17) + (i32.lt_s + (get_local $7) + (i32.const 1) + ) + ) + ) + (br_if $do-once115 (i32.and (i32.load (get_local $0) @@ -6187,344 +6218,273 @@ ) (drop (call $___fwritex - (get_local $5) + (i32.const 4143) (i32.const 1) (get_local $0) ) ) ) - (set_local $5 - (i32.add - (get_local $5) - (i32.const 1) - ) - ) - (br_if $do-once115 - (i32.and - (get_local $17) - (i32.lt_s - (get_local $7) - (i32.const 1) + (block + (br_if $do-once115 + (i32.le_u + (get_local $5) + (get_local $23) ) ) - ) - (br_if $do-once115 - (i32.and - (i32.load - (get_local $0) + (loop $while-in118 + (i32.store8 + (tee_local $5 + (i32.add + (get_local $5) + (i32.const -1) + ) + ) + (i32.const 48) ) - (i32.const 32) - ) - ) - (drop - (call $___fwritex - (i32.const 4143) - (i32.const 1) - (get_local $0) - ) - ) - ) - (block - (br_if $do-once115 - (i32.le_u - (get_local $5) - (get_local $23) - ) - ) - (loop $while-in118 - (i32.store8 - (tee_local $5 - (i32.add + (br_if $while-in118 + (i32.gt_u (get_local $5) - (i32.const -1) + (get_local $23) ) ) - (i32.const 48) - ) - (br_if $while-in118 - (i32.gt_u - (get_local $5) - (get_local $23) - ) ) ) ) ) - ) - (set_local $8 - (i32.sub - (get_local $43) - (get_local $5) + (set_local $8 + (i32.sub + (get_local $43) + (get_local $5) + ) ) - ) - (if - (i32.eqz - (i32.and - (i32.load - (get_local $0) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) ) - (i32.const 32) ) - ) - (drop - (call $___fwritex - (get_local $5) - (select - (get_local $8) - (get_local $7) - (i32.gt_s - (get_local $7) + (drop + (call $___fwritex + (get_local $5) + (select (get_local $8) + (get_local $7) + (i32.gt_s + (get_local $7) + (get_local $8) + ) ) + (get_local $0) ) - (get_local $0) ) ) - ) - (br_if $while-in114 - (i32.and - (i32.lt_u - (tee_local $6 - (i32.add - (get_local $6) - (i32.const 4) + (br_if $while-in114 + (i32.and + (i32.lt_u + (tee_local $6 + (i32.add + (get_local $6) + (i32.const 4) + ) ) + (get_local $9) ) - (get_local $9) - ) - (i32.gt_s - (tee_local $7 - (i32.sub - (get_local $7) - (get_local $8) + (i32.gt_s + (tee_local $7 + (i32.sub + (get_local $7) + (get_local $8) + ) ) + (i32.const -1) ) - (i32.const -1) ) ) - ) - (set_local $5 - (get_local $7) + (set_local $5 + (get_local $7) + ) ) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (i32.add - (get_local $5) + (call $_pad + (get_local $0) + (i32.const 48) + (i32.add + (get_local $5) + (i32.const 18) + ) (i32.const 18) + (i32.const 0) ) - (i32.const 18) - (i32.const 0) - ) - (br_if $do-once99 - (i32.and - (i32.load - (get_local $0) + (br_if $do-once99 + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) ) - (i32.const 32) ) - ) - (drop - (call $___fwritex - (get_local $18) - (i32.sub - (get_local $28) + (drop + (call $___fwritex (get_local $18) + (i32.sub + (get_local $28) + (get_local $18) + ) + (get_local $0) ) - (get_local $0) ) ) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (get_local $13) - (i32.xor - (get_local $11) - (i32.const 8192) - ) - ) - (select - (get_local $14) - (get_local $13) - (i32.lt_s + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $14) (get_local $13) + (i32.xor + (get_local $11) + (i32.const 8192) + ) + ) + (select (get_local $14) + (get_local $13) + (i32.lt_s + (get_local $13) + (get_local $14) + ) ) ) - ) - (block i32 - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (tee_local $7 - (i32.add - (tee_local $9 - (select - (i32.const 0) - (get_local $27) - (tee_local $6 - (i32.or - (f64.ne - (get_local $15) - (get_local $15) + (block i32 + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $14) + (tee_local $7 + (i32.add + (tee_local $9 + (select + (i32.const 0) + (get_local $27) + (tee_local $6 + (i32.or + (f64.ne + (get_local $15) + (get_local $15) + ) + (i32.const 0) ) - (i32.const 0) ) ) ) + (i32.const 3) ) - (i32.const 3) ) + (get_local $8) ) - (get_local $8) - ) - (if - (i32.eqz - (i32.and - (tee_local $5 - (i32.load - (get_local $0) + (if + (i32.eqz + (i32.and + (tee_local $5 + (i32.load + (get_local $0) + ) ) + (i32.const 32) ) - (i32.const 32) ) - ) - (block - (drop - (call $___fwritex - (get_local $31) - (get_local $9) - (get_local $0) + (block + (drop + (call $___fwritex + (get_local $31) + (get_local $9) + (get_local $0) + ) ) - ) - (set_local $5 - (i32.load - (get_local $0) + (set_local $5 + (i32.load + (get_local $0) + ) ) ) ) - ) - (set_local $6 - (select + (set_local $6 (select - (i32.const 4135) - (i32.const 4139) - (tee_local $8 - (i32.ne - (i32.and - (get_local $18) - (i32.const 32) + (select + (i32.const 4135) + (i32.const 4139) + (tee_local $8 + (i32.ne + (i32.and + (get_local $18) + (i32.const 32) + ) + (i32.const 0) ) - (i32.const 0) ) ) + (select + (i32.const 4127) + (i32.const 4131) + (get_local $8) + ) + (get_local $6) ) - (select - (i32.const 4127) - (i32.const 4131) - (get_local $8) - ) - (get_local $6) ) - ) - (if - (i32.eqz - (i32.and - (get_local $5) - (i32.const 32) + (if + (i32.eqz + (i32.and + (get_local $5) + (i32.const 32) + ) ) - ) - (drop - (call $___fwritex - (get_local $6) - (i32.const 3) - (get_local $0) + (drop + (call $___fwritex + (get_local $6) + (i32.const 3) + (get_local $0) + ) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (get_local $7) - (i32.xor - (get_local $11) - (i32.const 8192) - ) - ) - (select - (get_local $14) - (get_local $7) - (i32.lt_s + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $14) (get_local $7) + (i32.xor + (get_local $11) + (i32.const 8192) + ) + ) + (select (get_local $14) + (get_local $7) + (i32.lt_s + (get_local $7) + (get_local $14) + ) ) ) ) ) ) - ) - (set_local $5 - (get_local $10) - ) - (set_local $10 - (get_local $7) - ) - (br $label$continue$L1) - ) - (set_local $7 - (get_local $5) - ) - (set_local $12 - (get_local $6) - ) - (set_local $8 - (i32.const 0) - ) - (set_local $9 - (i32.const 4091) - ) - (set_local $5 - (get_local $22) - ) - (br $__rjto$8) - ) - (set_local $9 - (i32.and - (get_local $18) - (i32.const 32) - ) - ) - (if - (i32.and - (i32.eqz - (tee_local $8 - (i32.load - (tee_local $5 - (get_local $19) - ) - ) + (set_local $5 + (get_local $10) ) - ) - (i32.eqz - (tee_local $11 - (i32.load offset=4 - (get_local $5) - ) + (set_local $10 + (get_local $7) ) + (br $label$continue$L1) ) - ) - (block - (set_local $5 - (get_local $22) + (set_local $7 + (get_local $5) + ) + (set_local $12 + (get_local $6) ) (set_local $8 (i32.const 0) @@ -6532,381 +6492,412 @@ (set_local $9 (i32.const 4091) ) - (br $__rjti$8) - ) - (block - (set_local $5 - (get_local $8) - ) - (set_local $8 + (br $__rjto$8 (get_local $22) ) - (loop $while-in123 - (i32.store8 + ) + (set_local $9 + (i32.and + (get_local $18) + (i32.const 32) + ) + ) + (if + (i32.and + (i32.eqz (tee_local $8 - (i32.add - (get_local $8) - (i32.const -1) - ) - ) - (i32.or - (i32.load8_u - (i32.add - (i32.and - (get_local $5) - (i32.const 15) - ) - (i32.const 4075) + (i32.load + (tee_local $5 + (get_local $19) ) ) - (get_local $9) ) ) - (br_if $while-in123 - (i32.eqz - (i32.and - (i32.eqz - (tee_local $5 - (call $_bitshift64Lshr - (get_local $5) - (get_local $11) - (i32.const 4) - ) - ) - ) - (i32.eqz - (tee_local $11 - (get_global $tempRet0) - ) - ) + (i32.eqz + (tee_local $11 + (i32.load offset=4 + (get_local $5) ) ) ) + ) + (block (set_local $5 - (get_local $8) + (get_local $22) + ) + (set_local $8 + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) ) + (br $__rjti$8) ) - (if - (i32.or - (i32.eqz - (i32.and - (get_local $7) - (i32.const 8) + (block + (set_local $5 + (get_local $8) + ) + (set_local $8 + (get_local $22) + ) + (loop $while-in123 + (i32.store8 + (tee_local $8 + (i32.add + (get_local $8) + (i32.const -1) + ) ) - ) - (i32.and - (i32.eqz - (i32.load - (tee_local $11 - (get_local $19) + (i32.or + (i32.load8_u + (i32.add + (i32.and + (get_local $5) + (i32.const 15) + ) + (i32.const 4075) ) ) + (get_local $9) ) + ) + (br_if $while-in123 (i32.eqz - (i32.load offset=4 - (get_local $11) + (i32.and + (i32.eqz + (tee_local $5 + (call $_bitshift64Lshr + (get_local $5) + (get_local $11) + (i32.const 4) + ) + ) + ) + (i32.eqz + (tee_local $11 + (get_global $tempRet0) + ) + ) ) ) ) - ) - (block - (set_local $8 - (i32.const 0) - ) - (set_local $9 - (i32.const 4091) + (set_local $5 + (get_local $8) ) - (br $__rjti$8) ) - (block - (set_local $8 - (i32.const 2) - ) - (set_local $9 - (i32.add - (i32.shr_s - (get_local $18) - (i32.const 4) + (if + (i32.or + (i32.eqz + (i32.and + (get_local $7) + (i32.const 8) ) + ) + (i32.and + (i32.eqz + (i32.load + (tee_local $11 + (get_local $19) + ) + ) + ) + (i32.eqz + (i32.load offset=4 + (get_local $11) + ) + ) + ) + ) + (block + (set_local $8 + (i32.const 0) + ) + (set_local $9 (i32.const 4091) ) + (br $__rjti$8) + ) + (block + (set_local $8 + (i32.const 2) + ) + (set_local $9 + (i32.add + (i32.shr_s + (get_local $18) + (i32.const 4) + ) + (i32.const 4091) + ) + ) + (br $__rjti$8) ) - (br $__rjti$8) ) ) ) ) - (br $__rjto$8) + (set_local $5 + (call $_fmt_u + (get_local $5) + (get_local $7) + (get_local $22) + ) + ) + (set_local $7 + (get_local $11) + ) + (br $__rjti$8) ) - (set_local $5 - (call $_fmt_u - (get_local $5) - (get_local $7) - (get_local $22) + (set_local $18 + (i32.eqz + (tee_local $13 + (call $_memchr + (get_local $5) + (i32.const 0) + (get_local $6) + ) + ) ) ) (set_local $7 - (get_local $11) + (get_local $5) ) - (br $__rjti$8) - ) - (set_local $18 - (i32.eqz - (tee_local $13 - (call $_memchr + (set_local $11 + (get_local $8) + ) + (set_local $12 + (select + (get_local $6) + (i32.sub + (get_local $13) (get_local $5) - (i32.const 0) - (get_local $6) ) + (get_local $18) ) ) - ) - (set_local $7 - (get_local $5) - ) - (set_local $11 - (get_local $8) - ) - (set_local $12 - (select - (get_local $6) - (i32.sub + (set_local $8 + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) + ) + (br $__rjto$8 + (select + (i32.add + (get_local $5) + (get_local $6) + ) (get_local $13) - (get_local $5) + (get_local $18) ) - (get_local $18) ) ) - (set_local $8 + (set_local $5 (i32.const 0) ) - (set_local $9 - (i32.const 4091) + (set_local $7 + (i32.const 0) ) - (set_local $5 - (select - (i32.add - (get_local $5) - (get_local $6) - ) - (get_local $13) - (get_local $18) + (set_local $6 + (i32.load + (get_local $19) ) ) - (br $__rjto$8) - ) - (set_local $5 - (i32.const 0) - ) - (set_local $7 - (i32.const 0) - ) - (set_local $6 - (i32.load - (get_local $19) - ) - ) - (loop $while-in125 - (block $while-out124 - (br_if $while-out124 - (i32.eqz - (tee_local $9 - (i32.load - (get_local $6) + (loop $while-in125 + (block $while-out124 + (br_if $while-out124 + (i32.eqz + (tee_local $9 + (i32.load + (get_local $6) + ) ) ) ) - ) - (br_if $while-out124 - (i32.or - (i32.lt_s - (tee_local $7 - (call $_wctomb - (get_local $36) - (get_local $9) + (br_if $while-out124 + (i32.or + (i32.lt_s + (tee_local $7 + (call $_wctomb + (get_local $36) + (get_local $9) + ) ) + (i32.const 0) ) - (i32.const 0) - ) - (i32.gt_u - (get_local $7) - (i32.sub - (get_local $8) - (get_local $5) + (i32.gt_u + (get_local $7) + (i32.sub + (get_local $8) + (get_local $5) + ) ) ) ) - ) - (set_local $6 - (i32.add - (get_local $6) - (i32.const 4) + (set_local $6 + (i32.add + (get_local $6) + (i32.const 4) + ) ) - ) - (br_if $while-in125 - (i32.gt_u - (get_local $8) - (tee_local $5 - (i32.add - (get_local $7) - (get_local $5) + (br_if $while-in125 + (i32.gt_u + (get_local $8) + (tee_local $5 + (i32.add + (get_local $7) + (get_local $5) + ) ) ) ) ) ) - ) - (if - (i32.lt_s - (get_local $7) - (i32.const 0) - ) - (block - (set_local $16 - (i32.const -1) - ) - (br $label$break$L1) - ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (get_local $5) - (get_local $11) - ) - (if - (get_local $5) - (block - (set_local $6 + (if + (i32.lt_s + (get_local $7) (i32.const 0) ) - (set_local $7 - (i32.load - (get_local $19) + (block + (set_local $16 + (i32.const -1) ) + (br $label$break$L1) ) - (loop $while-in127 - (if - (i32.eqz - (tee_local $8 - (i32.load - (get_local $7) + ) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $14) + (get_local $5) + (get_local $11) + ) + (if + (get_local $5) + (block + (set_local $6 + (i32.const 0) + ) + (set_local $7 + (i32.load + (get_local $19) + ) + ) + (loop $while-in127 + (if + (i32.eqz + (tee_local $8 + (i32.load + (get_local $7) + ) ) ) - ) - (block - (set_local $7 - (get_local $5) + (block + (set_local $7 + (get_local $5) + ) + (br $__rjti$7) ) - (br $__rjti$7) ) - ) - (if - (i32.gt_s - (tee_local $6 - (i32.add - (tee_local $8 - (call $_wctomb - (get_local $36) - (get_local $8) + (if + (i32.gt_s + (tee_local $6 + (i32.add + (tee_local $8 + (call $_wctomb + (get_local $36) + (get_local $8) + ) ) + (get_local $6) ) - (get_local $6) ) - ) - (get_local $5) - ) - (block - (set_local $7 (get_local $5) ) - (br $__rjti$7) + (block + (set_local $7 + (get_local $5) + ) + (br $__rjti$7) + ) ) - ) - (if - (i32.eqz - (i32.and - (i32.load + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $36) + (get_local $8) (get_local $0) ) - (i32.const 32) ) ) - (drop - (call $___fwritex - (get_local $36) - (get_local $8) - (get_local $0) + (set_local $7 + (i32.add + (get_local $7) + (i32.const 4) ) ) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 4) + (br_if $while-in127 + (i32.lt_u + (get_local $6) + (get_local $5) + ) ) - ) - (br_if $while-in127 - (i32.lt_u - (get_local $6) + (set_local $7 (get_local $5) ) ) - (set_local $7 - (get_local $5) - ) - (br $__rjti$7) ) - ) - (block (set_local $7 (i32.const 0) ) - (br $__rjti$7) ) ) - (br $__rjto$8) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (get_local $7) - (i32.xor - (get_local $11) - (i32.const 8192) - ) - ) - (set_local $5 - (get_local $10) - ) - (set_local $10 - (select + (call $_pad + (get_local $0) + (i32.const 32) (get_local $14) (get_local $7) - (i32.gt_s + (i32.xor + (get_local $11) + (i32.const 8192) + ) + ) + (set_local $5 + (get_local $10) + ) + (set_local $10 + (select (get_local $14) (get_local $7) + (i32.gt_s + (get_local $14) + (get_local $7) + ) ) ) + (br $label$continue$L1) ) - (br $label$continue$L1) - ) - (set_local $11 - (select - (i32.and + (set_local $11 + (select + (i32.and + (get_local $7) + (i32.const -65537) + ) (get_local $7) - (i32.const -65537) - ) - (get_local $7) - (i32.gt_s - (get_local $6) - (i32.const -1) + (i32.gt_s + (get_local $6) + (i32.const -1) + ) ) ) - ) - (set_local $5 (if i32 (i32.or (get_local $6) diff --git a/test/emcc_hello_world.fromasm.clamp b/test/emcc_hello_world.fromasm.clamp index 944dc27e2..2edc60677 100644 --- a/test/emcc_hello_world.fromasm.clamp +++ b/test/emcc_hello_world.fromasm.clamp @@ -3484,69 +3484,84 @@ ) ) ) - (block $__rjto$8 - (block $__rjti$8 - (block $__rjti$7 - (block $__rjti$6 - (block $__rjti$5 - (block $__rjti$4 - (block $__rjti$3 - (block $switch-default120 - (block $switch-case42 - (block $switch-case41 - (block $switch-case40 - (block $switch-case39 - (block $switch-case38 - (block $switch-case37 - (block $switch-case36 - (block $switch-case34 - (block $switch-case33 - (block $switch-case29 - (block $switch-case28 - (block $switch-case27 - (br_table $switch-case42 $switch-default120 $switch-case40 $switch-default120 $switch-case42 $switch-case42 $switch-case42 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case41 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case29 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case42 $switch-default120 $switch-case37 $switch-case34 $switch-case42 $switch-case42 $switch-case42 $switch-default120 $switch-case34 $switch-default120 $switch-default120 $switch-default120 $switch-case38 $switch-case27 $switch-case33 $switch-case28 $switch-default120 $switch-default120 $switch-case39 $switch-default120 $switch-case36 $switch-default120 $switch-default120 $switch-case29 $switch-default120 - (i32.sub - (tee_local $18 - (select - (i32.and - (tee_local $12 - (i32.load8_s - (get_local $18) + (set_local $5 + (block $__rjto$8 i32 + (block $__rjti$8 + (block $__rjti$7 + (block $__rjti$6 + (block $__rjti$5 + (block $__rjti$4 + (block $__rjti$3 + (block $switch-default120 + (block $switch-case42 + (block $switch-case41 + (block $switch-case40 + (block $switch-case39 + (block $switch-case38 + (block $switch-case37 + (block $switch-case36 + (block $switch-case34 + (block $switch-case33 + (block $switch-case29 + (block $switch-case28 + (block $switch-case27 + (br_table $switch-case42 $switch-default120 $switch-case40 $switch-default120 $switch-case42 $switch-case42 $switch-case42 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case41 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case29 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case42 $switch-default120 $switch-case37 $switch-case34 $switch-case42 $switch-case42 $switch-case42 $switch-default120 $switch-case34 $switch-default120 $switch-default120 $switch-default120 $switch-case38 $switch-case27 $switch-case33 $switch-case28 $switch-default120 $switch-default120 $switch-case39 $switch-default120 $switch-case36 $switch-default120 $switch-default120 $switch-case29 $switch-default120 + (i32.sub + (tee_local $18 + (select + (i32.and + (tee_local $12 + (i32.load8_s + (get_local $18) + ) ) + (i32.const -33) ) - (i32.const -33) - ) - (get_local $12) - (i32.and - (i32.ne - (get_local $9) - (i32.const 0) - ) - (i32.eq - (i32.and - (get_local $12) - (i32.const 15) + (get_local $12) + (i32.and + (i32.ne + (get_local $9) + (i32.const 0) + ) + (i32.eq + (i32.and + (get_local $12) + (i32.const 15) + ) + (i32.const 3) ) - (i32.const 3) ) ) ) + (i32.const 65) ) - (i32.const 65) ) ) - ) - (block $switch-default26 - (block $switch-case25 - (block $switch-case24 - (block $switch-case23 - (block $switch-case22 - (block $switch-case21 - (block $switch-case20 - (block $switch-case19 - (br_table $switch-case19 $switch-case20 $switch-case21 $switch-case22 $switch-case23 $switch-default26 $switch-case24 $switch-case25 $switch-default26 - (get_local $9) + (block $switch-default26 + (block $switch-case25 + (block $switch-case24 + (block $switch-case23 + (block $switch-case22 + (block $switch-case21 + (block $switch-case20 + (block $switch-case19 + (br_table $switch-case19 $switch-case20 $switch-case21 $switch-case22 $switch-case23 $switch-default26 $switch-case24 $switch-case25 $switch-default26 + (get_local $9) + ) + ) + (i32.store + (i32.load + (get_local $19) + ) + (get_local $16) + ) + (set_local $5 + (get_local $10) + ) + (set_local $10 + (get_local $7) ) + (br $label$continue$L1) ) (i32.store (i32.load @@ -3563,11 +3578,26 @@ (br $label$continue$L1) ) (i32.store - (i32.load - (get_local $19) + (tee_local $5 + (i32.load + (get_local $19) + ) ) (get_local $16) ) + (i32.store offset=4 + (get_local $5) + (i32.shr_s + (i32.shl + (i32.lt_s + (get_local $16) + (i32.const 0) + ) + (i32.const 31) + ) + (i32.const 31) + ) + ) (set_local $5 (get_local $10) ) @@ -3576,27 +3606,12 @@ ) (br $label$continue$L1) ) - (i32.store - (tee_local $5 - (i32.load - (get_local $19) - ) + (i32.store16 + (i32.load + (get_local $19) ) (get_local $16) ) - (i32.store offset=4 - (get_local $5) - (i32.shr_s - (i32.shl - (i32.lt_s - (get_local $16) - (i32.const 0) - ) - (i32.const 31) - ) - (i32.const 31) - ) - ) (set_local $5 (get_local $10) ) @@ -3605,7 +3620,7 @@ ) (br $label$continue$L1) ) - (i32.store16 + (i32.store8 (i32.load (get_local $19) ) @@ -3619,7 +3634,7 @@ ) (br $label$continue$L1) ) - (i32.store8 + (i32.store (i32.load (get_local $19) ) @@ -3634,11 +3649,26 @@ (br $label$continue$L1) ) (i32.store - (i32.load - (get_local $19) + (tee_local $5 + (i32.load + (get_local $19) + ) ) (get_local $16) ) + (i32.store offset=4 + (get_local $5) + (i32.shr_s + (i32.shl + (i32.lt_s + (get_local $16) + (i32.const 0) + ) + (i32.const 31) + ) + (i32.const 31) + ) + ) (set_local $5 (get_local $10) ) @@ -3647,27 +3677,6 @@ ) (br $label$continue$L1) ) - (i32.store - (tee_local $5 - (i32.load - (get_local $19) - ) - ) - (get_local $16) - ) - (i32.store offset=4 - (get_local $5) - (i32.shr_s - (i32.shl - (i32.lt_s - (get_local $16) - (i32.const 0) - ) - (i32.const 31) - ) - (i32.const 31) - ) - ) (set_local $5 (get_local $10) ) @@ -3676,103 +3685,96 @@ ) (br $label$continue$L1) ) - (set_local $5 - (get_local $10) - ) - (set_local $10 - (get_local $7) - ) - (br $label$continue$L1) - ) - (set_local $7 - (i32.or - (get_local $11) - (i32.const 8) + (set_local $7 + (i32.or + (get_local $11) + (i32.const 8) + ) ) - ) - (set_local $6 - (select - (get_local $6) - (i32.const 8) - (i32.gt_u + (set_local $6 + (select (get_local $6) (i32.const 8) + (i32.gt_u + (get_local $6) + (i32.const 8) + ) ) ) + (set_local $18 + (i32.const 120) + ) + (br $__rjti$3) ) - (set_local $18 - (i32.const 120) + (set_local $7 + (get_local $11) ) (br $__rjti$3) ) - (set_local $7 - (get_local $11) - ) - (br $__rjti$3) - ) - (if - (i32.and - (i32.eqz - (tee_local $7 - (i32.load - (tee_local $5 - (get_local $19) + (if + (i32.and + (i32.eqz + (tee_local $7 + (i32.load + (tee_local $5 + (get_local $19) + ) ) ) ) - ) - (i32.eqz - (tee_local $8 - (i32.load offset=4 - (get_local $5) + (i32.eqz + (tee_local $8 + (i32.load offset=4 + (get_local $5) + ) ) ) ) - ) - (set_local $8 - (get_local $22) - ) - (block - (set_local $5 - (get_local $7) - ) - (set_local $7 - (get_local $8) - ) (set_local $8 (get_local $22) ) - (loop $while-in32 - (i32.store8 - (tee_local $8 - (i32.add - (get_local $8) - (i32.const -1) + (block + (set_local $5 + (get_local $7) + ) + (set_local $7 + (get_local $8) + ) + (set_local $8 + (get_local $22) + ) + (loop $while-in32 + (i32.store8 + (tee_local $8 + (i32.add + (get_local $8) + (i32.const -1) + ) ) - ) - (i32.or - (i32.and - (get_local $5) - (i32.const 7) + (i32.or + (i32.and + (get_local $5) + (i32.const 7) + ) + (i32.const 48) ) - (i32.const 48) ) - ) - (br_if $while-in32 - (i32.eqz - (i32.and - (i32.eqz - (tee_local $5 - (call $_bitshift64Lshr - (get_local $5) - (get_local $7) - (i32.const 3) + (br_if $while-in32 + (i32.eqz + (i32.and + (i32.eqz + (tee_local $5 + (call $_bitshift64Lshr + (get_local $5) + (get_local $7) + (i32.const 3) + ) ) ) - ) - (i32.eqz - (tee_local $7 - (get_global $tempRet0) + (i32.eqz + (tee_local $7 + (get_global $tempRet0) + ) ) ) ) @@ -3780,152 +3782,177 @@ ) ) ) - ) - (if - (i32.and - (get_local $11) - (i32.const 8) - ) - (block - (set_local $5 - (get_local $8) - ) - (set_local $7 + (if + (i32.and (get_local $11) + (i32.const 8) ) - (set_local $6 - (select - (tee_local $11 - (i32.add - (i32.sub - (get_local $39) - (get_local $8) + (block + (set_local $5 + (get_local $8) + ) + (set_local $7 + (get_local $11) + ) + (set_local $6 + (select + (tee_local $11 + (i32.add + (i32.sub + (get_local $39) + (get_local $8) + ) + (i32.const 1) ) - (i32.const 1) ) - ) - (get_local $6) - (i32.lt_s (get_local $6) - (get_local $11) + (i32.lt_s + (get_local $6) + (get_local $11) + ) ) ) + (set_local $8 + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) + ) + (br $__rjti$8) ) - (set_local $8 - (i32.const 0) + (block + (set_local $5 + (get_local $8) + ) + (set_local $7 + (get_local $11) + ) + (set_local $8 + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) + ) + (br $__rjti$8) ) - (set_local $9 - (i32.const 4091) + ) + ) + (set_local $5 + (i32.load + (tee_local $7 + (get_local $19) + ) + ) + ) + (if + (i32.lt_s + (tee_local $7 + (i32.load offset=4 + (get_local $7) + ) ) - (br $__rjti$8) + (i32.const 0) ) (block - (set_local $5 - (get_local $8) + (i32.store + (tee_local $8 + (get_local $19) + ) + (tee_local $5 + (call $_i64Subtract + (i32.const 0) + (i32.const 0) + (get_local $5) + (get_local $7) + ) + ) ) - (set_local $7 - (get_local $11) + (i32.store offset=4 + (get_local $8) + (tee_local $7 + (get_global $tempRet0) + ) ) (set_local $8 - (i32.const 0) + (i32.const 1) ) (set_local $9 (i32.const 4091) ) - (br $__rjti$8) + (br $__rjti$4) ) ) - ) - (set_local $5 - (i32.load - (tee_local $7 - (get_local $19) + (if + (i32.and + (get_local $11) + (i32.const 2048) ) - ) - ) - (if - (i32.lt_s - (tee_local $7 - (i32.load offset=4 - (get_local $7) + (block + (set_local $8 + (i32.const 1) ) - ) - (i32.const 0) - ) - (block - (i32.store - (tee_local $8 - (get_local $19) + (set_local $9 + (i32.const 4092) ) - (tee_local $5 - (call $_i64Subtract - (i32.const 0) - (i32.const 0) - (get_local $5) - (get_local $7) + (br $__rjti$4) + ) + (block + (set_local $8 + (tee_local $9 + (i32.and + (get_local $11) + (i32.const 1) + ) ) ) - ) - (i32.store offset=4 - (get_local $8) - (tee_local $7 - (get_global $tempRet0) + (set_local $9 + (select + (i32.const 4093) + (i32.const 4091) + (get_local $9) + ) ) + (br $__rjti$4) ) - (set_local $8 - (i32.const 1) - ) - (set_local $9 - (i32.const 4091) - ) - (br $__rjti$4) ) ) - (if - (i32.and - (get_local $11) - (i32.const 2048) - ) - (block - (set_local $8 - (i32.const 1) - ) - (set_local $9 - (i32.const 4092) + (set_local $5 + (i32.load + (tee_local $7 + (get_local $19) ) - (br $__rjti$4) ) - (block - (set_local $8 - (tee_local $9 - (i32.and - (get_local $11) - (i32.const 1) - ) - ) - ) - (set_local $9 - (select - (i32.const 4093) - (i32.const 4091) - (get_local $9) - ) - ) - (br $__rjti$4) + ) + (set_local $7 + (i32.load offset=4 + (get_local $7) ) ) + (set_local $8 + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) + ) + (br $__rjti$4) ) (set_local $5 + (get_local $19) + ) + (i32.store8 + (get_local $40) (i32.load - (tee_local $7 - (get_local $19) - ) + (get_local $5) ) ) (set_local $7 - (i32.load offset=4 - (get_local $7) - ) + (get_local $40) + ) + (set_local $11 + (get_local $8) + ) + (set_local $12 + (i32.const 1) ) (set_local $8 (i32.const 0) @@ -3933,978 +3960,979 @@ (set_local $9 (i32.const 4091) ) - (br $__rjti$4) - ) - (set_local $5 - (get_local $19) - ) - (i32.store8 - (get_local $40) - (i32.load - (get_local $5) + (br $__rjto$8 + (get_local $22) ) ) - (set_local $7 - (get_local $40) - ) - (set_local $11 - (get_local $8) - ) - (set_local $12 - (i32.const 1) - ) - (set_local $8 - (i32.const 0) - ) - (set_local $9 - (i32.const 4091) - ) (set_local $5 - (get_local $22) + (call $_strerror + (i32.load + (call $___errno_location) + ) + ) ) - (br $__rjto$8) + (br $__rjti$5) ) (set_local $5 - (call $_strerror - (i32.load - (call $___errno_location) + (select + (tee_local $5 + (i32.load + (get_local $19) + ) ) + (i32.const 4101) + (get_local $5) ) ) (br $__rjti$5) ) (set_local $5 - (select - (tee_local $5 - (i32.load - (get_local $19) - ) - ) - (i32.const 4101) + (get_local $19) + ) + (i32.store + (get_local $41) + (i32.load (get_local $5) ) ) - (br $__rjti$5) - ) - (set_local $5 - (get_local $19) - ) - (i32.store - (get_local $41) - (i32.load - (get_local $5) + (i32.store + (get_local $44) + (i32.const 0) + ) + (i32.store + (get_local $19) + (get_local $41) ) - ) - (i32.store - (get_local $44) - (i32.const 0) - ) - (i32.store - (get_local $19) - (get_local $41) - ) - (set_local $8 - (i32.const -1) - ) - (br $__rjti$6) - ) - (if - (get_local $6) - (block (set_local $8 - (get_local $6) + (i32.const -1) ) (br $__rjti$6) ) - (block - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (i32.const 0) - (get_local $11) + (if + (get_local $6) + (block + (set_local $8 + (get_local $6) + ) + (br $__rjti$6) ) - (set_local $7 - (i32.const 0) + (block + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $14) + (i32.const 0) + (get_local $11) + ) + (set_local $7 + (i32.const 0) + ) + (br $__rjti$7) ) - (br $__rjti$7) ) ) - ) - (set_local $15 - (f64.load - (get_local $19) - ) - ) - (i32.store - (get_local $21) - (i32.const 0) - ) - (f64.store - (get_global $tempDoublePtr) - (get_local $15) - ) - (set_local $31 - (if i32 - (i32.lt_s - (i32.load offset=4 - (get_global $tempDoublePtr) - ) - (i32.const 0) - ) - (block i32 - (set_local $27 - (i32.const 1) - ) - (set_local $15 - (f64.neg - (get_local $15) - ) - ) - (i32.const 4108) + (set_local $15 + (f64.load + (get_local $19) ) + ) + (i32.store + (get_local $21) + (i32.const 0) + ) + (f64.store + (get_global $tempDoublePtr) + (get_local $15) + ) + (set_local $31 (if i32 - (i32.and - (get_local $11) - (i32.const 2048) + (i32.lt_s + (i32.load offset=4 + (get_global $tempDoublePtr) + ) + (i32.const 0) ) (block i32 (set_local $27 (i32.const 1) ) - (i32.const 4111) - ) - (block i32 - (set_local $27 - (tee_local $5 - (i32.and - (get_local $11) - (i32.const 1) - ) + (set_local $15 + (f64.neg + (get_local $15) ) ) - (select - (i32.const 4114) - (i32.const 4109) - (get_local $5) - ) + (i32.const 4108) ) - ) - ) - ) - (f64.store - (get_global $tempDoublePtr) - (get_local $15) - ) - (set_local $7 - (block $do-once49 i32 - (if i32 - (i32.or - (i32.lt_u - (tee_local $5 - (i32.and - (i32.load offset=4 - (get_global $tempDoublePtr) + (if i32 + (i32.and + (get_local $11) + (i32.const 2048) + ) + (block i32 + (set_local $27 + (i32.const 1) + ) + (i32.const 4111) + ) + (block i32 + (set_local $27 + (tee_local $5 + (i32.and + (get_local $11) + (i32.const 1) ) - (i32.const 2146435072) ) ) - (i32.const 2146435072) - ) - (i32.and - (i32.eq + (select + (i32.const 4114) + (i32.const 4109) (get_local $5) - (i32.const 2146435072) ) - (i32.const 0) ) ) - (block i32 - (if - (tee_local $5 - (f64.ne - (tee_local $24 - (f64.mul - (call $_frexpl - (get_local $15) - (get_local $21) - ) - (f64.const 2) + ) + ) + (f64.store + (get_global $tempDoublePtr) + (get_local $15) + ) + (set_local $7 + (block $do-once49 i32 + (if i32 + (i32.or + (i32.lt_u + (tee_local $5 + (i32.and + (i32.load offset=4 + (get_global $tempDoublePtr) ) + (i32.const 2146435072) ) - (f64.const 0) ) + (i32.const 2146435072) ) - (i32.store - (get_local $21) - (i32.add - (i32.load - (get_local $21) - ) - (i32.const -1) + (i32.and + (i32.eq + (get_local $5) + (i32.const 2146435072) ) + (i32.const 0) ) ) - (if - (i32.eq - (tee_local $25 - (i32.or - (get_local $18) - (i32.const 32) + (block i32 + (if + (tee_local $5 + (f64.ne + (tee_local $24 + (f64.mul + (call $_frexpl + (get_local $15) + (get_local $21) + ) + (f64.const 2) + ) + ) + (f64.const 0) ) ) - (i32.const 97) - ) - (block - (set_local $9 - (select - (i32.add - (get_local $31) - (i32.const 9) - ) - (get_local $31) - (tee_local $13 - (i32.and - (get_local $18) - (i32.const 32) - ) + (i32.store + (get_local $21) + (i32.add + (i32.load + (get_local $21) ) + (i32.const -1) ) ) - (set_local $15 - (if f64 + ) + (if + (i32.eq + (tee_local $25 (i32.or - (i32.gt_u - (get_local $6) - (i32.const 11) + (get_local $18) + (i32.const 32) + ) + ) + (i32.const 97) + ) + (block + (set_local $9 + (select + (i32.add + (get_local $31) + (i32.const 9) ) - (i32.eqz - (tee_local $5 - (i32.sub - (i32.const 12) - (get_local $6) - ) + (get_local $31) + (tee_local $13 + (i32.and + (get_local $18) + (i32.const 32) ) ) ) - (get_local $24) - (block f64 - (set_local $15 - (f64.const 8) - ) - (loop $while-in54 - (set_local $15 - (f64.mul - (get_local $15) - (f64.const 16) - ) + ) + (set_local $15 + (if f64 + (i32.or + (i32.gt_u + (get_local $6) + (i32.const 11) ) - (br_if $while-in54 + (i32.eqz (tee_local $5 - (i32.add - (get_local $5) - (i32.const -1) + (i32.sub + (i32.const 12) + (get_local $6) ) ) ) ) - (if f64 - (i32.eq - (i32.load8_s - (get_local $9) - ) - (i32.const 45) + (get_local $24) + (block f64 + (set_local $15 + (f64.const 8) ) - (f64.neg - (f64.add - (get_local $15) - (f64.sub - (f64.neg - (get_local $24) - ) + (loop $while-in54 + (set_local $15 + (f64.mul (get_local $15) + (f64.const 16) + ) + ) + (br_if $while-in54 + (tee_local $5 + (i32.add + (get_local $5) + (i32.const -1) + ) ) ) ) - (f64.sub - (f64.add - (get_local $24) + (if f64 + (i32.eq + (i32.load8_s + (get_local $9) + ) + (i32.const 45) + ) + (f64.neg + (f64.add + (get_local $15) + (f64.sub + (f64.neg + (get_local $24) + ) + (get_local $15) + ) + ) + ) + (f64.sub + (f64.add + (get_local $24) + (get_local $15) + ) (get_local $15) ) - (get_local $15) ) ) ) ) - ) - (if - (i32.eq - (tee_local $5 - (call $_fmt_u - (tee_local $5 - (select - (i32.sub - (i32.const 0) - (tee_local $7 - (i32.load - (get_local $21) + (if + (i32.eq + (tee_local $5 + (call $_fmt_u + (tee_local $5 + (select + (i32.sub + (i32.const 0) + (tee_local $7 + (i32.load + (get_local $21) + ) ) ) - ) - (get_local $7) - (i32.lt_s (get_local $7) - (i32.const 0) + (i32.lt_s + (get_local $7) + (i32.const 0) + ) ) ) - ) - (i32.shr_s - (i32.shl - (i32.lt_s - (get_local $5) - (i32.const 0) + (i32.shr_s + (i32.shl + (i32.lt_s + (get_local $5) + (i32.const 0) + ) + (i32.const 31) ) (i32.const 31) ) - (i32.const 31) + (get_local $34) ) - (get_local $34) ) + (get_local $34) ) - (get_local $34) - ) - (block - (i32.store8 - (get_local $42) - (i32.const 48) - ) - (set_local $5 - (get_local $42) + (block + (i32.store8 + (get_local $42) + (i32.const 48) + ) + (set_local $5 + (get_local $42) + ) ) ) - ) - (set_local $12 - (i32.or - (get_local $27) - (i32.const 2) - ) - ) - (i32.store8 - (i32.add - (get_local $5) - (i32.const -1) - ) - (i32.add - (i32.and - (i32.shr_s - (get_local $7) - (i32.const 31) - ) + (set_local $12 + (i32.or + (get_local $27) (i32.const 2) ) - (i32.const 43) ) - ) - (i32.store8 - (tee_local $8 + (i32.store8 (i32.add (get_local $5) - (i32.const -2) + (i32.const -1) + ) + (i32.add + (i32.and + (i32.shr_s + (get_local $7) + (i32.const 31) + ) + (i32.const 2) + ) + (i32.const 43) ) ) - (i32.add - (get_local $18) - (i32.const 15) + (i32.store8 + (tee_local $8 + (i32.add + (get_local $5) + (i32.const -2) + ) + ) + (i32.add + (get_local $18) + (i32.const 15) + ) ) - ) - (set_local $18 - (i32.lt_s - (get_local $6) - (i32.const 1) + (set_local $18 + (i32.lt_s + (get_local $6) + (i32.const 1) + ) ) - ) - (set_local $17 - (i32.eqz - (i32.and - (get_local $11) - (i32.const 8) + (set_local $17 + (i32.eqz + (i32.and + (get_local $11) + (i32.const 8) + ) ) ) - ) - (set_local $5 - (get_local $23) - ) - (loop $while-in56 - (i32.store8 - (get_local $5) - (i32.or - (i32.load8_u - (i32.add - (tee_local $7 - (call $f64-to-int - (get_local $15) + (set_local $5 + (get_local $23) + ) + (loop $while-in56 + (i32.store8 + (get_local $5) + (i32.or + (i32.load8_u + (i32.add + (tee_local $7 + (call $f64-to-int + (get_local $15) + ) ) + (i32.const 4075) ) - (i32.const 4075) ) + (get_local $13) ) - (get_local $13) ) - ) - (set_local $15 - (f64.mul - (f64.sub - (get_local $15) - (f64.convert_s/i32 - (get_local $7) + (set_local $15 + (f64.mul + (f64.sub + (get_local $15) + (f64.convert_s/i32 + (get_local $7) + ) ) + (f64.const 16) ) - (f64.const 16) ) - ) - (set_local $5 - (block $do-once57 i32 - (if i32 - (i32.eq - (i32.sub - (tee_local $7 - (i32.add - (get_local $5) - (i32.const 1) + (set_local $5 + (block $do-once57 i32 + (if i32 + (i32.eq + (i32.sub + (tee_local $7 + (i32.add + (get_local $5) + (i32.const 1) + ) ) + (get_local $37) ) - (get_local $37) + (i32.const 1) ) - (i32.const 1) - ) - (block i32 - (drop - (br_if $do-once57 - (get_local $7) - (i32.and - (get_local $17) + (block i32 + (drop + (br_if $do-once57 + (get_local $7) (i32.and - (get_local $18) - (f64.eq - (get_local $15) - (f64.const 0) + (get_local $17) + (i32.and + (get_local $18) + (f64.eq + (get_local $15) + (f64.const 0) + ) ) ) ) ) + (i32.store8 + (get_local $7) + (i32.const 46) + ) + (i32.add + (get_local $5) + (i32.const 2) + ) ) - (i32.store8 - (get_local $7) - (i32.const 46) - ) - (i32.add - (get_local $5) - (i32.const 2) - ) + (get_local $7) ) - (get_local $7) ) ) - ) - (br_if $while-in56 - (f64.ne - (get_local $15) - (f64.const 0) + (br_if $while-in56 + (f64.ne + (get_local $15) + (f64.const 0) + ) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (tee_local $7 - (i32.add - (tee_local $6 - (select - (i32.sub - (i32.add - (get_local $47) - (get_local $6) - ) - (get_local $8) - ) - (i32.add + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $14) + (tee_local $7 + (i32.add + (tee_local $6 + (select (i32.sub - (get_local $45) + (i32.add + (get_local $47) + (get_local $6) + ) (get_local $8) ) - (get_local $5) - ) - (i32.and - (i32.ne - (get_local $6) - (i32.const 0) + (i32.add + (i32.sub + (get_local $45) + (get_local $8) + ) + (get_local $5) ) - (i32.lt_s - (i32.add - (get_local $46) - (get_local $5) + (i32.and + (i32.ne + (get_local $6) + (i32.const 0) + ) + (i32.lt_s + (i32.add + (get_local $46) + (get_local $5) + ) + (get_local $6) ) - (get_local $6) ) ) ) + (get_local $12) ) - (get_local $12) ) + (get_local $11) ) - (get_local $11) - ) - (if - (i32.eqz - (i32.and - (i32.load + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $9) + (get_local $12) (get_local $0) ) - (i32.const 32) ) ) - (drop - (call $___fwritex - (get_local $9) - (get_local $12) - (get_local $0) + (call $_pad + (get_local $0) + (i32.const 48) + (get_local $14) + (get_local $7) + (i32.xor + (get_local $11) + (i32.const 65536) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (get_local $14) - (get_local $7) - (i32.xor - (get_local $11) - (i32.const 65536) - ) - ) - (set_local $5 - (i32.sub - (get_local $5) - (get_local $37) + (set_local $5 + (i32.sub + (get_local $5) + (get_local $37) + ) ) - ) - (if - (i32.eqz - (i32.and - (i32.load + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $23) + (get_local $5) (get_local $0) ) - (i32.const 32) ) ) - (drop - (call $___fwritex - (get_local $23) - (get_local $5) - (get_local $0) + (call $_pad + (get_local $0) + (i32.const 48) + (i32.sub + (get_local $6) + (i32.add + (get_local $5) + (tee_local $5 + (i32.sub + (get_local $28) + (get_local $8) + ) + ) + ) ) + (i32.const 0) + (i32.const 0) ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (i32.sub - (get_local $6) - (i32.add - (get_local $5) - (tee_local $5 - (i32.sub - (get_local $28) - (get_local $8) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) ) + (i32.const 32) ) ) - ) - (i32.const 0) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (i32.load + (drop + (call $___fwritex + (get_local $8) + (get_local $5) (get_local $0) ) - (i32.const 32) ) ) - (drop - (call $___fwritex - (get_local $8) - (get_local $5) - (get_local $0) - ) - ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (get_local $7) - (i32.xor - (get_local $11) - (i32.const 8192) - ) - ) - (br $do-once49 - (select + (call $_pad + (get_local $0) + (i32.const 32) (get_local $14) (get_local $7) - (i32.lt_s - (get_local $7) + (i32.xor + (get_local $11) + (i32.const 8192) + ) + ) + (br $do-once49 + (select (get_local $14) + (get_local $7) + (i32.lt_s + (get_local $7) + (get_local $14) + ) ) ) ) ) - ) - (set_local $15 - (if f64 - (get_local $5) - (block f64 - (i32.store - (get_local $21) - (tee_local $5 - (i32.add - (i32.load - (get_local $21) + (set_local $15 + (if f64 + (get_local $5) + (block f64 + (i32.store + (get_local $21) + (tee_local $5 + (i32.add + (i32.load + (get_local $21) + ) + (i32.const -28) ) - (i32.const -28) ) ) + (f64.mul + (get_local $24) + (f64.const 268435456) + ) ) - (f64.mul + (block f64 + (set_local $5 + (i32.load + (get_local $21) + ) + ) (get_local $24) - (f64.const 268435456) ) ) - (block f64 - (set_local $5 - (i32.load - (get_local $21) + ) + (set_local $7 + (tee_local $8 + (select + (get_local $48) + (get_local $49) + (i32.lt_s + (get_local $5) + (i32.const 0) ) ) - (get_local $24) ) ) - ) - (set_local $7 - (tee_local $8 - (select - (get_local $48) - (get_local $49) - (i32.lt_s - (get_local $5) - (i32.const 0) + (loop $while-in60 + (i32.store + (get_local $7) + (tee_local $5 + (call $f64-to-int + (get_local $15) + ) ) ) - ) - ) - (loop $while-in60 - (i32.store - (get_local $7) - (tee_local $5 - (call $f64-to-int - (get_local $15) + (set_local $7 + (i32.add + (get_local $7) + (i32.const 4) ) ) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 4) - ) - ) - (br_if $while-in60 - (f64.ne - (tee_local $15 - (f64.mul - (f64.sub - (get_local $15) - (f64.convert_u/i32 - (get_local $5) + (br_if $while-in60 + (f64.ne + (tee_local $15 + (f64.mul + (f64.sub + (get_local $15) + (f64.convert_u/i32 + (get_local $5) + ) ) + (f64.const 1e9) ) - (f64.const 1e9) ) + (f64.const 0) ) - (f64.const 0) ) ) - ) - (if - (i32.gt_s - (tee_local $9 - (i32.load - (get_local $21) + (if + (i32.gt_s + (tee_local $9 + (i32.load + (get_local $21) + ) ) + (i32.const 0) ) - (i32.const 0) - ) - (block - (set_local $5 - (get_local $8) - ) - (loop $while-in62 - (set_local $13 - (select - (i32.const 29) - (get_local $9) - (i32.gt_s - (get_local $9) + (block + (set_local $5 + (get_local $8) + ) + (loop $while-in62 + (set_local $13 + (select (i32.const 29) + (get_local $9) + (i32.gt_s + (get_local $9) + (i32.const 29) + ) ) ) - ) - (block $do-once63 - (if - (i32.ge_u - (tee_local $9 - (i32.add - (get_local $7) - (i32.const -4) + (block $do-once63 + (if + (i32.ge_u + (tee_local $9 + (i32.add + (get_local $7) + (i32.const -4) + ) ) + (get_local $5) ) - (get_local $5) - ) - (block - (set_local $12 - (i32.const 0) - ) - (loop $while-in66 - (i32.store - (get_local $9) - (tee_local $20 - (call $___uremdi3 - (tee_local $12 - (call $_i64Add - (call $_bitshift64Shl - (i32.load - (get_local $9) + (block + (set_local $12 + (i32.const 0) + ) + (loop $while-in66 + (i32.store + (get_local $9) + (tee_local $20 + (call $___uremdi3 + (tee_local $12 + (call $_i64Add + (call $_bitshift64Shl + (i32.load + (get_local $9) + ) + (i32.const 0) + (get_local $13) ) + (get_global $tempRet0) + (get_local $12) (i32.const 0) - (get_local $13) ) + ) + (tee_local $17 (get_global $tempRet0) - (get_local $12) - (i32.const 0) ) + (i32.const 1000000000) + (i32.const 0) ) - (tee_local $17 - (get_global $tempRet0) - ) + ) + ) + (set_local $12 + (call $___udivdi3 + (get_local $12) + (get_local $17) (i32.const 1000000000) (i32.const 0) ) ) + (br_if $while-in66 + (i32.ge_u + (tee_local $9 + (i32.add + (get_local $9) + (i32.const -4) + ) + ) + (get_local $5) + ) + ) ) - (set_local $12 - (call $___udivdi3 + (br_if $do-once63 + (i32.eqz (get_local $12) - (get_local $17) - (i32.const 1000000000) - (i32.const 0) ) ) - (br_if $while-in66 - (i32.ge_u - (tee_local $9 - (i32.add - (get_local $9) - (i32.const -4) - ) + (i32.store + (tee_local $5 + (i32.add + (get_local $5) + (i32.const -4) ) - (get_local $5) ) - ) - ) - (br_if $do-once63 - (i32.eqz (get_local $12) ) ) - (i32.store - (tee_local $5 - (i32.add - (get_local $5) - (i32.const -4) - ) - ) - (get_local $12) - ) ) ) - ) - (loop $while-in68 - (if - (i32.gt_u - (get_local $7) - (get_local $5) - ) + (loop $while-in68 (if - (i32.eqz - (i32.load - (tee_local $9 - (i32.add - (get_local $7) - (i32.const -4) + (i32.gt_u + (get_local $7) + (get_local $5) + ) + (if + (i32.eqz + (i32.load + (tee_local $9 + (i32.add + (get_local $7) + (i32.const -4) + ) ) ) ) - ) - (block - (set_local $7 - (get_local $9) + (block + (set_local $7 + (get_local $9) + ) + (br $while-in68) ) - (br $while-in68) ) ) ) - ) - (i32.store - (get_local $21) - (tee_local $9 - (i32.sub - (i32.load - (get_local $21) + (i32.store + (get_local $21) + (tee_local $9 + (i32.sub + (i32.load + (get_local $21) + ) + (get_local $13) ) - (get_local $13) ) ) - ) - (br_if $while-in62 - (i32.gt_s - (get_local $9) - (i32.const 0) + (br_if $while-in62 + (i32.gt_s + (get_local $9) + (i32.const 0) + ) ) ) ) - ) - (set_local $5 - (get_local $8) - ) - ) - (set_local $17 - (select - (i32.const 6) - (get_local $6) - (i32.lt_s - (get_local $6) - (i32.const 0) + (set_local $5 + (get_local $8) ) ) - ) - (if - (i32.lt_s - (get_local $9) - (i32.const 0) - ) - (block - (set_local $20 - (i32.add - (call $i32s-div - (i32.add - (get_local $17) - (i32.const 25) - ) - (i32.const 9) - ) - (i32.const 1) - ) - ) - (set_local $32 - (i32.eq - (get_local $25) - (i32.const 102) + (set_local $17 + (select + (i32.const 6) + (get_local $6) + (i32.lt_s + (get_local $6) + (i32.const 0) ) ) - (set_local $6 - (get_local $5) - ) - (set_local $5 - (get_local $7) + ) + (if + (i32.lt_s + (get_local $9) + (i32.const 0) ) - (loop $while-in70 - (set_local $13 - (select - (i32.const 9) - (tee_local $7 - (i32.sub - (i32.const 0) - (get_local $9) + (block + (set_local $20 + (i32.add + (call $i32s-div + (i32.add + (get_local $17) + (i32.const 25) ) - ) - (i32.gt_s - (get_local $7) (i32.const 9) ) + (i32.const 1) ) ) - (block $do-once71 - (if - (i32.lt_u - (get_local $6) - (get_local $5) - ) - (block - (set_local $12 - (i32.add - (i32.shl - (i32.const 1) - (get_local $13) - ) - (i32.const -1) - ) - ) - (set_local $38 - (i32.shr_u - (i32.const 1000000000) - (get_local $13) + (set_local $32 + (i32.eq + (get_local $25) + (i32.const 102) + ) + ) + (set_local $6 + (get_local $5) + ) + (set_local $5 + (get_local $7) + ) + (loop $while-in70 + (set_local $13 + (select + (i32.const 9) + (tee_local $7 + (i32.sub + (i32.const 0) + (get_local $9) ) ) - (set_local $9 - (i32.const 0) + (i32.gt_s + (get_local $7) + (i32.const 9) ) - (set_local $7 + ) + ) + (block $do-once71 + (if + (i32.lt_u (get_local $6) + (get_local $5) ) - (loop $while-in74 - (i32.store - (get_local $7) + (block + (set_local $12 (i32.add - (i32.shr_u - (tee_local $33 - (i32.load - (get_local $7) - ) - ) + (i32.shl + (i32.const 1) (get_local $13) ) - (get_local $9) + (i32.const -1) + ) + ) + (set_local $38 + (i32.shr_u + (i32.const 1000000000) + (get_local $13) ) ) (set_local $9 - (i32.mul - (i32.and - (get_local $33) - (get_local $12) + (i32.const 0) + ) + (set_local $7 + (get_local $6) + ) + (loop $while-in74 + (i32.store + (get_local $7) + (i32.add + (i32.shr_u + (tee_local $33 + (i32.load + (get_local $7) + ) + ) + (get_local $13) + ) + (get_local $9) ) - (get_local $38) ) - ) - (br_if $while-in74 - (i32.lt_u - (tee_local $7 - (i32.add - (get_local $7) - (i32.const 4) + (set_local $9 + (i32.mul + (i32.and + (get_local $33) + (get_local $12) ) + (get_local $38) ) + ) + (br_if $while-in74 + (i32.lt_u + (tee_local $7 + (i32.add + (get_local $7) + (i32.const 4) + ) + ) + (get_local $5) + ) + ) + ) + (set_local $7 + (select + (get_local $6) + (i32.add + (get_local $6) + (i32.const 4) + ) + (i32.load + (get_local $6) + ) + ) + ) + (br_if $do-once71 + (i32.eqz + (get_local $9) + ) + ) + (i32.store + (get_local $5) + (get_local $9) + ) + (set_local $5 + (i32.add (get_local $5) + (i32.const 4) ) ) ) @@ -4920,490 +4948,463 @@ ) ) ) - (br_if $do-once71 - (i32.eqz - (get_local $9) + ) + ) + (set_local $12 + (select + (i32.add + (tee_local $6 + (select + (get_local $8) + (get_local $7) + (get_local $32) + ) + ) + (i32.shl + (get_local $20) + (i32.const 2) ) ) - (i32.store - (get_local $5) - (get_local $9) - ) - (set_local $5 - (i32.add - (get_local $5) - (i32.const 4) + (get_local $5) + (i32.gt_s + (i32.shr_s + (i32.sub + (get_local $5) + (get_local $6) + ) + (i32.const 2) ) + (get_local $20) ) ) - (set_local $7 - (select - (get_local $6) - (i32.add - (get_local $6) - (i32.const 4) - ) + ) + (i32.store + (get_local $21) + (tee_local $9 + (i32.add (i32.load - (get_local $6) + (get_local $21) ) + (get_local $13) ) ) ) - ) - (set_local $12 - (select - (i32.add - (tee_local $6 - (select - (get_local $8) - (get_local $7) - (get_local $32) - ) + (if + (i32.lt_s + (get_local $9) + (i32.const 0) + ) + (block + (set_local $6 + (get_local $7) ) - (i32.shl - (get_local $20) - (i32.const 2) + (set_local $5 + (get_local $12) ) + (br $while-in70) ) - (get_local $5) - (i32.gt_s - (i32.shr_s - (i32.sub - (get_local $5) - (get_local $6) - ) - (i32.const 2) + (block + (set_local $5 + (get_local $7) ) - (get_local $20) - ) - ) - ) - (i32.store - (get_local $21) - (tee_local $9 - (i32.add - (i32.load - (get_local $21) + (set_local $9 + (get_local $12) ) - (get_local $13) - ) - ) - ) - (if - (i32.lt_s - (get_local $9) - (i32.const 0) - ) - (block - (set_local $6 - (get_local $7) - ) - (set_local $5 - (get_local $12) - ) - (br $while-in70) - ) - (block - (set_local $5 - (get_local $7) - ) - (set_local $9 - (get_local $12) ) ) ) ) + (set_local $9 + (get_local $7) + ) ) - (set_local $9 - (get_local $7) + (set_local $20 + (get_local $8) ) - ) - (set_local $20 - (get_local $8) - ) - (block $do-once75 - (if - (i32.lt_u - (get_local $5) - (get_local $9) - ) - (block - (set_local $7 - (i32.mul - (i32.shr_s - (i32.sub - (get_local $20) - (get_local $5) + (block $do-once75 + (if + (i32.lt_u + (get_local $5) + (get_local $9) + ) + (block + (set_local $7 + (i32.mul + (i32.shr_s + (i32.sub + (get_local $20) + (get_local $5) + ) + (i32.const 2) ) - (i32.const 2) + (i32.const 9) ) - (i32.const 9) ) - ) - (br_if $do-once75 - (i32.lt_u - (tee_local $12 - (i32.load - (get_local $5) + (br_if $do-once75 + (i32.lt_u + (tee_local $12 + (i32.load + (get_local $5) + ) ) + (i32.const 10) ) + ) + (set_local $6 (i32.const 10) ) - ) - (set_local $6 - (i32.const 10) - ) - (loop $while-in78 - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) + (loop $while-in78 + (set_local $7 + (i32.add + (get_local $7) + (i32.const 1) + ) ) - ) - (br_if $while-in78 - (i32.ge_u - (get_local $12) - (tee_local $6 - (i32.mul - (get_local $6) - (i32.const 10) + (br_if $while-in78 + (i32.ge_u + (get_local $12) + (tee_local $6 + (i32.mul + (get_local $6) + (i32.const 10) + ) ) ) ) ) ) - ) - (set_local $7 - (i32.const 0) + (set_local $7 + (i32.const 0) + ) ) ) - ) - (set_local $5 - (if i32 - (i32.lt_s - (tee_local $6 - (i32.add - (i32.sub - (get_local $17) - (select - (get_local $7) - (i32.const 0) - (i32.ne - (get_local $25) - (i32.const 102) + (set_local $5 + (if i32 + (i32.lt_s + (tee_local $6 + (i32.add + (i32.sub + (get_local $17) + (select + (get_local $7) + (i32.const 0) + (i32.ne + (get_local $25) + (i32.const 102) + ) ) ) - ) - (i32.shr_s - (i32.shl - (i32.and - (tee_local $32 - (i32.ne - (get_local $17) - (i32.const 0) + (i32.shr_s + (i32.shl + (i32.and + (tee_local $32 + (i32.ne + (get_local $17) + (i32.const 0) + ) ) - ) - (tee_local $38 - (i32.eq - (get_local $25) - (i32.const 103) + (tee_local $38 + (i32.eq + (get_local $25) + (i32.const 103) + ) ) ) + (i32.const 31) ) (i32.const 31) ) - (i32.const 31) - ) - ) - ) - (i32.add - (i32.mul - (i32.shr_s - (i32.sub - (get_local $9) - (get_local $20) - ) - (i32.const 2) ) - (i32.const 9) ) - (i32.const -9) - ) - ) - (block i32 - (set_local $13 - (call $i32s-div - (tee_local $6 - (i32.add - (get_local $6) - (i32.const 9216) + (i32.add + (i32.mul + (i32.shr_s + (i32.sub + (get_local $9) + (get_local $20) + ) + (i32.const 2) ) + (i32.const 9) ) - (i32.const 9) + (i32.const -9) ) ) - (if - (i32.lt_s - (tee_local $6 - (i32.add - (call $i32s-rem + (block i32 + (set_local $13 + (call $i32s-div + (tee_local $6 + (i32.add (get_local $6) - (i32.const 9) + (i32.const 9216) ) - (i32.const 1) ) + (i32.const 9) ) - (i32.const 9) ) - (block - (set_local $12 - (i32.const 10) + (if + (i32.lt_s + (tee_local $6 + (i32.add + (call $i32s-rem + (get_local $6) + (i32.const 9) + ) + (i32.const 1) + ) + ) + (i32.const 9) ) - (loop $while-in80 + (block (set_local $12 - (i32.mul - (get_local $12) - (i32.const 10) - ) + (i32.const 10) ) - (br_if $while-in80 - (i32.ne - (tee_local $6 - (i32.add - (get_local $6) - (i32.const 1) + (loop $while-in80 + (set_local $12 + (i32.mul + (get_local $12) + (i32.const 10) + ) + ) + (br_if $while-in80 + (i32.ne + (tee_local $6 + (i32.add + (get_local $6) + (i32.const 1) + ) ) + (i32.const 9) ) - (i32.const 9) ) ) ) + (set_local $12 + (i32.const 10) + ) ) - (set_local $12 - (i32.const 10) - ) - ) - (set_local $13 - (call $i32u-rem - (tee_local $25 - (i32.load - (tee_local $6 - (i32.add + (set_local $13 + (call $i32u-rem + (tee_local $25 + (i32.load + (tee_local $6 (i32.add - (get_local $8) - (i32.shl - (get_local $13) - (i32.const 2) + (i32.add + (get_local $8) + (i32.shl + (get_local $13) + (i32.const 2) + ) ) + (i32.const -4092) ) - (i32.const -4092) ) ) ) + (get_local $12) ) - (get_local $12) ) - ) - (block $do-once81 - (if - (i32.eqz - (i32.and - (tee_local $33 - (i32.eq - (i32.add - (get_local $6) - (i32.const 4) + (block $do-once81 + (if + (i32.eqz + (i32.and + (tee_local $33 + (i32.eq + (i32.add + (get_local $6) + (i32.const 4) + ) + (get_local $9) ) - (get_local $9) ) - ) - (i32.eqz - (get_local $13) + (i32.eqz + (get_local $13) + ) ) ) - ) - (block - (set_local $50 - (call $i32u-div - (get_local $25) - (get_local $12) + (block + (set_local $50 + (call $i32u-div + (get_local $25) + (get_local $12) + ) ) - ) - (set_local $15 - (if f64 - (i32.lt_u - (get_local $13) - (tee_local $51 - (call $i32s-div - (get_local $12) - (i32.const 2) + (set_local $15 + (if f64 + (i32.lt_u + (get_local $13) + (tee_local $51 + (call $i32s-div + (get_local $12) + (i32.const 2) + ) ) ) - ) - (f64.const 0.5) - (select - (f64.const 1) - (f64.const 1.5) - (i32.and - (get_local $33) - (i32.eq - (get_local $13) - (get_local $51) + (f64.const 0.5) + (select + (f64.const 1) + (f64.const 1.5) + (i32.and + (get_local $33) + (i32.eq + (get_local $13) + (get_local $51) + ) ) ) ) ) - ) - (set_local $24 - (select - (f64.const 9007199254740994) - (f64.const 9007199254740992) - (i32.and - (get_local $50) - (i32.const 1) + (set_local $24 + (select + (f64.const 9007199254740994) + (f64.const 9007199254740992) + (i32.and + (get_local $50) + (i32.const 1) + ) ) ) - ) - (block $do-once83 - (if - (get_local $27) - (block - (br_if $do-once83 - (i32.ne - (i32.load8_s - (get_local $31) + (block $do-once83 + (if + (get_local $27) + (block + (br_if $do-once83 + (i32.ne + (i32.load8_s + (get_local $31) + ) + (i32.const 45) ) - (i32.const 45) ) - ) - (set_local $24 - (f64.neg - (get_local $24) + (set_local $24 + (f64.neg + (get_local $24) + ) ) - ) - (set_local $15 - (f64.neg - (get_local $15) + (set_local $15 + (f64.neg + (get_local $15) + ) ) ) ) ) - ) - (i32.store - (get_local $6) - (tee_local $13 - (i32.sub - (get_local $25) - (get_local $13) + (i32.store + (get_local $6) + (tee_local $13 + (i32.sub + (get_local $25) + (get_local $13) + ) ) ) - ) - (br_if $do-once81 - (f64.eq - (f64.add + (br_if $do-once81 + (f64.eq + (f64.add + (get_local $24) + (get_local $15) + ) (get_local $24) - (get_local $15) ) - (get_local $24) ) - ) - (i32.store - (get_local $6) - (tee_local $7 - (i32.add - (get_local $13) - (get_local $12) + (i32.store + (get_local $6) + (tee_local $7 + (i32.add + (get_local $13) + (get_local $12) + ) ) ) - ) - (if - (i32.gt_u - (get_local $7) - (i32.const 999999999) - ) - (loop $while-in86 - (i32.store - (get_local $6) - (i32.const 0) + (if + (i32.gt_u + (get_local $7) + (i32.const 999999999) ) - (if - (i32.lt_u - (tee_local $6 - (i32.add - (get_local $6) - (i32.const -4) + (loop $while-in86 + (i32.store + (get_local $6) + (i32.const 0) + ) + (if + (i32.lt_u + (tee_local $6 + (i32.add + (get_local $6) + (i32.const -4) + ) ) + (get_local $5) + ) + (i32.store + (tee_local $5 + (i32.add + (get_local $5) + (i32.const -4) + ) + ) + (i32.const 0) ) - (get_local $5) ) (i32.store - (tee_local $5 + (get_local $6) + (tee_local $7 (i32.add - (get_local $5) - (i32.const -4) + (i32.load + (get_local $6) + ) + (i32.const 1) ) ) - (i32.const 0) ) - ) - (i32.store - (get_local $6) - (tee_local $7 - (i32.add - (i32.load - (get_local $6) - ) - (i32.const 1) + (br_if $while-in86 + (i32.gt_u + (get_local $7) + (i32.const 999999999) ) ) ) - (br_if $while-in86 - (i32.gt_u - (get_local $7) - (i32.const 999999999) - ) - ) ) - ) - (set_local $7 - (i32.mul - (i32.shr_s - (i32.sub - (get_local $20) - (get_local $5) + (set_local $7 + (i32.mul + (i32.shr_s + (i32.sub + (get_local $20) + (get_local $5) + ) + (i32.const 2) ) - (i32.const 2) + (i32.const 9) ) - (i32.const 9) ) - ) - (br_if $do-once81 - (i32.lt_u - (tee_local $13 - (i32.load - (get_local $5) + (br_if $do-once81 + (i32.lt_u + (tee_local $13 + (i32.load + (get_local $5) + ) ) + (i32.const 10) ) + ) + (set_local $12 (i32.const 10) ) - ) - (set_local $12 - (i32.const 10) - ) - (loop $while-in88 - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) + (loop $while-in88 + (set_local $7 + (i32.add + (get_local $7) + (i32.const 1) + ) ) - ) - (br_if $while-in88 - (i32.ge_u - (get_local $13) - (tee_local $12 - (i32.mul - (get_local $12) - (i32.const 10) + (br_if $while-in88 + (i32.ge_u + (get_local $13) + (tee_local $12 + (i32.mul + (get_local $12) + (i32.const 10) + ) ) ) ) @@ -5411,607 +5412,565 @@ ) ) ) - ) - (set_local $12 - (get_local $5) - ) - (set_local $13 - (get_local $7) - ) - (select - (tee_local $5 - (i32.add - (get_local $6) - (i32.const 4) - ) + (set_local $12 + (get_local $5) ) - (get_local $9) - (i32.gt_u + (set_local $13 + (get_local $7) + ) + (select + (tee_local $5 + (i32.add + (get_local $6) + (i32.const 4) + ) + ) (get_local $9) - (get_local $5) + (i32.gt_u + (get_local $9) + (get_local $5) + ) ) ) - ) - (block i32 - (set_local $12 - (get_local $5) - ) - (set_local $13 - (get_local $7) + (block i32 + (set_local $12 + (get_local $5) + ) + (set_local $13 + (get_local $7) + ) + (get_local $9) ) - (get_local $9) ) ) - ) - (set_local $33 - (i32.sub - (i32.const 0) - (get_local $13) + (set_local $33 + (i32.sub + (i32.const 0) + (get_local $13) + ) ) - ) - (loop $while-in90 - (block $while-out89 - (if - (i32.le_u - (get_local $5) - (get_local $12) - ) - (block - (set_local $25 - (i32.const 0) - ) - (set_local $9 + (loop $while-in90 + (block $while-out89 + (if + (i32.le_u (get_local $5) + (get_local $12) ) - (br $while-out89) - ) - ) - (if - (i32.load - (tee_local $7 - (i32.add + (block + (set_local $25 + (i32.const 0) + ) + (set_local $9 (get_local $5) - (i32.const -4) ) + (br $while-out89) ) ) - (block - (set_local $25 - (i32.const 1) + (if + (i32.load + (tee_local $7 + (i32.add + (get_local $5) + (i32.const -4) + ) + ) ) - (set_local $9 - (get_local $5) + (block + (set_local $25 + (i32.const 1) + ) + (set_local $9 + (get_local $5) + ) ) - ) - (block - (set_local $5 - (get_local $7) + (block + (set_local $5 + (get_local $7) + ) + (br $while-in90) ) - (br $while-in90) ) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (tee_local $13 - (i32.add + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $14) + (tee_local $13 (i32.add (i32.add (i32.add - (get_local $27) - (i32.const 1) - ) - (tee_local $5 - (block $do-once91 i32 - (if i32 - (get_local $38) - (block i32 - (set_local $7 - (if i32 - (i32.and - (i32.gt_s - (tee_local $5 - (i32.add - (i32.xor - (get_local $32) - (i32.const 1) + (i32.add + (get_local $27) + (i32.const 1) + ) + (tee_local $5 + (block $do-once91 i32 + (if i32 + (get_local $38) + (block i32 + (set_local $7 + (if i32 + (i32.and + (i32.gt_s + (tee_local $5 + (i32.add + (i32.xor + (get_local $32) + (i32.const 1) + ) + (get_local $17) ) - (get_local $17) ) + (get_local $13) + ) + (i32.gt_s + (get_local $13) + (i32.const -5) ) - (get_local $13) ) - (i32.gt_s - (get_local $13) - (i32.const -5) + (block i32 + (set_local $17 + (i32.sub + (i32.add + (get_local $5) + (i32.const -1) + ) + (get_local $13) + ) + ) + (i32.add + (get_local $18) + (i32.const -1) + ) ) - ) - (block i32 - (set_local $17 - (i32.sub + (block i32 + (set_local $17 (i32.add (get_local $5) (i32.const -1) ) - (get_local $13) ) - ) - (i32.add - (get_local $18) - (i32.const -1) - ) - ) - (block i32 - (set_local $17 (i32.add - (get_local $5) - (i32.const -1) + (get_local $18) + (i32.const -2) ) ) - (i32.add - (get_local $18) - (i32.const -2) - ) ) ) - ) - (if - (tee_local $5 - (i32.and - (get_local $11) - (i32.const 8) - ) - ) - (block - (set_local $20 - (get_local $5) + (if + (tee_local $5 + (i32.and + (get_local $11) + (i32.const 8) + ) ) - (br $do-once91 - (get_local $17) + (block + (set_local $20 + (get_local $5) + ) + (br $do-once91 + (get_local $17) + ) ) ) - ) - (block $do-once93 - (if - (get_local $25) - (block - (if - (i32.eqz - (tee_local $18 - (i32.load - (i32.add - (get_local $9) - (i32.const -4) + (block $do-once93 + (if + (get_local $25) + (block + (if + (i32.eqz + (tee_local $18 + (i32.load + (i32.add + (get_local $9) + (i32.const -4) + ) ) ) ) - ) - (block - (set_local $5 - (i32.const 9) - ) - (br $do-once93) - ) - ) - (if - (call $i32u-rem - (get_local $18) - (i32.const 10) - ) - (block - (set_local $5 - (i32.const 0) + (block + (set_local $5 + (i32.const 9) + ) + (br $do-once93) ) - (br $do-once93) ) - (block - (set_local $6 + (if + (call $i32u-rem + (get_local $18) (i32.const 10) ) - (set_local $5 - (i32.const 0) + (block + (set_local $5 + (i32.const 0) + ) + (br $do-once93) ) - ) - ) - (loop $while-in96 - (set_local $5 - (i32.add - (get_local $5) - (i32.const 1) + (block + (set_local $6 + (i32.const 10) + ) + (set_local $5 + (i32.const 0) + ) ) ) - (br_if $while-in96 - (i32.eqz - (call $i32u-rem - (get_local $18) - (tee_local $6 - (i32.mul - (get_local $6) - (i32.const 10) + (loop $while-in96 + (set_local $5 + (i32.add + (get_local $5) + (i32.const 1) + ) + ) + (br_if $while-in96 + (i32.eqz + (call $i32u-rem + (get_local $18) + (tee_local $6 + (i32.mul + (get_local $6) + (i32.const 10) + ) ) ) ) ) ) ) - ) - (set_local $5 - (i32.const 9) + (set_local $5 + (i32.const 9) + ) ) ) - ) - (set_local $6 - (i32.add - (i32.mul - (i32.shr_s - (i32.sub - (get_local $9) - (get_local $20) + (set_local $6 + (i32.add + (i32.mul + (i32.shr_s + (i32.sub + (get_local $9) + (get_local $20) + ) + (i32.const 2) ) - (i32.const 2) + (i32.const 9) ) - (i32.const 9) - ) - (i32.const -9) - ) - ) - (if i32 - (i32.eq - (i32.or - (get_local $7) - (i32.const 32) + (i32.const -9) ) - (i32.const 102) ) - (block i32 - (set_local $20 - (i32.const 0) + (if i32 + (i32.eq + (i32.or + (get_local $7) + (i32.const 32) + ) + (i32.const 102) ) - (select - (get_local $17) - (tee_local $5 - (select - (i32.const 0) - (tee_local $5 - (i32.sub - (get_local $6) + (block i32 + (set_local $20 + (i32.const 0) + ) + (select + (get_local $17) + (tee_local $5 + (select + (i32.const 0) + (tee_local $5 + (i32.sub + (get_local $6) + (get_local $5) + ) + ) + (i32.lt_s (get_local $5) + (i32.const 0) ) ) - (i32.lt_s - (get_local $5) - (i32.const 0) - ) ) - ) - (i32.lt_s - (get_local $17) - (get_local $5) + (i32.lt_s + (get_local $17) + (get_local $5) + ) ) ) - ) - (block i32 - (set_local $20 - (i32.const 0) - ) - (select - (get_local $17) - (tee_local $5 - (select - (i32.const 0) - (tee_local $5 - (i32.sub - (i32.add - (get_local $6) - (get_local $13) + (block i32 + (set_local $20 + (i32.const 0) + ) + (select + (get_local $17) + (tee_local $5 + (select + (i32.const 0) + (tee_local $5 + (i32.sub + (i32.add + (get_local $6) + (get_local $13) + ) + (get_local $5) ) + ) + (i32.lt_s (get_local $5) + (i32.const 0) ) ) - (i32.lt_s - (get_local $5) - (i32.const 0) - ) ) - ) - (i32.lt_s - (get_local $17) - (get_local $5) + (i32.lt_s + (get_local $17) + (get_local $5) + ) ) ) ) ) - ) - (block i32 - (set_local $20 - (i32.and - (get_local $11) - (i32.const 8) + (block i32 + (set_local $20 + (i32.and + (get_local $11) + (i32.const 8) + ) ) + (set_local $7 + (get_local $18) + ) + (get_local $17) ) - (set_local $7 - (get_local $18) - ) - (get_local $17) ) ) ) ) - ) - (i32.ne - (tee_local $32 - (i32.or - (get_local $5) - (get_local $20) - ) - ) - (i32.const 0) - ) - ) - (tee_local $7 - (if i32 - (tee_local $17 - (i32.eq + (i32.ne + (tee_local $32 (i32.or - (get_local $7) - (i32.const 32) + (get_local $5) + (get_local $20) ) - (i32.const 102) ) + (i32.const 0) ) - (block i32 - (set_local $18 - (i32.const 0) + ) + (tee_local $7 + (if i32 + (tee_local $17 + (i32.eq + (i32.or + (get_local $7) + (i32.const 32) + ) + (i32.const 102) + ) ) - (select - (get_local $13) - (i32.const 0) - (i32.gt_s + (block i32 + (set_local $18 + (i32.const 0) + ) + (select (get_local $13) (i32.const 0) + (i32.gt_s + (get_local $13) + (i32.const 0) + ) ) ) - ) - (block i32 - (if - (i32.lt_s - (i32.sub - (get_local $28) - (tee_local $6 - (call $_fmt_u - (tee_local $6 - (select - (get_local $33) - (get_local $13) - (i32.lt_s + (block i32 + (if + (i32.lt_s + (i32.sub + (get_local $28) + (tee_local $6 + (call $_fmt_u + (tee_local $6 + (select + (get_local $33) (get_local $13) - (i32.const 0) + (i32.lt_s + (get_local $13) + (i32.const 0) + ) ) ) - ) - (i32.shr_s - (i32.shl - (i32.lt_s - (get_local $6) - (i32.const 0) + (i32.shr_s + (i32.shl + (i32.lt_s + (get_local $6) + (i32.const 0) + ) + (i32.const 31) ) (i32.const 31) ) - (i32.const 31) + (get_local $34) ) - (get_local $34) ) ) + (i32.const 2) ) - (i32.const 2) - ) - (loop $while-in98 - (i32.store8 - (tee_local $6 - (i32.add - (get_local $6) - (i32.const -1) + (loop $while-in98 + (i32.store8 + (tee_local $6 + (i32.add + (get_local $6) + (i32.const -1) + ) + ) + (i32.const 48) + ) + (br_if $while-in98 + (i32.lt_s + (i32.sub + (get_local $28) + (get_local $6) + ) + (i32.const 2) ) ) - (i32.const 48) ) - (br_if $while-in98 - (i32.lt_s - (i32.sub - (get_local $28) - (get_local $6) + ) + (i32.store8 + (i32.add + (get_local $6) + (i32.const -1) + ) + (i32.add + (i32.and + (i32.shr_s + (get_local $13) + (i32.const 31) ) (i32.const 2) ) + (i32.const 43) ) ) - ) - (i32.store8 - (i32.add - (get_local $6) - (i32.const -1) - ) - (i32.add - (i32.and - (i32.shr_s - (get_local $13) - (i32.const 31) + (i32.store8 + (tee_local $6 + (i32.add + (get_local $6) + (i32.const -2) ) - (i32.const 2) ) - (i32.const 43) + (get_local $7) ) - ) - (i32.store8 - (tee_local $6 - (i32.add - (get_local $6) - (i32.const -2) - ) + (set_local $18 + (get_local $6) + ) + (i32.sub + (get_local $28) + (get_local $6) ) - (get_local $7) - ) - (set_local $18 - (get_local $6) - ) - (i32.sub - (get_local $28) - (get_local $6) ) ) ) ) ) + (get_local $11) ) - (get_local $11) - ) - (if - (i32.eqz - (i32.and - (i32.load + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $31) + (get_local $27) (get_local $0) ) - (i32.const 32) ) ) - (drop - (call $___fwritex - (get_local $31) - (get_local $27) - (get_local $0) + (call $_pad + (get_local $0) + (i32.const 48) + (get_local $14) + (get_local $13) + (i32.xor + (get_local $11) + (i32.const 65536) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (get_local $14) - (get_local $13) - (i32.xor - (get_local $11) - (i32.const 65536) - ) - ) - (block $do-once99 - (if - (get_local $17) - (block - (set_local $6 - (tee_local $12 - (select - (get_local $8) - (get_local $12) - (i32.gt_u - (get_local $12) + (block $do-once99 + (if + (get_local $17) + (block + (set_local $6 + (tee_local $12 + (select (get_local $8) + (get_local $12) + (i32.gt_u + (get_local $12) + (get_local $8) + ) ) ) ) - ) - (loop $while-in102 - (set_local $7 - (call $_fmt_u - (i32.load - (get_local $6) + (loop $while-in102 + (set_local $7 + (call $_fmt_u + (i32.load + (get_local $6) + ) + (i32.const 0) + (get_local $30) ) - (i32.const 0) - (get_local $30) ) - ) - (block $do-once103 - (if - (i32.eq - (get_local $6) - (get_local $12) - ) - (block - (br_if $do-once103 - (i32.ne - (get_local $7) - (get_local $30) - ) - ) - (i32.store8 - (get_local $35) - (i32.const 48) - ) - (set_local $7 - (get_local $35) + (block $do-once103 + (if + (i32.eq + (get_local $6) + (get_local $12) ) - ) - (block - (br_if $do-once103 - (i32.le_u - (get_local $7) - (get_local $23) + (block + (br_if $do-once103 + (i32.ne + (get_local $7) + (get_local $30) + ) ) - ) - (loop $while-in106 (i32.store8 - (tee_local $7 - (i32.add - (get_local $7) - (i32.const -1) - ) - ) + (get_local $35) (i32.const 48) ) - (br_if $while-in106 - (i32.gt_u + (set_local $7 + (get_local $35) + ) + ) + (block + (br_if $do-once103 + (i32.le_u (get_local $7) (get_local $23) ) ) + (loop $while-in106 + (i32.store8 + (tee_local $7 + (i32.add + (get_local $7) + (i32.const -1) + ) + ) + (i32.const 48) + ) + (br_if $while-in106 + (i32.gt_u + (get_local $7) + (get_local $23) + ) + ) + ) ) ) ) - ) - (if - (i32.eqz - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) - ) - ) - (drop - (call $___fwritex - (get_local $7) - (i32.sub - (get_local $43) - (get_local $7) - ) - (get_local $0) - ) - ) - ) - (if - (i32.le_u - (tee_local $7 - (i32.add - (get_local $6) - (i32.const 4) - ) - ) - (get_local $8) - ) - (block - (set_local $6 - (get_local $7) - ) - (br $while-in102) - ) - ) - ) - (block $do-once107 - (if - (get_local $32) - (block - (br_if $do-once107 + (if + (i32.eqz (i32.and (i32.load (get_local $0) @@ -6021,187 +5980,259 @@ ) (drop (call $___fwritex - (i32.const 4143) - (i32.const 1) + (get_local $7) + (i32.sub + (get_local $43) + (get_local $7) + ) (get_local $0) ) ) ) - ) - ) - (if - (i32.and - (i32.gt_s - (get_local $5) - (i32.const 0) - ) - (i32.lt_u - (get_local $7) - (get_local $9) + (if + (i32.le_u + (tee_local $7 + (i32.add + (get_local $6) + (i32.const 4) + ) + ) + (get_local $8) + ) + (block + (set_local $6 + (get_local $7) + ) + (br $while-in102) + ) ) ) - (loop $while-in110 + (block $do-once107 (if - (i32.gt_u - (tee_local $6 - (call $_fmt_u + (get_local $32) + (block + (br_if $do-once107 + (i32.and (i32.load - (get_local $7) + (get_local $0) ) - (i32.const 0) - (get_local $30) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (i32.const 4143) + (i32.const 1) + (get_local $0) ) ) - (get_local $23) ) - (loop $while-in112 - (i32.store8 + ) + ) + (if + (i32.and + (i32.gt_s + (get_local $5) + (i32.const 0) + ) + (i32.lt_u + (get_local $7) + (get_local $9) + ) + ) + (loop $while-in110 + (if + (i32.gt_u (tee_local $6 - (i32.add - (get_local $6) - (i32.const -1) + (call $_fmt_u + (i32.load + (get_local $7) + ) + (i32.const 0) + (get_local $30) ) ) - (i32.const 48) + (get_local $23) ) - (br_if $while-in112 - (i32.gt_u - (get_local $6) - (get_local $23) + (loop $while-in112 + (i32.store8 + (tee_local $6 + (i32.add + (get_local $6) + (i32.const -1) + ) + ) + (i32.const 48) + ) + (br_if $while-in112 + (i32.gt_u + (get_local $6) + (get_local $23) + ) ) ) ) - ) - (if - (i32.eqz - (i32.and - (i32.load - (get_local $0) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) ) - (i32.const 32) ) - ) - (drop - (call $___fwritex - (get_local $6) - (select - (i32.const 9) - (get_local $5) - (i32.gt_s - (get_local $5) + (drop + (call $___fwritex + (get_local $6) + (select (i32.const 9) + (get_local $5) + (i32.gt_s + (get_local $5) + (i32.const 9) + ) ) + (get_local $0) ) - (get_local $0) ) ) - ) - (set_local $6 - (i32.add - (get_local $5) - (i32.const -9) - ) - ) - (if - (i32.and - (i32.gt_s + (set_local $6 + (i32.add (get_local $5) - (i32.const 9) + (i32.const -9) ) - (i32.lt_u - (tee_local $7 - (i32.add - (get_local $7) - (i32.const 4) + ) + (if + (i32.and + (i32.gt_s + (get_local $5) + (i32.const 9) + ) + (i32.lt_u + (tee_local $7 + (i32.add + (get_local $7) + (i32.const 4) + ) ) + (get_local $9) ) - (get_local $9) ) - ) - (block + (block + (set_local $5 + (get_local $6) + ) + (br $while-in110) + ) (set_local $5 (get_local $6) ) - (br $while-in110) - ) - (set_local $5 - (get_local $6) ) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (i32.add - (get_local $5) - (i32.const 9) - ) - (i32.const 9) - (i32.const 0) - ) - ) - (block - (set_local $9 - (select - (get_local $9) + (call $_pad + (get_local $0) + (i32.const 48) (i32.add - (get_local $12) - (i32.const 4) + (get_local $5) + (i32.const 9) ) - (get_local $25) + (i32.const 9) + (i32.const 0) ) ) - (if - (i32.gt_s - (get_local $5) - (i32.const -1) - ) - (block - (set_local $17 - (i32.eqz - (get_local $20) + (block + (set_local $9 + (select + (get_local $9) + (i32.add + (get_local $12) + (i32.const 4) ) + (get_local $25) ) - (set_local $6 - (get_local $12) - ) - (set_local $7 + ) + (if + (i32.gt_s (get_local $5) + (i32.const -1) ) - (loop $while-in114 - (if - (i32.eq - (tee_local $5 - (call $_fmt_u - (i32.load - (get_local $6) - ) - (i32.const 0) - (get_local $30) - ) - ) - (get_local $30) - ) - (block - (i32.store8 - (get_local $35) - (i32.const 48) - ) - (set_local $5 - (get_local $35) - ) + (block + (set_local $17 + (i32.eqz + (get_local $20) ) ) - (block $do-once115 + (set_local $6 + (get_local $12) + ) + (set_local $7 + (get_local $5) + ) + (loop $while-in114 (if (i32.eq - (get_local $6) - (get_local $12) + (tee_local $5 + (call $_fmt_u + (i32.load + (get_local $6) + ) + (i32.const 0) + (get_local $30) + ) + ) + (get_local $30) ) (block - (if - (i32.eqz + (i32.store8 + (get_local $35) + (i32.const 48) + ) + (set_local $5 + (get_local $35) + ) + ) + ) + (block $do-once115 + (if + (i32.eq + (get_local $6) + (get_local $12) + ) + (block + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $5) + (i32.const 1) + (get_local $0) + ) + ) + ) + (set_local $5 + (i32.add + (get_local $5) + (i32.const 1) + ) + ) + (br_if $do-once115 + (i32.and + (get_local $17) + (i32.lt_s + (get_local $7) + (i32.const 1) + ) + ) + ) + (br_if $do-once115 (i32.and (i32.load (get_local $0) @@ -6211,344 +6242,273 @@ ) (drop (call $___fwritex - (get_local $5) + (i32.const 4143) (i32.const 1) (get_local $0) ) ) ) - (set_local $5 - (i32.add - (get_local $5) - (i32.const 1) - ) - ) - (br_if $do-once115 - (i32.and - (get_local $17) - (i32.lt_s - (get_local $7) - (i32.const 1) + (block + (br_if $do-once115 + (i32.le_u + (get_local $5) + (get_local $23) ) ) - ) - (br_if $do-once115 - (i32.and - (i32.load - (get_local $0) + (loop $while-in118 + (i32.store8 + (tee_local $5 + (i32.add + (get_local $5) + (i32.const -1) + ) + ) + (i32.const 48) ) - (i32.const 32) - ) - ) - (drop - (call $___fwritex - (i32.const 4143) - (i32.const 1) - (get_local $0) - ) - ) - ) - (block - (br_if $do-once115 - (i32.le_u - (get_local $5) - (get_local $23) - ) - ) - (loop $while-in118 - (i32.store8 - (tee_local $5 - (i32.add + (br_if $while-in118 + (i32.gt_u (get_local $5) - (i32.const -1) + (get_local $23) ) ) - (i32.const 48) - ) - (br_if $while-in118 - (i32.gt_u - (get_local $5) - (get_local $23) - ) ) ) ) ) - ) - (set_local $8 - (i32.sub - (get_local $43) - (get_local $5) + (set_local $8 + (i32.sub + (get_local $43) + (get_local $5) + ) ) - ) - (if - (i32.eqz - (i32.and - (i32.load - (get_local $0) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) ) - (i32.const 32) ) - ) - (drop - (call $___fwritex - (get_local $5) - (select - (get_local $8) - (get_local $7) - (i32.gt_s - (get_local $7) + (drop + (call $___fwritex + (get_local $5) + (select (get_local $8) + (get_local $7) + (i32.gt_s + (get_local $7) + (get_local $8) + ) ) + (get_local $0) ) - (get_local $0) ) ) - ) - (br_if $while-in114 - (i32.and - (i32.lt_u - (tee_local $6 - (i32.add - (get_local $6) - (i32.const 4) + (br_if $while-in114 + (i32.and + (i32.lt_u + (tee_local $6 + (i32.add + (get_local $6) + (i32.const 4) + ) ) + (get_local $9) ) - (get_local $9) - ) - (i32.gt_s - (tee_local $7 - (i32.sub - (get_local $7) - (get_local $8) + (i32.gt_s + (tee_local $7 + (i32.sub + (get_local $7) + (get_local $8) + ) ) + (i32.const -1) ) - (i32.const -1) ) ) - ) - (set_local $5 - (get_local $7) + (set_local $5 + (get_local $7) + ) ) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (i32.add - (get_local $5) + (call $_pad + (get_local $0) + (i32.const 48) + (i32.add + (get_local $5) + (i32.const 18) + ) (i32.const 18) + (i32.const 0) ) - (i32.const 18) - (i32.const 0) - ) - (br_if $do-once99 - (i32.and - (i32.load - (get_local $0) + (br_if $do-once99 + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) ) - (i32.const 32) ) - ) - (drop - (call $___fwritex - (get_local $18) - (i32.sub - (get_local $28) + (drop + (call $___fwritex (get_local $18) + (i32.sub + (get_local $28) + (get_local $18) + ) + (get_local $0) ) - (get_local $0) ) ) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (get_local $13) - (i32.xor - (get_local $11) - (i32.const 8192) - ) - ) - (select - (get_local $14) - (get_local $13) - (i32.lt_s + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $14) (get_local $13) + (i32.xor + (get_local $11) + (i32.const 8192) + ) + ) + (select (get_local $14) + (get_local $13) + (i32.lt_s + (get_local $13) + (get_local $14) + ) ) ) - ) - (block i32 - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (tee_local $7 - (i32.add - (tee_local $9 - (select - (i32.const 0) - (get_local $27) - (tee_local $6 - (i32.or - (f64.ne - (get_local $15) - (get_local $15) + (block i32 + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $14) + (tee_local $7 + (i32.add + (tee_local $9 + (select + (i32.const 0) + (get_local $27) + (tee_local $6 + (i32.or + (f64.ne + (get_local $15) + (get_local $15) + ) + (i32.const 0) ) - (i32.const 0) ) ) ) + (i32.const 3) ) - (i32.const 3) ) + (get_local $8) ) - (get_local $8) - ) - (if - (i32.eqz - (i32.and - (tee_local $5 - (i32.load - (get_local $0) + (if + (i32.eqz + (i32.and + (tee_local $5 + (i32.load + (get_local $0) + ) ) + (i32.const 32) ) - (i32.const 32) ) - ) - (block - (drop - (call $___fwritex - (get_local $31) - (get_local $9) - (get_local $0) + (block + (drop + (call $___fwritex + (get_local $31) + (get_local $9) + (get_local $0) + ) ) - ) - (set_local $5 - (i32.load - (get_local $0) + (set_local $5 + (i32.load + (get_local $0) + ) ) ) ) - ) - (set_local $6 - (select + (set_local $6 (select - (i32.const 4135) - (i32.const 4139) - (tee_local $8 - (i32.ne - (i32.and - (get_local $18) - (i32.const 32) + (select + (i32.const 4135) + (i32.const 4139) + (tee_local $8 + (i32.ne + (i32.and + (get_local $18) + (i32.const 32) + ) + (i32.const 0) ) - (i32.const 0) ) ) + (select + (i32.const 4127) + (i32.const 4131) + (get_local $8) + ) + (get_local $6) ) - (select - (i32.const 4127) - (i32.const 4131) - (get_local $8) - ) - (get_local $6) ) - ) - (if - (i32.eqz - (i32.and - (get_local $5) - (i32.const 32) + (if + (i32.eqz + (i32.and + (get_local $5) + (i32.const 32) + ) ) - ) - (drop - (call $___fwritex - (get_local $6) - (i32.const 3) - (get_local $0) + (drop + (call $___fwritex + (get_local $6) + (i32.const 3) + (get_local $0) + ) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (get_local $7) - (i32.xor - (get_local $11) - (i32.const 8192) - ) - ) - (select - (get_local $14) - (get_local $7) - (i32.lt_s + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $14) (get_local $7) + (i32.xor + (get_local $11) + (i32.const 8192) + ) + ) + (select (get_local $14) + (get_local $7) + (i32.lt_s + (get_local $7) + (get_local $14) + ) ) ) ) ) ) - ) - (set_local $5 - (get_local $10) - ) - (set_local $10 - (get_local $7) - ) - (br $label$continue$L1) - ) - (set_local $7 - (get_local $5) - ) - (set_local $12 - (get_local $6) - ) - (set_local $8 - (i32.const 0) - ) - (set_local $9 - (i32.const 4091) - ) - (set_local $5 - (get_local $22) - ) - (br $__rjto$8) - ) - (set_local $9 - (i32.and - (get_local $18) - (i32.const 32) - ) - ) - (if - (i32.and - (i32.eqz - (tee_local $8 - (i32.load - (tee_local $5 - (get_local $19) - ) - ) + (set_local $5 + (get_local $10) ) - ) - (i32.eqz - (tee_local $11 - (i32.load offset=4 - (get_local $5) - ) + (set_local $10 + (get_local $7) ) + (br $label$continue$L1) ) - ) - (block - (set_local $5 - (get_local $22) + (set_local $7 + (get_local $5) + ) + (set_local $12 + (get_local $6) ) (set_local $8 (i32.const 0) @@ -6556,381 +6516,412 @@ (set_local $9 (i32.const 4091) ) - (br $__rjti$8) - ) - (block - (set_local $5 - (get_local $8) - ) - (set_local $8 + (br $__rjto$8 (get_local $22) ) - (loop $while-in123 - (i32.store8 + ) + (set_local $9 + (i32.and + (get_local $18) + (i32.const 32) + ) + ) + (if + (i32.and + (i32.eqz (tee_local $8 - (i32.add - (get_local $8) - (i32.const -1) - ) - ) - (i32.or - (i32.load8_u - (i32.add - (i32.and - (get_local $5) - (i32.const 15) - ) - (i32.const 4075) + (i32.load + (tee_local $5 + (get_local $19) ) ) - (get_local $9) ) ) - (br_if $while-in123 - (i32.eqz - (i32.and - (i32.eqz - (tee_local $5 - (call $_bitshift64Lshr - (get_local $5) - (get_local $11) - (i32.const 4) - ) - ) - ) - (i32.eqz - (tee_local $11 - (get_global $tempRet0) - ) - ) + (i32.eqz + (tee_local $11 + (i32.load offset=4 + (get_local $5) ) ) ) + ) + (block (set_local $5 - (get_local $8) + (get_local $22) + ) + (set_local $8 + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) ) + (br $__rjti$8) ) - (if - (i32.or - (i32.eqz - (i32.and - (get_local $7) - (i32.const 8) + (block + (set_local $5 + (get_local $8) + ) + (set_local $8 + (get_local $22) + ) + (loop $while-in123 + (i32.store8 + (tee_local $8 + (i32.add + (get_local $8) + (i32.const -1) + ) ) - ) - (i32.and - (i32.eqz - (i32.load - (tee_local $11 - (get_local $19) + (i32.or + (i32.load8_u + (i32.add + (i32.and + (get_local $5) + (i32.const 15) + ) + (i32.const 4075) ) ) + (get_local $9) ) + ) + (br_if $while-in123 (i32.eqz - (i32.load offset=4 - (get_local $11) + (i32.and + (i32.eqz + (tee_local $5 + (call $_bitshift64Lshr + (get_local $5) + (get_local $11) + (i32.const 4) + ) + ) + ) + (i32.eqz + (tee_local $11 + (get_global $tempRet0) + ) + ) ) ) ) - ) - (block - (set_local $8 - (i32.const 0) - ) - (set_local $9 - (i32.const 4091) + (set_local $5 + (get_local $8) ) - (br $__rjti$8) ) - (block - (set_local $8 - (i32.const 2) - ) - (set_local $9 - (i32.add - (i32.shr_s - (get_local $18) - (i32.const 4) + (if + (i32.or + (i32.eqz + (i32.and + (get_local $7) + (i32.const 8) ) + ) + (i32.and + (i32.eqz + (i32.load + (tee_local $11 + (get_local $19) + ) + ) + ) + (i32.eqz + (i32.load offset=4 + (get_local $11) + ) + ) + ) + ) + (block + (set_local $8 + (i32.const 0) + ) + (set_local $9 (i32.const 4091) ) + (br $__rjti$8) + ) + (block + (set_local $8 + (i32.const 2) + ) + (set_local $9 + (i32.add + (i32.shr_s + (get_local $18) + (i32.const 4) + ) + (i32.const 4091) + ) + ) + (br $__rjti$8) ) - (br $__rjti$8) ) ) ) ) - (br $__rjto$8) + (set_local $5 + (call $_fmt_u + (get_local $5) + (get_local $7) + (get_local $22) + ) + ) + (set_local $7 + (get_local $11) + ) + (br $__rjti$8) ) - (set_local $5 - (call $_fmt_u - (get_local $5) - (get_local $7) - (get_local $22) + (set_local $18 + (i32.eqz + (tee_local $13 + (call $_memchr + (get_local $5) + (i32.const 0) + (get_local $6) + ) + ) ) ) (set_local $7 - (get_local $11) + (get_local $5) ) - (br $__rjti$8) - ) - (set_local $18 - (i32.eqz - (tee_local $13 - (call $_memchr + (set_local $11 + (get_local $8) + ) + (set_local $12 + (select + (get_local $6) + (i32.sub + (get_local $13) (get_local $5) - (i32.const 0) - (get_local $6) ) + (get_local $18) ) ) - ) - (set_local $7 - (get_local $5) - ) - (set_local $11 - (get_local $8) - ) - (set_local $12 - (select - (get_local $6) - (i32.sub + (set_local $8 + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) + ) + (br $__rjto$8 + (select + (i32.add + (get_local $5) + (get_local $6) + ) (get_local $13) - (get_local $5) + (get_local $18) ) - (get_local $18) ) ) - (set_local $8 + (set_local $5 (i32.const 0) ) - (set_local $9 - (i32.const 4091) + (set_local $7 + (i32.const 0) ) - (set_local $5 - (select - (i32.add - (get_local $5) - (get_local $6) - ) - (get_local $13) - (get_local $18) + (set_local $6 + (i32.load + (get_local $19) ) ) - (br $__rjto$8) - ) - (set_local $5 - (i32.const 0) - ) - (set_local $7 - (i32.const 0) - ) - (set_local $6 - (i32.load - (get_local $19) - ) - ) - (loop $while-in125 - (block $while-out124 - (br_if $while-out124 - (i32.eqz - (tee_local $9 - (i32.load - (get_local $6) + (loop $while-in125 + (block $while-out124 + (br_if $while-out124 + (i32.eqz + (tee_local $9 + (i32.load + (get_local $6) + ) ) ) ) - ) - (br_if $while-out124 - (i32.or - (i32.lt_s - (tee_local $7 - (call $_wctomb - (get_local $36) - (get_local $9) + (br_if $while-out124 + (i32.or + (i32.lt_s + (tee_local $7 + (call $_wctomb + (get_local $36) + (get_local $9) + ) ) + (i32.const 0) ) - (i32.const 0) - ) - (i32.gt_u - (get_local $7) - (i32.sub - (get_local $8) - (get_local $5) + (i32.gt_u + (get_local $7) + (i32.sub + (get_local $8) + (get_local $5) + ) ) ) ) - ) - (set_local $6 - (i32.add - (get_local $6) - (i32.const 4) + (set_local $6 + (i32.add + (get_local $6) + (i32.const 4) + ) ) - ) - (br_if $while-in125 - (i32.gt_u - (get_local $8) - (tee_local $5 - (i32.add - (get_local $7) - (get_local $5) + (br_if $while-in125 + (i32.gt_u + (get_local $8) + (tee_local $5 + (i32.add + (get_local $7) + (get_local $5) + ) ) ) ) ) ) - ) - (if - (i32.lt_s - (get_local $7) - (i32.const 0) - ) - (block - (set_local $16 - (i32.const -1) - ) - (br $label$break$L1) - ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (get_local $5) - (get_local $11) - ) - (if - (get_local $5) - (block - (set_local $6 + (if + (i32.lt_s + (get_local $7) (i32.const 0) ) - (set_local $7 - (i32.load - (get_local $19) + (block + (set_local $16 + (i32.const -1) ) + (br $label$break$L1) ) - (loop $while-in127 - (if - (i32.eqz - (tee_local $8 - (i32.load - (get_local $7) + ) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $14) + (get_local $5) + (get_local $11) + ) + (if + (get_local $5) + (block + (set_local $6 + (i32.const 0) + ) + (set_local $7 + (i32.load + (get_local $19) + ) + ) + (loop $while-in127 + (if + (i32.eqz + (tee_local $8 + (i32.load + (get_local $7) + ) ) ) - ) - (block - (set_local $7 - (get_local $5) + (block + (set_local $7 + (get_local $5) + ) + (br $__rjti$7) ) - (br $__rjti$7) ) - ) - (if - (i32.gt_s - (tee_local $6 - (i32.add - (tee_local $8 - (call $_wctomb - (get_local $36) - (get_local $8) + (if + (i32.gt_s + (tee_local $6 + (i32.add + (tee_local $8 + (call $_wctomb + (get_local $36) + (get_local $8) + ) ) + (get_local $6) ) - (get_local $6) ) - ) - (get_local $5) - ) - (block - (set_local $7 (get_local $5) ) - (br $__rjti$7) + (block + (set_local $7 + (get_local $5) + ) + (br $__rjti$7) + ) ) - ) - (if - (i32.eqz - (i32.and - (i32.load + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $36) + (get_local $8) (get_local $0) ) - (i32.const 32) ) ) - (drop - (call $___fwritex - (get_local $36) - (get_local $8) - (get_local $0) + (set_local $7 + (i32.add + (get_local $7) + (i32.const 4) ) ) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 4) + (br_if $while-in127 + (i32.lt_u + (get_local $6) + (get_local $5) + ) ) - ) - (br_if $while-in127 - (i32.lt_u - (get_local $6) + (set_local $7 (get_local $5) ) ) - (set_local $7 - (get_local $5) - ) - (br $__rjti$7) ) - ) - (block (set_local $7 (i32.const 0) ) - (br $__rjti$7) ) ) - (br $__rjto$8) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (get_local $7) - (i32.xor - (get_local $11) - (i32.const 8192) - ) - ) - (set_local $5 - (get_local $10) - ) - (set_local $10 - (select + (call $_pad + (get_local $0) + (i32.const 32) (get_local $14) (get_local $7) - (i32.gt_s + (i32.xor + (get_local $11) + (i32.const 8192) + ) + ) + (set_local $5 + (get_local $10) + ) + (set_local $10 + (select (get_local $14) (get_local $7) + (i32.gt_s + (get_local $14) + (get_local $7) + ) ) ) + (br $label$continue$L1) ) - (br $label$continue$L1) - ) - (set_local $11 - (select - (i32.and + (set_local $11 + (select + (i32.and + (get_local $7) + (i32.const -65537) + ) (get_local $7) - (i32.const -65537) - ) - (get_local $7) - (i32.gt_s - (get_local $6) - (i32.const -1) + (i32.gt_s + (get_local $6) + (i32.const -1) + ) ) ) - ) - (set_local $5 (if i32 (i32.or (get_local $6) diff --git a/test/emcc_hello_world.fromasm.imprecise b/test/emcc_hello_world.fromasm.imprecise index 0e4228725..09672b584 100644 --- a/test/emcc_hello_world.fromasm.imprecise +++ b/test/emcc_hello_world.fromasm.imprecise @@ -3405,69 +3405,84 @@ ) ) ) - (block $__rjto$8 - (block $__rjti$8 - (block $__rjti$7 - (block $__rjti$6 - (block $__rjti$5 - (block $__rjti$4 - (block $__rjti$3 - (block $switch-default120 - (block $switch-case42 - (block $switch-case41 - (block $switch-case40 - (block $switch-case39 - (block $switch-case38 - (block $switch-case37 - (block $switch-case36 - (block $switch-case34 - (block $switch-case33 - (block $switch-case29 - (block $switch-case28 - (block $switch-case27 - (br_table $switch-case42 $switch-default120 $switch-case40 $switch-default120 $switch-case42 $switch-case42 $switch-case42 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case41 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case29 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case42 $switch-default120 $switch-case37 $switch-case34 $switch-case42 $switch-case42 $switch-case42 $switch-default120 $switch-case34 $switch-default120 $switch-default120 $switch-default120 $switch-case38 $switch-case27 $switch-case33 $switch-case28 $switch-default120 $switch-default120 $switch-case39 $switch-default120 $switch-case36 $switch-default120 $switch-default120 $switch-case29 $switch-default120 - (i32.sub - (tee_local $18 - (select - (i32.and - (tee_local $12 - (i32.load8_s - (get_local $18) + (set_local $5 + (block $__rjto$8 i32 + (block $__rjti$8 + (block $__rjti$7 + (block $__rjti$6 + (block $__rjti$5 + (block $__rjti$4 + (block $__rjti$3 + (block $switch-default120 + (block $switch-case42 + (block $switch-case41 + (block $switch-case40 + (block $switch-case39 + (block $switch-case38 + (block $switch-case37 + (block $switch-case36 + (block $switch-case34 + (block $switch-case33 + (block $switch-case29 + (block $switch-case28 + (block $switch-case27 + (br_table $switch-case42 $switch-default120 $switch-case40 $switch-default120 $switch-case42 $switch-case42 $switch-case42 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case41 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case29 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case42 $switch-default120 $switch-case37 $switch-case34 $switch-case42 $switch-case42 $switch-case42 $switch-default120 $switch-case34 $switch-default120 $switch-default120 $switch-default120 $switch-case38 $switch-case27 $switch-case33 $switch-case28 $switch-default120 $switch-default120 $switch-case39 $switch-default120 $switch-case36 $switch-default120 $switch-default120 $switch-case29 $switch-default120 + (i32.sub + (tee_local $18 + (select + (i32.and + (tee_local $12 + (i32.load8_s + (get_local $18) + ) ) + (i32.const -33) ) - (i32.const -33) - ) - (get_local $12) - (i32.and - (i32.ne - (get_local $9) - (i32.const 0) - ) - (i32.eq - (i32.and - (get_local $12) - (i32.const 15) + (get_local $12) + (i32.and + (i32.ne + (get_local $9) + (i32.const 0) + ) + (i32.eq + (i32.and + (get_local $12) + (i32.const 15) + ) + (i32.const 3) ) - (i32.const 3) ) ) ) + (i32.const 65) ) - (i32.const 65) ) ) - ) - (block $switch-default26 - (block $switch-case25 - (block $switch-case24 - (block $switch-case23 - (block $switch-case22 - (block $switch-case21 - (block $switch-case20 - (block $switch-case19 - (br_table $switch-case19 $switch-case20 $switch-case21 $switch-case22 $switch-case23 $switch-default26 $switch-case24 $switch-case25 $switch-default26 - (get_local $9) + (block $switch-default26 + (block $switch-case25 + (block $switch-case24 + (block $switch-case23 + (block $switch-case22 + (block $switch-case21 + (block $switch-case20 + (block $switch-case19 + (br_table $switch-case19 $switch-case20 $switch-case21 $switch-case22 $switch-case23 $switch-default26 $switch-case24 $switch-case25 $switch-default26 + (get_local $9) + ) + ) + (i32.store + (i32.load + (get_local $19) + ) + (get_local $16) + ) + (set_local $5 + (get_local $10) + ) + (set_local $10 + (get_local $7) ) + (br $label$continue$L1) ) (i32.store (i32.load @@ -3484,11 +3499,26 @@ (br $label$continue$L1) ) (i32.store - (i32.load - (get_local $19) + (tee_local $5 + (i32.load + (get_local $19) + ) ) (get_local $16) ) + (i32.store offset=4 + (get_local $5) + (i32.shr_s + (i32.shl + (i32.lt_s + (get_local $16) + (i32.const 0) + ) + (i32.const 31) + ) + (i32.const 31) + ) + ) (set_local $5 (get_local $10) ) @@ -3497,27 +3527,12 @@ ) (br $label$continue$L1) ) - (i32.store - (tee_local $5 - (i32.load - (get_local $19) - ) + (i32.store16 + (i32.load + (get_local $19) ) (get_local $16) ) - (i32.store offset=4 - (get_local $5) - (i32.shr_s - (i32.shl - (i32.lt_s - (get_local $16) - (i32.const 0) - ) - (i32.const 31) - ) - (i32.const 31) - ) - ) (set_local $5 (get_local $10) ) @@ -3526,7 +3541,7 @@ ) (br $label$continue$L1) ) - (i32.store16 + (i32.store8 (i32.load (get_local $19) ) @@ -3540,7 +3555,7 @@ ) (br $label$continue$L1) ) - (i32.store8 + (i32.store (i32.load (get_local $19) ) @@ -3555,11 +3570,26 @@ (br $label$continue$L1) ) (i32.store - (i32.load - (get_local $19) + (tee_local $5 + (i32.load + (get_local $19) + ) ) (get_local $16) ) + (i32.store offset=4 + (get_local $5) + (i32.shr_s + (i32.shl + (i32.lt_s + (get_local $16) + (i32.const 0) + ) + (i32.const 31) + ) + (i32.const 31) + ) + ) (set_local $5 (get_local $10) ) @@ -3568,27 +3598,6 @@ ) (br $label$continue$L1) ) - (i32.store - (tee_local $5 - (i32.load - (get_local $19) - ) - ) - (get_local $16) - ) - (i32.store offset=4 - (get_local $5) - (i32.shr_s - (i32.shl - (i32.lt_s - (get_local $16) - (i32.const 0) - ) - (i32.const 31) - ) - (i32.const 31) - ) - ) (set_local $5 (get_local $10) ) @@ -3597,103 +3606,96 @@ ) (br $label$continue$L1) ) - (set_local $5 - (get_local $10) - ) - (set_local $10 - (get_local $7) - ) - (br $label$continue$L1) - ) - (set_local $7 - (i32.or - (get_local $11) - (i32.const 8) + (set_local $7 + (i32.or + (get_local $11) + (i32.const 8) + ) ) - ) - (set_local $6 - (select - (get_local $6) - (i32.const 8) - (i32.gt_u + (set_local $6 + (select (get_local $6) (i32.const 8) + (i32.gt_u + (get_local $6) + (i32.const 8) + ) ) ) + (set_local $18 + (i32.const 120) + ) + (br $__rjti$3) ) - (set_local $18 - (i32.const 120) + (set_local $7 + (get_local $11) ) (br $__rjti$3) ) - (set_local $7 - (get_local $11) - ) - (br $__rjti$3) - ) - (if - (i32.and - (i32.eqz - (tee_local $7 - (i32.load - (tee_local $5 - (get_local $19) + (if + (i32.and + (i32.eqz + (tee_local $7 + (i32.load + (tee_local $5 + (get_local $19) + ) ) ) ) - ) - (i32.eqz - (tee_local $8 - (i32.load offset=4 - (get_local $5) + (i32.eqz + (tee_local $8 + (i32.load offset=4 + (get_local $5) + ) ) ) ) - ) - (set_local $8 - (get_local $22) - ) - (block - (set_local $5 - (get_local $7) - ) - (set_local $7 - (get_local $8) - ) (set_local $8 (get_local $22) ) - (loop $while-in32 - (i32.store8 - (tee_local $8 - (i32.add - (get_local $8) - (i32.const -1) + (block + (set_local $5 + (get_local $7) + ) + (set_local $7 + (get_local $8) + ) + (set_local $8 + (get_local $22) + ) + (loop $while-in32 + (i32.store8 + (tee_local $8 + (i32.add + (get_local $8) + (i32.const -1) + ) ) - ) - (i32.or - (i32.and - (get_local $5) - (i32.const 7) + (i32.or + (i32.and + (get_local $5) + (i32.const 7) + ) + (i32.const 48) ) - (i32.const 48) ) - ) - (br_if $while-in32 - (i32.eqz - (i32.and - (i32.eqz - (tee_local $5 - (call $_bitshift64Lshr - (get_local $5) - (get_local $7) - (i32.const 3) + (br_if $while-in32 + (i32.eqz + (i32.and + (i32.eqz + (tee_local $5 + (call $_bitshift64Lshr + (get_local $5) + (get_local $7) + (i32.const 3) + ) ) ) - ) - (i32.eqz - (tee_local $7 - (get_global $tempRet0) + (i32.eqz + (tee_local $7 + (get_global $tempRet0) + ) ) ) ) @@ -3701,152 +3703,177 @@ ) ) ) - ) - (if - (i32.and - (get_local $11) - (i32.const 8) - ) - (block - (set_local $5 - (get_local $8) - ) - (set_local $7 + (if + (i32.and (get_local $11) + (i32.const 8) ) - (set_local $6 - (select - (tee_local $11 - (i32.add - (i32.sub - (get_local $39) - (get_local $8) + (block + (set_local $5 + (get_local $8) + ) + (set_local $7 + (get_local $11) + ) + (set_local $6 + (select + (tee_local $11 + (i32.add + (i32.sub + (get_local $39) + (get_local $8) + ) + (i32.const 1) ) - (i32.const 1) ) - ) - (get_local $6) - (i32.lt_s (get_local $6) - (get_local $11) + (i32.lt_s + (get_local $6) + (get_local $11) + ) ) ) + (set_local $8 + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) + ) + (br $__rjti$8) ) - (set_local $8 - (i32.const 0) + (block + (set_local $5 + (get_local $8) + ) + (set_local $7 + (get_local $11) + ) + (set_local $8 + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) + ) + (br $__rjti$8) ) - (set_local $9 - (i32.const 4091) + ) + ) + (set_local $5 + (i32.load + (tee_local $7 + (get_local $19) + ) + ) + ) + (if + (i32.lt_s + (tee_local $7 + (i32.load offset=4 + (get_local $7) + ) ) - (br $__rjti$8) + (i32.const 0) ) (block - (set_local $5 - (get_local $8) + (i32.store + (tee_local $8 + (get_local $19) + ) + (tee_local $5 + (call $_i64Subtract + (i32.const 0) + (i32.const 0) + (get_local $5) + (get_local $7) + ) + ) ) - (set_local $7 - (get_local $11) + (i32.store offset=4 + (get_local $8) + (tee_local $7 + (get_global $tempRet0) + ) ) (set_local $8 - (i32.const 0) + (i32.const 1) ) (set_local $9 (i32.const 4091) ) - (br $__rjti$8) + (br $__rjti$4) ) ) - ) - (set_local $5 - (i32.load - (tee_local $7 - (get_local $19) + (if + (i32.and + (get_local $11) + (i32.const 2048) ) - ) - ) - (if - (i32.lt_s - (tee_local $7 - (i32.load offset=4 - (get_local $7) + (block + (set_local $8 + (i32.const 1) ) - ) - (i32.const 0) - ) - (block - (i32.store - (tee_local $8 - (get_local $19) + (set_local $9 + (i32.const 4092) ) - (tee_local $5 - (call $_i64Subtract - (i32.const 0) - (i32.const 0) - (get_local $5) - (get_local $7) + (br $__rjti$4) + ) + (block + (set_local $8 + (tee_local $9 + (i32.and + (get_local $11) + (i32.const 1) + ) ) ) - ) - (i32.store offset=4 - (get_local $8) - (tee_local $7 - (get_global $tempRet0) + (set_local $9 + (select + (i32.const 4093) + (i32.const 4091) + (get_local $9) + ) ) + (br $__rjti$4) ) - (set_local $8 - (i32.const 1) - ) - (set_local $9 - (i32.const 4091) - ) - (br $__rjti$4) ) ) - (if - (i32.and - (get_local $11) - (i32.const 2048) - ) - (block - (set_local $8 - (i32.const 1) - ) - (set_local $9 - (i32.const 4092) + (set_local $5 + (i32.load + (tee_local $7 + (get_local $19) ) - (br $__rjti$4) ) - (block - (set_local $8 - (tee_local $9 - (i32.and - (get_local $11) - (i32.const 1) - ) - ) - ) - (set_local $9 - (select - (i32.const 4093) - (i32.const 4091) - (get_local $9) - ) - ) - (br $__rjti$4) + ) + (set_local $7 + (i32.load offset=4 + (get_local $7) ) ) + (set_local $8 + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) + ) + (br $__rjti$4) ) (set_local $5 + (get_local $19) + ) + (i32.store8 + (get_local $40) (i32.load - (tee_local $7 - (get_local $19) - ) + (get_local $5) ) ) (set_local $7 - (i32.load offset=4 - (get_local $7) - ) + (get_local $40) + ) + (set_local $11 + (get_local $8) + ) + (set_local $12 + (i32.const 1) ) (set_local $8 (i32.const 0) @@ -3854,978 +3881,979 @@ (set_local $9 (i32.const 4091) ) - (br $__rjti$4) - ) - (set_local $5 - (get_local $19) - ) - (i32.store8 - (get_local $40) - (i32.load - (get_local $5) + (br $__rjto$8 + (get_local $22) ) ) - (set_local $7 - (get_local $40) - ) - (set_local $11 - (get_local $8) - ) - (set_local $12 - (i32.const 1) - ) - (set_local $8 - (i32.const 0) - ) - (set_local $9 - (i32.const 4091) - ) (set_local $5 - (get_local $22) + (call $_strerror + (i32.load + (call $___errno_location) + ) + ) ) - (br $__rjto$8) + (br $__rjti$5) ) (set_local $5 - (call $_strerror - (i32.load - (call $___errno_location) + (select + (tee_local $5 + (i32.load + (get_local $19) + ) ) + (i32.const 4101) + (get_local $5) ) ) (br $__rjti$5) ) (set_local $5 - (select - (tee_local $5 - (i32.load - (get_local $19) - ) - ) - (i32.const 4101) + (get_local $19) + ) + (i32.store + (get_local $41) + (i32.load (get_local $5) ) ) - (br $__rjti$5) - ) - (set_local $5 - (get_local $19) - ) - (i32.store - (get_local $41) - (i32.load - (get_local $5) + (i32.store + (get_local $44) + (i32.const 0) + ) + (i32.store + (get_local $19) + (get_local $41) ) - ) - (i32.store - (get_local $44) - (i32.const 0) - ) - (i32.store - (get_local $19) - (get_local $41) - ) - (set_local $8 - (i32.const -1) - ) - (br $__rjti$6) - ) - (if - (get_local $6) - (block (set_local $8 - (get_local $6) + (i32.const -1) ) (br $__rjti$6) ) - (block - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (i32.const 0) - (get_local $11) + (if + (get_local $6) + (block + (set_local $8 + (get_local $6) + ) + (br $__rjti$6) ) - (set_local $7 - (i32.const 0) + (block + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $14) + (i32.const 0) + (get_local $11) + ) + (set_local $7 + (i32.const 0) + ) + (br $__rjti$7) ) - (br $__rjti$7) ) ) - ) - (set_local $15 - (f64.load - (get_local $19) - ) - ) - (i32.store - (get_local $21) - (i32.const 0) - ) - (f64.store - (get_global $tempDoublePtr) - (get_local $15) - ) - (set_local $31 - (if i32 - (i32.lt_s - (i32.load offset=4 - (get_global $tempDoublePtr) - ) - (i32.const 0) - ) - (block i32 - (set_local $27 - (i32.const 1) - ) - (set_local $15 - (f64.neg - (get_local $15) - ) - ) - (i32.const 4108) + (set_local $15 + (f64.load + (get_local $19) ) + ) + (i32.store + (get_local $21) + (i32.const 0) + ) + (f64.store + (get_global $tempDoublePtr) + (get_local $15) + ) + (set_local $31 (if i32 - (i32.and - (get_local $11) - (i32.const 2048) + (i32.lt_s + (i32.load offset=4 + (get_global $tempDoublePtr) + ) + (i32.const 0) ) (block i32 (set_local $27 (i32.const 1) ) - (i32.const 4111) - ) - (block i32 - (set_local $27 - (tee_local $5 - (i32.and - (get_local $11) - (i32.const 1) - ) + (set_local $15 + (f64.neg + (get_local $15) ) ) - (select - (i32.const 4114) - (i32.const 4109) - (get_local $5) - ) + (i32.const 4108) ) - ) - ) - ) - (f64.store - (get_global $tempDoublePtr) - (get_local $15) - ) - (set_local $7 - (block $do-once49 i32 - (if i32 - (i32.or - (i32.lt_u - (tee_local $5 - (i32.and - (i32.load offset=4 - (get_global $tempDoublePtr) + (if i32 + (i32.and + (get_local $11) + (i32.const 2048) + ) + (block i32 + (set_local $27 + (i32.const 1) + ) + (i32.const 4111) + ) + (block i32 + (set_local $27 + (tee_local $5 + (i32.and + (get_local $11) + (i32.const 1) ) - (i32.const 2146435072) ) ) - (i32.const 2146435072) - ) - (i32.and - (i32.eq + (select + (i32.const 4114) + (i32.const 4109) (get_local $5) - (i32.const 2146435072) ) - (i32.const 0) ) ) - (block i32 - (if - (tee_local $5 - (f64.ne - (tee_local $24 - (f64.mul - (call $_frexpl - (get_local $15) - (get_local $21) - ) - (f64.const 2) + ) + ) + (f64.store + (get_global $tempDoublePtr) + (get_local $15) + ) + (set_local $7 + (block $do-once49 i32 + (if i32 + (i32.or + (i32.lt_u + (tee_local $5 + (i32.and + (i32.load offset=4 + (get_global $tempDoublePtr) ) + (i32.const 2146435072) ) - (f64.const 0) ) + (i32.const 2146435072) ) - (i32.store - (get_local $21) - (i32.add - (i32.load - (get_local $21) - ) - (i32.const -1) + (i32.and + (i32.eq + (get_local $5) + (i32.const 2146435072) ) + (i32.const 0) ) ) - (if - (i32.eq - (tee_local $25 - (i32.or - (get_local $18) - (i32.const 32) + (block i32 + (if + (tee_local $5 + (f64.ne + (tee_local $24 + (f64.mul + (call $_frexpl + (get_local $15) + (get_local $21) + ) + (f64.const 2) + ) + ) + (f64.const 0) ) ) - (i32.const 97) - ) - (block - (set_local $9 - (select - (i32.add - (get_local $31) - (i32.const 9) - ) - (get_local $31) - (tee_local $13 - (i32.and - (get_local $18) - (i32.const 32) - ) + (i32.store + (get_local $21) + (i32.add + (i32.load + (get_local $21) ) + (i32.const -1) ) ) - (set_local $15 - (if f64 + ) + (if + (i32.eq + (tee_local $25 (i32.or - (i32.gt_u - (get_local $6) - (i32.const 11) + (get_local $18) + (i32.const 32) + ) + ) + (i32.const 97) + ) + (block + (set_local $9 + (select + (i32.add + (get_local $31) + (i32.const 9) ) - (i32.eqz - (tee_local $5 - (i32.sub - (i32.const 12) - (get_local $6) - ) + (get_local $31) + (tee_local $13 + (i32.and + (get_local $18) + (i32.const 32) ) ) ) - (get_local $24) - (block f64 - (set_local $15 - (f64.const 8) - ) - (loop $while-in54 - (set_local $15 - (f64.mul - (get_local $15) - (f64.const 16) - ) + ) + (set_local $15 + (if f64 + (i32.or + (i32.gt_u + (get_local $6) + (i32.const 11) ) - (br_if $while-in54 + (i32.eqz (tee_local $5 - (i32.add - (get_local $5) - (i32.const -1) + (i32.sub + (i32.const 12) + (get_local $6) ) ) ) ) - (select - (f64.neg - (f64.add - (get_local $15) - (f64.sub - (f64.neg - (get_local $24) - ) + (get_local $24) + (block f64 + (set_local $15 + (f64.const 8) + ) + (loop $while-in54 + (set_local $15 + (f64.mul (get_local $15) + (f64.const 16) + ) + ) + (br_if $while-in54 + (tee_local $5 + (i32.add + (get_local $5) + (i32.const -1) + ) ) ) ) - (f64.sub - (f64.add - (get_local $24) + (select + (f64.neg + (f64.add + (get_local $15) + (f64.sub + (f64.neg + (get_local $24) + ) + (get_local $15) + ) + ) + ) + (f64.sub + (f64.add + (get_local $24) + (get_local $15) + ) (get_local $15) ) - (get_local $15) - ) - (i32.eq - (i32.load8_s - (get_local $9) + (i32.eq + (i32.load8_s + (get_local $9) + ) + (i32.const 45) ) - (i32.const 45) ) ) ) ) - ) - (if - (i32.eq - (tee_local $5 - (call $_fmt_u - (tee_local $5 - (select - (i32.sub - (i32.const 0) - (tee_local $7 - (i32.load - (get_local $21) + (if + (i32.eq + (tee_local $5 + (call $_fmt_u + (tee_local $5 + (select + (i32.sub + (i32.const 0) + (tee_local $7 + (i32.load + (get_local $21) + ) ) ) - ) - (get_local $7) - (i32.lt_s (get_local $7) - (i32.const 0) + (i32.lt_s + (get_local $7) + (i32.const 0) + ) ) ) - ) - (i32.shr_s - (i32.shl - (i32.lt_s - (get_local $5) - (i32.const 0) + (i32.shr_s + (i32.shl + (i32.lt_s + (get_local $5) + (i32.const 0) + ) + (i32.const 31) ) (i32.const 31) ) - (i32.const 31) + (get_local $34) ) - (get_local $34) ) + (get_local $34) ) - (get_local $34) - ) - (block - (i32.store8 - (get_local $42) - (i32.const 48) - ) - (set_local $5 - (get_local $42) + (block + (i32.store8 + (get_local $42) + (i32.const 48) + ) + (set_local $5 + (get_local $42) + ) ) ) - ) - (set_local $12 - (i32.or - (get_local $27) - (i32.const 2) - ) - ) - (i32.store8 - (i32.add - (get_local $5) - (i32.const -1) - ) - (i32.add - (i32.and - (i32.shr_s - (get_local $7) - (i32.const 31) - ) + (set_local $12 + (i32.or + (get_local $27) (i32.const 2) ) - (i32.const 43) ) - ) - (i32.store8 - (tee_local $8 + (i32.store8 (i32.add (get_local $5) - (i32.const -2) + (i32.const -1) + ) + (i32.add + (i32.and + (i32.shr_s + (get_local $7) + (i32.const 31) + ) + (i32.const 2) + ) + (i32.const 43) ) ) - (i32.add - (get_local $18) - (i32.const 15) + (i32.store8 + (tee_local $8 + (i32.add + (get_local $5) + (i32.const -2) + ) + ) + (i32.add + (get_local $18) + (i32.const 15) + ) ) - ) - (set_local $18 - (i32.lt_s - (get_local $6) - (i32.const 1) + (set_local $18 + (i32.lt_s + (get_local $6) + (i32.const 1) + ) ) - ) - (set_local $17 - (i32.eqz - (i32.and - (get_local $11) - (i32.const 8) + (set_local $17 + (i32.eqz + (i32.and + (get_local $11) + (i32.const 8) + ) ) ) - ) - (set_local $5 - (get_local $23) - ) - (loop $while-in56 - (i32.store8 - (get_local $5) - (i32.or - (i32.load8_u - (i32.add - (tee_local $7 - (i32.trunc_s/f64 - (get_local $15) + (set_local $5 + (get_local $23) + ) + (loop $while-in56 + (i32.store8 + (get_local $5) + (i32.or + (i32.load8_u + (i32.add + (tee_local $7 + (i32.trunc_s/f64 + (get_local $15) + ) ) + (i32.const 4075) ) - (i32.const 4075) ) + (get_local $13) ) - (get_local $13) ) - ) - (set_local $15 - (f64.mul - (f64.sub - (get_local $15) - (f64.convert_s/i32 - (get_local $7) + (set_local $15 + (f64.mul + (f64.sub + (get_local $15) + (f64.convert_s/i32 + (get_local $7) + ) ) + (f64.const 16) ) - (f64.const 16) ) - ) - (set_local $5 - (block $do-once57 i32 - (if i32 - (i32.eq - (i32.sub - (tee_local $7 - (i32.add - (get_local $5) - (i32.const 1) + (set_local $5 + (block $do-once57 i32 + (if i32 + (i32.eq + (i32.sub + (tee_local $7 + (i32.add + (get_local $5) + (i32.const 1) + ) ) + (get_local $37) ) - (get_local $37) + (i32.const 1) ) - (i32.const 1) - ) - (block i32 - (drop - (br_if $do-once57 - (get_local $7) - (i32.and - (get_local $17) + (block i32 + (drop + (br_if $do-once57 + (get_local $7) (i32.and - (get_local $18) - (f64.eq - (get_local $15) - (f64.const 0) + (get_local $17) + (i32.and + (get_local $18) + (f64.eq + (get_local $15) + (f64.const 0) + ) ) ) ) ) + (i32.store8 + (get_local $7) + (i32.const 46) + ) + (i32.add + (get_local $5) + (i32.const 2) + ) ) - (i32.store8 - (get_local $7) - (i32.const 46) - ) - (i32.add - (get_local $5) - (i32.const 2) - ) + (get_local $7) ) - (get_local $7) ) ) - ) - (br_if $while-in56 - (f64.ne - (get_local $15) - (f64.const 0) + (br_if $while-in56 + (f64.ne + (get_local $15) + (f64.const 0) + ) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (tee_local $7 - (i32.add - (tee_local $6 - (select - (i32.sub - (i32.add - (get_local $47) - (get_local $6) - ) - (get_local $8) - ) - (i32.add + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $14) + (tee_local $7 + (i32.add + (tee_local $6 + (select (i32.sub - (get_local $45) + (i32.add + (get_local $47) + (get_local $6) + ) (get_local $8) ) - (get_local $5) - ) - (i32.and - (i32.ne - (get_local $6) - (i32.const 0) + (i32.add + (i32.sub + (get_local $45) + (get_local $8) + ) + (get_local $5) ) - (i32.lt_s - (i32.add - (get_local $46) - (get_local $5) + (i32.and + (i32.ne + (get_local $6) + (i32.const 0) + ) + (i32.lt_s + (i32.add + (get_local $46) + (get_local $5) + ) + (get_local $6) ) - (get_local $6) ) ) ) + (get_local $12) ) - (get_local $12) ) + (get_local $11) ) - (get_local $11) - ) - (if - (i32.eqz - (i32.and - (i32.load + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $9) + (get_local $12) (get_local $0) ) - (i32.const 32) ) ) - (drop - (call $___fwritex - (get_local $9) - (get_local $12) - (get_local $0) + (call $_pad + (get_local $0) + (i32.const 48) + (get_local $14) + (get_local $7) + (i32.xor + (get_local $11) + (i32.const 65536) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (get_local $14) - (get_local $7) - (i32.xor - (get_local $11) - (i32.const 65536) - ) - ) - (set_local $5 - (i32.sub - (get_local $5) - (get_local $37) + (set_local $5 + (i32.sub + (get_local $5) + (get_local $37) + ) ) - ) - (if - (i32.eqz - (i32.and - (i32.load + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $23) + (get_local $5) (get_local $0) ) - (i32.const 32) ) ) - (drop - (call $___fwritex - (get_local $23) - (get_local $5) - (get_local $0) + (call $_pad + (get_local $0) + (i32.const 48) + (i32.sub + (get_local $6) + (i32.add + (get_local $5) + (tee_local $5 + (i32.sub + (get_local $28) + (get_local $8) + ) + ) + ) ) + (i32.const 0) + (i32.const 0) ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (i32.sub - (get_local $6) - (i32.add - (get_local $5) - (tee_local $5 - (i32.sub - (get_local $28) - (get_local $8) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) ) + (i32.const 32) ) ) - ) - (i32.const 0) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (i32.load + (drop + (call $___fwritex + (get_local $8) + (get_local $5) (get_local $0) ) - (i32.const 32) ) ) - (drop - (call $___fwritex - (get_local $8) - (get_local $5) - (get_local $0) - ) - ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (get_local $7) - (i32.xor - (get_local $11) - (i32.const 8192) - ) - ) - (br $do-once49 - (select + (call $_pad + (get_local $0) + (i32.const 32) (get_local $14) (get_local $7) - (i32.lt_s - (get_local $7) + (i32.xor + (get_local $11) + (i32.const 8192) + ) + ) + (br $do-once49 + (select (get_local $14) + (get_local $7) + (i32.lt_s + (get_local $7) + (get_local $14) + ) ) ) ) ) - ) - (set_local $15 - (if f64 - (get_local $5) - (block f64 - (i32.store - (get_local $21) - (tee_local $5 - (i32.add - (i32.load - (get_local $21) + (set_local $15 + (if f64 + (get_local $5) + (block f64 + (i32.store + (get_local $21) + (tee_local $5 + (i32.add + (i32.load + (get_local $21) + ) + (i32.const -28) ) - (i32.const -28) ) ) + (f64.mul + (get_local $24) + (f64.const 268435456) + ) ) - (f64.mul + (block f64 + (set_local $5 + (i32.load + (get_local $21) + ) + ) (get_local $24) - (f64.const 268435456) ) ) - (block f64 - (set_local $5 - (i32.load - (get_local $21) + ) + (set_local $7 + (tee_local $8 + (select + (get_local $48) + (get_local $49) + (i32.lt_s + (get_local $5) + (i32.const 0) ) ) - (get_local $24) ) ) - ) - (set_local $7 - (tee_local $8 - (select - (get_local $48) - (get_local $49) - (i32.lt_s - (get_local $5) - (i32.const 0) + (loop $while-in60 + (i32.store + (get_local $7) + (tee_local $5 + (i32.trunc_u/f64 + (get_local $15) + ) ) ) - ) - ) - (loop $while-in60 - (i32.store - (get_local $7) - (tee_local $5 - (i32.trunc_u/f64 - (get_local $15) + (set_local $7 + (i32.add + (get_local $7) + (i32.const 4) ) ) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 4) - ) - ) - (br_if $while-in60 - (f64.ne - (tee_local $15 - (f64.mul - (f64.sub - (get_local $15) - (f64.convert_u/i32 - (get_local $5) + (br_if $while-in60 + (f64.ne + (tee_local $15 + (f64.mul + (f64.sub + (get_local $15) + (f64.convert_u/i32 + (get_local $5) + ) ) + (f64.const 1e9) ) - (f64.const 1e9) ) + (f64.const 0) ) - (f64.const 0) ) ) - ) - (if - (i32.gt_s - (tee_local $9 - (i32.load - (get_local $21) + (if + (i32.gt_s + (tee_local $9 + (i32.load + (get_local $21) + ) ) + (i32.const 0) ) - (i32.const 0) - ) - (block - (set_local $5 - (get_local $8) - ) - (loop $while-in62 - (set_local $13 - (select - (i32.const 29) - (get_local $9) - (i32.gt_s - (get_local $9) + (block + (set_local $5 + (get_local $8) + ) + (loop $while-in62 + (set_local $13 + (select (i32.const 29) + (get_local $9) + (i32.gt_s + (get_local $9) + (i32.const 29) + ) ) ) - ) - (block $do-once63 - (if - (i32.ge_u - (tee_local $9 - (i32.add - (get_local $7) - (i32.const -4) + (block $do-once63 + (if + (i32.ge_u + (tee_local $9 + (i32.add + (get_local $7) + (i32.const -4) + ) ) + (get_local $5) ) - (get_local $5) - ) - (block - (set_local $12 - (i32.const 0) - ) - (loop $while-in66 - (i32.store - (get_local $9) - (tee_local $20 - (call $___uremdi3 - (tee_local $12 - (call $_i64Add - (call $_bitshift64Shl - (i32.load - (get_local $9) + (block + (set_local $12 + (i32.const 0) + ) + (loop $while-in66 + (i32.store + (get_local $9) + (tee_local $20 + (call $___uremdi3 + (tee_local $12 + (call $_i64Add + (call $_bitshift64Shl + (i32.load + (get_local $9) + ) + (i32.const 0) + (get_local $13) ) + (get_global $tempRet0) + (get_local $12) (i32.const 0) - (get_local $13) ) + ) + (tee_local $17 (get_global $tempRet0) - (get_local $12) - (i32.const 0) ) + (i32.const 1000000000) + (i32.const 0) ) - (tee_local $17 - (get_global $tempRet0) - ) + ) + ) + (set_local $12 + (call $___udivdi3 + (get_local $12) + (get_local $17) (i32.const 1000000000) (i32.const 0) ) ) + (br_if $while-in66 + (i32.ge_u + (tee_local $9 + (i32.add + (get_local $9) + (i32.const -4) + ) + ) + (get_local $5) + ) + ) ) - (set_local $12 - (call $___udivdi3 + (br_if $do-once63 + (i32.eqz (get_local $12) - (get_local $17) - (i32.const 1000000000) - (i32.const 0) ) ) - (br_if $while-in66 - (i32.ge_u - (tee_local $9 - (i32.add - (get_local $9) - (i32.const -4) - ) + (i32.store + (tee_local $5 + (i32.add + (get_local $5) + (i32.const -4) ) - (get_local $5) ) - ) - ) - (br_if $do-once63 - (i32.eqz (get_local $12) ) ) - (i32.store - (tee_local $5 - (i32.add - (get_local $5) - (i32.const -4) - ) - ) - (get_local $12) - ) ) ) - ) - (loop $while-in68 - (if - (i32.gt_u - (get_local $7) - (get_local $5) - ) + (loop $while-in68 (if - (i32.eqz - (i32.load - (tee_local $9 - (i32.add - (get_local $7) - (i32.const -4) + (i32.gt_u + (get_local $7) + (get_local $5) + ) + (if + (i32.eqz + (i32.load + (tee_local $9 + (i32.add + (get_local $7) + (i32.const -4) + ) ) ) ) - ) - (block - (set_local $7 - (get_local $9) + (block + (set_local $7 + (get_local $9) + ) + (br $while-in68) ) - (br $while-in68) ) ) ) - ) - (i32.store - (get_local $21) - (tee_local $9 - (i32.sub - (i32.load - (get_local $21) + (i32.store + (get_local $21) + (tee_local $9 + (i32.sub + (i32.load + (get_local $21) + ) + (get_local $13) ) - (get_local $13) ) ) - ) - (br_if $while-in62 - (i32.gt_s - (get_local $9) - (i32.const 0) + (br_if $while-in62 + (i32.gt_s + (get_local $9) + (i32.const 0) + ) ) ) ) - ) - (set_local $5 - (get_local $8) - ) - ) - (set_local $17 - (select - (i32.const 6) - (get_local $6) - (i32.lt_s - (get_local $6) - (i32.const 0) + (set_local $5 + (get_local $8) ) ) - ) - (if - (i32.lt_s - (get_local $9) - (i32.const 0) - ) - (block - (set_local $20 - (i32.add - (i32.div_s - (i32.add - (get_local $17) - (i32.const 25) - ) - (i32.const 9) - ) - (i32.const 1) - ) - ) - (set_local $32 - (i32.eq - (get_local $25) - (i32.const 102) + (set_local $17 + (select + (i32.const 6) + (get_local $6) + (i32.lt_s + (get_local $6) + (i32.const 0) ) ) - (set_local $6 - (get_local $5) - ) - (set_local $5 - (get_local $7) + ) + (if + (i32.lt_s + (get_local $9) + (i32.const 0) ) - (loop $while-in70 - (set_local $13 - (select - (i32.const 9) - (tee_local $7 - (i32.sub - (i32.const 0) - (get_local $9) + (block + (set_local $20 + (i32.add + (i32.div_s + (i32.add + (get_local $17) + (i32.const 25) ) - ) - (i32.gt_s - (get_local $7) (i32.const 9) ) + (i32.const 1) ) ) - (block $do-once71 - (if - (i32.lt_u - (get_local $6) - (get_local $5) - ) - (block - (set_local $12 - (i32.add - (i32.shl - (i32.const 1) - (get_local $13) - ) - (i32.const -1) - ) - ) - (set_local $38 - (i32.shr_u - (i32.const 1000000000) - (get_local $13) + (set_local $32 + (i32.eq + (get_local $25) + (i32.const 102) + ) + ) + (set_local $6 + (get_local $5) + ) + (set_local $5 + (get_local $7) + ) + (loop $while-in70 + (set_local $13 + (select + (i32.const 9) + (tee_local $7 + (i32.sub + (i32.const 0) + (get_local $9) ) ) - (set_local $9 - (i32.const 0) + (i32.gt_s + (get_local $7) + (i32.const 9) ) - (set_local $7 + ) + ) + (block $do-once71 + (if + (i32.lt_u (get_local $6) + (get_local $5) ) - (loop $while-in74 - (i32.store - (get_local $7) + (block + (set_local $12 (i32.add - (i32.shr_u - (tee_local $33 - (i32.load - (get_local $7) - ) - ) + (i32.shl + (i32.const 1) (get_local $13) ) - (get_local $9) + (i32.const -1) + ) + ) + (set_local $38 + (i32.shr_u + (i32.const 1000000000) + (get_local $13) ) ) (set_local $9 - (i32.mul - (i32.and - (get_local $33) - (get_local $12) + (i32.const 0) + ) + (set_local $7 + (get_local $6) + ) + (loop $while-in74 + (i32.store + (get_local $7) + (i32.add + (i32.shr_u + (tee_local $33 + (i32.load + (get_local $7) + ) + ) + (get_local $13) + ) + (get_local $9) ) - (get_local $38) ) - ) - (br_if $while-in74 - (i32.lt_u - (tee_local $7 - (i32.add - (get_local $7) - (i32.const 4) + (set_local $9 + (i32.mul + (i32.and + (get_local $33) + (get_local $12) ) + (get_local $38) ) + ) + (br_if $while-in74 + (i32.lt_u + (tee_local $7 + (i32.add + (get_local $7) + (i32.const 4) + ) + ) + (get_local $5) + ) + ) + ) + (set_local $7 + (select + (get_local $6) + (i32.add + (get_local $6) + (i32.const 4) + ) + (i32.load + (get_local $6) + ) + ) + ) + (br_if $do-once71 + (i32.eqz + (get_local $9) + ) + ) + (i32.store + (get_local $5) + (get_local $9) + ) + (set_local $5 + (i32.add (get_local $5) + (i32.const 4) ) ) ) @@ -4841,484 +4869,457 @@ ) ) ) - (br_if $do-once71 - (i32.eqz - (get_local $9) + ) + ) + (set_local $12 + (select + (i32.add + (tee_local $6 + (select + (get_local $8) + (get_local $7) + (get_local $32) + ) + ) + (i32.shl + (get_local $20) + (i32.const 2) ) ) - (i32.store - (get_local $5) - (get_local $9) - ) - (set_local $5 - (i32.add - (get_local $5) - (i32.const 4) + (get_local $5) + (i32.gt_s + (i32.shr_s + (i32.sub + (get_local $5) + (get_local $6) + ) + (i32.const 2) ) + (get_local $20) ) ) - (set_local $7 - (select - (get_local $6) - (i32.add - (get_local $6) - (i32.const 4) - ) + ) + (i32.store + (get_local $21) + (tee_local $9 + (i32.add (i32.load - (get_local $6) + (get_local $21) ) + (get_local $13) ) ) ) - ) - (set_local $12 - (select - (i32.add - (tee_local $6 - (select - (get_local $8) - (get_local $7) - (get_local $32) - ) + (if + (i32.lt_s + (get_local $9) + (i32.const 0) + ) + (block + (set_local $6 + (get_local $7) ) - (i32.shl - (get_local $20) - (i32.const 2) + (set_local $5 + (get_local $12) ) + (br $while-in70) ) - (get_local $5) - (i32.gt_s - (i32.shr_s - (i32.sub - (get_local $5) - (get_local $6) - ) - (i32.const 2) + (block + (set_local $5 + (get_local $7) ) - (get_local $20) - ) - ) - ) - (i32.store - (get_local $21) - (tee_local $9 - (i32.add - (i32.load - (get_local $21) + (set_local $9 + (get_local $12) ) - (get_local $13) - ) - ) - ) - (if - (i32.lt_s - (get_local $9) - (i32.const 0) - ) - (block - (set_local $6 - (get_local $7) - ) - (set_local $5 - (get_local $12) - ) - (br $while-in70) - ) - (block - (set_local $5 - (get_local $7) - ) - (set_local $9 - (get_local $12) ) ) ) ) + (set_local $9 + (get_local $7) + ) ) - (set_local $9 - (get_local $7) + (set_local $20 + (get_local $8) ) - ) - (set_local $20 - (get_local $8) - ) - (block $do-once75 - (if - (i32.lt_u - (get_local $5) - (get_local $9) - ) - (block - (set_local $7 - (i32.mul - (i32.shr_s - (i32.sub - (get_local $20) - (get_local $5) + (block $do-once75 + (if + (i32.lt_u + (get_local $5) + (get_local $9) + ) + (block + (set_local $7 + (i32.mul + (i32.shr_s + (i32.sub + (get_local $20) + (get_local $5) + ) + (i32.const 2) ) - (i32.const 2) + (i32.const 9) ) - (i32.const 9) ) - ) - (br_if $do-once75 - (i32.lt_u - (tee_local $12 - (i32.load - (get_local $5) + (br_if $do-once75 + (i32.lt_u + (tee_local $12 + (i32.load + (get_local $5) + ) ) + (i32.const 10) ) + ) + (set_local $6 (i32.const 10) ) - ) - (set_local $6 - (i32.const 10) - ) - (loop $while-in78 - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) + (loop $while-in78 + (set_local $7 + (i32.add + (get_local $7) + (i32.const 1) + ) ) - ) - (br_if $while-in78 - (i32.ge_u - (get_local $12) - (tee_local $6 - (i32.mul - (get_local $6) - (i32.const 10) + (br_if $while-in78 + (i32.ge_u + (get_local $12) + (tee_local $6 + (i32.mul + (get_local $6) + (i32.const 10) + ) ) ) ) ) ) - ) - (set_local $7 - (i32.const 0) + (set_local $7 + (i32.const 0) + ) ) ) - ) - (set_local $5 - (if i32 - (i32.lt_s - (tee_local $6 - (i32.add - (i32.sub - (get_local $17) - (select - (get_local $7) - (i32.const 0) - (i32.ne - (get_local $25) - (i32.const 102) + (set_local $5 + (if i32 + (i32.lt_s + (tee_local $6 + (i32.add + (i32.sub + (get_local $17) + (select + (get_local $7) + (i32.const 0) + (i32.ne + (get_local $25) + (i32.const 102) + ) ) ) - ) - (i32.shr_s - (i32.shl - (i32.and - (tee_local $32 - (i32.ne - (get_local $17) - (i32.const 0) + (i32.shr_s + (i32.shl + (i32.and + (tee_local $32 + (i32.ne + (get_local $17) + (i32.const 0) + ) ) - ) - (tee_local $38 - (i32.eq - (get_local $25) - (i32.const 103) + (tee_local $38 + (i32.eq + (get_local $25) + (i32.const 103) + ) ) ) + (i32.const 31) ) (i32.const 31) ) - (i32.const 31) ) ) - ) - (i32.add - (i32.mul - (i32.shr_s - (i32.sub - (get_local $9) - (get_local $20) + (i32.add + (i32.mul + (i32.shr_s + (i32.sub + (get_local $9) + (get_local $20) + ) + (i32.const 2) ) - (i32.const 2) + (i32.const 9) ) - (i32.const 9) + (i32.const -9) ) - (i32.const -9) ) - ) - (block i32 - (if - (i32.lt_s - (tee_local $6 - (i32.add - (i32.rem_s - (tee_local $13 - (i32.add - (get_local $6) - (i32.const 9216) + (block i32 + (if + (i32.lt_s + (tee_local $6 + (i32.add + (i32.rem_s + (tee_local $13 + (i32.add + (get_local $6) + (i32.const 9216) + ) ) + (i32.const 9) ) - (i32.const 9) + (i32.const 1) ) - (i32.const 1) ) + (i32.const 9) ) - (i32.const 9) - ) - (block - (set_local $12 - (i32.const 10) - ) - (loop $while-in80 + (block (set_local $12 - (i32.mul - (get_local $12) - (i32.const 10) - ) + (i32.const 10) ) - (br_if $while-in80 - (i32.ne - (tee_local $6 - (i32.add - (get_local $6) - (i32.const 1) + (loop $while-in80 + (set_local $12 + (i32.mul + (get_local $12) + (i32.const 10) + ) + ) + (br_if $while-in80 + (i32.ne + (tee_local $6 + (i32.add + (get_local $6) + (i32.const 1) + ) ) + (i32.const 9) ) - (i32.const 9) ) ) ) + (set_local $12 + (i32.const 10) + ) ) - (set_local $12 - (i32.const 10) - ) - ) - (set_local $13 - (i32.rem_u - (tee_local $25 - (i32.load - (tee_local $6 - (i32.add + (set_local $13 + (i32.rem_u + (tee_local $25 + (i32.load + (tee_local $6 (i32.add - (get_local $8) - (i32.shl - (i32.div_s - (get_local $13) - (i32.const 9) + (i32.add + (get_local $8) + (i32.shl + (i32.div_s + (get_local $13) + (i32.const 9) + ) + (i32.const 2) ) - (i32.const 2) ) + (i32.const -4092) ) - (i32.const -4092) ) ) ) + (get_local $12) ) - (get_local $12) ) - ) - (block $do-once81 - (if - (i32.eqz - (i32.and - (tee_local $33 - (i32.eq - (i32.add - (get_local $6) - (i32.const 4) + (block $do-once81 + (if + (i32.eqz + (i32.and + (tee_local $33 + (i32.eq + (i32.add + (get_local $6) + (i32.const 4) + ) + (get_local $9) ) - (get_local $9) ) - ) - (i32.eqz - (get_local $13) + (i32.eqz + (get_local $13) + ) ) ) - ) - (block - (set_local $15 - (if f64 - (i32.lt_u - (get_local $13) - (tee_local $50 - (i32.div_s - (get_local $12) - (i32.const 2) + (block + (set_local $15 + (if f64 + (i32.lt_u + (get_local $13) + (tee_local $50 + (i32.div_s + (get_local $12) + (i32.const 2) + ) ) ) - ) - (f64.const 0.5) - (select - (f64.const 1) - (f64.const 1.5) - (i32.and - (get_local $33) - (i32.eq - (get_local $13) - (get_local $50) + (f64.const 0.5) + (select + (f64.const 1) + (f64.const 1.5) + (i32.and + (get_local $33) + (i32.eq + (get_local $13) + (get_local $50) + ) ) ) ) ) - ) - (set_local $24 - (select - (f64.const 9007199254740994) - (f64.const 9007199254740992) - (i32.and - (i32.div_u - (get_local $25) - (get_local $12) + (set_local $24 + (select + (f64.const 9007199254740994) + (f64.const 9007199254740992) + (i32.and + (i32.div_u + (get_local $25) + (get_local $12) + ) + (i32.const 1) ) - (i32.const 1) ) ) - ) - (block $do-once83 - (if - (get_local $27) - (block - (br_if $do-once83 - (i32.ne - (i32.load8_s - (get_local $31) + (block $do-once83 + (if + (get_local $27) + (block + (br_if $do-once83 + (i32.ne + (i32.load8_s + (get_local $31) + ) + (i32.const 45) ) - (i32.const 45) ) - ) - (set_local $24 - (f64.neg - (get_local $24) + (set_local $24 + (f64.neg + (get_local $24) + ) ) - ) - (set_local $15 - (f64.neg - (get_local $15) + (set_local $15 + (f64.neg + (get_local $15) + ) ) ) ) ) - ) - (i32.store - (get_local $6) - (tee_local $13 - (i32.sub - (get_local $25) - (get_local $13) + (i32.store + (get_local $6) + (tee_local $13 + (i32.sub + (get_local $25) + (get_local $13) + ) ) ) - ) - (br_if $do-once81 - (f64.eq - (f64.add + (br_if $do-once81 + (f64.eq + (f64.add + (get_local $24) + (get_local $15) + ) (get_local $24) - (get_local $15) ) - (get_local $24) ) - ) - (i32.store - (get_local $6) - (tee_local $7 - (i32.add - (get_local $13) - (get_local $12) + (i32.store + (get_local $6) + (tee_local $7 + (i32.add + (get_local $13) + (get_local $12) + ) ) ) - ) - (if - (i32.gt_u - (get_local $7) - (i32.const 999999999) - ) - (loop $while-in86 - (i32.store - (get_local $6) - (i32.const 0) + (if + (i32.gt_u + (get_local $7) + (i32.const 999999999) ) - (if - (i32.lt_u - (tee_local $6 - (i32.add - (get_local $6) - (i32.const -4) + (loop $while-in86 + (i32.store + (get_local $6) + (i32.const 0) + ) + (if + (i32.lt_u + (tee_local $6 + (i32.add + (get_local $6) + (i32.const -4) + ) ) + (get_local $5) + ) + (i32.store + (tee_local $5 + (i32.add + (get_local $5) + (i32.const -4) + ) + ) + (i32.const 0) ) - (get_local $5) ) (i32.store - (tee_local $5 + (get_local $6) + (tee_local $7 (i32.add - (get_local $5) - (i32.const -4) + (i32.load + (get_local $6) + ) + (i32.const 1) ) ) - (i32.const 0) ) - ) - (i32.store - (get_local $6) - (tee_local $7 - (i32.add - (i32.load - (get_local $6) - ) - (i32.const 1) + (br_if $while-in86 + (i32.gt_u + (get_local $7) + (i32.const 999999999) ) ) ) - (br_if $while-in86 - (i32.gt_u - (get_local $7) - (i32.const 999999999) - ) - ) ) - ) - (set_local $7 - (i32.mul - (i32.shr_s - (i32.sub - (get_local $20) - (get_local $5) + (set_local $7 + (i32.mul + (i32.shr_s + (i32.sub + (get_local $20) + (get_local $5) + ) + (i32.const 2) ) - (i32.const 2) + (i32.const 9) ) - (i32.const 9) ) - ) - (br_if $do-once81 - (i32.lt_u - (tee_local $13 - (i32.load - (get_local $5) + (br_if $do-once81 + (i32.lt_u + (tee_local $13 + (i32.load + (get_local $5) + ) ) + (i32.const 10) ) + ) + (set_local $12 (i32.const 10) ) - ) - (set_local $12 - (i32.const 10) - ) - (loop $while-in88 - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) + (loop $while-in88 + (set_local $7 + (i32.add + (get_local $7) + (i32.const 1) + ) ) - ) - (br_if $while-in88 - (i32.ge_u - (get_local $13) - (tee_local $12 - (i32.mul - (get_local $12) - (i32.const 10) + (br_if $while-in88 + (i32.ge_u + (get_local $13) + (tee_local $12 + (i32.mul + (get_local $12) + (i32.const 10) + ) ) ) ) @@ -5326,607 +5327,565 @@ ) ) ) - ) - (set_local $12 - (get_local $5) - ) - (set_local $13 - (get_local $7) - ) - (select - (tee_local $5 - (i32.add - (get_local $6) - (i32.const 4) - ) + (set_local $12 + (get_local $5) ) - (get_local $9) - (i32.gt_u + (set_local $13 + (get_local $7) + ) + (select + (tee_local $5 + (i32.add + (get_local $6) + (i32.const 4) + ) + ) (get_local $9) - (get_local $5) + (i32.gt_u + (get_local $9) + (get_local $5) + ) ) ) - ) - (block i32 - (set_local $12 - (get_local $5) - ) - (set_local $13 - (get_local $7) + (block i32 + (set_local $12 + (get_local $5) + ) + (set_local $13 + (get_local $7) + ) + (get_local $9) ) - (get_local $9) ) ) - ) - (set_local $33 - (i32.sub - (i32.const 0) - (get_local $13) + (set_local $33 + (i32.sub + (i32.const 0) + (get_local $13) + ) ) - ) - (loop $while-in90 - (block $while-out89 - (if - (i32.le_u - (get_local $5) - (get_local $12) - ) - (block - (set_local $25 - (i32.const 0) - ) - (set_local $9 + (loop $while-in90 + (block $while-out89 + (if + (i32.le_u (get_local $5) + (get_local $12) ) - (br $while-out89) - ) - ) - (if - (i32.load - (tee_local $7 - (i32.add + (block + (set_local $25 + (i32.const 0) + ) + (set_local $9 (get_local $5) - (i32.const -4) ) + (br $while-out89) ) ) - (block - (set_local $25 - (i32.const 1) + (if + (i32.load + (tee_local $7 + (i32.add + (get_local $5) + (i32.const -4) + ) + ) ) - (set_local $9 - (get_local $5) + (block + (set_local $25 + (i32.const 1) + ) + (set_local $9 + (get_local $5) + ) ) - ) - (block - (set_local $5 - (get_local $7) + (block + (set_local $5 + (get_local $7) + ) + (br $while-in90) ) - (br $while-in90) ) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (tee_local $13 - (i32.add + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $14) + (tee_local $13 (i32.add (i32.add (i32.add - (get_local $27) - (i32.const 1) - ) - (tee_local $5 - (block $do-once91 i32 - (if i32 - (get_local $38) - (block i32 - (set_local $7 - (if i32 - (i32.and - (i32.gt_s - (tee_local $5 - (i32.add - (i32.xor - (get_local $32) - (i32.const 1) + (i32.add + (get_local $27) + (i32.const 1) + ) + (tee_local $5 + (block $do-once91 i32 + (if i32 + (get_local $38) + (block i32 + (set_local $7 + (if i32 + (i32.and + (i32.gt_s + (tee_local $5 + (i32.add + (i32.xor + (get_local $32) + (i32.const 1) + ) + (get_local $17) ) - (get_local $17) ) + (get_local $13) + ) + (i32.gt_s + (get_local $13) + (i32.const -5) ) - (get_local $13) ) - (i32.gt_s - (get_local $13) - (i32.const -5) + (block i32 + (set_local $17 + (i32.sub + (i32.add + (get_local $5) + (i32.const -1) + ) + (get_local $13) + ) + ) + (i32.add + (get_local $18) + (i32.const -1) + ) ) - ) - (block i32 - (set_local $17 - (i32.sub + (block i32 + (set_local $17 (i32.add (get_local $5) (i32.const -1) ) - (get_local $13) ) - ) - (i32.add - (get_local $18) - (i32.const -1) - ) - ) - (block i32 - (set_local $17 (i32.add - (get_local $5) - (i32.const -1) + (get_local $18) + (i32.const -2) ) ) - (i32.add - (get_local $18) - (i32.const -2) - ) ) ) - ) - (if - (tee_local $5 - (i32.and - (get_local $11) - (i32.const 8) - ) - ) - (block - (set_local $20 - (get_local $5) + (if + (tee_local $5 + (i32.and + (get_local $11) + (i32.const 8) + ) ) - (br $do-once91 - (get_local $17) + (block + (set_local $20 + (get_local $5) + ) + (br $do-once91 + (get_local $17) + ) ) ) - ) - (block $do-once93 - (if - (get_local $25) - (block - (if - (i32.eqz - (tee_local $18 - (i32.load - (i32.add - (get_local $9) - (i32.const -4) + (block $do-once93 + (if + (get_local $25) + (block + (if + (i32.eqz + (tee_local $18 + (i32.load + (i32.add + (get_local $9) + (i32.const -4) + ) ) ) ) - ) - (block - (set_local $5 - (i32.const 9) - ) - (br $do-once93) - ) - ) - (if - (i32.rem_u - (get_local $18) - (i32.const 10) - ) - (block - (set_local $5 - (i32.const 0) + (block + (set_local $5 + (i32.const 9) + ) + (br $do-once93) ) - (br $do-once93) ) - (block - (set_local $6 + (if + (i32.rem_u + (get_local $18) (i32.const 10) ) - (set_local $5 - (i32.const 0) + (block + (set_local $5 + (i32.const 0) + ) + (br $do-once93) ) - ) - ) - (loop $while-in96 - (set_local $5 - (i32.add - (get_local $5) - (i32.const 1) + (block + (set_local $6 + (i32.const 10) + ) + (set_local $5 + (i32.const 0) + ) ) ) - (br_if $while-in96 - (i32.eqz - (i32.rem_u - (get_local $18) - (tee_local $6 - (i32.mul - (get_local $6) - (i32.const 10) + (loop $while-in96 + (set_local $5 + (i32.add + (get_local $5) + (i32.const 1) + ) + ) + (br_if $while-in96 + (i32.eqz + (i32.rem_u + (get_local $18) + (tee_local $6 + (i32.mul + (get_local $6) + (i32.const 10) + ) ) ) ) ) ) ) - ) - (set_local $5 - (i32.const 9) + (set_local $5 + (i32.const 9) + ) ) ) - ) - (set_local $6 - (i32.add - (i32.mul - (i32.shr_s - (i32.sub - (get_local $9) - (get_local $20) + (set_local $6 + (i32.add + (i32.mul + (i32.shr_s + (i32.sub + (get_local $9) + (get_local $20) + ) + (i32.const 2) ) - (i32.const 2) + (i32.const 9) ) - (i32.const 9) - ) - (i32.const -9) - ) - ) - (if i32 - (i32.eq - (i32.or - (get_local $7) - (i32.const 32) + (i32.const -9) ) - (i32.const 102) ) - (block i32 - (set_local $20 - (i32.const 0) + (if i32 + (i32.eq + (i32.or + (get_local $7) + (i32.const 32) + ) + (i32.const 102) ) - (select - (get_local $17) - (tee_local $5 - (select - (i32.const 0) - (tee_local $5 - (i32.sub - (get_local $6) + (block i32 + (set_local $20 + (i32.const 0) + ) + (select + (get_local $17) + (tee_local $5 + (select + (i32.const 0) + (tee_local $5 + (i32.sub + (get_local $6) + (get_local $5) + ) + ) + (i32.lt_s (get_local $5) + (i32.const 0) ) ) - (i32.lt_s - (get_local $5) - (i32.const 0) - ) ) - ) - (i32.lt_s - (get_local $17) - (get_local $5) + (i32.lt_s + (get_local $17) + (get_local $5) + ) ) ) - ) - (block i32 - (set_local $20 - (i32.const 0) - ) - (select - (get_local $17) - (tee_local $5 - (select - (i32.const 0) - (tee_local $5 - (i32.sub - (i32.add - (get_local $6) - (get_local $13) + (block i32 + (set_local $20 + (i32.const 0) + ) + (select + (get_local $17) + (tee_local $5 + (select + (i32.const 0) + (tee_local $5 + (i32.sub + (i32.add + (get_local $6) + (get_local $13) + ) + (get_local $5) ) + ) + (i32.lt_s (get_local $5) + (i32.const 0) ) ) - (i32.lt_s - (get_local $5) - (i32.const 0) - ) ) - ) - (i32.lt_s - (get_local $17) - (get_local $5) + (i32.lt_s + (get_local $17) + (get_local $5) + ) ) ) ) ) - ) - (block i32 - (set_local $20 - (i32.and - (get_local $11) - (i32.const 8) + (block i32 + (set_local $20 + (i32.and + (get_local $11) + (i32.const 8) + ) ) + (set_local $7 + (get_local $18) + ) + (get_local $17) ) - (set_local $7 - (get_local $18) - ) - (get_local $17) ) ) ) ) - ) - (i32.ne - (tee_local $32 - (i32.or - (get_local $5) - (get_local $20) - ) - ) - (i32.const 0) - ) - ) - (tee_local $7 - (if i32 - (tee_local $17 - (i32.eq + (i32.ne + (tee_local $32 (i32.or - (get_local $7) - (i32.const 32) + (get_local $5) + (get_local $20) ) - (i32.const 102) ) + (i32.const 0) ) - (block i32 - (set_local $18 - (i32.const 0) + ) + (tee_local $7 + (if i32 + (tee_local $17 + (i32.eq + (i32.or + (get_local $7) + (i32.const 32) + ) + (i32.const 102) + ) ) - (select - (get_local $13) - (i32.const 0) - (i32.gt_s + (block i32 + (set_local $18 + (i32.const 0) + ) + (select (get_local $13) (i32.const 0) + (i32.gt_s + (get_local $13) + (i32.const 0) + ) ) ) - ) - (block i32 - (if - (i32.lt_s - (i32.sub - (get_local $28) - (tee_local $6 - (call $_fmt_u - (tee_local $6 - (select - (get_local $33) - (get_local $13) - (i32.lt_s + (block i32 + (if + (i32.lt_s + (i32.sub + (get_local $28) + (tee_local $6 + (call $_fmt_u + (tee_local $6 + (select + (get_local $33) (get_local $13) - (i32.const 0) + (i32.lt_s + (get_local $13) + (i32.const 0) + ) ) ) - ) - (i32.shr_s - (i32.shl - (i32.lt_s - (get_local $6) - (i32.const 0) + (i32.shr_s + (i32.shl + (i32.lt_s + (get_local $6) + (i32.const 0) + ) + (i32.const 31) ) (i32.const 31) ) - (i32.const 31) + (get_local $34) ) - (get_local $34) ) ) + (i32.const 2) ) - (i32.const 2) - ) - (loop $while-in98 - (i32.store8 - (tee_local $6 - (i32.add - (get_local $6) - (i32.const -1) + (loop $while-in98 + (i32.store8 + (tee_local $6 + (i32.add + (get_local $6) + (i32.const -1) + ) + ) + (i32.const 48) + ) + (br_if $while-in98 + (i32.lt_s + (i32.sub + (get_local $28) + (get_local $6) + ) + (i32.const 2) ) ) - (i32.const 48) ) - (br_if $while-in98 - (i32.lt_s - (i32.sub - (get_local $28) - (get_local $6) + ) + (i32.store8 + (i32.add + (get_local $6) + (i32.const -1) + ) + (i32.add + (i32.and + (i32.shr_s + (get_local $13) + (i32.const 31) ) (i32.const 2) ) + (i32.const 43) ) ) - ) - (i32.store8 - (i32.add - (get_local $6) - (i32.const -1) - ) - (i32.add - (i32.and - (i32.shr_s - (get_local $13) - (i32.const 31) + (i32.store8 + (tee_local $6 + (i32.add + (get_local $6) + (i32.const -2) ) - (i32.const 2) ) - (i32.const 43) + (get_local $7) ) - ) - (i32.store8 - (tee_local $6 - (i32.add - (get_local $6) - (i32.const -2) - ) + (set_local $18 + (get_local $6) + ) + (i32.sub + (get_local $28) + (get_local $6) ) - (get_local $7) - ) - (set_local $18 - (get_local $6) - ) - (i32.sub - (get_local $28) - (get_local $6) ) ) ) ) ) + (get_local $11) ) - (get_local $11) - ) - (if - (i32.eqz - (i32.and - (i32.load + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $31) + (get_local $27) (get_local $0) ) - (i32.const 32) ) ) - (drop - (call $___fwritex - (get_local $31) - (get_local $27) - (get_local $0) + (call $_pad + (get_local $0) + (i32.const 48) + (get_local $14) + (get_local $13) + (i32.xor + (get_local $11) + (i32.const 65536) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (get_local $14) - (get_local $13) - (i32.xor - (get_local $11) - (i32.const 65536) - ) - ) - (block $do-once99 - (if - (get_local $17) - (block - (set_local $6 - (tee_local $12 - (select - (get_local $8) - (get_local $12) - (i32.gt_u - (get_local $12) + (block $do-once99 + (if + (get_local $17) + (block + (set_local $6 + (tee_local $12 + (select (get_local $8) + (get_local $12) + (i32.gt_u + (get_local $12) + (get_local $8) + ) ) ) ) - ) - (loop $while-in102 - (set_local $7 - (call $_fmt_u - (i32.load - (get_local $6) + (loop $while-in102 + (set_local $7 + (call $_fmt_u + (i32.load + (get_local $6) + ) + (i32.const 0) + (get_local $30) ) - (i32.const 0) - (get_local $30) ) - ) - (block $do-once103 - (if - (i32.eq - (get_local $6) - (get_local $12) - ) - (block - (br_if $do-once103 - (i32.ne - (get_local $7) - (get_local $30) - ) - ) - (i32.store8 - (get_local $35) - (i32.const 48) - ) - (set_local $7 - (get_local $35) + (block $do-once103 + (if + (i32.eq + (get_local $6) + (get_local $12) ) - ) - (block - (br_if $do-once103 - (i32.le_u - (get_local $7) - (get_local $23) + (block + (br_if $do-once103 + (i32.ne + (get_local $7) + (get_local $30) + ) ) - ) - (loop $while-in106 (i32.store8 - (tee_local $7 - (i32.add - (get_local $7) - (i32.const -1) - ) - ) + (get_local $35) (i32.const 48) ) - (br_if $while-in106 - (i32.gt_u + (set_local $7 + (get_local $35) + ) + ) + (block + (br_if $do-once103 + (i32.le_u (get_local $7) (get_local $23) ) ) + (loop $while-in106 + (i32.store8 + (tee_local $7 + (i32.add + (get_local $7) + (i32.const -1) + ) + ) + (i32.const 48) + ) + (br_if $while-in106 + (i32.gt_u + (get_local $7) + (get_local $23) + ) + ) + ) ) ) ) - ) - (if - (i32.eqz - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) - ) - ) - (drop - (call $___fwritex - (get_local $7) - (i32.sub - (get_local $43) - (get_local $7) - ) - (get_local $0) - ) - ) - ) - (if - (i32.le_u - (tee_local $7 - (i32.add - (get_local $6) - (i32.const 4) - ) - ) - (get_local $8) - ) - (block - (set_local $6 - (get_local $7) - ) - (br $while-in102) - ) - ) - ) - (block $do-once107 - (if - (get_local $32) - (block - (br_if $do-once107 + (if + (i32.eqz (i32.and (i32.load (get_local $0) @@ -5936,534 +5895,535 @@ ) (drop (call $___fwritex - (i32.const 4143) - (i32.const 1) + (get_local $7) + (i32.sub + (get_local $43) + (get_local $7) + ) (get_local $0) ) ) ) - ) - ) - (if - (i32.and - (i32.gt_s - (get_local $5) - (i32.const 0) - ) - (i32.lt_u - (get_local $7) - (get_local $9) + (if + (i32.le_u + (tee_local $7 + (i32.add + (get_local $6) + (i32.const 4) + ) + ) + (get_local $8) + ) + (block + (set_local $6 + (get_local $7) + ) + (br $while-in102) + ) ) ) - (loop $while-in110 + (block $do-once107 (if - (i32.gt_u - (tee_local $6 - (call $_fmt_u + (get_local $32) + (block + (br_if $do-once107 + (i32.and (i32.load - (get_local $7) + (get_local $0) ) - (i32.const 0) - (get_local $30) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (i32.const 4143) + (i32.const 1) + (get_local $0) ) ) - (get_local $23) ) - (loop $while-in112 - (i32.store8 + ) + ) + (if + (i32.and + (i32.gt_s + (get_local $5) + (i32.const 0) + ) + (i32.lt_u + (get_local $7) + (get_local $9) + ) + ) + (loop $while-in110 + (if + (i32.gt_u (tee_local $6 - (i32.add - (get_local $6) - (i32.const -1) + (call $_fmt_u + (i32.load + (get_local $7) + ) + (i32.const 0) + (get_local $30) ) ) - (i32.const 48) + (get_local $23) ) - (br_if $while-in112 - (i32.gt_u - (get_local $6) - (get_local $23) + (loop $while-in112 + (i32.store8 + (tee_local $6 + (i32.add + (get_local $6) + (i32.const -1) + ) + ) + (i32.const 48) + ) + (br_if $while-in112 + (i32.gt_u + (get_local $6) + (get_local $23) + ) ) ) ) - ) - (if - (i32.eqz - (i32.and - (i32.load - (get_local $0) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) ) - (i32.const 32) ) - ) - (drop - (call $___fwritex - (get_local $6) - (select - (i32.const 9) - (get_local $5) - (i32.gt_s - (get_local $5) + (drop + (call $___fwritex + (get_local $6) + (select (i32.const 9) + (get_local $5) + (i32.gt_s + (get_local $5) + (i32.const 9) + ) ) + (get_local $0) ) - (get_local $0) ) ) - ) - (set_local $6 - (i32.add - (get_local $5) - (i32.const -9) - ) - ) - (if - (i32.and - (i32.gt_s + (set_local $6 + (i32.add (get_local $5) - (i32.const 9) + (i32.const -9) ) - (i32.lt_u - (tee_local $7 - (i32.add - (get_local $7) - (i32.const 4) + ) + (if + (i32.and + (i32.gt_s + (get_local $5) + (i32.const 9) + ) + (i32.lt_u + (tee_local $7 + (i32.add + (get_local $7) + (i32.const 4) + ) ) + (get_local $9) ) - (get_local $9) ) - ) - (block + (block + (set_local $5 + (get_local $6) + ) + (br $while-in110) + ) (set_local $5 (get_local $6) ) - (br $while-in110) - ) - (set_local $5 - (get_local $6) ) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (i32.add - (get_local $5) - (i32.const 9) - ) - (i32.const 9) - (i32.const 0) - ) - ) - (block - (set_local $9 - (select - (get_local $9) + (call $_pad + (get_local $0) + (i32.const 48) (i32.add - (get_local $12) - (i32.const 4) + (get_local $5) + (i32.const 9) ) - (get_local $25) + (i32.const 9) + (i32.const 0) ) ) - (if - (i32.gt_s - (get_local $5) - (i32.const -1) - ) - (block - (set_local $17 - (i32.eqz - (get_local $20) + (block + (set_local $9 + (select + (get_local $9) + (i32.add + (get_local $12) + (i32.const 4) ) + (get_local $25) ) - (set_local $6 - (get_local $12) - ) - (set_local $7 + ) + (if + (i32.gt_s (get_local $5) + (i32.const -1) ) - (loop $while-in114 - (if - (i32.eq - (tee_local $5 - (call $_fmt_u - (i32.load - (get_local $6) - ) - (i32.const 0) - (get_local $30) - ) - ) - (get_local $30) - ) - (block - (i32.store8 - (get_local $35) - (i32.const 48) - ) - (set_local $5 - (get_local $35) - ) + (block + (set_local $17 + (i32.eqz + (get_local $20) ) ) - (block $do-once115 + (set_local $6 + (get_local $12) + ) + (set_local $7 + (get_local $5) + ) + (loop $while-in114 (if (i32.eq - (get_local $6) - (get_local $12) + (tee_local $5 + (call $_fmt_u + (i32.load + (get_local $6) + ) + (i32.const 0) + (get_local $30) + ) + ) + (get_local $30) ) (block - (if - (i32.eqz - (i32.and - (i32.load + (i32.store8 + (get_local $35) + (i32.const 48) + ) + (set_local $5 + (get_local $35) + ) + ) + ) + (block $do-once115 + (if + (i32.eq + (get_local $6) + (get_local $12) + ) + (block + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $5) + (i32.const 1) (get_local $0) ) - (i32.const 32) ) ) - (drop - (call $___fwritex + (set_local $5 + (i32.add (get_local $5) (i32.const 1) - (get_local $0) ) ) - ) - (set_local $5 - (i32.add - (get_local $5) - (i32.const 1) - ) - ) - (br_if $do-once115 - (i32.or - (i32.and - (get_local $17) - (i32.lt_s - (get_local $7) - (i32.const 1) + (br_if $do-once115 + (i32.or + (i32.and + (get_local $17) + (i32.lt_s + (get_local $7) + (i32.const 1) + ) ) - ) - (i32.and - (i32.load - (get_local $0) + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) ) - (i32.const 32) ) ) - ) - (drop - (call $___fwritex - (i32.const 4143) - (i32.const 1) - (get_local $0) + (drop + (call $___fwritex + (i32.const 4143) + (i32.const 1) + (get_local $0) + ) ) ) - ) - (block - (br_if $do-once115 - (i32.le_u - (get_local $5) - (get_local $23) + (block + (br_if $do-once115 + (i32.le_u + (get_local $5) + (get_local $23) + ) ) - ) - (loop $while-in118 - (i32.store8 - (tee_local $5 - (i32.add - (get_local $5) - (i32.const -1) + (loop $while-in118 + (i32.store8 + (tee_local $5 + (i32.add + (get_local $5) + (i32.const -1) + ) ) + (i32.const 48) ) - (i32.const 48) - ) - (br_if $while-in118 - (i32.gt_u - (get_local $5) - (get_local $23) + (br_if $while-in118 + (i32.gt_u + (get_local $5) + (get_local $23) + ) ) ) ) ) ) - ) - (set_local $8 - (i32.sub - (get_local $43) - (get_local $5) + (set_local $8 + (i32.sub + (get_local $43) + (get_local $5) + ) ) - ) - (if - (i32.eqz - (i32.and - (i32.load - (get_local $0) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) ) - (i32.const 32) ) - ) - (drop - (call $___fwritex - (get_local $5) - (select - (get_local $8) - (get_local $7) - (i32.gt_s - (get_local $7) + (drop + (call $___fwritex + (get_local $5) + (select (get_local $8) + (get_local $7) + (i32.gt_s + (get_local $7) + (get_local $8) + ) ) + (get_local $0) ) - (get_local $0) ) ) - ) - (br_if $while-in114 - (i32.and - (i32.lt_u - (tee_local $6 - (i32.add - (get_local $6) - (i32.const 4) + (br_if $while-in114 + (i32.and + (i32.lt_u + (tee_local $6 + (i32.add + (get_local $6) + (i32.const 4) + ) ) + (get_local $9) ) - (get_local $9) - ) - (i32.gt_s - (tee_local $7 - (i32.sub - (get_local $7) - (get_local $8) + (i32.gt_s + (tee_local $7 + (i32.sub + (get_local $7) + (get_local $8) + ) ) + (i32.const -1) ) - (i32.const -1) ) ) - ) - (set_local $5 - (get_local $7) + (set_local $5 + (get_local $7) + ) ) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (i32.add - (get_local $5) + (call $_pad + (get_local $0) + (i32.const 48) + (i32.add + (get_local $5) + (i32.const 18) + ) (i32.const 18) + (i32.const 0) ) - (i32.const 18) - (i32.const 0) - ) - (br_if $do-once99 - (i32.and - (i32.load - (get_local $0) + (br_if $do-once99 + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) ) - (i32.const 32) ) - ) - (drop - (call $___fwritex - (get_local $18) - (i32.sub - (get_local $28) + (drop + (call $___fwritex (get_local $18) + (i32.sub + (get_local $28) + (get_local $18) + ) + (get_local $0) ) - (get_local $0) ) ) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (get_local $13) - (i32.xor - (get_local $11) - (i32.const 8192) - ) - ) - (select - (get_local $14) - (get_local $13) - (i32.lt_s + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $14) (get_local $13) + (i32.xor + (get_local $11) + (i32.const 8192) + ) + ) + (select (get_local $14) + (get_local $13) + (i32.lt_s + (get_local $13) + (get_local $14) + ) ) ) - ) - (block i32 - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (tee_local $7 - (i32.add - (tee_local $9 - (select - (i32.const 0) - (get_local $27) - (tee_local $6 - (i32.or - (f64.ne - (get_local $15) - (get_local $15) + (block i32 + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $14) + (tee_local $7 + (i32.add + (tee_local $9 + (select + (i32.const 0) + (get_local $27) + (tee_local $6 + (i32.or + (f64.ne + (get_local $15) + (get_local $15) + ) + (i32.const 0) ) - (i32.const 0) ) ) ) + (i32.const 3) ) - (i32.const 3) ) + (get_local $8) ) - (get_local $8) - ) - (if - (i32.eqz - (i32.and - (tee_local $5 - (i32.load - (get_local $0) + (if + (i32.eqz + (i32.and + (tee_local $5 + (i32.load + (get_local $0) + ) ) + (i32.const 32) ) - (i32.const 32) ) - ) - (block - (drop - (call $___fwritex - (get_local $31) - (get_local $9) - (get_local $0) + (block + (drop + (call $___fwritex + (get_local $31) + (get_local $9) + (get_local $0) + ) ) - ) - (set_local $5 - (i32.load - (get_local $0) + (set_local $5 + (i32.load + (get_local $0) + ) ) ) ) - ) - (set_local $6 - (select + (set_local $6 (select - (i32.const 4135) - (i32.const 4139) - (tee_local $8 - (i32.ne - (i32.and - (get_local $18) - (i32.const 32) + (select + (i32.const 4135) + (i32.const 4139) + (tee_local $8 + (i32.ne + (i32.and + (get_local $18) + (i32.const 32) + ) + (i32.const 0) ) - (i32.const 0) ) ) + (select + (i32.const 4127) + (i32.const 4131) + (get_local $8) + ) + (get_local $6) ) - (select - (i32.const 4127) - (i32.const 4131) - (get_local $8) - ) - (get_local $6) ) - ) - (if - (i32.eqz - (i32.and - (get_local $5) - (i32.const 32) + (if + (i32.eqz + (i32.and + (get_local $5) + (i32.const 32) + ) ) - ) - (drop - (call $___fwritex - (get_local $6) - (i32.const 3) - (get_local $0) + (drop + (call $___fwritex + (get_local $6) + (i32.const 3) + (get_local $0) + ) ) ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (get_local $7) - (i32.xor - (get_local $11) - (i32.const 8192) - ) - ) - (select - (get_local $14) - (get_local $7) - (i32.lt_s + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $14) (get_local $7) + (i32.xor + (get_local $11) + (i32.const 8192) + ) + ) + (select (get_local $14) + (get_local $7) + (i32.lt_s + (get_local $7) + (get_local $14) + ) ) ) ) ) ) - ) - (set_local $5 - (get_local $10) - ) - (set_local $10 - (get_local $7) - ) - (br $label$continue$L1) - ) - (set_local $7 - (get_local $5) - ) - (set_local $12 - (get_local $6) - ) - (set_local $8 - (i32.const 0) - ) - (set_local $9 - (i32.const 4091) - ) - (set_local $5 - (get_local $22) - ) - (br $__rjto$8) - ) - (set_local $9 - (i32.and - (get_local $18) - (i32.const 32) - ) - ) - (if - (i32.and - (i32.eqz - (tee_local $8 - (i32.load - (tee_local $5 - (get_local $19) - ) - ) + (set_local $5 + (get_local $10) ) - ) - (i32.eqz - (tee_local $11 - (i32.load offset=4 - (get_local $5) - ) + (set_local $10 + (get_local $7) ) + (br $label$continue$L1) ) - ) - (block - (set_local $5 - (get_local $22) + (set_local $7 + (get_local $5) + ) + (set_local $12 + (get_local $6) ) (set_local $8 (i32.const 0) @@ -6471,381 +6431,412 @@ (set_local $9 (i32.const 4091) ) - (br $__rjti$8) - ) - (block - (set_local $5 - (get_local $8) - ) - (set_local $8 + (br $__rjto$8 (get_local $22) ) - (loop $while-in123 - (i32.store8 + ) + (set_local $9 + (i32.and + (get_local $18) + (i32.const 32) + ) + ) + (if + (i32.and + (i32.eqz (tee_local $8 - (i32.add - (get_local $8) - (i32.const -1) - ) - ) - (i32.or - (i32.load8_u - (i32.add - (i32.and - (get_local $5) - (i32.const 15) - ) - (i32.const 4075) + (i32.load + (tee_local $5 + (get_local $19) ) ) - (get_local $9) ) ) - (br_if $while-in123 - (i32.eqz - (i32.and - (i32.eqz - (tee_local $5 - (call $_bitshift64Lshr - (get_local $5) - (get_local $11) - (i32.const 4) - ) - ) - ) - (i32.eqz - (tee_local $11 - (get_global $tempRet0) - ) - ) + (i32.eqz + (tee_local $11 + (i32.load offset=4 + (get_local $5) ) ) ) + ) + (block (set_local $5 - (get_local $8) + (get_local $22) + ) + (set_local $8 + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) ) + (br $__rjti$8) ) - (if - (i32.or - (i32.eqz - (i32.and - (get_local $7) - (i32.const 8) + (block + (set_local $5 + (get_local $8) + ) + (set_local $8 + (get_local $22) + ) + (loop $while-in123 + (i32.store8 + (tee_local $8 + (i32.add + (get_local $8) + (i32.const -1) + ) ) - ) - (i32.and - (i32.eqz - (i32.load - (tee_local $11 - (get_local $19) + (i32.or + (i32.load8_u + (i32.add + (i32.and + (get_local $5) + (i32.const 15) + ) + (i32.const 4075) ) ) + (get_local $9) ) + ) + (br_if $while-in123 (i32.eqz - (i32.load offset=4 - (get_local $11) + (i32.and + (i32.eqz + (tee_local $5 + (call $_bitshift64Lshr + (get_local $5) + (get_local $11) + (i32.const 4) + ) + ) + ) + (i32.eqz + (tee_local $11 + (get_global $tempRet0) + ) + ) ) ) ) - ) - (block - (set_local $8 - (i32.const 0) - ) - (set_local $9 - (i32.const 4091) + (set_local $5 + (get_local $8) ) - (br $__rjti$8) ) - (block - (set_local $8 - (i32.const 2) - ) - (set_local $9 - (i32.add - (i32.shr_s - (get_local $18) - (i32.const 4) + (if + (i32.or + (i32.eqz + (i32.and + (get_local $7) + (i32.const 8) ) + ) + (i32.and + (i32.eqz + (i32.load + (tee_local $11 + (get_local $19) + ) + ) + ) + (i32.eqz + (i32.load offset=4 + (get_local $11) + ) + ) + ) + ) + (block + (set_local $8 + (i32.const 0) + ) + (set_local $9 (i32.const 4091) ) + (br $__rjti$8) + ) + (block + (set_local $8 + (i32.const 2) + ) + (set_local $9 + (i32.add + (i32.shr_s + (get_local $18) + (i32.const 4) + ) + (i32.const 4091) + ) + ) + (br $__rjti$8) ) - (br $__rjti$8) ) ) ) ) - (br $__rjto$8) + (set_local $5 + (call $_fmt_u + (get_local $5) + (get_local $7) + (get_local $22) + ) + ) + (set_local $7 + (get_local $11) + ) + (br $__rjti$8) ) - (set_local $5 - (call $_fmt_u - (get_local $5) - (get_local $7) - (get_local $22) + (set_local $18 + (i32.eqz + (tee_local $13 + (call $_memchr + (get_local $5) + (i32.const 0) + (get_local $6) + ) + ) ) ) (set_local $7 - (get_local $11) + (get_local $5) ) - (br $__rjti$8) - ) - (set_local $18 - (i32.eqz - (tee_local $13 - (call $_memchr + (set_local $11 + (get_local $8) + ) + (set_local $12 + (select + (get_local $6) + (i32.sub + (get_local $13) (get_local $5) - (i32.const 0) - (get_local $6) ) + (get_local $18) ) ) - ) - (set_local $7 - (get_local $5) - ) - (set_local $11 - (get_local $8) - ) - (set_local $12 - (select - (get_local $6) - (i32.sub + (set_local $8 + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) + ) + (br $__rjto$8 + (select + (i32.add + (get_local $5) + (get_local $6) + ) (get_local $13) - (get_local $5) + (get_local $18) ) - (get_local $18) ) ) - (set_local $8 + (set_local $5 (i32.const 0) ) - (set_local $9 - (i32.const 4091) + (set_local $7 + (i32.const 0) ) - (set_local $5 - (select - (i32.add - (get_local $5) - (get_local $6) - ) - (get_local $13) - (get_local $18) + (set_local $6 + (i32.load + (get_local $19) ) ) - (br $__rjto$8) - ) - (set_local $5 - (i32.const 0) - ) - (set_local $7 - (i32.const 0) - ) - (set_local $6 - (i32.load - (get_local $19) - ) - ) - (loop $while-in125 - (block $while-out124 - (br_if $while-out124 - (i32.eqz - (tee_local $9 - (i32.load - (get_local $6) + (loop $while-in125 + (block $while-out124 + (br_if $while-out124 + (i32.eqz + (tee_local $9 + (i32.load + (get_local $6) + ) ) ) ) - ) - (br_if $while-out124 - (i32.or - (i32.lt_s - (tee_local $7 - (call $_wctomb - (get_local $36) - (get_local $9) + (br_if $while-out124 + (i32.or + (i32.lt_s + (tee_local $7 + (call $_wctomb + (get_local $36) + (get_local $9) + ) ) + (i32.const 0) ) - (i32.const 0) - ) - (i32.gt_u - (get_local $7) - (i32.sub - (get_local $8) - (get_local $5) + (i32.gt_u + (get_local $7) + (i32.sub + (get_local $8) + (get_local $5) + ) ) ) ) - ) - (set_local $6 - (i32.add - (get_local $6) - (i32.const 4) + (set_local $6 + (i32.add + (get_local $6) + (i32.const 4) + ) ) - ) - (br_if $while-in125 - (i32.gt_u - (get_local $8) - (tee_local $5 - (i32.add - (get_local $7) - (get_local $5) + (br_if $while-in125 + (i32.gt_u + (get_local $8) + (tee_local $5 + (i32.add + (get_local $7) + (get_local $5) + ) ) ) ) ) ) - ) - (if - (i32.lt_s - (get_local $7) - (i32.const 0) - ) - (block - (set_local $16 - (i32.const -1) - ) - (br $label$break$L1) - ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (get_local $5) - (get_local $11) - ) - (if - (get_local $5) - (block - (set_local $6 + (if + (i32.lt_s + (get_local $7) (i32.const 0) ) - (set_local $7 - (i32.load - (get_local $19) + (block + (set_local $16 + (i32.const -1) ) + (br $label$break$L1) ) - (loop $while-in127 - (if - (i32.eqz - (tee_local $8 - (i32.load - (get_local $7) + ) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $14) + (get_local $5) + (get_local $11) + ) + (if + (get_local $5) + (block + (set_local $6 + (i32.const 0) + ) + (set_local $7 + (i32.load + (get_local $19) + ) + ) + (loop $while-in127 + (if + (i32.eqz + (tee_local $8 + (i32.load + (get_local $7) + ) ) ) - ) - (block - (set_local $7 - (get_local $5) + (block + (set_local $7 + (get_local $5) + ) + (br $__rjti$7) ) - (br $__rjti$7) ) - ) - (if - (i32.gt_s - (tee_local $6 - (i32.add - (tee_local $8 - (call $_wctomb - (get_local $36) - (get_local $8) + (if + (i32.gt_s + (tee_local $6 + (i32.add + (tee_local $8 + (call $_wctomb + (get_local $36) + (get_local $8) + ) ) + (get_local $6) ) - (get_local $6) ) - ) - (get_local $5) - ) - (block - (set_local $7 (get_local $5) ) - (br $__rjti$7) + (block + (set_local $7 + (get_local $5) + ) + (br $__rjti$7) + ) ) - ) - (if - (i32.eqz - (i32.and - (i32.load + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $36) + (get_local $8) (get_local $0) ) - (i32.const 32) ) ) - (drop - (call $___fwritex - (get_local $36) - (get_local $8) - (get_local $0) + (set_local $7 + (i32.add + (get_local $7) + (i32.const 4) ) ) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 4) + (br_if $while-in127 + (i32.lt_u + (get_local $6) + (get_local $5) + ) ) - ) - (br_if $while-in127 - (i32.lt_u - (get_local $6) + (set_local $7 (get_local $5) ) ) - (set_local $7 - (get_local $5) - ) - (br $__rjti$7) ) - ) - (block (set_local $7 (i32.const 0) ) - (br $__rjti$7) ) ) - (br $__rjto$8) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $14) - (get_local $7) - (i32.xor - (get_local $11) - (i32.const 8192) - ) - ) - (set_local $5 - (get_local $10) - ) - (set_local $10 - (select + (call $_pad + (get_local $0) + (i32.const 32) (get_local $14) (get_local $7) - (i32.gt_s + (i32.xor + (get_local $11) + (i32.const 8192) + ) + ) + (set_local $5 + (get_local $10) + ) + (set_local $10 + (select (get_local $14) (get_local $7) + (i32.gt_s + (get_local $14) + (get_local $7) + ) ) ) + (br $label$continue$L1) ) - (br $label$continue$L1) - ) - (set_local $11 - (select - (i32.and + (set_local $11 + (select + (i32.and + (get_local $7) + (i32.const -65537) + ) (get_local $7) - (i32.const -65537) - ) - (get_local $7) - (i32.gt_s - (get_local $6) - (i32.const -1) + (i32.gt_s + (get_local $6) + (i32.const -1) + ) ) ) - ) - (set_local $5 (if i32 (i32.or (get_local $6) diff --git a/test/example/c-api-kitchen-sink.c b/test/example/c-api-kitchen-sink.c index 5935e9993..b2218993c 100644 --- a/test/example/c-api-kitchen-sink.c +++ b/test/example/c-api-kitchen-sink.c @@ -427,6 +427,9 @@ void test_relooper() { RelooperRef relooper = RelooperCreate(); BinaryenExpressionRef temp = makeInt32(module, -99); RelooperBlockRef block0 = RelooperAddBlockWithSwitch(relooper, makeCallCheck(module, 0), temp); + // TODO: this example is not very good, the blocks should end in a |return| as otherwise they + // fall through to each other. A relooper block should end in something that stops control + // flow, if it doesn't have branches going out RelooperBlockRef block1 = RelooperAddBlock(relooper, makeCallCheck(module, 1)); RelooperBlockRef block2 = RelooperAddBlock(relooper, makeCallCheck(module, 2)); RelooperBlockRef block3 = RelooperAddBlock(relooper, makeCallCheck(module, 3)); diff --git a/test/passes/precompute_coalesce-locals_vacuum.txt b/test/passes/precompute_coalesce-locals_vacuum.txt index fcf3cdf5d..dbeec78f1 100644 --- a/test/passes/precompute_coalesce-locals_vacuum.txt +++ b/test/passes/precompute_coalesce-locals_vacuum.txt @@ -3,10 +3,7 @@ (memory $0 0) (func $nested-br_if-value (type $0) (param $0 i32) (result i32) (loop $label$0 - (block $block - (br $label$0) - (i32.const 0) - ) + (br $label$0) ) ) ) diff --git a/test/passes/remove-unused-brs_precompute_vacuum_remove-unused-brs.txt b/test/passes/remove-unused-brs_precompute_vacuum_remove-unused-brs.txt index e2d4f13a9..2fe672e68 100644 --- a/test/passes/remove-unused-brs_precompute_vacuum_remove-unused-brs.txt +++ b/test/passes/remove-unused-brs_precompute_vacuum_remove-unused-brs.txt @@ -4,19 +4,11 @@ (memory $0 0) (func $1 (type $0) (param $x i32) (result f64) (local $var$0 f64) - (block $label$0 + (block $label$0 f64 (set_local $var$0 (f64.const 0) ) - (return - (f64.const -3.4) - ) - (if - (get_local $x) - (return - (f64.const 5.6) - ) - ) + (f64.const -3.4) ) ) ) diff --git a/test/passes/remove-unused-names_vacuum.txt b/test/passes/remove-unused-names_vacuum.txt index a1f49128e..7c1f902c0 100644 --- a/test/passes/remove-unused-names_vacuum.txt +++ b/test/passes/remove-unused-names_vacuum.txt @@ -9,7 +9,6 @@ (func $return-i32-but-body-is-unreachable4 (type $0) (result i32) (local $label i32) (unreachable) - (i32.const 0) ) (func $to-drop-unreachable (type $1) (drop diff --git a/test/passes/rereloop.txt b/test/passes/rereloop.txt index c15934c0b..17a084395 100644 --- a/test/passes/rereloop.txt +++ b/test/passes/rereloop.txt @@ -541,7 +541,6 @@ (block (br $block$3$break) ) - (br $switch$1$leave) ) (block (block @@ -552,7 +551,6 @@ ) ) ) - (br $switch$1$leave) ) ) (block @@ -572,7 +570,6 @@ (block (br $block$6$break) ) - (br $switch$3$leave) ) (block (block @@ -586,7 +583,6 @@ ) ) ) - (br $switch$3$leave) ) ) (block @@ -704,4 +700,47 @@ ) ) ) + (func $switcher-to-nowhere (type $2) (param $0 i32) (result i32) + (local $1 i32) + (block + ) + (block $switch$1$leave + (block $switch$1$default + (block $switch$1$case$3 + (block $switch$1$case$4 + (br_table $switch$1$case$4 $switch$1$case$3 $switch$1$default + (get_local $0) + ) + ) + (block + (block + (block + (return + (i32.const 1) + ) + ) + ) + ) + ) + (block + (block + (block + (return + (i32.const 2) + ) + ) + ) + ) + ) + (block + (block + (block + (return + (i32.const 3) + ) + ) + ) + ) + ) + ) ) diff --git a/test/passes/rereloop.wast b/test/passes/rereloop.wast index 38c74ff56..0680c97fe 100644 --- a/test/passes/rereloop.wast +++ b/test/passes/rereloop.wast @@ -175,5 +175,26 @@ (i32.const 3) ) ) + + (func $switcher-to-nowhere (param $0 i32) (result i32) + (block $switch + (block $switch-case0 + (block $switch-case + (br_table $switch-case $switch-case0 $switch + (get_local $0) + ) + ) + (return + (i32.const 1) + ) + ) + (return + (i32.const 2) + ) + ) + (return + (i32.const 3) + ) + ) ) diff --git a/test/passes/vacuum.txt b/test/passes/vacuum.txt index be18cc713..f5894c693 100644 --- a/test/passes/vacuum.txt +++ b/test/passes/vacuum.txt @@ -29,71 +29,19 @@ ) (func $unary (type $2) (result f32) (unreachable) - (f32.abs - (f32.const 2) - ) ) (func $binary (type $2) (result f32) (drop (unreachable) ) - (drop - (unreachable) - ) - (f32.add - (unreachable) - (unreachable) - ) - (f32.add - (f32.const 5) - (f32.const 6) - ) ) (func $select (type $3) (result i32) (drop (unreachable) ) - (drop - (unreachable) - ) - (drop - (unreachable) - ) - (select - (unreachable) - (unreachable) - (i32.const 10) - ) - (drop - (select - (unreachable) - (i32.const 11) - (unreachable) - ) - ) - (drop - (select - (i32.const 12) - (unreachable) - (unreachable) - ) - ) - (select - (unreachable) - (unreachable) - (unreachable) - ) - (select - (i32.const 13) - (i32.const 14) - (i32.const 15) - ) ) (func $block-to-one (type $0) (unreachable) - (unreachable) - (unreachable) - (unreachable) ) (func $recurse (type $0) (nop) @@ -245,12 +193,6 @@ ) (return) ) - (block $out2 - (block $in2 - (br $in2) - ) - (return) - ) ) (func $block-unreachable-but-last-element-concrete (type $0) (local $2 i32) diff --git a/test/unreachable-import_wasm-only.fromasm b/test/unreachable-import_wasm-only.fromasm index fad6e4de8..b63989188 100644 --- a/test/unreachable-import_wasm-only.fromasm +++ b/test/unreachable-import_wasm-only.fromasm @@ -1,6 +1,4 @@ (module - (type $FUNCSIG$viii (func (param i32 i32 i32))) - (import "env" "___cxa_throw" (func $___cxa_throw (param i32 i32 i32))) (import "env" "memory" (memory $0 256 256)) (import "env" "table" (table 0 0 anyfunc)) (import "env" "memoryBase" (global $memoryBase i32)) @@ -12,15 +10,5 @@ (i32.const 12) (i32.const 26) ) - (return) - (i32.store - (i32.const 0) - (i32.const 1) - ) - (call $___cxa_throw - (i32.const 0) - (i32.const 1280) - (i32.const 0) - ) ) ) diff --git a/test/unreachable-import_wasm-only.fromasm.clamp b/test/unreachable-import_wasm-only.fromasm.clamp index fad6e4de8..b63989188 100644 --- a/test/unreachable-import_wasm-only.fromasm.clamp +++ b/test/unreachable-import_wasm-only.fromasm.clamp @@ -1,6 +1,4 @@ (module - (type $FUNCSIG$viii (func (param i32 i32 i32))) - (import "env" "___cxa_throw" (func $___cxa_throw (param i32 i32 i32))) (import "env" "memory" (memory $0 256 256)) (import "env" "table" (table 0 0 anyfunc)) (import "env" "memoryBase" (global $memoryBase i32)) @@ -12,15 +10,5 @@ (i32.const 12) (i32.const 26) ) - (return) - (i32.store - (i32.const 0) - (i32.const 1) - ) - (call $___cxa_throw - (i32.const 0) - (i32.const 1280) - (i32.const 0) - ) ) ) diff --git a/test/unreachable-import_wasm-only.fromasm.imprecise b/test/unreachable-import_wasm-only.fromasm.imprecise index a85dc9ed8..208c4435e 100644 --- a/test/unreachable-import_wasm-only.fromasm.imprecise +++ b/test/unreachable-import_wasm-only.fromasm.imprecise @@ -1,6 +1,4 @@ (module - (type $FUNCSIG$viii (func (param i32 i32 i32))) - (import "env" "___cxa_throw" (func $___cxa_throw (param i32 i32 i32))) (import "env" "memory" (memory $0 256 256)) (import "env" "table" (table 0 0 anyfunc)) (import "env" "memoryBase" (global $memoryBase i32)) @@ -11,15 +9,5 @@ (i32.const 12) (i32.const 26) ) - (return) - (i32.store - (i32.const 0) - (i32.const 1) - ) - (call $___cxa_throw - (i32.const 0) - (i32.const 1280) - (i32.const 0) - ) ) ) diff --git a/test/wasm-only.fromasm b/test/wasm-only.fromasm index 3a98e84a3..0cb1acb65 100644 --- a/test/wasm-only.fromasm +++ b/test/wasm-only.fromasm @@ -356,7 +356,6 @@ (i32.const -2) ) (return) - (br $__rjto$0) ) ) (i32.store diff --git a/test/wasm-only.fromasm.clamp b/test/wasm-only.fromasm.clamp index 3a98e84a3..0cb1acb65 100644 --- a/test/wasm-only.fromasm.clamp +++ b/test/wasm-only.fromasm.clamp @@ -356,7 +356,6 @@ (i32.const -2) ) (return) - (br $__rjto$0) ) ) (i32.store diff --git a/test/wasm-only.fromasm.imprecise b/test/wasm-only.fromasm.imprecise index de241740e..14a2cedc6 100644 --- a/test/wasm-only.fromasm.imprecise +++ b/test/wasm-only.fromasm.imprecise @@ -271,7 +271,6 @@ (i32.const -2) ) (return) - (br $__rjto$0) ) ) (i32.store |