Merge pull request #695 from WebAssembly/opts
Get optimizer on par with emscripten asm.js optimizer
diff --git a/build-js.sh b/build-js.sh
index d495140..b346e14 100755
--- a/build-js.sh
+++ b/build-js.sh
@@ -43,7 +43,7 @@
OUT_FILE_SUFFIX=
if [ "$1" == "-g" ]; then
- EMCC_ARGS="$EMCC_ARGS -O0"
+ EMCC_ARGS="$EMCC_ARGS -O2" # need emcc js opts to be decently fast
EMCC_ARGS="$EMCC_ARGS --llvm-opts 0 --llvm-lto 0"
EMCC_ARGS="$EMCC_ARGS -profiling"
OUT_FILE_SUFFIX=-g
diff --git a/src/asm2wasm.h b/src/asm2wasm.h
index b19451a..eb5413e 100644
--- a/src/asm2wasm.h
+++ b/src/asm2wasm.h
@@ -523,6 +523,8 @@
optimizingBuilder = make_unique<OptimizingIncrementalModuleBuilder>(&wasm, numFunctions, [&](PassRunner& passRunner) {
// run autodrop first, before optimizations
passRunner.add<AutoDrop>();
+ // optimize relooper label variable usage at the wasm level, where it is easy
+ passRunner.add("relooper-jump-threading");
});
}
@@ -803,13 +805,16 @@
add->right = parent->builder.makeConst(Literal((int32_t)parent->functionTableStarts[tableName]));
}
};
+
PassRunner passRunner(&wasm);
passRunner.add<FinalizeCalls>(this);
passRunner.add<ReFinalize>(); // FinalizeCalls changes call types, need to percolate
passRunner.add<AutoDrop>(); // FinalizeCalls may cause us to require additional drops
if (optimize) {
- passRunner.add("vacuum"); // autodrop can add some garbage
- passRunner.add("remove-unused-brs"); // vacuum may open up more opportunities
+ // autodrop can add some garbage
+ passRunner.add("vacuum");
+ passRunner.add("remove-unused-brs");
+ passRunner.add("optimize-instructions");
}
passRunner.run();
@@ -866,19 +871,17 @@
#endif
-#if 0 // enable asm2wasm i64 optimizations when browsers have consistent i64 support in wasm
if (udivmoddi4.is() && getTempRet0.is()) {
// generate a wasm-optimized __udivmoddi4 method, which we can do much more efficiently in wasm
// we can only do this if we know getTempRet0 as well since we use it to figure out which minified global is tempRet0
// (getTempRet0 might be an import, if this is a shared module, so we can't optimize that case)
- int tempRet0;
+ Name tempRet0;
{
Expression* curr = wasm.getFunction(getTempRet0)->body;
if (curr->is<Block>()) curr = curr->cast<Block>()->list[0];
- curr = curr->cast<Return>()->value;
- auto* load = curr->cast<Load>();
- auto* ptr = load->ptr->cast<Const>();
- tempRet0 = ptr->value.geti32() + load->offset;
+ if (curr->is<Return>()) curr = curr->cast<Return>()->value;
+ auto* get = curr->cast<GetGlobal>();
+ tempRet0 = get->name;
}
// udivmoddi4 receives xl, xh, yl, yl, r, and
// if r then *r = x % y
@@ -898,13 +901,13 @@
return builder.makeSetLocal(
target,
builder.makeBinary(
- Or,
+ OrInt64,
builder.makeUnary(
ExtendUInt32,
builder.makeGetLocal(low, i32)
),
builder.makeBinary(
- Shl,
+ ShlInt64,
builder.makeUnary(
ExtendUInt32,
builder.makeGetLocal(high, i32)
@@ -923,10 +926,11 @@
8, 0, 8,
builder.makeGetLocal(r, i32),
builder.makeBinary(
- RemU,
+ RemUInt64,
builder.makeGetLocal(x64, i64),
builder.makeGetLocal(y64, i64)
- )
+ ),
+ i64
)
)
);
@@ -934,20 +938,19 @@
builder.makeSetLocal(
x64,
builder.makeBinary(
- DivU,
+ DivUInt64,
builder.makeGetLocal(x64, i64),
builder.makeGetLocal(y64, i64)
)
)
);
body->list.push_back(
- builder.makeStore(
- 4, 0, 4,
- builder.makeConst(Literal(int32_t(tempRet0))),
+ builder.makeSetGlobal(
+ tempRet0,
builder.makeUnary(
WrapInt64,
builder.makeBinary(
- ShrU,
+ ShrUInt64,
builder.makeGetLocal(x64, i64),
builder.makeConst(Literal(int64_t(32)))
)
@@ -960,9 +963,9 @@
builder.makeGetLocal(x64, i64)
)
);
+ body->finalize();
func->body = body;
}
-#endif
assert(WasmValidator().validate(wasm));
}
diff --git a/src/ast_utils.h b/src/ast_utils.h
index 9b2ff10..4664f22 100644
--- a/src/ast_utils.h
+++ b/src/ast_utils.h
@@ -27,19 +27,27 @@
struct BreakSeeker : public PostWalker<BreakSeeker, Visitor<BreakSeeker>> {
Name target; // look for this one XXX looking by name may fall prey to duplicate names
- size_t found;
+ Index found;
+ WasmType valueType;
- BreakSeeker(Name target) : target(target), found(false) {}
+ BreakSeeker(Name target) : target(target), found(0) {}
+
+ void noteFound(Expression* value) {
+ found++;
+ if (found == 1) valueType = unreachable;
+ if (!value) valueType = none;
+ else if (value->type != unreachable) valueType = value->type;
+ }
void visitBreak(Break *curr) {
- if (curr->name == target) found++;
+ if (curr->name == target) noteFound(curr->value);
}
void visitSwitch(Switch *curr) {
for (auto name : curr->targets) {
- if (name == target) found++;
+ if (name == target) noteFound(curr->value);
}
- if (curr->default_ == target) found++;
+ if (curr->default_ == target) noteFound(curr->value);
}
static bool has(Expression* tree, Name target) {
@@ -47,6 +55,12 @@
breakSeeker.walk(tree);
return breakSeeker.found > 0;
}
+
+ static Index count(Expression* tree, Name target) {
+ BreakSeeker breakSeeker(target);
+ breakSeeker.walk(tree);
+ return breakSeeker.found;
+ }
};
// Finds all functions that are reachable via direct calls.
@@ -92,13 +106,16 @@
bool calls = false;
std::set<Index> localsRead;
std::set<Index> localsWritten;
+ std::set<Name> globalsRead;
+ std::set<Name> globalsWritten;
bool readsMemory = false;
bool writesMemory = false;
bool accessesLocal() { return localsRead.size() + localsWritten.size() > 0; }
+ bool accessesGlobal() { return globalsRead.size() + globalsWritten.size() > 0; }
bool accessesMemory() { return calls || readsMemory || writesMemory; }
- bool hasSideEffects() { return calls || localsWritten.size() > 0 || writesMemory || branches; }
- bool hasAnything() { return branches || calls || accessesLocal() || readsMemory || writesMemory; }
+ bool hasSideEffects() { return calls || localsWritten.size() > 0 || writesMemory || branches || globalsWritten.size() > 0; }
+ bool hasAnything() { return branches || calls || accessesLocal() || readsMemory || writesMemory || accessesGlobal(); }
// checks if these effects would invalidate another set (e.g., if we write, we invalidate someone that reads, they can't be moved past us)
bool invalidates(EffectAnalyzer& other) {
@@ -115,6 +132,17 @@
for (auto local : localsRead) {
if (other.localsWritten.count(local)) return true;
}
+ if ((accessesGlobal() && other.calls) || (other.accessesGlobal() && calls)) {
+ return true;
+ }
+ for (auto global : globalsWritten) {
+ if (other.globalsWritten.count(global) || other.globalsRead.count(global)) {
+ return true;
+ }
+ }
+ for (auto global : globalsRead) {
+ if (other.globalsWritten.count(global)) return true;
+ }
return false;
}
@@ -163,8 +191,12 @@
void visitSetLocal(SetLocal *curr) {
localsWritten.insert(curr->index);
}
- void visitGetGlobal(GetGlobal *curr) { readsMemory = true; } // TODO: global-specific
- void visitSetGlobal(SetGlobal *curr) { writesMemory = true; } // stuff?
+ void visitGetGlobal(GetGlobal *curr) {
+ globalsRead.insert(curr->name);
+ }
+ void visitSetGlobal(SetGlobal *curr) {
+ globalsWritten.insert(curr->name);
+ }
void visitLoad(Load *curr) { readsMemory = true; }
void visitStore(Store *curr) { writesMemory = true; }
void visitReturn(Return *curr) { branches = true; }
@@ -340,6 +372,21 @@
} copier;
return flexibleCopy(original, wasm, copier);
}
+
+ // Splice an item into the middle of a block's list
+ static void spliceIntoBlock(Block* block, Index index, Expression* add) {
+ auto& list = block->list;
+ if (index == list.size()) {
+ list.push_back(add); // simple append
+ } else {
+ // we need to make room
+ list.push_back(nullptr);
+ for (Index i = list.size() - 1; i > index; i--) {
+ list[i] = list[i - 1];
+ }
+ list[index] = add;
+ }
+ }
};
struct ExpressionAnalyzer {
@@ -373,6 +420,25 @@
return func->result != none;
}
+ // Checks if a break is a simple - no condition, no value, just a plain branching
+ static bool isSimple(Break* curr) {
+ return !curr->condition && !curr->value;
+ }
+
+ // Checks if an expression ends with a simple break,
+ // and returns a pointer to it if so.
+ // (It might also have other internal branches.)
+ static Expression* getEndingSimpleBreak(Expression* curr) {
+ if (auto* br = curr->dynCast<Break>()) {
+ if (isSimple(br)) return br;
+ return nullptr;
+ }
+ if (auto* block = curr->dynCast<Block>()) {
+ if (block->list.size() > 0) return getEndingSimpleBreak(block->list.back());
+ }
+ return nullptr;
+ }
+
template<typename T>
static bool flexibleEqual(Expression* left, Expression* right, T& comparer) {
std::vector<Name> nameStack;
@@ -814,6 +880,25 @@
curr->finalize(); // we may have changed our type
}
+ void visitIf(If* curr) {
+ if (curr->ifFalse) {
+ if (!isConcreteWasmType(curr->type)) {
+ // if either side of an if-else not returning a value is concrete, drop it
+ if (isConcreteWasmType(curr->ifTrue->type)) {
+ curr->ifTrue = Builder(*getModule()).makeDrop(curr->ifTrue);
+ }
+ if (isConcreteWasmType(curr->ifFalse->type)) {
+ curr->ifFalse = Builder(*getModule()).makeDrop(curr->ifFalse);
+ }
+ }
+ } else {
+ // if without else does not return a value, so the body must be dropped if it is concrete
+ if (isConcreteWasmType(curr->ifTrue->type)) {
+ curr->ifTrue = Builder(*getModule()).makeDrop(curr->ifTrue);
+ }
+ }
+ }
+
void visitFunction(Function* curr) {
if (curr->result == none && isConcreteWasmType(curr->body->type)) {
curr->body = Builder(*getModule()).makeDrop(curr->body);
diff --git a/src/pass.h b/src/pass.h
index 0ad8d8c..e237b8a 100644
--- a/src/pass.h
+++ b/src/pass.h
@@ -72,17 +72,17 @@
void add(std::string passName) {
auto pass = PassRegistry::get()->createPass(passName);
if (!pass) Fatal() << "Could not find pass: " << passName << "\n";
- passes.push_back(pass);
+ doAdd(pass);
}
template<class P>
void add() {
- passes.push_back(new P());
+ doAdd(new P());
}
template<class P, class Arg>
void add(Arg arg){
- passes.push_back(new P(arg));
+ doAdd(new P(arg));
}
// Adds the default set of optimization passes; this is
@@ -110,6 +110,8 @@
~PassRunner();
private:
+ void doAdd(Pass* pass);
+
void runPassOnFunction(Pass* pass, Function* func);
};
@@ -121,12 +123,13 @@
virtual ~Pass() {};
// Override this to perform preparation work before the pass runs.
- virtual void prepare(PassRunner* runner, Module* module) {}
- virtual void run(PassRunner* runner, Module* module) = 0;
- // Override this to perform finalization work after the pass runs.
- virtual void finalize(PassRunner* runner, Module* module) {}
+ // This will be called before the pass is run on a module.
+ virtual void prepareToRun(PassRunner* runner, Module* module) {}
- // Run on a single function. This has no prepare/finalize calls.
+ // Implement this with code to run the pass on the whole module
+ virtual void run(PassRunner* runner, Module* module) = 0;
+
+ // Implement this with code to run the pass on a single function
virtual void runFunction(PassRunner* runner, Module* module, Function* function) {
WASM_UNREACHABLE(); // by default, passes cannot be run this way
}
@@ -166,9 +169,7 @@
class WalkerPass : public Pass, public WalkerType {
public:
void run(PassRunner* runner, Module* module) override {
- prepare(runner, module);
WalkerType::walkModule(module);
- finalize(runner, module);
}
void runFunction(PassRunner* runner, Module* module, Function* func) override {
diff --git a/src/passes/CMakeLists.txt b/src/passes/CMakeLists.txt
index 1b4c655..30f63c8 100644
--- a/src/passes/CMakeLists.txt
+++ b/src/passes/CMakeLists.txt
@@ -3,6 +3,7 @@
CoalesceLocals.cpp
DeadCodeElimination.cpp
DuplicateFunctionElimination.cpp
+ ExtractFunction.cpp
MergeBlocks.cpp
Metrics.cpp
NameManager.cpp
@@ -11,6 +12,7 @@
PostEmscripten.cpp
Precompute.cpp
Print.cpp
+ RelooperJumpThreading.cpp
RemoveImports.cpp
RemoveMemory.cpp
RemoveUnusedBrs.cpp
diff --git a/src/passes/CoalesceLocals.cpp b/src/passes/CoalesceLocals.cpp
index 2063a20..ba2c6dd 100644
--- a/src/passes/CoalesceLocals.cpp
+++ b/src/passes/CoalesceLocals.cpp
@@ -198,6 +198,7 @@
void scanLivenessThroughActions(std::vector<Action>& actions, LocalSet& live);
void pickIndicesFromOrder(std::vector<Index>& order, std::vector<Index>& indices);
+ void pickIndicesFromOrder(std::vector<Index>& order, std::vector<Index>& indices, Index& removedCopies);
virtual void pickIndices(std::vector<Index>& indices); // returns a vector of oldIndex => newIndex
@@ -224,14 +225,17 @@
// copying state
- std::vector<uint8_t> copies; // canonicalized - accesses should check (low, high)
+ std::vector<uint8_t> copies; // canonicalized - accesses should check (low, high) TODO: use a map for high N, as this tends to be sparse? or don't look at copies at all for big N?
+ std::vector<Index> totalCopies; // total # of copies for each local, with all others
void addCopy(Index i, Index j) {
auto k = std::min(i, j) * numLocals + std::max(i, j);
copies[k] = std::min(copies[k], uint8_t(254)) + 1;
+ totalCopies[i]++;
+ totalCopies[j]++;
}
- bool getCopies(Index i, Index j) {
+ uint8_t getCopies(Index i, Index j) {
return copies[std::min(i, j) * numLocals + std::max(i, j)];
}
};
@@ -240,6 +244,8 @@
numLocals = func->getNumLocals();
copies.resize(numLocals * numLocals);
std::fill(copies.begin(), copies.end(), 0);
+ totalCopies.resize(numLocals);
+ std::fill(totalCopies.begin(), totalCopies.end(), 0);
// collect initial liveness info
WalkerPass<CFGWalker<CoalesceLocals, Visitor<CoalesceLocals>, Liveness>>::doWalkFunction(func);
// ignore links to dead blocks, so they don't confuse us and we can see their stores are all ineffective
@@ -388,8 +394,43 @@
// Indices decision making
void CoalesceLocals::pickIndicesFromOrder(std::vector<Index>& order, std::vector<Index>& indices) {
- // simple greedy coloring
- // TODO: take into account eliminated copies
+ Index removedCopies;
+ pickIndicesFromOrder(order, indices, removedCopies);
+}
+
+void CoalesceLocals::pickIndicesFromOrder(std::vector<Index>& order, std::vector<Index>& indices, Index& removedCopies) {
+ // mostly-simple greedy coloring
+#if CFG_DEBUG
+ std::cerr << "\npickIndicesFromOrder on " << getFunction()->name << '\n';
+ std::cerr << getFunction()->body << '\n';
+ std::cerr << "order:\n";
+ for (auto i : order) std::cerr << i << ' ';
+ std::cerr << '\n';
+ std::cerr << "interferences:\n";
+ for (Index i = 0; i < numLocals; i++) {
+ for (Index j = 0; j < i + 1; j++) {
+ std::cerr << " ";
+ }
+ for (Index j = i + 1; j < numLocals; j++) {
+ std::cerr << int(interferes(i, j)) << ' ';
+ }
+ std::cerr << " : $" << i << '\n';
+ }
+ std::cerr << "copies:\n";
+ for (Index i = 0; i < numLocals; i++) {
+ for (Index j = 0; j < i + 1; j++) {
+ std::cerr << " ";
+ }
+ for (Index j = i + 1; j < numLocals; j++) {
+ std::cerr << int(getCopies(i, j)) << ' ';
+ }
+ std::cerr << " : $" << i << '\n';
+ }
+ std::cerr << "total copies:\n";
+ for (Index i = 0; i < numLocals; i++) {
+ std::cerr << " $" << i << ": " << totalCopies[i] << '\n';
+ }
+#endif
// TODO: take into account distribution (99-1 is better than 50-50 with two registers, for gzip)
std::vector<WasmType> types;
std::vector<bool> newInterferences; // new index * numLocals => list of all interferences of locals merged to it
@@ -397,12 +438,13 @@
indices.resize(numLocals);
types.resize(numLocals);
newInterferences.resize(numLocals * numLocals);
- newCopies.resize(numLocals * numLocals);
std::fill(newInterferences.begin(), newInterferences.end(), 0);
+ auto numParams = getFunction()->getNumParams();
+ newCopies.resize(numParams * numLocals); // start with enough room for the params
std::fill(newCopies.begin(), newCopies.end(), 0);
Index nextFree = 0;
+ removedCopies = 0;
// we can't reorder parameters, they are fixed in order, and cannot coalesce
- auto numParams = getFunction()->getNumParams();
Index i = 0;
for (; i < numParams; i++) {
assert(order[i] == i); // order must leave the params in place
@@ -421,6 +463,7 @@
for (Index j = 0; j < nextFree; j++) {
if (!newInterferences[j * numLocals + actual] && getFunction()->getLocalType(actual) == types[j]) {
// this does not interfere, so it might be what we want. but pick the one eliminating the most copies
+ // (we could stop looking forward when there are no more items that have copies anyhow, but it doesn't seem to help)
auto currCopies = newCopies[j * numLocals + actual];
if (found == Index(-1) || currCopies > foundCopies) {
indices[actual] = found = j;
@@ -432,7 +475,14 @@
indices[actual] = found = nextFree;
types[found] = getFunction()->getLocalType(actual);
nextFree++;
+ removedCopies += getCopies(found, actual);
+ newCopies.resize(nextFree * numLocals);
+ } else {
+ removedCopies += foundCopies;
}
+#if CFG_DEBUG
+ std::cerr << "set local $" << actual << " to $" << found << '\n';
+#endif
// merge new interferences and copies for the new index
for (Index k = i + 1; k < numLocals; k++) {
auto j = order[k]; // go in the order, we only need to update for those we will see later
@@ -442,31 +492,85 @@
}
}
+// Utilities for operating on permutation vectors
+
+static std::vector<Index> makeIdentity(Index num) {
+ std::vector<Index> ret;
+ ret.resize(num);
+ for (Index i = 0; i < num; i++) {
+ ret[i] = i;
+ }
+ return ret;
+}
+
+static void setIdentity(std::vector<Index>& ret) {
+ auto num = ret.size();
+ assert(num > 0); // must already be of the right size
+ for (Index i = 0; i < num; i++) {
+ ret[i] = i;
+ }
+}
+
+static std::vector<Index> makeReversed(std::vector<Index>& original) {
+ std::vector<Index> ret;
+ auto num = original.size();
+ ret.resize(num);
+ for (Index i = 0; i < num; i++) {
+ ret[original[i]] = i;
+ }
+ return ret;
+}
+
+// given a baseline order, adjust it based on an important order of priorities (higher values
+// are higher priority). The priorities take precedence, unless they are equal and then
+// the original order should be kept.
+std::vector<Index> adjustOrderByPriorities(std::vector<Index>& baseline, std::vector<Index>& priorities) {
+ std::vector<Index> ret = baseline;
+ std::vector<Index> reversed = makeReversed(baseline);
+ std::sort(ret.begin(), ret.end(), [&priorities, &reversed](Index x, Index y) {
+ return priorities[x] > priorities[y] || (priorities[x] == priorities[y] && reversed[x] < reversed[y]);
+ });
+ return ret;
+};
+
void CoalesceLocals::pickIndices(std::vector<Index>& indices) {
if (numLocals == 0) return;
if (numLocals == 1) {
indices.push_back(0);
return;
}
+ if (getFunction()->getNumVars() <= 1) {
+ // nothing to think about here, since we can't reorder params
+ indices = makeIdentity(numLocals);
+ return;
+ }
+ // take into account total copies. but we must keep params in place, so give them max priority
+ auto adjustedTotalCopies = totalCopies;
+ auto numParams = getFunction()->getNumParams();
+ for (Index i = 0; i < numParams; i++) {
+ adjustedTotalCopies[i] = std::numeric_limits<Index>::max();
+ }
// first try the natural order. this is less arbitrary than it seems, as the program
// may have a natural order of locals inherent in it.
- std::vector<Index> order;
- order.resize(numLocals);
- for (Index i = 0; i < numLocals; i++) {
- order[i] = i;
- }
- pickIndicesFromOrder(order, indices);
+ auto order = makeIdentity(numLocals);
+ order = adjustOrderByPriorities(order, adjustedTotalCopies);
+ Index removedCopies;
+ pickIndicesFromOrder(order, indices, removedCopies);
auto maxIndex = *std::max_element(indices.begin(), indices.end());
- // next try the reverse order. this both gives us anothe chance at something good,
+ // next try the reverse order. this both gives us another chance at something good,
// and also the very naturalness of the simple order may be quite suboptimal
- auto numParams = getFunction()->getNumParams();
+ setIdentity(order);
for (Index i = numParams; i < numLocals; i++) {
order[i] = numParams + numLocals - 1 - i;
}
+ order = adjustOrderByPriorities(order, adjustedTotalCopies);
std::vector<Index> reverseIndices;
- pickIndicesFromOrder(order, reverseIndices);
+ Index reverseRemovedCopies;
+ pickIndicesFromOrder(order, reverseIndices, reverseRemovedCopies);
auto reverseMaxIndex = *std::max_element(reverseIndices.begin(), reverseIndices.end());
- if (reverseMaxIndex < maxIndex) {
+ // prefer to remove copies foremost, as it matters more for code size (minus gzip), and
+ // improves throughput.
+ if (reverseRemovedCopies > removedCopies || (reverseRemovedCopies == removedCopies && reverseMaxIndex < maxIndex)) {
indices.swap(reverseIndices);
}
}
@@ -553,7 +657,8 @@
void calculateFitness(Order* order) {
// apply the order
std::vector<Index> indices; // the phenotype
- parent->pickIndicesFromOrder(*order, indices);
+ Index removedCopies;
+ parent->pickIndicesFromOrder(*order, indices, removedCopies);
auto maxIndex = *std::max_element(indices.begin(), indices.end());
assert(maxIndex <= parent->numLocals);
// main part of fitness is the number of locals
@@ -563,6 +668,7 @@
for (Index i = 0; i < parent->numLocals; i++) {
if ((*order)[i] == i) fitness += fragment; // boost for each that wasn't moved
}
+ fitness = (100 * fitness) + removedCopies; // removing copies is a secondary concern
order->setFitness(fitness);
}
@@ -577,6 +683,8 @@
// first, there may be an inherent order in the input (frequent indices are lower,
// etc.). second, by ensuring we start with the natural order, we ensure we are at
// least as good as the non-learning variant.
+ // TODO: use ::pickIndices from the parent, so we literally get the simpler approach
+ // as our first option
first = false;
} else {
// leave params alone, shuffle the rest
diff --git a/src/passes/DuplicateFunctionElimination.cpp b/src/passes/DuplicateFunctionElimination.cpp
index 2b8e69b..cfe2d85 100644
--- a/src/passes/DuplicateFunctionElimination.cpp
+++ b/src/passes/DuplicateFunctionElimination.cpp
@@ -102,7 +102,17 @@
auto& group = pair.second;
if (group.size() == 1) continue;
// pick a base for each group, and try to replace everyone else to it. TODO: multiple bases per hash group, for collisions
+#if 0
+ // for comparison purposes, pick in a deterministic way based on the names
+ Function* base = nullptr;
+ for (auto* func : group) {
+ if (!base || strcmp(func->name.str, base->name.str) < 0) {
+ base = func;
+ }
+ }
+#else
Function* base = group[0];
+#endif
for (auto* func : group) {
if (func != base && equal(func, base)) {
replacements[func->name] = base->name;
diff --git a/src/passes/ExtractFunction.cpp b/src/passes/ExtractFunction.cpp
new file mode 100644
index 0000000..b342efc
--- /dev/null
+++ b/src/passes/ExtractFunction.cpp
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2016 WebAssembly Community Group participants
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// Removes code from all functions but one, leaving a valid module
+// with (mostly) just the code you want to debug (function-parallel,
+// non-lto) passes on.
+
+#include "wasm.h"
+#include "pass.h"
+
+namespace wasm {
+
+Name TO_LEAVE("_bytearray_join"); // TODO: commandline param
+
+struct ExtractFunction : public Pass {
+ void run(PassRunner* runner, Module* module) override {
+ for (auto& func : module->functions) {
+ if (func->name != TO_LEAVE) {
+ // wipe out the body
+ func->body = module->allocator.alloc<Unreachable>();
+ }
+ }
+ }
+};
+
+// declare pass
+
+Pass *createExtractFunctionPass() {
+ return new ExtractFunction();
+}
+
+} // namespace wasm
+
diff --git a/src/passes/LowerInt64.cpp b/src/passes/LowerInt64.cpp
deleted file mode 100644
index 69f6d5a..0000000
--- a/src/passes/LowerInt64.cpp
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Copyright 2015 WebAssembly Community Group participants
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-//
-// Lowers 64-bit ints to pairs of 32-bit ints, plus some library routines
-//
-// This is useful for wasm2asm, as JS has no native 64-bit integer support.
-//
-
-#include <memory>
-
-#include <wasm.h>
-#include <pass.h>
-
-namespace wasm {
-
-cashew::IString GET_HIGH("getHigh");
-
-struct LowerInt64 : public Pass {
- MixedArena* allocator;
- std::unique_ptr<NameManager> namer;
-
- void prepare(PassRunner* runner, Module *module) override {
- allocator = runner->allocator;
- namer = make_unique<NameManager>();
- namer->run(runner, module);
- }
-
- std::map<Expression*, Expression*> fixes; // fixed nodes, outputs of lowering, mapped to their high bits
- std::map<Name, Name> locals; // maps locals which were i64->i32 to their high bits
-
- void makeGetHigh() {
- auto ret = allocator->alloc<CallImport>();
- ret->target = GET_HIGH;
- ret->type = i32;
- return ret;
- }
-
- void fixCall(CallBase *call) {
- auto& operands = call->operands;
- for (size_t i = 0; i < operands.size(); i++) {
- auto fix = fixes.find(operands[i]);
- if (fix != fixes.end()) {
- operands.insert(operands.begin() + i + 1, *fix);
- }
- }
- if (curr->type == i64) {
- curr->type = i32;
- fixes[curr] = makeGetHigh(); // called function will setHigh
- }
- }
-
- void visitCall(Call *curr) {
- fixCall(curr);
- }
- void visitCallImport(CallImport *curr) {
- fixCall(curr);
- }
- void visitCallIndirect(CallIndirect *curr) {
- fixCall(curr);
- }
- void visitGetLocal(GetLocal *curr) {
- if (curr->type == i64) {
- if (locals.count(curr->name) == 0) {
- Name highName = namer->getUnique("high");
- locals[curr->name] = highName;
- };
- curr->type = i32;
- auto high = allocator->alloc<GetLocal>();
- high->name = locals[curr->name];
- high->type = i32;
- fixes[curr] = high;
- }
- }
- void visitSetLocal(SetLocal *curr) {
- if (curr->type == i64) {
- Name highName;
- if (locals.count(curr->name) == 0) {
- highName = namer->getUnique("high");
- locals[curr->name] = highName;
- } else {
- highName = locals[curr->name];
- }
- curr->type = i32;
- auto high = allocator->alloc<GetLocal>();
- high->name = highName;
- high->type = i32;
- fixes[curr] = high;
- // Set the high bits
- auto set = allocator.alloc<SetLocal>();
- set->name = highName;
- set->value = fixes[curr->value];
- set->type = i32;
- assert(set->value);
- auto low = allocator->alloc<GetLocal>();
- low->name = curr->name;
- low->type = i32;
- auto ret = allocator.alloc<Block>();
- ret->list.push_back(curr);
- ret->list.push_back(set);
- ret->list.push_back(low); // so the block returns the low bits
- ret->finalize();
- fixes[ret] = high;
- replaceCurrent(ret);
- }
- }
-
- // sets an expression to a local, and returns a block
- Block* setToLocalForBlock(Expression *value, Name& local, Block *ret = nullptr) {
- if (!ret) ret = allocator->alloc<Block>();
- if (value->is<GetLocal>()) {
- local = value->name;
- } else if (value->is<SetLocal>()) {
- local = value->name;
- } else {
- auto set = allocator.alloc<SetLocal>();
- set->name = local = namer->getUnique("temp");
- set->value = value;
- set->type = value->type;
- ret->list.push_back(set);
- }
- ret->finalize();
- return ret;
- }
-
- GetLocal* getLocal(Name name) {
- auto ret = allocator->alloc<GetLocal>();
- ret->name = name;
- ret->type = i32;
- return ret;
- }
-
- void visitLoad(Load *curr) {
- if (curr->type == i64) {
- Name local;
- auto ret = setToLocalForBlock(curr->ptr, local);
- curr->ptr = getLocal(local);
- curr->type = i32;
- curr->bytes = 4;
- auto high = allocator->alloc<Load>();
- *high = *curr;
- high->ptr = getLocal(local);
- high->offset += 4;
- ret->list.push_back(curr);
- fixes[ret] = high;
- replaceCurrent(ret);
- }
- }
- void visitStore(Store *curr) {
- if (curr->type == i64) {
- Name localPtr, localValue;
- auto ret = setToLocalForBlock(curr->ptr, localPtr);
- setToLocalForBlock(curr->value, localValue);
- curr->ptr = getLocal(localPtr);
- curr->value = getLocal(localValue);
- curr->type = i32;
- curr->bytes = 4;
- auto high = allocator->alloc<Load>();
- *high = *curr;
- high->ptr = getLocal(localPtr);
- high->value = getLocal(localValue);
- high->offset += 4;
- ret->list.push_back(high);
- ret->list.push_back(curr);
- fixes[ret] = high;
- replaceCurrent(ret);
- }
- }
- void visitFunction(Function *curr) {
- // TODO: new params
- for (auto localPair : locals) { // TODO: ignore params
- curr->locals.emplace_back(localPair.second, i32);
- }
- fixes.clear();
- locals.clear();
- }
-};
-
-Pass *createLowerInt64Pass() {
- return new LowerInt64();
-}
-
-} // namespace wasm
diff --git a/src/passes/Metrics.cpp b/src/passes/Metrics.cpp
index c530985..9181da9 100644
--- a/src/passes/Metrics.cpp
+++ b/src/passes/Metrics.cpp
@@ -34,7 +34,7 @@
counts[name]++;
}
- void finalize(PassRunner *runner, Module *module) override {
+ void visitModule(Module* module) {
ostream &o = cout;
o << "Counts"
<< "\n";
diff --git a/src/passes/OptimizeInstructions.cpp b/src/passes/OptimizeInstructions.cpp
index 2a5e7b8..669a19b 100644
--- a/src/passes/OptimizeInstructions.cpp
+++ b/src/passes/OptimizeInstructions.cpp
@@ -24,6 +24,7 @@
#include <pass.h>
#include <wasm-s-parser.h>
#include <support/threads.h>
+#include <ast_utils.h>
namespace wasm {
@@ -50,7 +51,6 @@
std::map<Expression::Id, std::vector<Pattern>> patternMap; // root expression id => list of all patterns for it TODO optimize more
PatternDatabase() {
- // TODO: do this on first use, with a lock, to avoid startup pause
// generate module
input = strdup(
#include "OptimizeInstructions.wast.processed"
@@ -74,14 +74,12 @@
static PatternDatabase* database = nullptr;
-static void ensureDatabase() {
- if (!database) {
- // we must only ever create one database
- static OnlyOnce onlyOnce;
- onlyOnce.verify();
+struct DatabaseEnsurer {
+ DatabaseEnsurer() {
+ assert(!database);
database = new PatternDatabase;
}
-}
+};
// Check for matches and apply them
struct Match {
@@ -161,13 +159,18 @@
Pass* create() override { return new OptimizeInstructions; }
- OptimizeInstructions() {
- ensureDatabase();
+ void prepareToRun(PassRunner* runner, Module* module) override {
+ static DatabaseEnsurer ensurer;
}
void visitExpression(Expression* curr) {
// we may be able to apply multiple patterns, one may open opportunities that look deeper NB: patterns must not have cycles
while (1) {
+ auto* handOptimized = handOptimize(curr);
+ if (handOptimized) {
+ curr = handOptimized;
+ replaceCurrent(curr);
+ }
auto iter = database->patternMap.find(curr->_id);
if (iter == database->patternMap.end()) return;
auto& patterns = iter->second;
@@ -184,6 +187,65 @@
if (!more) break;
}
}
+
+ // Optimizations that don't yet fit in the pattern DSL, but could be eventually maybe
+ Expression* handOptimize(Expression* curr) {
+ if (auto* binary = curr->dynCast<Binary>()) {
+ // pattern match a load of 8 bits and a sign extend using a shl of 24 then shr_s of 24 as well, etc.
+ if (binary->op == BinaryOp::ShrSInt32 && binary->right->is<Const>()) {
+ auto shifts = binary->right->cast<Const>()->value.geti32();
+ if (shifts == 24 || shifts == 16) {
+ auto* left = binary->left->dynCast<Binary>();
+ if (left && left->op == ShlInt32 && left->right->is<Const>() && left->right->cast<Const>()->value.geti32() == shifts) {
+ auto* load = left->left->dynCast<Load>();
+ if (load && ((load->bytes == 1 && shifts == 24) || (load->bytes == 2 && shifts == 16))) {
+ load->signed_ = true;
+ return load;
+ }
+ }
+ }
+ }
+ } else if (auto* set = curr->dynCast<SetGlobal>()) {
+ // optimize out a set of a get
+ auto* get = set->value->dynCast<GetGlobal>();
+ if (get && get->name == set->name) {
+ ExpressionManipulator::nop(curr);
+ }
+ } else if (auto* iff = curr->dynCast<If>()) {
+ iff->condition = optimizeBoolean(iff->condition);
+ } else if (auto* select = curr->dynCast<Select>()) {
+ select->condition = optimizeBoolean(select->condition);
+ auto* condition = select->condition->dynCast<Unary>();
+ if (condition && condition->op == EqZInt32) {
+ // flip select to remove eqz, if we can reorder
+ EffectAnalyzer ifTrue(select->ifTrue);
+ EffectAnalyzer ifFalse(select->ifFalse);
+ if (!ifTrue.invalidates(ifFalse)) {
+ select->condition = condition->value;
+ std::swap(select->ifTrue, select->ifFalse);
+ }
+ }
+ } else if (auto* br = curr->dynCast<Break>()) {
+ if (br->condition) {
+ br->condition = optimizeBoolean(br->condition);
+ }
+ }
+ return nullptr;
+ }
+
+private:
+
+ Expression* optimizeBoolean(Expression* boolean) {
+ auto* condition = boolean->dynCast<Unary>();
+ if (condition && condition->op == EqZInt32) {
+ auto* condition2 = condition->value->dynCast<Unary>();
+ if (condition2 && condition2->op == EqZInt32) {
+ // double eqz
+ return condition2->value;
+ }
+ }
+ return boolean;
+ }
};
Pass *createOptimizeInstructionsPass() {
diff --git a/src/passes/OptimizeInstructions.wast b/src/passes/OptimizeInstructions.wast
index 7d5c568..48a4e2c 100644
--- a/src/passes/OptimizeInstructions.wast
+++ b/src/passes/OptimizeInstructions.wast
@@ -19,8 +19,8 @@
;; main function. each block here is a pattern pair of input => output
(func $patterns
+ ;; flip if-else arms to get rid of an eqz
(block
- ;; flip if-else arms to get rid of an eqz
(if
(i32.eqz
(call_import $i32.expr (i32.const 0))
@@ -34,6 +34,25 @@
(call_import $any.expr (i32.const 1))
)
)
+ ;; equal 0 => eqz
+ (block
+ (i32.eq
+ (call_import $any.expr (i32.const 0))
+ (i32.const 0)
+ )
+ (i32.eqz
+ (call_import $any.expr (i32.const 0))
+ )
+ )
+ (block
+ (i32.eq
+ (i32.const 0)
+ (call_import $any.expr (i32.const 0))
+ )
+ (i32.eqz
+ (call_import $any.expr (i32.const 0))
+ )
+ )
;; De Morgans Laws
(block
(i32.eqz (i32.eq (call_import $i32.expr (i32.const 0)) (call_import $i32.expr (i32.const 1))))
diff --git a/src/passes/OptimizeInstructions.wast.processed b/src/passes/OptimizeInstructions.wast.processed
index 61fde86..13ccc82 100644
--- a/src/passes/OptimizeInstructions.wast.processed
+++ b/src/passes/OptimizeInstructions.wast.processed
@@ -19,8 +19,8 @@
"\n"
";; main function. each block here is a pattern pair of input => output\n"
"(func $patterns\n"
-"(block\n"
";; flip if-else arms to get rid of an eqz\n"
+"(block\n"
"(if\n"
"(i32.eqz\n"
"(call_import $i32.expr (i32.const 0))\n"
@@ -34,6 +34,25 @@
"(call_import $any.expr (i32.const 1))\n"
")\n"
")\n"
+";; equal 0 => eqz\n"
+"(block\n"
+"(i32.eq\n"
+"(call_import $any.expr (i32.const 0))\n"
+"(i32.const 0)\n"
+")\n"
+"(i32.eqz\n"
+"(call_import $any.expr (i32.const 0))\n"
+")\n"
+")\n"
+"(block\n"
+"(i32.eq\n"
+"(i32.const 0)\n"
+"(call_import $any.expr (i32.const 0))\n"
+")\n"
+"(i32.eqz\n"
+"(call_import $any.expr (i32.const 0))\n"
+")\n"
+")\n"
";; De Morgans Laws\n"
"(block\n"
"(i32.eqz (i32.eq (call_import $i32.expr (i32.const 0)) (call_import $i32.expr (i32.const 1))))\n"
diff --git a/src/passes/RelooperJumpThreading.cpp b/src/passes/RelooperJumpThreading.cpp
new file mode 100644
index 0000000..7f74220
--- /dev/null
+++ b/src/passes/RelooperJumpThreading.cpp
@@ -0,0 +1,248 @@
+/*
+ * Copyright 2016 WebAssembly Community Group participants
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// Optimize relooper-generated label variable usage: add blocks and turn
+// a label-set/break/label-check into a break into the new block.
+// This assumes the very specific output the fastcomp relooper emits,
+// including the name of the 'label' variable.
+
+#include "wasm.h"
+#include "pass.h"
+#include "ast_utils.h"
+
+namespace wasm {
+
+static Name LABEL("label");
+
+// We need to use new label names, which we cannot create in parallel, so pre-create them
+
+const Index MAX_NAME_INDEX = 1000;
+
+std::vector<Name>* innerNames = nullptr;
+std::vector<Name>* outerNames = nullptr;
+
+struct NameEnsurer {
+ NameEnsurer() {
+ assert(!innerNames);
+ assert(!outerNames);
+ innerNames = new std::vector<Name>;
+ outerNames = new std::vector<Name>;
+ for (Index i = 0; i < MAX_NAME_INDEX; i++) {
+ innerNames->push_back(Name(std::string("jumpthreading$inner$") + std::to_string(i)));
+ outerNames->push_back(Name(std::string("jumpthreading$outer$") + std::to_string(i)));
+ }
+ }
+};
+
+static If* isLabelCheckingIf(Expression* curr, Index labelIndex) {
+ if (!curr) return nullptr;
+ auto* iff = curr->dynCast<If>();
+ if (!iff) return nullptr;
+ auto* condition = iff->condition->dynCast<Binary>();
+ if (!(condition && condition->op == EqInt32)) return nullptr;
+ auto* left = condition->left->dynCast<GetLocal>();
+ if (!(left && left->index == labelIndex)) return nullptr;
+ return iff;
+}
+
+static Index getCheckedLabelValue(If* iff) {
+ return iff->condition->cast<Binary>()->right->cast<Const>()->value.geti32();
+}
+
+static SetLocal* isLabelSettingSetLocal(Expression* curr, Index labelIndex) {
+ if (!curr) return nullptr;
+ auto* set = curr->dynCast<SetLocal>();
+ if (!set) return nullptr;
+ if (set->index != labelIndex) return nullptr;
+ return set;
+}
+
+static Index getSetLabelValue(SetLocal* set) {
+ return set->value->cast<Const>()->value.geti32();
+}
+
+struct LabelUseFinder : public PostWalker<LabelUseFinder, Visitor<LabelUseFinder>> {
+ Index labelIndex;
+ std::map<Index, Index>& checks; // label value => number of checks on it
+ std::map<Index, Index>& sets; // label value => number of sets to it
+
+ LabelUseFinder(Index labelIndex, std::map<Index, Index>& checks, std::map<Index, Index>& sets) : labelIndex(labelIndex), checks(checks), sets(sets) {}
+
+ void visitIf(If* curr) {
+ if (isLabelCheckingIf(curr, labelIndex)) {
+ checks[getCheckedLabelValue(curr)]++;
+ }
+ }
+
+ void visitSetLocal(SetLocal* curr) {
+ if (isLabelSettingSetLocal(curr, labelIndex)) {
+ sets[getSetLabelValue(curr)]++;
+ }
+ }
+};
+
+struct RelooperJumpThreading : public WalkerPass<ExpressionStackWalker<RelooperJumpThreading, Visitor<RelooperJumpThreading>>> {
+ bool isFunctionParallel() override { return true; }
+
+ Pass* create() override { return new RelooperJumpThreading; }
+
+ void prepareToRun(PassRunner* runner, Module* module) override {
+ static NameEnsurer ensurer;
+ }
+
+ std::map<Index, Index> labelChecks;
+ std::map<Index, Index> labelSets;
+
+ Index labelIndex;
+ Index newNameCounter = 0;
+
+ void visitBlock(Block* curr) {
+ // look for the if label == X pattern
+ auto& list = curr->list;
+ if (list.size() == 0) return;
+ for (Index i = 0; i < list.size() - 1; i++) {
+ // once we see something that might be irreducible, we must skip that if and the rest of the dependents
+ bool irreducible = false;
+ Index origin = i;
+ for (Index j = i + 1; j < list.size(); j++) {
+ if (auto* iff = isLabelCheckingIf(list[j], labelIndex)) {
+ irreducible |= hasIrreducibleControlFlow(iff, list[origin]);
+ if (!irreducible) {
+ optimizeJumpsToLabelCheck(list[origin], iff);
+ ExpressionManipulator::nop(iff);
+ }
+ i++;
+ continue;
+ }
+ // if the next element is a block, it may be the holding block of label-checking ifs
+ if (auto* holder = list[j]->dynCast<Block>()) {
+ if (holder->list.size() > 0) {
+ if (If* iff = isLabelCheckingIf(holder->list[0], labelIndex)) {
+ irreducible |= hasIrreducibleControlFlow(iff, list[origin]);
+ if (!irreducible) {
+ // this is indeed a holder. we can process the ifs, and must also move
+ // the block to enclose the origin, so it is properly reachable
+ assert(holder->list.size() == 1); // must be size 1, a relooper multiple will have its own label, and is an if-else sequence and nothing more
+ optimizeJumpsToLabelCheck(list[origin], iff);
+ holder->list[0] = list[origin];
+ list[origin] = holder;
+ // reuse the if as a nop
+ list[j] = iff;
+ ExpressionManipulator::nop(iff);
+ }
+ i++;
+ continue;
+ }
+ }
+ }
+ break; // we didn't see something we like, so stop here
+ }
+ }
+ }
+
+ void doWalkFunction(Function* func) {
+ // if there isn't a label variable, nothing for us to do
+ if (func->localIndices.count(LABEL)) {
+ labelIndex = func->getLocalIndex(LABEL);
+ LabelUseFinder finder(labelIndex, labelChecks, labelSets);
+ finder.walk(func->body);
+ WalkerPass<ExpressionStackWalker<RelooperJumpThreading, Visitor<RelooperJumpThreading>>>::doWalkFunction(func);
+ }
+ }
+
+private:
+
+ bool hasIrreducibleControlFlow(If* iff, Expression* origin) {
+ // Gather the checks in this if chain. If all the label values checked are only set in origin,
+ // then since origin is right before us, this is not irreducible - we can replace all sets
+ // in origin with jumps forward to us, and since there is nothing else, this is safe and complete.
+ // We must also have the property that there is just one check for the label value, as otherwise
+ // node splitting has complicated things.
+ std::map<Index, Index> labelChecksInOrigin;
+ std::map<Index, Index> labelSetsInOrigin;
+ LabelUseFinder finder(labelIndex, labelChecksInOrigin, labelSetsInOrigin);
+ finder.walk(origin);
+ while (iff) {
+ auto num = getCheckedLabelValue(iff);
+ assert(labelChecks[num] > 0);
+ if (labelChecks[num] > 1) return true; // checked more than once, somewhere in function
+ assert(labelChecksInOrigin[num] == 0);
+ if (labelSetsInOrigin[num] != labelSets[num]) {
+ assert(labelSetsInOrigin[num] < labelSets[num]);
+ return true; // label set somewhere outside of origin TODO: if set in the if body here, it might be safe in some cases
+ }
+ iff = isLabelCheckingIf(iff->ifFalse, labelIndex);
+ }
+ return false;
+ }
+
+ // optimizes jumps to a label check
+ // * origin is where the jumps originate, and also where we should write our output
+ // * iff is the if
+ void optimizeJumpsToLabelCheck(Expression*& origin, If* iff) {
+ Index nameCounter = newNameCounter++;
+ if (nameCounter >= MAX_NAME_INDEX) {
+ std::cerr << "too many names in RelooperJumpThreading :(\n";
+ return;
+ }
+ Index num = getCheckedLabelValue(iff);
+ // create a new block for this jump target
+ Builder builder(*getModule());
+ // origin is where all jumps to this target must come from - the element right before this if
+ // we break out of inner to reach the target. instead of flowing out of normally, we break out of the outer, so we skip the target.
+ auto innerName = innerNames->at(nameCounter);
+ auto outerName = outerNames->at(nameCounter);
+ auto* ifFalse = iff->ifFalse;
+ // all assignments of label to the target can be replaced with breaks to the target, via innerName
+ struct JumpUpdater : public PostWalker<JumpUpdater, Visitor<JumpUpdater>> {
+ Index labelIndex;
+ Index targetNum;
+ Name targetName;
+
+ void visitSetLocal(SetLocal* curr) {
+ if (curr->index == labelIndex) {
+ if (Index(curr->value->cast<Const>()->value.geti32()) == targetNum) {
+ replaceCurrent(Builder(*getModule()).makeBreak(targetName));
+ }
+ }
+ }
+ };
+ JumpUpdater updater;
+ updater.labelIndex = labelIndex;
+ updater.targetNum = num;
+ updater.targetName = innerName;
+ updater.setModule(getModule());
+ updater.walk(origin);
+ // restructure code
+ auto* inner = builder.blockifyWithName(origin, innerName, builder.makeBreak(outerName));
+ auto* outer = builder.makeSequence(inner, iff->ifTrue);
+ outer->name = outerName;
+ origin = outer;
+ // if another label value is checked here, handle that too
+ if (ifFalse) {
+ optimizeJumpsToLabelCheck(origin, ifFalse->cast<If>());
+ }
+ }
+};
+
+// declare pass
+
+Pass *createRelooperJumpThreadingPass() {
+ return new RelooperJumpThreading();
+}
+
+} // namespace wasm
+
diff --git a/src/passes/RemoveImports.cpp b/src/passes/RemoveImports.cpp
index 19d6c3e..429203a 100644
--- a/src/passes/RemoveImports.cpp
+++ b/src/passes/RemoveImports.cpp
@@ -28,22 +28,14 @@
namespace wasm {
struct RemoveImports : public WalkerPass<PostWalker<RemoveImports, Visitor<RemoveImports>>> {
- MixedArena* allocator;
- Module* module;
-
- void prepare(PassRunner* runner, Module *module_) override {
- allocator = runner->allocator;
- module = module_;
- }
-
void visitCallImport(CallImport *curr) {
- WasmType type = module->getImport(curr->target)->functionType->result;
+ WasmType type = getModule()->getImport(curr->target)->functionType->result;
if (type == none) {
- replaceCurrent(allocator->alloc<Nop>());
+ replaceCurrent(getModule()->allocator.alloc<Nop>());
} else {
Literal nopLiteral;
nopLiteral.type = type;
- replaceCurrent(allocator->alloc<Const>()->set(nopLiteral));
+ replaceCurrent(getModule()->allocator.alloc<Const>()->set(nopLiteral));
}
}
diff --git a/src/passes/RemoveUnusedBrs.cpp b/src/passes/RemoveUnusedBrs.cpp
index 59d3af6..86a4637 100644
--- a/src/passes/RemoveUnusedBrs.cpp
+++ b/src/passes/RemoveUnusedBrs.cpp
@@ -21,9 +21,20 @@
#include <wasm.h>
#include <pass.h>
#include <ast_utils.h>
+#include <wasm-builder.h>
namespace wasm {
+// to turn an if into a br-if, we must be able to reorder the
+// condition and possible value, and the possible value must
+// not have side effects (as they would run unconditionally)
+static bool canTurnIfIntoBrIf(Expression* ifCondition, Expression* brValue) {
+ if (!brValue) return true;
+ EffectAnalyzer value(brValue);
+ if (value.hasSideEffects()) return false;
+ return !EffectAnalyzer(ifCondition).invalidates(value);
+}
+
struct RemoveUnusedBrs : public WalkerPass<PostWalker<RemoveUnusedBrs, Visitor<RemoveUnusedBrs>>> {
bool isFunctionParallel() override { return true; }
@@ -44,6 +55,9 @@
// a stack for if-else contents, we merge their outputs
std::vector<Flows> ifStack;
+ // list of all loops, so we can optimize them
+ std::vector<Loop*> loops;
+
static void visitAny(RemoveUnusedBrs* self, Expression** currp) {
auto* curr = *currp;
auto& flows = self->flows;
@@ -109,7 +123,7 @@
// ignore (could be result of a previous cycle)
self->valueCanFlow = false;
} else {
- // anything else stops the flow TODO: optimize loops?
+ // anything else stops the flow
flows.clear();
self->valueCanFlow = false;
}
@@ -123,23 +137,25 @@
self->ifStack.push_back(std::move(self->flows));
}
+ void visitLoop(Loop* curr) {
+ loops.push_back(curr);
+ }
+
void visitIf(If* curr) {
if (!curr->ifFalse) {
// if without an else. try to reduce if (condition) br => br_if (condition)
Break* br = curr->ifTrue->dynCast<Break>();
if (br && !br->condition) { // TODO: if there is a condition, join them
// if the br has a value, then if => br_if means we always execute the value, and also the order is value,condition vs condition,value
- if (br->value) {
- EffectAnalyzer value(br->value);
- if (value.hasSideEffects()) return;
- EffectAnalyzer condition(curr->condition);
- if (condition.invalidates(value)) return;
+ if (canTurnIfIntoBrIf(curr->condition, br->value)) {
+ br->condition = curr->condition;
+ br->finalize();
+ replaceCurrent(br);
+ anotherCycle = true;
}
- br->condition = curr->condition;
- replaceCurrent(br);
- anotherCycle = true;
}
}
+ // TODO: if-else can be turned into a br_if as well, if one of the sides is a dead end
}
// override scan to add a pre and a post check task to all nodes
@@ -163,6 +179,99 @@
}
}
+ // optimizes a loop. returns true if we made changes
+ bool optimizeLoop(Loop* loop) {
+ // if a loop ends in
+ // (loop $in
+ // (block $out
+ // if (..) br $in; else br $out;
+ // )
+ // )
+ // then our normal opts can remove the break out since it flows directly out
+ // (and later passes make the if one-armed). however, the simple analysis
+ // fails on patterns like
+ // if (..) br $out;
+ // br $in;
+ // which is a common way to do a while (1) loop (end it with a jump to the
+ // top), so we handle that here. Specifically we want to conditionalize
+ // breaks to the loop top, i.e., put them behind a condition, so that other
+ // code can flow directly out and thus brs out can be removed. (even if
+ // the change is to let a break somewhere else flow out, that can still be
+ // helpful, as it shortens the logical loop. it is also good to generate
+ // an if-else instead of an if, as it might allow an eqz to be removed
+ // by flipping arms)
+ if (!loop->name.is()) return false;
+ auto* block = loop->body->dynCast<Block>();
+ if (!block) return false;
+ // does the last element break to the top of the loop?
+ auto& list = block->list;
+ if (list.size() <= 1) return false;
+ auto* last = list.back()->dynCast<Break>();
+ if (!last || !ExpressionAnalyzer::isSimple(last) || last->name != loop->name) return false;
+ // last is a simple break to the top of the loop. if we can conditionalize it,
+ // it won't block things from flowing out and not needing breaks to do so.
+ Index i = list.size() - 2;
+ Builder builder(*getModule());
+ while (1) {
+ auto* curr = list[i];
+ if (auto* iff = curr->dynCast<If>()) {
+ // let's try to move the code going to the top of the loop into the if-else
+ if (!iff->ifFalse) {
+ // we need the ifTrue to break, so it cannot reach the code we want to move
+ if (ExpressionAnalyzer::getEndingSimpleBreak(iff->ifTrue)) {
+ iff->ifFalse = builder.stealSlice(block, i + 1, list.size());
+ return true;
+ }
+ } else {
+ // this is already an if-else. if one side is a dead end, we can append to the other, if
+ // there is no returned value to concern us
+ assert(!isConcreteWasmType(iff->type)); // can't be, since in the middle of a block
+ if (ExpressionAnalyzer::getEndingSimpleBreak(iff->ifTrue)) {
+ iff->ifFalse = builder.blockifyMerge(iff->ifFalse, builder.stealSlice(block, i + 1, list.size()));
+ return true;
+ } else if (ExpressionAnalyzer::getEndingSimpleBreak(iff->ifFalse)) {
+ iff->ifTrue = builder.blockifyMerge(iff->ifTrue, builder.stealSlice(block, i + 1, list.size()));
+ return true;
+ }
+ }
+ return false;
+ } else if (auto* brIf = curr->dynCast<Break>()) {
+ // br_if is similar to if.
+ if (brIf->condition && !brIf->value && brIf->name != loop->name) {
+ if (i == list.size() - 2) {
+ // there is the br_if, and then the br to the top, so just flip them and the condition
+ brIf->condition = builder.makeUnary(EqZInt32, brIf->condition);
+ last->name = brIf->name;
+ brIf->name = loop->name;
+ return true;
+ } else {
+ // there are elements in the middle,
+ // br_if $somewhere (condition)
+ // (..more..)
+ // br $in
+ // we can convert the br_if to an if. this has a cost, though,
+ // so only do it if it looks useful, which it definitely is if
+ // (a) $somewhere is straight out (so the br out vanishes), and
+ // (b) this br_if is the only branch to that block (so the block will vanish)
+ if (brIf->name == block->name && BreakSeeker::count(block, block->name) == 1) {
+ // note that we could drop the last element here, it is a br we know for sure is removable,
+ // but telling stealSlice to steal all to the end is more efficient, it can just truncate.
+ list[i] = builder.makeIf(brIf->condition, builder.makeBreak(brIf->name), builder.stealSlice(block, i + 1, list.size()));
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+ // if there is control flow, we must stop looking
+ if (EffectAnalyzer(curr).branches) {
+ return false;
+ }
+ if (i == 0) return false;
+ i--;
+ }
+ }
+
void doWalkFunction(Function* func) {
// multiple cycles may be needed
bool worked = false;
@@ -172,7 +281,8 @@
assert(ifStack.empty());
// flows may contain returns, which are flowing out and so can be optimized
for (size_t i = 0; i < flows.size(); i++) {
- auto* flow = (*flows[i])->cast<Return>(); // cannot be a break
+ auto* flow = (*flows[i])->dynCast<Return>();
+ if (!flow) continue;
if (!flow->value) {
// return => nop
ExpressionManipulator::nop(flow);
@@ -184,11 +294,138 @@
}
}
flows.clear();
+ // optimize loops (we don't do it while tracking flows, as they can interfere)
+ for (auto* loop : loops) {
+ anotherCycle |= optimizeLoop(loop);
+ }
+ loops.clear();
if (anotherCycle) worked = true;
} while (anotherCycle);
- // finally, we may have simplified ifs enough to turn them into selects
- struct Selectifier : public WalkerPass<PostWalker<Selectifier, Visitor<Selectifier>>> {
+
+ if (worked) {
+ // Our work may alter block and if types, they may now return
+ struct TypeUpdater : public WalkerPass<PostWalker<TypeUpdater, Visitor<TypeUpdater>>> {
+ void visitBlock(Block* curr) {
+ curr->finalize();
+ }
+ void visitLoop(Loop* curr) {
+ curr->finalize();
+ }
+ void visitIf(If* curr) {
+ curr->finalize();
+ }
+ };
+ TypeUpdater typeUpdater;
+ typeUpdater.walkFunction(func);
+ }
+
+ // thread trivial jumps
+ struct JumpThreader : public ControlFlowWalker<JumpThreader, Visitor<JumpThreader>> {
+ // map of all value-less breaks going to a block (and not a loop)
+ std::map<Block*, std::vector<Break*>> breaksToBlock;
+
+ // number of definitions of each name - when a name is defined more than once, it is not trivially safe to do this
+ std::map<Name, Index> numDefs;
+
+ // the names to update, when we can (just one def)
+ std::map<Break*, Name> newNames;
+
+ void visitBreak(Break* curr) {
+ if (!curr->value) {
+ if (auto* target = findBreakTarget(curr->name)->dynCast<Block>()) {
+ breaksToBlock[target].push_back(curr);
+ }
+ }
+ }
+ // TODO: Switch?
+ void visitBlock(Block* curr) {
+ if (curr->name.is()) numDefs[curr->name]++;
+
+ auto& list = curr->list;
+ if (list.size() == 1 && curr->name.is()) {
+ // if this block has just one child, a sub-block, then jumps to the former are jumps to us, really
+ if (auto* child = list[0]->dynCast<Block>()) {
+ if (child->name.is() && child->name != curr->name) {
+ auto& breaks = breaksToBlock[child];
+ for (auto* br : breaks) {
+ newNames[br] = curr->name;
+ breaksToBlock[curr].push_back(br); // update the list - we may push it even more later
+ }
+ breaksToBlock.erase(child);
+ }
+ }
+ } else if (list.size() == 2) {
+ // if this block has two children, a child-block and a simple jump, then jumps to child-block can be replaced with jumps to the new target
+ auto* child = list[0]->dynCast<Block>();
+ auto* jump = list[1]->dynCast<Break>();
+ if (child && child->name.is() && jump && ExpressionAnalyzer::isSimple(jump)) {
+ auto& breaks = breaksToBlock[child];
+ for (auto* br : breaks) {
+ newNames[br] = jump->name;
+ }
+ // if the jump is to another block then we can update the list, and maybe push it even more later
+ if (auto* newTarget = findBreakTarget(jump->name)->dynCast<Block>()) {
+ for (auto* br : breaks) {
+ breaksToBlock[newTarget].push_back(br);
+ }
+ }
+ breaksToBlock.erase(child);
+ }
+ }
+ }
+ void visitLoop(Loop* curr) {
+ if (curr->name.is()) numDefs[curr->name]++;
+ }
+
+ void finish() {
+ for (auto& iter : newNames) {
+ auto* br = iter.first;
+ auto name = iter.second;
+ if (numDefs[name] == 1) {
+ br->name = name;
+ }
+ }
+ }
+ };
+ JumpThreader jumpThreader;
+ jumpThreader.setModule(getModule());
+ jumpThreader.walkFunction(func);
+ jumpThreader.finish();
+
+ // perform some final optimizations
+ struct FinalOptimizer : public PostWalker<FinalOptimizer, Visitor<FinalOptimizer>> {
+ void visitBlock(Block* curr) {
+ // if a block has an if br else br, we can un-conditionalize the latter, allowing
+ // the if to become a br_if.
+ // * note that if not in a block already, then we need to create a block for this, so not useful otherwise
+ // * note that this only happens at the end of a block, as code after the if is dead
+ // * note that we do this at the end, because un-conditionalizing can interfere with optimizeLoop()ing.
+ auto& list = curr->list;
+ for (Index i = 0; i < list.size(); i++) {
+ auto* iff = list[i]->dynCast<If>();
+ if (!iff || !iff->ifFalse || isConcreteWasmType(iff->type)) continue; // if it lacked an if-false, it would already be a br_if, as that's the easy case
+ auto* ifTrueBreak = iff->ifTrue->dynCast<Break>();
+ if (ifTrueBreak && !ifTrueBreak->condition && canTurnIfIntoBrIf(iff->condition, ifTrueBreak->value)) {
+ // we are an if-else where the ifTrue is a break without a condition, so we can do this
+ list[i] = ifTrueBreak;
+ ifTrueBreak->condition = iff->condition;
+ ifTrueBreak->finalize();
+ ExpressionManipulator::spliceIntoBlock(curr, i + 1, iff->ifFalse);
+ continue;
+ }
+ // otherwise, perhaps we can flip the if
+ auto* ifFalseBreak = iff->ifFalse->dynCast<Break>();
+ if (ifFalseBreak && !ifFalseBreak->condition && canTurnIfIntoBrIf(iff->condition, ifFalseBreak->value)) {
+ list[i] = ifFalseBreak;
+ ifFalseBreak->condition = Builder(*getModule()).makeUnary(EqZInt32, iff->condition);
+ ifFalseBreak->finalize();
+ ExpressionManipulator::spliceIntoBlock(curr, i + 1, iff->ifTrue);
+ continue;
+ }
+ }
+ }
void visitIf(If* curr) {
+ // we may have simplified ifs enough to turn them into selects
if (curr->ifFalse && isConcreteWasmType(curr->ifTrue->type) && isConcreteWasmType(curr->ifFalse->type)) {
// if with else, consider turning it into a select if there is no control flow
// TODO: estimate cost
@@ -210,25 +447,9 @@
}
}
};
- Selectifier selectifier;
- selectifier.setModule(getModule());
- selectifier.walkFunction(func);
- if (worked) {
- // Our work may alter block and if types, they may now return
- struct TypeUpdater : public WalkerPass<PostWalker<TypeUpdater, Visitor<TypeUpdater>>> {
- void visitBlock(Block* curr) {
- curr->finalize();
- }
- void visitLoop(Loop* curr) {
- curr->finalize();
- }
- void visitIf(If* curr) {
- curr->finalize();
- }
- };
- TypeUpdater typeUpdater;
- typeUpdater.walkFunction(func);
- }
+ FinalOptimizer finalOptimizer;
+ finalOptimizer.setModule(getModule());
+ finalOptimizer.walkFunction(func);
}
};
diff --git a/src/passes/SimplifyLocals.cpp b/src/passes/SimplifyLocals.cpp
index 5315eda..e032acc 100644
--- a/src/passes/SimplifyLocals.cpp
+++ b/src/passes/SimplifyLocals.cpp
@@ -43,7 +43,7 @@
// Helper classes
struct GetLocalCounter : public PostWalker<GetLocalCounter, Visitor<GetLocalCounter>> {
- std::vector<int>* numGetLocals;
+ std::vector<Index>* numGetLocals;
void visitGetLocal(GetLocal *curr) {
(*numGetLocals)[curr->index]++;
@@ -51,7 +51,7 @@
};
struct SetLocalRemover : public PostWalker<SetLocalRemover, Visitor<SetLocalRemover>> {
- std::vector<int>* numGetLocals;
+ std::vector<Index>* numGetLocals;
void visitSetLocal(SetLocal *curr) {
if ((*numGetLocals)[curr->index] == 0) {
@@ -102,8 +102,8 @@
// block returns
std::map<Name, std::vector<BlockBreak>> blockBreaks;
- // blocks that are the targets of a switch; we need to know this
- // since we can't produce a block return value for them.
+ // blocks that we can't produce a block return value for them.
+ // (switch target, or some other reason)
std::set<Name> unoptimizableBlocks;
// A stack of sinkables from the current traversal state. When
@@ -114,6 +114,12 @@
// whether we need to run an additional cycle
bool anotherCycle;
+ // whether this is the first cycle
+ bool firstCycle;
+
+ // local => # of get_locals for it
+ std::vector<Index> numGetLocals;
+
static void doNoteNonLinear(SimplifyLocals* self, Expression** currp) {
auto* curr = *currp;
if (curr->is<Break>()) {
@@ -187,9 +193,15 @@
if (found != sinkables.end()) {
// sink it, and nop the origin
auto* set = (*found->second.item)->cast<SetLocal>();
- replaceCurrent(set);
- assert(!set->isTee());
- set->setTee(true);
+ if (firstCycle) {
+ // just one get_local of this, so just sink the value
+ assert(numGetLocals[curr->index] == 1);
+ replaceCurrent(set->value);
+ } else {
+ replaceCurrent(set);
+ assert(!set->isTee());
+ set->setTee(true);
+ }
// reuse the getlocal that is dying
*found->second.item = curr;
ExpressionManipulator::nop(curr);
@@ -259,7 +271,7 @@
self->checkInvalidations(effects);
}
- if (set && !set->isTee()) {
+ if (set && !set->isTee() && (!self->firstCycle || self->numGetLocals[set->index] == 1)) {
Index index = set->index;
assert(self->sinkables.count(index) == 0);
self->sinkables.emplace(std::make_pair(index, SinkableInfo(currp)));
@@ -316,9 +328,18 @@
for (size_t j = 0; j < breaks.size(); j++) {
// move break set_local's value to the break
auto* breakSetLocalPointer = breaks[j].sinkables.at(sharedIndex).item;
- assert(!breaks[j].br->value);
- breaks[j].br->value = (*breakSetLocalPointer)->cast<SetLocal>()->value;
- ExpressionManipulator::nop(*breakSetLocalPointer);
+ auto* br = breaks[j].br;
+ assert(!br->value);
+ // if the break is conditional, then we must set the value here - if the break is not taken, we must still have the new value in the local
+ auto* set = (*breakSetLocalPointer)->cast<SetLocal>();
+ if (br->condition) {
+ br->value = set;
+ set->setTee(true);
+ *breakSetLocalPointer = getModule()->allocator.alloc<Nop>();
+ } else {
+ br->value = set->value;
+ ExpressionManipulator::nop(set);
+ }
}
// finally, create a set_local on the block itself
auto* newSetLocal = Builder(*getModule()).makeSetLocal(sharedIndex, block);
@@ -397,11 +418,22 @@
}
void doWalkFunction(Function* func) {
+ // scan get_locals
+ numGetLocals.resize(func->getNumLocals());
+ std::fill(numGetLocals.begin(), numGetLocals.end(), 0);
+ GetLocalCounter counter;
+ counter.numGetLocals = &numGetLocals;
+ counter.walkFunction(func);
// multiple passes may be required per function, consider this:
// x = load
// y = store
// c(x, y)
- // the load cannot cross the store, but y can be sunk, after which so can x
+ // the load cannot cross the store, but y can be sunk, after which so can x.
+ //
+ // we start with a cycle focusing on single-use locals, which are easy to
+ // sink (we don't need to put a set), and a good match for common compiler
+ // output patterns. further cycles do fully general sinking.
+ firstCycle = true;
do {
anotherCycle = false;
// main operation
@@ -435,15 +467,16 @@
sinkables.clear();
blockBreaks.clear();
unoptimizableBlocks.clear();
+ if (firstCycle) {
+ firstCycle = false;
+ anotherCycle = true;
+ }
} while (anotherCycle);
// Finally, after optimizing a function, we can see if we have set_locals
// for a local with no remaining gets, in which case, we can
// remove the set.
- // First, count get_locals
- std::vector<int> numGetLocals; // local => # of get_locals for it
- numGetLocals.resize(func->getNumLocals());
- GetLocalCounter counter;
- counter.numGetLocals = &numGetLocals;
+ // First, recount get_locals
+ std::fill(numGetLocals.begin(), numGetLocals.end(), 0);
counter.walkFunction(func);
// Second, remove unneeded sets
SetLocalRemover remover;
diff --git a/src/passes/Vacuum.cpp b/src/passes/Vacuum.cpp
index db42a99..0fdd12d 100644
--- a/src/passes/Vacuum.cpp
+++ b/src/passes/Vacuum.cpp
@@ -47,26 +47,31 @@
case Expression::Id::CallImportId:
case Expression::Id::CallIndirectId:
case Expression::Id::SetLocalId:
- case Expression::Id::LoadId:
case Expression::Id::StoreId:
case Expression::Id::ReturnId:
- case Expression::Id::GetGlobalId:
case Expression::Id::SetGlobalId:
case Expression::Id::HostId:
case Expression::Id::UnreachableId: return curr; // always needed
+ case Expression::Id::LoadId: {
+ if (!resultUsed) {
+ return curr->cast<Load>()->ptr;
+ }
+ return curr;
+ }
case Expression::Id::ConstId:
case Expression::Id::GetLocalId:
+ case Expression::Id::GetGlobalId: {
+ if (!resultUsed) return nullptr;
+ return curr;
+ }
+
case Expression::Id::UnaryId:
case Expression::Id::BinaryId:
case Expression::Id::SelectId: {
if (resultUsed) {
return curr; // used, keep it
}
- // result is not used, perhaps it is dead
- if (curr->is<Const>() || curr->is<GetLocal>()) {
- return nullptr;
- }
// for unary, binary, and select, we need to check their arguments for side effects
if (auto* unary = curr->dynCast<Unary>()) {
if (EffectAnalyzer(unary->value).hasSideEffects()) {
@@ -132,13 +137,12 @@
void visitBlock(Block *curr) {
// compress out nops and other dead code
- bool resultUsed = ExpressionAnalyzer::isResultUsed(expressionStack, getFunction());
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 && resultUsed);
+ auto* optimized = optimize(list[z], z == size - 1 && isConcreteWasmType(curr->type));
if (!optimized) {
skip++;
needResize = true;
@@ -153,7 +157,12 @@
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);
+ }
needResize = false;
break;
}
@@ -165,7 +174,7 @@
if (!curr->name.is()) {
if (list.size() == 1) {
// just one element. replace the block, either with it or with a nop if it's not needed
- if (resultUsed || EffectAnalyzer(list[0]).hasSideEffects()) {
+ if (isConcreteWasmType(curr->type) || EffectAnalyzer(list[0]).hasSideEffects()) {
replaceCurrent(list[0]);
} else {
ExpressionManipulator::nop(curr);
@@ -200,11 +209,53 @@
}
void visitDrop(Drop* curr) {
- // if the drop input has no side effects, it can be wiped out
- if (!EffectAnalyzer(curr->value).hasSideEffects()) {
+ // optimize the dropped value, maybe leaving nothing
+ curr->value = optimize(curr->value, false);
+ if (curr->value == nullptr) {
ExpressionManipulator::nop(curr);
return;
}
+ // a drop of a tee is a set
+ if (auto* set = curr->value->dynCast<SetLocal>()) {
+ assert(set->isTee());
+ set->setTee(false);
+ replaceCurrent(set);
+ return;
+ }
+ // if we are dropping a block's return value, we might be able to remove it entirely
+ if (auto* block = curr->value->dynCast<Block>()) {
+ auto* last = block->list.back();
+ if (isConcreteWasmType(last->type)) {
+ assert(block->type == last->type);
+ last = optimize(last, false);
+ if (!last) {
+ // we may be able to remove this, if there are no brs
+ bool canPop = true;
+ if (block->name.is()) {
+ BreakSeeker breakSeeker(block->name);
+ Expression* temp = block;
+ breakSeeker.walk(temp);
+ if (breakSeeker.found && breakSeeker.valueType != none) {
+ canPop = false;
+ }
+ }
+ if (canPop) {
+ block->list.back() = last;
+ block->list.pop_back();
+ block->type = none;
+ // we don't need the drop anymore, let's see what we have left in the block
+ if (block->list.size() > 1) {
+ replaceCurrent(block);
+ } else if (block->list.size() == 1) {
+ replaceCurrent(block->list[0]);
+ } else {
+ ExpressionManipulator::nop(curr);
+ }
+ return;
+ }
+ }
+ }
+ }
// sink a drop into an arm of an if-else if the other arm ends in an unreachable, as it if is a branch, this can make that branch optimizable and more vaccuming possible
auto* iff = curr->value->dynCast<If>();
if (iff && iff->ifFalse && isConcreteWasmType(iff->type)) {
diff --git a/src/passes/pass.cpp b/src/passes/pass.cpp
index 437b023..f3bc6d4 100644
--- a/src/passes/pass.cpp
+++ b/src/passes/pass.cpp
@@ -18,6 +18,7 @@
#include <passes/passes.h>
#include <pass.h>
+#include <wasm-validator.h>
namespace wasm {
@@ -65,6 +66,7 @@
registerPass("coalesce-locals-learning", "reduce # of locals by coalescing and learning", createCoalesceLocalsWithLearningPass);
registerPass("dce", "removes unreachable code", createDeadCodeEliminationPass);
registerPass("duplicate-function-elimination", "removes duplicate functions", createDuplicateFunctionEliminationPass);
+ registerPass("extract-function", "leaves just one function (useful for debugging)", createExtractFunctionPass);
registerPass("merge-blocks", "merges blocks to their parents", createMergeBlocksPass);
registerPass("metrics", "reports metrics", createMetricsPass);
registerPass("nm", "name list", createNameListPass);
@@ -74,6 +76,7 @@
registerPass("print", "print in s-expression format", createPrinterPass);
registerPass("print-minified", "print in minified s-expression format", createMinifiedPrinterPass);
registerPass("print-full", "print in full s-expression format", createFullPrinterPass);
+ registerPass("relooper-jump-threading", "thread relooper jumps (fastcomp output only)", createRelooperJumpThreadingPass);
registerPass("remove-imports", "removes imports and replaces them with nops", createRemoveImportsPass);
registerPass("remove-memory", "removes memory segments", createRemoveMemoryPass);
registerPass("remove-unused-brs", "removes breaks from locations that are not needed", createRemoveUnusedBrsPass);
@@ -132,10 +135,9 @@
void PassRunner::run() {
if (debug) {
// for debug logging purposes, run each pass in full before running the other
- std::chrono::high_resolution_clock::time_point beforeEverything;
+ auto totalTime = std::chrono::duration<double>(0);
size_t padding = 0;
std::cerr << "[PassRunner] running passes..." << std::endl;
- beforeEverything = std::chrono::high_resolution_clock::now();
for (auto pass : passes) {
padding = std::max(padding, pass->name.size());
}
@@ -158,10 +160,19 @@
auto after = std::chrono::high_resolution_clock::now();
std::chrono::duration<double> diff = after - before;
std::cerr << diff.count() << " seconds." << std::endl;
+ totalTime += diff;
+#if 0
+ // validate, ignoring the time
+ std::cerr << "[PassRunner] (validating)\n";
+ if (!WasmValidator().validate(*wasm)) {
+ std::cerr << "last pass (" << pass->name << ") broke validation\n";
+ abort();
+ }
+#endif
}
- auto after = std::chrono::high_resolution_clock::now();
- std::chrono::duration<double> diff = after - beforeEverything;
- std::cerr << "[PassRunner] passes took " << diff.count() << " seconds." << std::endl;
+ std::cerr << "[PassRunner] passes took " << totalTime.count() << " seconds." << std::endl;
+ // validate
+ assert(WasmValidator().validate(*wasm));
} else {
// non-debug normal mode, run them in an optimal manner - for locality it is better
// to run as many passes as possible on a single function before moving to the next
@@ -223,6 +234,11 @@
}
}
+void PassRunner::doAdd(Pass* pass) {
+ passes.push_back(pass);
+ pass->prepareToRun(this, wasm);
+}
+
void PassRunner::runPassOnFunction(Pass* pass, Function* func) {
// function-parallel passes get a new instance per function
if (pass->isFunctionParallel()) {
diff --git a/src/passes/passes.h b/src/passes/passes.h
index 4bb76ed..80fa394 100644
--- a/src/passes/passes.h
+++ b/src/passes/passes.h
@@ -26,6 +26,7 @@
Pass *createCoalesceLocalsWithLearningPass();
Pass *createDeadCodeEliminationPass();
Pass *createDuplicateFunctionEliminationPass();
+Pass *createExtractFunctionPass();
Pass *createLowerIfElsePass();
Pass *createMergeBlocksPass();
Pass *createMetricsPass();
@@ -36,6 +37,7 @@
Pass *createPrinterPass();
Pass *createMinifiedPrinterPass();
Pass *createFullPrinterPass();
+Pass *createRelooperJumpThreadingPass();
Pass *createRemoveImportsPass();
Pass *createRemoveMemoryPass();
Pass *createRemoveUnusedBrsPass();
diff --git a/src/wasm-builder.h b/src/wasm-builder.h
index 2841585..f9b2e73 100644
--- a/src/wasm-builder.h
+++ b/src/wasm-builder.h
@@ -283,6 +283,28 @@
return block;
}
+ // ensures the first node is a block, if it isn't already, and merges in the second,
+ // either as a single element or, if a block, by appending to the first block
+ Block* blockifyMerge(Expression* any, Expression* append) {
+ Block* block = nullptr;
+ if (any) block = any->dynCast<Block>();
+ if (!block) {
+ block = makeBlock(any);
+ } else {
+ assert(!isConcreteWasmType(block->type));
+ }
+ auto* other = append->dynCast<Block>();
+ if (!other) {
+ block->list.push_back(append);
+ } else {
+ for (auto* item : other->list) {
+ block->list.push_back(item);
+ }
+ }
+ block->finalize(); // TODO: move out of if
+ return block;
+ }
+
// a helper for the common pattern of a sequence of two expressions. Similar to
// blockify, but does *not* reuse a block if the first is one.
Block* makeSequence(Expression* left, Expression* right) {
@@ -291,6 +313,32 @@
block->finalize();
return block;
}
+
+ // Grab a slice out of a block, replacing it with nops, and returning
+ // either another block with the contents (if more than 1) or a single expression
+ Expression* stealSlice(Block* input, Index from, Index to) {
+ Expression* ret;
+ if (to == from + 1) {
+ // just one
+ ret = input->list[from];
+ } else {
+ auto* block = allocator.alloc<Block>();
+ for (Index i = from; i < to; i++) {
+ block->list.push_back(input->list[i]);
+ }
+ block->finalize();
+ ret = block;
+ }
+ if (to == input->list.size()) {
+ input->list.resize(from);
+ } else {
+ for (Index i = from; i < to; i++) {
+ input->list[i] = allocator.alloc<Nop>();
+ }
+ }
+ input->finalize();
+ return ret;
+ }
};
} // namespace wasm
diff --git a/src/wasm-module-building.h b/src/wasm-module-building.h
index 52a4e75..92b96d9 100644
--- a/src/wasm-module-building.h
+++ b/src/wasm-module-building.h
@@ -97,7 +97,7 @@
}
// Before parallelism, create all passes on the main thread here, to ensure
- // constructors run at least once on the main thread, for one-time init things.
+ // prepareToRun() is called for each pass before we start to optimize functions.
{
PassRunner passRunner(wasm);
addPrePasses(passRunner);
diff --git a/src/wasm-traversal.h b/src/wasm-traversal.h
index 4725237..47b9d26 100644
--- a/src/wasm-traversal.h
+++ b/src/wasm-traversal.h
@@ -335,8 +335,8 @@
}
case Expression::Id::SwitchId: {
self->pushTask(SubType::doVisitSwitch, currp);
- self->maybePushTask(SubType::scan, &curr->cast<Switch>()->value);
self->pushTask(SubType::scan, &curr->cast<Switch>()->condition);
+ self->maybePushTask(SubType::scan, &curr->cast<Switch>()->value);
break;
}
case Expression::Id::CallId: {
diff --git a/src/wasm-validator.h b/src/wasm-validator.h
index 58a30f9..e232213 100644
--- a/src/wasm-validator.h
+++ b/src/wasm-validator.h
@@ -104,6 +104,9 @@
void visitIf(If *curr) {
shouldBeTrue(curr->condition->type == unreachable || curr->condition->type == i32 || curr->condition->type == i64, curr, "if condition must be valid");
+ if (!curr->ifFalse) {
+ shouldBeFalse(isConcreteWasmType(curr->ifTrue->type), curr, "if without else must not return a value in body");
+ }
}
// override scan to add a pre and a post check task to all nodes
diff --git a/src/wasm.h b/src/wasm.h
index d6bdfe9..4d5cf4d 100644
--- a/src/wasm.h
+++ b/src/wasm.h
@@ -981,7 +981,6 @@
Expression *condition, *ifTrue, *ifFalse;
void finalize() {
- assert(ifTrue);
if (ifFalse) {
if (ifTrue->type == ifFalse->type) {
type = ifTrue->type;
@@ -992,6 +991,8 @@
} else {
type = none;
}
+ } else {
+ type = none; // if without else
}
}
};
@@ -1027,6 +1028,8 @@
void finalize() {
if (condition) {
type = none;
+ } else {
+ type = unreachable;
}
}
};
diff --git a/test/emcc_O2_hello_world.fromasm b/test/emcc_O2_hello_world.fromasm
index c3ebe3d..4966ce2 100644
--- a/test/emcc_O2_hello_world.fromasm
+++ b/test/emcc_O2_hello_world.fromasm
@@ -131,7 +131,6 @@
(local $50 i32)
(local $51 i32)
(local $52 i32)
- (local $53 i32)
(block $do-once$0
(if
(i32.lt_u
@@ -143,14 +142,14 @@
(i32.and
(tee_local $2
(i32.shr_u
- (tee_local $7
+ (tee_local $16
(i32.load
(i32.const 176)
)
)
(tee_local $5
(i32.shr_u
- (tee_local $0
+ (tee_local $8
(select
(i32.const 16)
(i32.and
@@ -174,20 +173,20 @@
(i32.const 3)
)
(block
- (set_local $2
+ (set_local $5
(i32.load
- (tee_local $8
+ (tee_local $17
(i32.add
- (tee_local $5
+ (tee_local $3
(i32.load
- (tee_local $4
+ (tee_local $7
(i32.add
- (tee_local $1
+ (tee_local $0
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (tee_local $0
+ (tee_local $2
(i32.add
(i32.xor
(i32.and
@@ -217,13 +216,13 @@
)
(if
(i32.ne
- (get_local $1)
- (get_local $2)
+ (get_local $0)
+ (get_local $5)
)
(block
(if
(i32.lt_u
- (get_local $2)
+ (get_local $5)
(i32.load
(i32.const 192)
)
@@ -233,23 +232,23 @@
(if
(i32.eq
(i32.load
- (tee_local $9
+ (tee_local $6
(i32.add
- (get_local $2)
+ (get_local $5)
(i32.const 12)
)
)
)
- (get_local $5)
+ (get_local $3)
)
(block
(i32.store
- (get_local $9)
- (get_local $1)
+ (get_local $6)
+ (get_local $0)
)
(i32.store
- (get_local $4)
- (get_local $2)
+ (get_local $7)
+ (get_local $5)
)
)
(call_import $_abort)
@@ -258,11 +257,11 @@
(i32.store
(i32.const 176)
(i32.and
- (get_local $7)
+ (get_local $16)
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $0)
+ (get_local $2)
)
(i32.const -1)
)
@@ -270,11 +269,11 @@
)
)
(i32.store offset=4
- (get_local $5)
+ (get_local $3)
(i32.or
- (tee_local $2
+ (tee_local $5
(i32.shl
- (get_local $0)
+ (get_local $2)
(i32.const 3)
)
)
@@ -282,31 +281,31 @@
)
)
(i32.store
- (tee_local $4
+ (tee_local $7
(i32.add
(i32.add
+ (get_local $3)
(get_local $5)
- (get_local $2)
)
(i32.const 4)
)
)
(i32.or
(i32.load
- (get_local $4)
+ (get_local $7)
)
(i32.const 1)
)
)
(return
- (get_local $8)
+ (get_local $17)
)
)
)
(if
(i32.gt_u
- (get_local $0)
- (tee_local $4
+ (get_local $8)
+ (tee_local $7
(i32.load
(i32.const 184)
)
@@ -316,20 +315,20 @@
(if
(get_local $2)
(block
- (set_local $1
+ (set_local $0
(i32.and
(i32.shr_u
- (tee_local $2
+ (tee_local $5
(i32.add
(i32.and
- (tee_local $1
+ (tee_local $0
(i32.and
(i32.shl
(get_local $2)
(get_local $5)
)
(i32.or
- (tee_local $2
+ (tee_local $5
(i32.shl
(i32.const 2)
(get_local $5)
@@ -337,14 +336,14 @@
)
(i32.sub
(i32.const 0)
- (get_local $2)
+ (get_local $5)
)
)
)
)
(i32.sub
(i32.const 0)
- (get_local $1)
+ (get_local $0)
)
)
(i32.const -1)
@@ -355,32 +354,32 @@
(i32.const 16)
)
)
- (set_local $1
+ (set_local $0
(i32.load
- (tee_local $9
+ (tee_local $6
(i32.add
- (tee_local $16
+ (tee_local $3
(i32.load
- (tee_local $18
+ (tee_local $19
(i32.add
(tee_local $10
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (tee_local $19
+ (tee_local $13
(i32.add
(i32.or
(i32.or
(i32.or
(i32.or
- (tee_local $2
+ (tee_local $5
(i32.and
(i32.shr_u
- (tee_local $9
+ (tee_local $6
(i32.shr_u
- (get_local $2)
- (get_local $1)
+ (get_local $5)
+ (get_local $0)
)
)
(i32.const 5)
@@ -388,15 +387,15 @@
(i32.const 8)
)
)
- (get_local $1)
+ (get_local $0)
)
- (tee_local $9
+ (tee_local $6
(i32.and
(i32.shr_u
- (tee_local $16
+ (tee_local $3
(i32.shr_u
- (get_local $9)
- (get_local $2)
+ (get_local $6)
+ (get_local $5)
)
)
(i32.const 2)
@@ -405,13 +404,13 @@
)
)
)
- (tee_local $16
+ (tee_local $3
(i32.and
(i32.shr_u
(tee_local $10
(i32.shr_u
- (get_local $16)
- (get_local $9)
+ (get_local $3)
+ (get_local $6)
)
)
(i32.const 1)
@@ -423,10 +422,10 @@
(tee_local $10
(i32.and
(i32.shr_u
- (tee_local $18
+ (tee_local $19
(i32.shr_u
(get_local $10)
- (get_local $16)
+ (get_local $3)
)
)
(i32.const 1)
@@ -436,7 +435,7 @@
)
)
(i32.shr_u
- (get_local $18)
+ (get_local $19)
(get_local $10)
)
)
@@ -460,12 +459,12 @@
(if
(i32.ne
(get_local $10)
- (get_local $1)
+ (get_local $0)
)
(block
(if
(i32.lt_u
- (get_local $1)
+ (get_local $0)
(i32.load
(i32.const 192)
)
@@ -475,25 +474,25 @@
(if
(i32.eq
(i32.load
- (tee_local $2
+ (tee_local $5
(i32.add
- (get_local $1)
+ (get_local $0)
(i32.const 12)
)
)
)
- (get_local $16)
+ (get_local $3)
)
(block
(i32.store
- (get_local $2)
+ (get_local $5)
(get_local $10)
)
(i32.store
- (get_local $18)
- (get_local $1)
+ (get_local $19)
+ (get_local $0)
)
- (set_local $8
+ (set_local $17
(i32.load
(i32.const 184)
)
@@ -506,43 +505,43 @@
(i32.store
(i32.const 176)
(i32.and
- (get_local $7)
+ (get_local $16)
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $19)
+ (get_local $13)
)
(i32.const -1)
)
)
)
- (set_local $8
- (get_local $4)
+ (set_local $17
+ (get_local $7)
)
)
)
(i32.store offset=4
- (get_local $16)
+ (get_local $3)
(i32.or
- (get_local $0)
+ (get_local $8)
(i32.const 3)
)
)
(i32.store offset=4
- (tee_local $7
+ (tee_local $16
(i32.add
- (get_local $16)
- (get_local $0)
+ (get_local $3)
+ (get_local $8)
)
)
(i32.or
- (tee_local $4
+ (tee_local $7
(i32.sub
(i32.shl
- (get_local $19)
+ (get_local $13)
(i32.const 3)
)
- (get_local $0)
+ (get_local $8)
)
)
(i32.const 1)
@@ -550,15 +549,15 @@
)
(i32.store
(i32.add
+ (get_local $16)
(get_local $7)
- (get_local $4)
)
- (get_local $4)
+ (get_local $7)
)
(if
- (get_local $8)
+ (get_local $17)
(block
- (set_local $1
+ (set_local $0
(i32.load
(i32.const 196)
)
@@ -568,9 +567,9 @@
(i32.const 216)
(i32.shl
(i32.shl
- (tee_local $18
+ (tee_local $19
(i32.shr_u
- (get_local $8)
+ (get_local $17)
(i32.const 3)
)
)
@@ -590,15 +589,15 @@
(tee_local $2
(i32.shl
(i32.const 1)
- (get_local $18)
+ (get_local $19)
)
)
)
(if
(i32.lt_u
- (tee_local $8
+ (tee_local $17
(i32.load
- (tee_local $18
+ (tee_local $19
(i32.add
(get_local $10)
(i32.const 8)
@@ -612,11 +611,11 @@
)
(call_import $_abort)
(block
- (set_local $39
- (get_local $18)
+ (set_local $38
+ (get_local $19)
)
(set_local $31
- (get_local $8)
+ (get_local $17)
)
)
)
@@ -628,7 +627,7 @@
(get_local $2)
)
)
- (set_local $39
+ (set_local $38
(i32.add
(get_local $10)
(i32.const 8)
@@ -640,53 +639,53 @@
)
)
(i32.store
- (get_local $39)
- (get_local $1)
+ (get_local $38)
+ (get_local $0)
)
(i32.store offset=12
(get_local $31)
- (get_local $1)
+ (get_local $0)
)
(i32.store offset=8
- (get_local $1)
+ (get_local $0)
(get_local $31)
)
(i32.store offset=12
- (get_local $1)
+ (get_local $0)
(get_local $10)
)
)
)
(i32.store
(i32.const 184)
- (get_local $4)
+ (get_local $7)
)
(i32.store
(i32.const 196)
- (get_local $7)
+ (get_local $16)
)
(return
- (get_local $9)
+ (get_local $6)
)
)
)
(if
- (tee_local $7
+ (tee_local $16
(i32.load
(i32.const 180)
)
)
(block
- (set_local $7
+ (set_local $16
(i32.and
(i32.shr_u
- (tee_local $4
+ (tee_local $7
(i32.add
(i32.and
- (get_local $7)
+ (get_local $16)
(i32.sub
(i32.const 0)
- (get_local $7)
+ (get_local $16)
)
)
(i32.const -1)
@@ -701,7 +700,7 @@
(i32.sub
(i32.and
(i32.load offset=4
- (tee_local $8
+ (tee_local $17
(i32.load offset=480
(i32.shl
(i32.add
@@ -709,13 +708,13 @@
(i32.or
(i32.or
(i32.or
- (tee_local $4
+ (tee_local $7
(i32.and
(i32.shr_u
(tee_local $10
(i32.shr_u
- (get_local $4)
(get_local $7)
+ (get_local $16)
)
)
(i32.const 5)
@@ -723,15 +722,15 @@
(i32.const 8)
)
)
- (get_local $7)
+ (get_local $16)
)
(tee_local $10
(i32.and
(i32.shr_u
- (tee_local $1
+ (tee_local $0
(i32.shr_u
(get_local $10)
- (get_local $4)
+ (get_local $7)
)
)
(i32.const 2)
@@ -740,12 +739,12 @@
)
)
)
- (tee_local $1
+ (tee_local $0
(i32.and
(i32.shr_u
(tee_local $2
(i32.shr_u
- (get_local $1)
+ (get_local $0)
(get_local $10)
)
)
@@ -761,7 +760,7 @@
(tee_local $5
(i32.shr_u
(get_local $2)
- (get_local $1)
+ (get_local $0)
)
)
(i32.const 1)
@@ -782,25 +781,25 @@
)
(i32.const -8)
)
- (get_local $0)
+ (get_local $8)
)
)
(set_local $5
- (get_local $8)
+ (get_local $17)
)
- (set_local $1
- (get_local $8)
+ (set_local $0
+ (get_local $17)
)
(loop $while-in$7
(block $while-out$6
(if
- (tee_local $8
+ (tee_local $17
(i32.load offset=16
(get_local $5)
)
)
- (set_local $7
- (get_local $8)
+ (set_local $3
+ (get_local $17)
)
(if
(tee_local $10
@@ -808,15 +807,15 @@
(get_local $5)
)
)
- (set_local $7
+ (set_local $3
(get_local $10)
)
(block
(set_local $7
(get_local $2)
)
- (set_local $4
- (get_local $1)
+ (set_local $1
+ (get_local $0)
)
(br $while-out$6)
)
@@ -824,15 +823,15 @@
)
(set_local $10
(i32.lt_u
- (tee_local $8
+ (tee_local $17
(i32.sub
(i32.and
(i32.load offset=4
- (get_local $7)
+ (get_local $3)
)
(i32.const -8)
)
- (get_local $0)
+ (get_local $8)
)
)
(get_local $2)
@@ -840,18 +839,18 @@
)
(set_local $2
(select
- (get_local $8)
+ (get_local $17)
(get_local $2)
(get_local $10)
)
)
(set_local $5
- (get_local $7)
+ (get_local $3)
)
- (set_local $1
+ (set_local $0
(select
- (get_local $7)
- (get_local $1)
+ (get_local $3)
+ (get_local $0)
(get_local $10)
)
)
@@ -860,8 +859,8 @@
)
(if
(i32.lt_u
- (get_local $4)
- (tee_local $1
+ (get_local $1)
+ (tee_local $0
(i32.load
(i32.const 192)
)
@@ -871,11 +870,11 @@
)
(if
(i32.ge_u
- (get_local $4)
+ (get_local $1)
(tee_local $5
(i32.add
- (get_local $4)
- (get_local $0)
+ (get_local $1)
+ (get_local $8)
)
)
)
@@ -883,54 +882,55 @@
)
(set_local $2
(i32.load offset=24
- (get_local $4)
+ (get_local $1)
)
)
(block $do-once$8
(if
(i32.eq
- (tee_local $9
+ (tee_local $6
(i32.load offset=12
- (get_local $4)
+ (get_local $1)
)
)
- (get_local $4)
+ (get_local $1)
)
(block
(if
- (tee_local $19
+ (tee_local $13
(i32.load
- (tee_local $16
+ (tee_local $3
(i32.add
- (get_local $4)
+ (get_local $1)
(i32.const 20)
)
)
)
)
(block
- (set_local $8
- (get_local $19)
+ (set_local $17
+ (get_local $13)
)
- (set_local $10
- (get_local $16)
+ (set_local $9
+ (get_local $3)
)
)
(if
- (i32.eqz
- (tee_local $8
- (i32.load
- (tee_local $10
- (i32.add
- (get_local $4)
- (i32.const 16)
- )
+ (tee_local $17
+ (i32.load
+ (tee_local $10
+ (i32.add
+ (get_local $1)
+ (i32.const 16)
)
)
)
)
+ (set_local $9
+ (get_local $10)
+ )
(block
- (set_local $18
+ (set_local $19
(i32.const 0)
)
(br $do-once$8)
@@ -938,65 +938,62 @@
)
)
(loop $while-in$11
- (block $while-out$10
- (if
- (tee_local $19
- (i32.load
- (tee_local $16
- (i32.add
- (get_local $8)
- (i32.const 20)
- )
+ (if
+ (tee_local $13
+ (i32.load
+ (tee_local $3
+ (i32.add
+ (get_local $17)
+ (i32.const 20)
)
)
)
- (block
- (set_local $8
- (get_local $19)
- )
- (set_local $10
- (get_local $16)
- )
- (br $while-in$11)
- )
)
- (if
- (tee_local $19
- (i32.load
- (tee_local $16
- (i32.add
- (get_local $8)
- (i32.const 16)
- )
+ (block
+ (set_local $17
+ (get_local $13)
+ )
+ (set_local $9
+ (get_local $3)
+ )
+ (br $while-in$11)
+ )
+ )
+ (if
+ (tee_local $13
+ (i32.load
+ (tee_local $3
+ (i32.add
+ (get_local $17)
+ (i32.const 16)
)
)
)
- (block
- (set_local $8
- (get_local $19)
- )
- (set_local $10
- (get_local $16)
- )
- )
- (br $while-out$10)
)
- (br $while-in$11)
+ (block
+ (set_local $17
+ (get_local $13)
+ )
+ (set_local $9
+ (get_local $3)
+ )
+ (br $while-in$11)
+ )
)
)
(if
(i32.lt_u
- (get_local $10)
- (get_local $1)
+ (get_local $9)
+ (get_local $0)
)
(call_import $_abort)
(block
(i32.store
- (get_local $10)
+ (get_local $9)
(i32.const 0)
)
- (set_local $18
- (get_local $8)
+ (set_local $19
+ (get_local $17)
)
)
)
@@ -1004,26 +1001,26 @@
(block
(if
(i32.lt_u
- (tee_local $16
+ (tee_local $3
(i32.load offset=8
- (get_local $4)
+ (get_local $1)
)
)
- (get_local $1)
+ (get_local $0)
)
(call_import $_abort)
)
(if
(i32.ne
(i32.load
- (tee_local $19
+ (tee_local $13
(i32.add
- (get_local $16)
+ (get_local $3)
(i32.const 12)
)
)
)
- (get_local $4)
+ (get_local $1)
)
(call_import $_abort)
)
@@ -1032,24 +1029,24 @@
(i32.load
(tee_local $10
(i32.add
- (get_local $9)
+ (get_local $6)
(i32.const 8)
)
)
)
- (get_local $4)
+ (get_local $1)
)
(block
(i32.store
- (get_local $19)
- (get_local $9)
+ (get_local $13)
+ (get_local $6)
)
(i32.store
(get_local $10)
- (get_local $16)
+ (get_local $3)
)
- (set_local $18
- (get_local $9)
+ (set_local $19
+ (get_local $6)
)
)
(call_import $_abort)
@@ -1063,15 +1060,15 @@
(block
(if
(i32.eq
- (get_local $4)
+ (get_local $1)
(i32.load
- (tee_local $1
+ (tee_local $0
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $9
+ (tee_local $6
(i32.load offset=28
- (get_local $4)
+ (get_local $1)
)
)
(i32.const 2)
@@ -1082,12 +1079,12 @@
)
(block
(i32.store
- (get_local $1)
- (get_local $18)
+ (get_local $0)
+ (get_local $19)
)
(if
(i32.eqz
- (get_local $18)
+ (get_local $19)
)
(block
(i32.store
@@ -1099,7 +1096,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $9)
+ (get_local $6)
)
(i32.const -1)
)
@@ -1122,35 +1119,35 @@
(if
(i32.eq
(i32.load
- (tee_local $9
+ (tee_local $6
(i32.add
(get_local $2)
(i32.const 16)
)
)
)
- (get_local $4)
+ (get_local $1)
)
(i32.store
- (get_local $9)
- (get_local $18)
+ (get_local $6)
+ (get_local $19)
)
(i32.store offset=20
(get_local $2)
- (get_local $18)
+ (get_local $19)
)
)
(br_if $do-once$12
(i32.eqz
- (get_local $18)
+ (get_local $19)
)
)
)
)
(if
(i32.lt_u
- (get_local $18)
- (tee_local $9
+ (get_local $19)
+ (tee_local $6
(i32.load
(i32.const 192)
)
@@ -1159,42 +1156,42 @@
(call_import $_abort)
)
(i32.store offset=24
- (get_local $18)
+ (get_local $19)
(get_local $2)
)
(if
- (tee_local $1
+ (tee_local $0
(i32.load offset=16
- (get_local $4)
+ (get_local $1)
)
)
(if
(i32.lt_u
- (get_local $1)
- (get_local $9)
+ (get_local $0)
+ (get_local $6)
)
(call_import $_abort)
(block
(i32.store offset=16
- (get_local $18)
- (get_local $1)
+ (get_local $19)
+ (get_local $0)
)
(i32.store offset=24
- (get_local $1)
- (get_local $18)
+ (get_local $0)
+ (get_local $19)
)
)
)
)
(if
- (tee_local $1
+ (tee_local $0
(i32.load offset=20
- (get_local $4)
+ (get_local $1)
)
)
(if
(i32.lt_u
- (get_local $1)
+ (get_local $0)
(i32.load
(i32.const 192)
)
@@ -1202,12 +1199,12 @@
(call_import $_abort)
(block
(i32.store offset=20
- (get_local $18)
- (get_local $1)
+ (get_local $19)
+ (get_local $0)
)
(i32.store offset=24
- (get_local $1)
- (get_local $18)
+ (get_local $0)
+ (get_local $19)
)
)
)
@@ -1222,22 +1219,22 @@
)
(block
(i32.store offset=4
- (get_local $4)
+ (get_local $1)
(i32.or
(tee_local $2
(i32.add
(get_local $7)
- (get_local $0)
+ (get_local $8)
)
)
(i32.const 3)
)
)
(i32.store
- (tee_local $1
+ (tee_local $0
(i32.add
(i32.add
- (get_local $4)
+ (get_local $1)
(get_local $2)
)
(i32.const 4)
@@ -1245,7 +1242,7 @@
)
(i32.or
(i32.load
- (get_local $1)
+ (get_local $0)
)
(i32.const 1)
)
@@ -1253,9 +1250,9 @@
)
(block
(i32.store offset=4
- (get_local $4)
+ (get_local $1)
(i32.or
- (get_local $0)
+ (get_local $8)
(i32.const 3)
)
)
@@ -1274,7 +1271,7 @@
(get_local $7)
)
(if
- (tee_local $1
+ (tee_local $0
(i32.load
(i32.const 184)
)
@@ -1285,14 +1282,14 @@
(i32.const 196)
)
)
- (set_local $1
+ (set_local $0
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (tee_local $9
+ (tee_local $6
(i32.shr_u
- (get_local $1)
+ (get_local $0)
(i32.const 3)
)
)
@@ -1304,7 +1301,7 @@
)
(if
(i32.and
- (tee_local $16
+ (tee_local $3
(i32.load
(i32.const 176)
)
@@ -1312,17 +1309,17 @@
(tee_local $10
(i32.shl
(i32.const 1)
- (get_local $9)
+ (get_local $6)
)
)
)
(if
(i32.lt_u
- (tee_local $19
+ (tee_local $13
(i32.load
- (tee_local $9
+ (tee_local $6
(i32.add
- (get_local $1)
+ (get_local $0)
(i32.const 8)
)
)
@@ -1334,11 +1331,11 @@
)
(call_import $_abort)
(block
- (set_local $40
- (get_local $9)
+ (set_local $39
+ (get_local $6)
)
(set_local $32
- (get_local $19)
+ (get_local $13)
)
)
)
@@ -1346,23 +1343,23 @@
(i32.store
(i32.const 176)
(i32.or
- (get_local $16)
+ (get_local $3)
(get_local $10)
)
)
- (set_local $40
+ (set_local $39
(i32.add
- (get_local $1)
+ (get_local $0)
(i32.const 8)
)
)
(set_local $32
- (get_local $1)
+ (get_local $0)
)
)
)
(i32.store
- (get_local $40)
+ (get_local $39)
(get_local $2)
)
(i32.store offset=12
@@ -1375,7 +1372,7 @@
)
(i32.store offset=12
(get_local $2)
- (get_local $1)
+ (get_local $0)
)
)
)
@@ -1391,7 +1388,7 @@
)
(return
(i32.add
- (get_local $4)
+ (get_local $1)
(i32.const 8)
)
)
@@ -1408,7 +1405,7 @@
(block
(set_local $2
(i32.and
- (tee_local $1
+ (tee_local $0
(i32.add
(get_local $0)
(i32.const 11)
@@ -1424,7 +1421,7 @@
)
)
(block
- (set_local $16
+ (set_local $3
(i32.sub
(i32.const 0)
(get_local $2)
@@ -1432,14 +1429,14 @@
)
(block $label$break$L123
(if
- (tee_local $7
+ (tee_local $16
(i32.load offset=480
(i32.shl
- (tee_local $0
+ (tee_local $8
(if
- (tee_local $19
+ (tee_local $13
(i32.shr_u
- (get_local $1)
+ (get_local $0)
(i32.const 8)
)
)
@@ -1454,24 +1451,24 @@
(i32.shr_u
(get_local $2)
(i32.add
- (tee_local $7
+ (tee_local $16
(i32.add
(i32.sub
(i32.const 14)
(i32.or
(i32.or
- (tee_local $19
+ (tee_local $13
(i32.and
(i32.shr_u
(i32.add
- (tee_local $9
+ (tee_local $6
(i32.shl
- (get_local $19)
- (tee_local $1
+ (get_local $13)
+ (tee_local $0
(i32.and
(i32.shr_u
(i32.add
- (get_local $19)
+ (get_local $13)
(i32.const 1048320)
)
(i32.const 16)
@@ -1488,16 +1485,16 @@
(i32.const 4)
)
)
- (get_local $1)
+ (get_local $0)
)
- (tee_local $9
+ (tee_local $6
(i32.and
(i32.shr_u
(i32.add
- (tee_local $8
+ (tee_local $17
(i32.shl
- (get_local $9)
- (get_local $19)
+ (get_local $6)
+ (get_local $13)
)
)
(i32.const 245760)
@@ -1511,8 +1508,8 @@
)
(i32.shr_u
(i32.shl
- (get_local $8)
- (get_local $9)
+ (get_local $17)
+ (get_local $6)
)
(i32.const 15)
)
@@ -1524,7 +1521,7 @@
(i32.const 1)
)
(i32.shl
- (get_local $7)
+ (get_local $16)
(i32.const 1)
)
)
@@ -1537,13 +1534,13 @@
)
)
(block
- (set_local $9
- (get_local $16)
+ (set_local $6
+ (get_local $3)
)
- (set_local $8
+ (set_local $17
(i32.const 0)
)
- (set_local $1
+ (set_local $0
(i32.shl
(get_local $2)
(select
@@ -1551,101 +1548,98 @@
(i32.sub
(i32.const 25)
(i32.shr_u
- (get_local $0)
+ (get_local $8)
(i32.const 1)
)
)
(i32.eq
- (get_local $0)
+ (get_local $8)
(i32.const 31)
)
)
)
)
- (set_local $19
- (get_local $7)
+ (set_local $13
+ (get_local $16)
)
- (set_local $4
+ (set_local $7
(i32.const 0)
)
(loop $while-in$18
- (block $while-out$17
- (if
- (i32.lt_u
- (tee_local $5
- (i32.sub
- (tee_local $18
- (i32.and
- (i32.load offset=4
- (get_local $19)
- )
- (i32.const -8)
+ (if
+ (i32.lt_u
+ (tee_local $3
+ (i32.sub
+ (tee_local $19
+ (i32.and
+ (i32.load offset=4
+ (get_local $13)
)
+ (i32.const -8)
)
- (get_local $2)
)
- )
- (get_local $9)
- )
- (if
- (i32.eq
- (get_local $18)
(get_local $2)
)
- (block
- (set_local $27
- (get_local $5)
- )
- (set_local $25
- (get_local $19)
- )
- (set_local $29
- (get_local $19)
- )
- (set_local $9
- (i32.const 90)
- )
- (br $label$break$L123)
+ )
+ (get_local $6)
+ )
+ (if
+ (i32.eq
+ (get_local $19)
+ (get_local $2)
+ )
+ (block
+ (set_local $27
+ (get_local $3)
)
- (block
- (set_local $9
- (get_local $5)
- )
- (set_local $4
- (get_local $19)
- )
+ (set_local $25
+ (get_local $13)
+ )
+ (set_local $29
+ (get_local $13)
+ )
+ (set_local $6
+ (i32.const 90)
+ )
+ (br $label$break$L123)
+ )
+ (block
+ (set_local $6
+ (get_local $3)
+ )
+ (set_local $7
+ (get_local $13)
)
)
)
- (set_local $18
- (select
- (get_local $8)
- (tee_local $5
- (i32.load offset=20
- (get_local $19)
- )
+ )
+ (set_local $19
+ (select
+ (get_local $17)
+ (tee_local $3
+ (i32.load offset=20
+ (get_local $13)
)
- (i32.or
- (i32.eq
- (get_local $5)
- (i32.const 0)
- )
- (i32.eq
- (get_local $5)
- (tee_local $19
- (i32.load
+ )
+ (i32.or
+ (i32.eqz
+ (get_local $3)
+ )
+ (i32.eq
+ (get_local $3)
+ (tee_local $13
+ (i32.load
+ (i32.add
(i32.add
- (i32.add
- (get_local $19)
- (i32.const 16)
+ (get_local $13)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (get_local $0)
+ (i32.const 31)
)
- (i32.shl
- (i32.shr_u
- (get_local $1)
- (i32.const 31)
- )
- (i32.const 2)
- )
+ (i32.const 2)
)
)
)
@@ -1653,61 +1647,59 @@
)
)
)
- (if
- (tee_local $5
- (i32.eq
- (get_local $19)
- (i32.const 0)
- )
+ )
+ (if
+ (tee_local $3
+ (i32.eqz
+ (get_local $13)
)
- (block
- (set_local $33
- (get_local $9)
- )
- (set_local $34
- (get_local $18)
- )
- (set_local $30
- (get_local $4)
- )
- (set_local $9
- (i32.const 86)
- )
- (br $while-out$17)
+ )
+ (block
+ (set_local $33
+ (get_local $6)
)
- (block
- (set_local $8
- (get_local $18)
- )
- (set_local $1
- (i32.shl
- (get_local $1)
- (i32.xor
- (i32.and
- (get_local $5)
- (i32.const 1)
- )
+ (set_local $5
+ (get_local $19)
+ )
+ (set_local $30
+ (get_local $7)
+ )
+ (set_local $6
+ (i32.const 86)
+ )
+ )
+ (block
+ (set_local $17
+ (get_local $19)
+ )
+ (set_local $0
+ (i32.shl
+ (get_local $0)
+ (i32.xor
+ (i32.and
+ (get_local $3)
(i32.const 1)
)
+ (i32.const 1)
)
)
)
+ (br $while-in$18)
)
- (br $while-in$18)
)
)
)
(block
(set_local $33
- (get_local $16)
+ (get_local $3)
)
- (set_local $34
+ (set_local $5
(i32.const 0)
)
(set_local $30
(i32.const 0)
)
- (set_local $9
+ (set_local $6
(i32.const 86)
)
)
@@ -1715,60 +1707,58 @@
)
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 86)
)
(if
(tee_local $0
(if
(i32.and
- (i32.eq
- (get_local $34)
- (i32.const 0)
+ (i32.eqz
+ (get_local $5)
)
- (i32.eq
+ (i32.eqz
(get_local $30)
- (i32.const 0)
)
)
(block
(if
(i32.eqz
- (tee_local $16
+ (tee_local $3
(i32.and
(get_local $10)
(i32.or
- (tee_local $7
+ (tee_local $16
(i32.shl
(i32.const 2)
- (get_local $0)
+ (get_local $8)
)
)
(i32.sub
(i32.const 0)
- (get_local $7)
+ (get_local $16)
)
)
)
)
)
(block
- (set_local $0
+ (set_local $8
(get_local $2)
)
(br $do-once$0)
)
)
- (set_local $16
+ (set_local $3
(i32.and
(i32.shr_u
- (tee_local $7
+ (tee_local $16
(i32.add
(i32.and
- (get_local $16)
+ (get_local $3)
(i32.sub
(i32.const 0)
- (get_local $16)
+ (get_local $3)
)
)
(i32.const -1)
@@ -1786,13 +1776,13 @@
(i32.or
(i32.or
(i32.or
- (tee_local $7
+ (tee_local $16
(i32.and
(i32.shr_u
- (tee_local $0
+ (tee_local $8
(i32.shr_u
- (get_local $7)
(get_local $16)
+ (get_local $3)
)
)
(i32.const 5)
@@ -1800,15 +1790,15 @@
(i32.const 8)
)
)
- (get_local $16)
+ (get_local $3)
)
- (tee_local $0
+ (tee_local $8
(i32.and
(i32.shr_u
(tee_local $5
(i32.shr_u
- (get_local $0)
- (get_local $7)
+ (get_local $8)
+ (get_local $16)
)
)
(i32.const 2)
@@ -1820,10 +1810,10 @@
(tee_local $5
(i32.and
(i32.shr_u
- (tee_local $4
+ (tee_local $7
(i32.shr_u
(get_local $5)
- (get_local $0)
+ (get_local $8)
)
)
(i32.const 1)
@@ -1832,12 +1822,12 @@
)
)
)
- (tee_local $4
+ (tee_local $7
(i32.and
(i32.shr_u
- (tee_local $1
+ (tee_local $0
(i32.shr_u
- (get_local $4)
+ (get_local $7)
(get_local $5)
)
)
@@ -1848,15 +1838,15 @@
)
)
(i32.shr_u
- (get_local $1)
- (get_local $4)
+ (get_local $0)
+ (get_local $7)
)
)
(i32.const 2)
)
)
)
- (get_local $34)
+ (get_local $5)
)
)
(block
@@ -1869,15 +1859,15 @@
(set_local $29
(get_local $30)
)
- (set_local $9
+ (set_local $6
(i32.const 90)
)
)
(block
- (set_local $6
+ (set_local $4
(get_local $33)
)
- (set_local $12
+ (set_local $11
(get_local $30)
)
)
@@ -1885,95 +1875,92 @@
)
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 90)
)
(loop $while-in$20
- (block $while-out$19
- (set_local $9
- (i32.const 0)
- )
- (set_local $1
- (i32.lt_u
- (tee_local $4
- (i32.sub
- (i32.and
- (i32.load offset=4
- (get_local $25)
- )
- (i32.const -8)
+ (set_local $6
+ (i32.const 0)
+ )
+ (set_local $0
+ (i32.lt_u
+ (tee_local $7
+ (i32.sub
+ (i32.and
+ (i32.load offset=4
+ (get_local $25)
)
- (get_local $2)
+ (i32.const -8)
)
+ (get_local $2)
)
- (get_local $27)
)
+ (get_local $27)
)
- (set_local $5
- (select
- (get_local $4)
- (get_local $27)
- (get_local $1)
- )
+ )
+ (set_local $5
+ (select
+ (get_local $7)
+ (get_local $27)
+ (get_local $0)
)
- (set_local $4
- (select
+ )
+ (set_local $7
+ (select
+ (get_local $25)
+ (get_local $29)
+ (get_local $0)
+ )
+ )
+ (if
+ (tee_local $0
+ (i32.load offset=16
(get_local $25)
- (get_local $29)
- (get_local $1)
)
)
- (if
- (tee_local $1
- (i32.load offset=16
- (get_local $25)
- )
+ (block
+ (set_local $27
+ (get_local $5)
)
- (block
- (set_local $27
- (get_local $5)
- )
- (set_local $25
- (get_local $1)
- )
- (set_local $29
- (get_local $4)
- )
- (br $while-in$20)
+ (set_local $25
+ (get_local $0)
+ )
+ (set_local $29
+ (get_local $7)
+ )
+ (br $while-in$20)
+ )
+ )
+ (if
+ (tee_local $25
+ (i32.load offset=20
+ (get_local $25)
)
)
- (if
- (tee_local $25
- (i32.load offset=20
- (get_local $25)
- )
+ (block
+ (set_local $27
+ (get_local $5)
)
- (block
- (set_local $27
- (get_local $5)
- )
- (set_local $29
- (get_local $4)
- )
+ (set_local $29
+ (get_local $7)
)
- (block
- (set_local $6
- (get_local $5)
- )
- (set_local $12
- (get_local $4)
- )
- (br $while-out$19)
+ (br $while-in$20)
+ )
+ (block
+ (set_local $4
+ (get_local $5)
+ )
+ (set_local $11
+ (get_local $7)
)
)
- (br $while-in$20)
)
)
)
(if
(select
(i32.lt_u
- (get_local $6)
+ (get_local $4)
(i32.sub
(i32.load
(i32.const 184)
@@ -1983,14 +1970,14 @@
)
(i32.const 0)
(i32.ne
- (get_local $12)
+ (get_local $11)
(i32.const 0)
)
)
(block
(if
(i32.lt_u
- (get_local $12)
+ (get_local $11)
(tee_local $10
(i32.load
(i32.const 192)
@@ -2001,10 +1988,10 @@
)
(if
(i32.ge_u
- (get_local $12)
- (tee_local $4
+ (get_local $11)
+ (tee_local $7
(i32.add
- (get_local $12)
+ (get_local $11)
(get_local $2)
)
)
@@ -2013,54 +2000,55 @@
)
(set_local $5
(i32.load offset=24
- (get_local $12)
+ (get_local $11)
)
)
(block $do-once$21
(if
(i32.eq
- (tee_local $1
+ (tee_local $0
(i32.load offset=12
- (get_local $12)
+ (get_local $11)
)
)
- (get_local $12)
+ (get_local $11)
)
(block
(if
- (tee_local $16
+ (tee_local $3
(i32.load
- (tee_local $0
+ (tee_local $8
(i32.add
- (get_local $12)
+ (get_local $11)
(i32.const 20)
)
)
)
)
(block
- (set_local $8
- (get_local $16)
+ (set_local $17
+ (get_local $3)
)
- (set_local $7
- (get_local $0)
+ (set_local $0
+ (get_local $8)
)
)
(if
- (i32.eqz
- (tee_local $8
- (i32.load
- (tee_local $7
- (i32.add
- (get_local $12)
- (i32.const 16)
- )
+ (tee_local $17
+ (i32.load
+ (tee_local $16
+ (i32.add
+ (get_local $11)
+ (i32.const 16)
)
)
)
)
+ (set_local $0
+ (get_local $16)
+ )
(block
- (set_local $11
+ (set_local $9
(i32.const 0)
)
(br $do-once$21)
@@ -2068,65 +2056,62 @@
)
)
(loop $while-in$24
- (block $while-out$23
- (if
- (tee_local $16
- (i32.load
- (tee_local $0
- (i32.add
- (get_local $8)
- (i32.const 20)
- )
+ (if
+ (tee_local $3
+ (i32.load
+ (tee_local $8
+ (i32.add
+ (get_local $17)
+ (i32.const 20)
)
)
)
- (block
- (set_local $8
- (get_local $16)
- )
- (set_local $7
- (get_local $0)
- )
- (br $while-in$24)
- )
)
- (if
- (tee_local $16
- (i32.load
- (tee_local $0
- (i32.add
- (get_local $8)
- (i32.const 16)
- )
+ (block
+ (set_local $17
+ (get_local $3)
+ )
+ (set_local $0
+ (get_local $8)
+ )
+ (br $while-in$24)
+ )
+ )
+ (if
+ (tee_local $3
+ (i32.load
+ (tee_local $8
+ (i32.add
+ (get_local $17)
+ (i32.const 16)
)
)
)
- (block
- (set_local $8
- (get_local $16)
- )
- (set_local $7
- (get_local $0)
- )
- )
- (br $while-out$23)
)
- (br $while-in$24)
+ (block
+ (set_local $17
+ (get_local $3)
+ )
+ (set_local $0
+ (get_local $8)
+ )
+ (br $while-in$24)
+ )
)
)
(if
(i32.lt_u
- (get_local $7)
+ (get_local $0)
(get_local $10)
)
(call_import $_abort)
(block
(i32.store
- (get_local $7)
+ (get_local $0)
(i32.const 0)
)
- (set_local $11
- (get_local $8)
+ (set_local $9
+ (get_local $17)
)
)
)
@@ -2134,9 +2119,9 @@
(block
(if
(i32.lt_u
- (tee_local $0
+ (tee_local $8
(i32.load offset=8
- (get_local $12)
+ (get_local $11)
)
)
(get_local $10)
@@ -2146,40 +2131,40 @@
(if
(i32.ne
(i32.load
- (tee_local $16
+ (tee_local $3
(i32.add
- (get_local $0)
+ (get_local $8)
(i32.const 12)
)
)
)
- (get_local $12)
+ (get_local $11)
)
(call_import $_abort)
)
(if
(i32.eq
(i32.load
- (tee_local $7
+ (tee_local $16
(i32.add
- (get_local $1)
+ (get_local $0)
(i32.const 8)
)
)
)
- (get_local $12)
+ (get_local $11)
)
(block
(i32.store
- (get_local $16)
- (get_local $1)
- )
- (i32.store
- (get_local $7)
+ (get_local $3)
(get_local $0)
)
- (set_local $11
- (get_local $1)
+ (i32.store
+ (get_local $16)
+ (get_local $8)
+ )
+ (set_local $9
+ (get_local $0)
)
)
(call_import $_abort)
@@ -2193,15 +2178,15 @@
(block
(if
(i32.eq
- (get_local $12)
+ (get_local $11)
(i32.load
(tee_local $10
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $1
+ (tee_local $0
(i32.load offset=28
- (get_local $12)
+ (get_local $11)
)
)
(i32.const 2)
@@ -2213,11 +2198,11 @@
(block
(i32.store
(get_local $10)
- (get_local $11)
+ (get_local $9)
)
(if
(i32.eqz
- (get_local $11)
+ (get_local $9)
)
(block
(i32.store
@@ -2229,7 +2214,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $1)
+ (get_local $0)
)
(i32.const -1)
)
@@ -2252,35 +2237,35 @@
(if
(i32.eq
(i32.load
- (tee_local $1
+ (tee_local $0
(i32.add
(get_local $5)
(i32.const 16)
)
)
)
- (get_local $12)
+ (get_local $11)
)
(i32.store
- (get_local $1)
- (get_local $11)
+ (get_local $0)
+ (get_local $9)
)
(i32.store offset=20
(get_local $5)
- (get_local $11)
+ (get_local $9)
)
)
(br_if $do-once$25
(i32.eqz
- (get_local $11)
+ (get_local $9)
)
)
)
)
(if
(i32.lt_u
- (get_local $11)
- (tee_local $1
+ (get_local $9)
+ (tee_local $0
(i32.load
(i32.const 192)
)
@@ -2289,29 +2274,29 @@
(call_import $_abort)
)
(i32.store offset=24
- (get_local $11)
+ (get_local $9)
(get_local $5)
)
(if
(tee_local $10
(i32.load offset=16
- (get_local $12)
+ (get_local $11)
)
)
(if
(i32.lt_u
(get_local $10)
- (get_local $1)
+ (get_local $0)
)
(call_import $_abort)
(block
(i32.store offset=16
- (get_local $11)
+ (get_local $9)
(get_local $10)
)
(i32.store offset=24
(get_local $10)
- (get_local $11)
+ (get_local $9)
)
)
)
@@ -2319,7 +2304,7 @@
(if
(tee_local $10
(i32.load offset=20
- (get_local $12)
+ (get_local $11)
)
)
(if
@@ -2332,12 +2317,12 @@
(call_import $_abort)
(block
(i32.store offset=20
- (get_local $11)
+ (get_local $9)
(get_local $10)
)
(i32.store offset=24
(get_local $10)
- (get_local $11)
+ (get_local $9)
)
)
)
@@ -2348,40 +2333,40 @@
(block $do-once$29
(if
(i32.ge_u
- (get_local $6)
+ (get_local $4)
(i32.const 16)
)
(block
(i32.store offset=4
- (get_local $12)
+ (get_local $11)
(i32.or
(get_local $2)
(i32.const 3)
)
)
(i32.store offset=4
- (get_local $4)
+ (get_local $7)
(i32.or
- (get_local $6)
+ (get_local $4)
(i32.const 1)
)
)
(i32.store
(i32.add
+ (get_local $7)
(get_local $4)
- (get_local $6)
)
- (get_local $6)
+ (get_local $4)
)
(set_local $5
(i32.shr_u
- (get_local $6)
+ (get_local $4)
(i32.const 3)
)
)
(if
(i32.lt_u
- (get_local $6)
+ (get_local $4)
(i32.const 256)
)
(block
@@ -2399,12 +2384,12 @@
)
(if
(i32.and
- (tee_local $1
+ (tee_local $0
(i32.load
(i32.const 176)
)
)
- (tee_local $0
+ (tee_local $8
(i32.shl
(i32.const 1)
(get_local $5)
@@ -2413,7 +2398,7 @@
)
(if
(i32.lt_u
- (tee_local $7
+ (tee_local $16
(i32.load
(tee_local $5
(i32.add
@@ -2433,7 +2418,7 @@
(get_local $5)
)
(set_local $26
- (get_local $7)
+ (get_local $16)
)
)
)
@@ -2441,8 +2426,8 @@
(i32.store
(i32.const 176)
(i32.or
- (get_local $1)
(get_local $0)
+ (get_local $8)
)
)
(set_local $14
@@ -2458,18 +2443,18 @@
)
(i32.store
(get_local $14)
- (get_local $4)
+ (get_local $7)
)
(i32.store offset=12
(get_local $26)
- (get_local $4)
+ (get_local $7)
)
(i32.store offset=8
- (get_local $4)
+ (get_local $7)
(get_local $26)
)
(i32.store offset=12
- (get_local $4)
+ (get_local $7)
(get_local $10)
)
(br $do-once$29)
@@ -2479,24 +2464,24 @@
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $8
+ (tee_local $3
(if
(tee_local $10
(i32.shr_u
- (get_local $6)
+ (get_local $4)
(i32.const 8)
)
)
(if
(i32.gt_u
- (get_local $6)
+ (get_local $4)
(i32.const 16777215)
)
(i32.const 31)
(i32.or
(i32.and
(i32.shr_u
- (get_local $6)
+ (get_local $4)
(i32.add
(tee_local $5
(i32.add
@@ -2508,10 +2493,10 @@
(i32.and
(i32.shr_u
(i32.add
- (tee_local $1
+ (tee_local $0
(i32.shl
(get_local $10)
- (tee_local $0
+ (tee_local $8
(i32.and
(i32.shr_u
(i32.add
@@ -2532,15 +2517,15 @@
(i32.const 4)
)
)
- (get_local $0)
+ (get_local $8)
)
- (tee_local $1
+ (tee_local $0
(i32.and
(i32.shr_u
(i32.add
- (tee_local $7
+ (tee_local $16
(i32.shl
- (get_local $1)
+ (get_local $0)
(get_local $10)
)
)
@@ -2555,8 +2540,8 @@
)
(i32.shr_u
(i32.shl
- (get_local $7)
- (get_local $1)
+ (get_local $16)
+ (get_local $0)
)
(i32.const 15)
)
@@ -2581,34 +2566,34 @@
)
)
(i32.store offset=28
- (get_local $4)
- (get_local $8)
+ (get_local $7)
+ (get_local $3)
)
(i32.store offset=4
- (tee_local $1
+ (tee_local $0
(i32.add
- (get_local $4)
+ (get_local $7)
(i32.const 16)
)
)
(i32.const 0)
)
(i32.store
- (get_local $1)
+ (get_local $0)
(i32.const 0)
)
(if
(i32.eqz
(i32.and
- (tee_local $1
+ (tee_local $0
(i32.load
(i32.const 180)
)
)
- (tee_local $7
+ (tee_local $16
(i32.shl
(i32.const 1)
- (get_local $8)
+ (get_local $3)
)
)
)
@@ -2617,49 +2602,49 @@
(i32.store
(i32.const 180)
(i32.or
- (get_local $1)
- (get_local $7)
+ (get_local $0)
+ (get_local $16)
)
)
(i32.store
(get_local $5)
- (get_local $4)
+ (get_local $7)
)
(i32.store offset=24
- (get_local $4)
+ (get_local $7)
(get_local $5)
)
(i32.store offset=12
- (get_local $4)
- (get_local $4)
+ (get_local $7)
+ (get_local $7)
)
(i32.store offset=8
- (get_local $4)
- (get_local $4)
+ (get_local $7)
+ (get_local $7)
)
(br $do-once$29)
)
)
- (set_local $7
+ (set_local $16
(i32.shl
- (get_local $6)
+ (get_local $4)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (get_local $8)
+ (get_local $3)
(i32.const 1)
)
)
(i32.eq
- (get_local $8)
+ (get_local $3)
(i32.const 31)
)
)
)
)
- (set_local $1
+ (set_local $0
(i32.load
(get_local $5)
)
@@ -2670,34 +2655,34 @@
(i32.eq
(i32.and
(i32.load offset=4
- (get_local $1)
+ (get_local $0)
)
(i32.const -8)
)
- (get_local $6)
+ (get_local $4)
)
(block
(set_local $15
- (get_local $1)
+ (get_local $0)
)
- (set_local $9
+ (set_local $6
(i32.const 148)
)
(br $while-out$31)
)
)
(if
- (tee_local $0
+ (tee_local $8
(i32.load
(tee_local $5
(i32.add
(i32.add
- (get_local $1)
+ (get_local $0)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (get_local $7)
+ (get_local $16)
(i32.const 31)
)
(i32.const 2)
@@ -2707,35 +2692,34 @@
)
)
(block
- (set_local $7
+ (set_local $16
(i32.shl
- (get_local $7)
+ (get_local $16)
(i32.const 1)
)
)
- (set_local $1
- (get_local $0)
+ (set_local $0
+ (get_local $8)
)
+ (br $while-in$32)
)
(block
(set_local $23
(get_local $5)
)
(set_local $21
- (get_local $1)
+ (get_local $0)
)
- (set_local $9
+ (set_local $6
(i32.const 145)
)
- (br $while-out$31)
)
)
- (br $while-in$32)
)
)
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 145)
)
(if
@@ -2749,33 +2733,33 @@
(block
(i32.store
(get_local $23)
- (get_local $4)
+ (get_local $7)
)
(i32.store offset=24
- (get_local $4)
+ (get_local $7)
(get_local $21)
)
(i32.store offset=12
- (get_local $4)
- (get_local $4)
+ (get_local $7)
+ (get_local $7)
)
(i32.store offset=8
- (get_local $4)
- (get_local $4)
+ (get_local $7)
+ (get_local $7)
)
)
)
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 148)
)
(if
(i32.and
(i32.ge_u
- (tee_local $7
+ (tee_local $16
(i32.load
- (tee_local $1
+ (tee_local $0
(i32.add
(get_local $15)
(i32.const 8)
@@ -2783,7 +2767,7 @@
)
)
)
- (tee_local $0
+ (tee_local $8
(i32.load
(i32.const 192)
)
@@ -2791,28 +2775,28 @@
)
(i32.ge_u
(get_local $15)
- (get_local $0)
+ (get_local $8)
)
)
(block
(i32.store offset=12
+ (get_local $16)
(get_local $7)
- (get_local $4)
)
(i32.store
- (get_local $1)
- (get_local $4)
- )
- (i32.store offset=8
- (get_local $4)
+ (get_local $0)
(get_local $7)
)
+ (i32.store offset=8
+ (get_local $7)
+ (get_local $16)
+ )
(i32.store offset=12
- (get_local $4)
+ (get_local $7)
(get_local $15)
)
(i32.store offset=24
- (get_local $4)
+ (get_local $7)
(i32.const 0)
)
)
@@ -2823,11 +2807,11 @@
)
(block
(i32.store offset=4
- (get_local $12)
+ (get_local $11)
(i32.or
- (tee_local $7
+ (tee_local $16
(i32.add
- (get_local $6)
+ (get_local $4)
(get_local $2)
)
)
@@ -2835,18 +2819,18 @@
)
)
(i32.store
- (tee_local $1
+ (tee_local $0
(i32.add
(i32.add
- (get_local $12)
- (get_local $7)
+ (get_local $11)
+ (get_local $16)
)
(i32.const 4)
)
)
(i32.or
(i32.load
- (get_local $1)
+ (get_local $0)
)
(i32.const 1)
)
@@ -2856,22 +2840,22 @@
)
(return
(i32.add
- (get_local $12)
+ (get_local $11)
(i32.const 8)
)
)
)
- (set_local $0
+ (set_local $8
(get_local $2)
)
)
)
- (set_local $0
+ (set_local $8
(get_local $2)
)
)
)
- (set_local $0
+ (set_local $8
(i32.const -1)
)
)
@@ -2879,12 +2863,12 @@
)
(if
(i32.ge_u
- (tee_local $12
+ (tee_local $11
(i32.load
(i32.const 184)
)
)
- (get_local $0)
+ (get_local $8)
)
(block
(set_local $15
@@ -2894,10 +2878,10 @@
)
(if
(i32.gt_u
- (tee_local $6
+ (tee_local $4
(i32.sub
- (get_local $12)
- (get_local $0)
+ (get_local $11)
+ (get_local $8)
)
)
(i32.const 15)
@@ -2908,32 +2892,32 @@
(tee_local $21
(i32.add
(get_local $15)
- (get_local $0)
+ (get_local $8)
)
)
)
(i32.store
(i32.const 184)
- (get_local $6)
+ (get_local $4)
)
(i32.store offset=4
(get_local $21)
(i32.or
- (get_local $6)
+ (get_local $4)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $21)
- (get_local $6)
+ (get_local $4)
)
- (get_local $6)
+ (get_local $4)
)
(i32.store offset=4
(get_local $15)
(i32.or
- (get_local $0)
+ (get_local $8)
(i32.const 3)
)
)
@@ -2950,23 +2934,23 @@
(i32.store offset=4
(get_local $15)
(i32.or
- (get_local $12)
+ (get_local $11)
(i32.const 3)
)
)
(i32.store
- (tee_local $6
+ (tee_local $4
(i32.add
(i32.add
(get_local $15)
- (get_local $12)
+ (get_local $11)
)
(i32.const 4)
)
)
(i32.or
(i32.load
- (get_local $6)
+ (get_local $4)
)
(i32.const 1)
)
@@ -2988,42 +2972,42 @@
(i32.const 188)
)
)
- (get_local $0)
+ (get_local $8)
)
(block
(i32.store
(i32.const 188)
- (tee_local $6
+ (tee_local $4
(i32.sub
(get_local $15)
- (get_local $0)
+ (get_local $8)
)
)
)
(i32.store
(i32.const 200)
- (tee_local $12
+ (tee_local $11
(i32.add
(tee_local $15
(i32.load
(i32.const 200)
)
)
- (get_local $0)
+ (get_local $8)
)
)
)
(i32.store offset=4
- (get_local $12)
+ (get_local $11)
(i32.or
- (get_local $6)
+ (get_local $4)
(i32.const 1)
)
)
(i32.store offset=4
(get_local $15)
(i32.or
- (get_local $0)
+ (get_local $8)
(i32.const 3)
)
)
@@ -3096,24 +3080,24 @@
)
(set_local $15
(i32.add
- (get_local $0)
+ (get_local $8)
(i32.const 48)
)
)
(if
(i32.le_u
- (tee_local $6
+ (tee_local $4
(i32.and
(tee_local $21
(i32.add
- (tee_local $6
+ (tee_local $4
(i32.load
(i32.const 656)
)
)
- (tee_local $12
+ (tee_local $11
(i32.add
- (get_local $0)
+ (get_local $8)
(i32.const 47)
)
)
@@ -3122,12 +3106,12 @@
(tee_local $23
(i32.sub
(i32.const 0)
- (get_local $6)
+ (get_local $4)
)
)
)
)
- (get_local $0)
+ (get_local $8)
)
(return
(i32.const 0)
@@ -3136,7 +3120,7 @@
(if
(if
(i32.ne
- (tee_local $8
+ (tee_local $3
(i32.load
(i32.const 616)
)
@@ -3152,14 +3136,14 @@
(i32.const 608)
)
)
- (get_local $6)
+ (get_local $4)
)
)
(get_local $26)
)
(i32.gt_u
(get_local $14)
- (get_local $8)
+ (get_local $3)
)
)
(i32.const 0)
@@ -3173,12 +3157,12 @@
(if
(select
(i32.lt_u
- (get_local $6)
+ (get_local $4)
(i32.const 2147483647)
)
(i32.const 0)
(i32.eq
- (tee_local $9
+ (tee_local $6
(block $label$break$L257
(if
(i32.and
@@ -3191,7 +3175,7 @@
(block
(block $label$break$L259
(if
- (tee_local $8
+ (tee_local $3
(i32.load
(i32.const 200)
)
@@ -3210,13 +3194,13 @@
(get_local $14)
)
)
- (get_local $8)
+ (get_local $3)
)
(i32.gt_u
(i32.add
(get_local $26)
(i32.load
- (tee_local $11
+ (tee_local $9
(i32.add
(get_local $14)
(i32.const 4)
@@ -3224,7 +3208,7 @@
)
)
)
- (get_local $8)
+ (get_local $3)
)
(i32.const 0)
)
@@ -3232,28 +3216,23 @@
(set_local $5
(get_local $14)
)
- (set_local $7
- (get_local $11)
+ (set_local $13
+ (get_local $9)
)
(br $while-out$37)
)
)
- (if
- (i32.eqz
- (tee_local $14
- (i32.load offset=8
- (get_local $14)
- )
+ (br_if $while-in$38
+ (tee_local $14
+ (i32.load offset=8
+ (get_local $14)
)
)
- (block
- (set_local $9
- (i32.const 173)
- )
- (br $label$break$L259)
- )
)
- (br $while-in$38)
+ (set_local $6
+ (i32.const 173)
+ )
+ (br $label$break$L259)
)
)
(if
@@ -3273,7 +3252,7 @@
)
(if
(i32.eq
- (tee_local $11
+ (tee_local $9
(call_import $_sbrk
(get_local $14)
)
@@ -3283,18 +3262,18 @@
(get_local $5)
)
(i32.load
- (get_local $7)
+ (get_local $13)
)
)
)
(if
(i32.ne
- (get_local $11)
+ (get_local $9)
(i32.const -1)
)
(block
(set_local $20
- (get_local $11)
+ (get_local $9)
)
(set_local $22
(get_local $14)
@@ -3305,20 +3284,20 @@
)
)
(block
- (set_local $13
- (get_local $11)
+ (set_local $12
+ (get_local $9)
)
- (set_local $17
+ (set_local $18
(get_local $14)
)
- (set_local $9
+ (set_local $6
(i32.const 183)
)
)
)
)
)
- (set_local $9
+ (set_local $6
(i32.const 173)
)
)
@@ -3327,11 +3306,11 @@
(if
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 173)
)
(i32.ne
- (tee_local $8
+ (tee_local $3
(call_import $_sbrk
(i32.const 0)
)
@@ -3341,10 +3320,10 @@
(i32.const 0)
)
(block
- (set_local $1
+ (set_local $0
(if
(i32.and
- (tee_local $11
+ (tee_local $9
(i32.add
(tee_local $14
(i32.load
@@ -3355,17 +3334,17 @@
)
)
(tee_local $2
- (get_local $8)
+ (get_local $3)
)
)
(i32.add
(i32.sub
- (get_local $6)
+ (get_local $4)
(get_local $2)
)
(i32.and
(i32.add
- (get_local $11)
+ (get_local $9)
(get_local $2)
)
(i32.sub
@@ -3374,7 +3353,7 @@
)
)
)
- (get_local $6)
+ (get_local $4)
)
)
(set_local $2
@@ -3384,17 +3363,17 @@
(i32.const 608)
)
)
- (get_local $1)
+ (get_local $0)
)
)
(if
(i32.and
(i32.gt_u
- (get_local $1)
(get_local $0)
+ (get_local $8)
)
(i32.lt_u
- (get_local $1)
+ (get_local $0)
(i32.const 2147483647)
)
)
@@ -3408,7 +3387,7 @@
)
(i32.gt_u
(get_local $2)
- (tee_local $11
+ (tee_local $9
(i32.load
(i32.const 616)
)
@@ -3417,39 +3396,39 @@
)
(i32.const 0)
(i32.ne
- (get_local $11)
+ (get_local $9)
(i32.const 0)
)
)
)
(if
(i32.eq
- (tee_local $11
+ (tee_local $9
(call_import $_sbrk
- (get_local $1)
+ (get_local $0)
)
)
- (get_local $8)
+ (get_local $3)
)
(block
(set_local $20
- (get_local $8)
+ (get_local $3)
)
(set_local $22
- (get_local $1)
+ (get_local $0)
)
(br $label$break$L257
(i32.const 193)
)
)
(block
- (set_local $13
- (get_local $11)
+ (set_local $12
+ (get_local $9)
)
- (set_local $17
- (get_local $1)
+ (set_local $18
+ (get_local $0)
)
- (set_local $9
+ (set_local $6
(i32.const 183)
)
)
@@ -3462,14 +3441,14 @@
(block $label$break$L279
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 183)
)
(block
- (set_local $11
+ (set_local $9
(i32.sub
(i32.const 0)
- (get_local $17)
+ (get_local $18)
)
)
(if
@@ -3477,15 +3456,15 @@
(i32.and
(i32.gt_u
(get_local $15)
- (get_local $17)
+ (get_local $18)
)
(i32.and
(i32.lt_u
- (get_local $17)
+ (get_local $18)
(i32.const 2147483647)
)
(i32.ne
- (get_local $13)
+ (get_local $12)
(i32.const -1)
)
)
@@ -3495,10 +3474,10 @@
(i32.and
(i32.add
(i32.sub
- (get_local $12)
- (get_local $17)
+ (get_local $11)
+ (get_local $18)
)
- (tee_local $8
+ (tee_local $3
(i32.load
(i32.const 656)
)
@@ -3506,7 +3485,7 @@
)
(i32.sub
(i32.const 0)
- (get_local $8)
+ (get_local $3)
)
)
)
@@ -3524,33 +3503,33 @@
(block
(drop
(call_import $_sbrk
- (get_local $11)
+ (get_local $9)
)
)
(br $label$break$L279)
)
- (set_local $3
+ (set_local $1
(i32.add
(get_local $2)
- (get_local $17)
+ (get_local $18)
)
)
)
- (set_local $3
- (get_local $17)
+ (set_local $1
+ (get_local $18)
)
)
(if
(i32.ne
- (get_local $13)
+ (get_local $12)
(i32.const -1)
)
(block
(set_local $20
- (get_local $13)
+ (get_local $12)
)
(set_local $22
- (get_local $3)
+ (get_local $1)
)
(br $label$break$L257
(i32.const 193)
@@ -3579,12 +3558,12 @@
)
(i32.and
(i32.lt_u
- (tee_local $3
+ (tee_local $1
(call_import $_sbrk
- (get_local $6)
+ (get_local $4)
)
)
- (tee_local $6
+ (tee_local $4
(call_import $_sbrk
(i32.const 0)
)
@@ -3592,11 +3571,11 @@
)
(i32.and
(i32.ne
- (get_local $3)
+ (get_local $1)
(i32.const -1)
)
(i32.ne
- (get_local $6)
+ (get_local $4)
(i32.const -1)
)
)
@@ -3604,14 +3583,14 @@
(i32.const 0)
)
(i32.gt_u
- (tee_local $13
+ (tee_local $12
(i32.sub
- (get_local $6)
- (get_local $3)
+ (get_local $4)
+ (get_local $1)
)
)
(i32.add
- (get_local $0)
+ (get_local $8)
(i32.const 40)
)
)
@@ -3619,25 +3598,25 @@
)
(block
(set_local $20
- (get_local $3)
+ (get_local $1)
)
(set_local $22
- (get_local $13)
+ (get_local $12)
)
- (set_local $9
+ (set_local $6
(i32.const 193)
)
)
)
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 193)
)
(block
(i32.store
(i32.const 608)
- (tee_local $13
+ (tee_local $12
(i32.add
(i32.load
(i32.const 608)
@@ -3648,25 +3627,25 @@
)
(if
(i32.gt_u
- (get_local $13)
+ (get_local $12)
(i32.load
(i32.const 612)
)
)
(i32.store
(i32.const 612)
- (get_local $13)
+ (get_local $12)
)
)
(block $do-once$44
(if
- (tee_local $13
+ (tee_local $12
(i32.load
(i32.const 200)
)
)
(block
- (set_local $3
+ (set_local $1
(i32.const 624)
)
(loop $do-in$47
@@ -3675,16 +3654,16 @@
(i32.eq
(get_local $20)
(i32.add
- (tee_local $6
+ (tee_local $4
(i32.load
- (get_local $3)
+ (get_local $1)
)
)
- (tee_local $12
+ (tee_local $11
(i32.load
- (tee_local $17
+ (tee_local $18
(i32.add
- (get_local $3)
+ (get_local $1)
(i32.const 4)
)
)
@@ -3693,19 +3672,19 @@
)
)
(block
+ (set_local $46
+ (get_local $4)
+ )
(set_local $47
- (get_local $6)
+ (get_local $18)
)
(set_local $48
- (get_local $17)
+ (get_local $11)
)
(set_local $49
- (get_local $12)
+ (get_local $1)
)
- (set_local $50
- (get_local $3)
- )
- (set_local $9
+ (set_local $6
(i32.const 203)
)
(br $do-out$46)
@@ -3713,9 +3692,9 @@
)
(br_if $do-in$47
(i32.ne
- (tee_local $3
+ (tee_local $1
(i32.load offset=8
- (get_local $3)
+ (get_local $1)
)
)
(i32.const 0)
@@ -3727,74 +3706,70 @@
(select
(i32.and
(i32.lt_u
- (get_local $13)
+ (get_local $12)
(get_local $20)
)
(i32.ge_u
- (get_local $13)
- (get_local $47)
+ (get_local $12)
+ (get_local $46)
)
)
(i32.const 0)
(select
- (i32.eq
+ (i32.eqz
(i32.and
(i32.load offset=12
- (get_local $50)
+ (get_local $49)
)
(i32.const 8)
)
- (i32.const 0)
)
(i32.const 0)
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 203)
)
)
)
(block
(i32.store
- (get_local $48)
+ (get_local $47)
(i32.add
- (get_local $49)
+ (get_local $48)
(get_local $22)
)
)
- (set_local $3
+ (set_local $1
(i32.add
- (get_local $13)
- (tee_local $12
+ (get_local $12)
+ (tee_local $11
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
- (tee_local $3
+ (tee_local $1
(i32.add
- (get_local $13)
+ (get_local $12)
(i32.const 8)
)
)
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $3)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $1)
+ (i32.const 7)
)
)
)
)
)
- (set_local $17
+ (set_local $18
(i32.add
(i32.sub
(get_local $22)
- (get_local $12)
+ (get_local $11)
)
(i32.load
(i32.const 188)
@@ -3803,23 +3778,23 @@
)
(i32.store
(i32.const 200)
- (get_local $3)
+ (get_local $1)
)
(i32.store
(i32.const 188)
- (get_local $17)
+ (get_local $18)
)
(i32.store offset=4
- (get_local $3)
+ (get_local $1)
(i32.or
- (get_local $17)
+ (get_local $18)
(i32.const 1)
)
)
(i32.store offset=4
(i32.add
- (get_local $3)
- (get_local $17)
+ (get_local $1)
+ (get_local $18)
)
(i32.const 40)
)
@@ -3832,11 +3807,11 @@
(br $do-once$44)
)
)
- (set_local $4
+ (set_local $17
(if
(i32.lt_u
(get_local $20)
- (tee_local $17
+ (tee_local $18
(i32.load
(i32.const 192)
)
@@ -3849,16 +3824,16 @@
)
(get_local $20)
)
- (get_local $17)
+ (get_local $18)
)
)
- (set_local $17
+ (set_local $18
(i32.add
(get_local $20)
(get_local $22)
)
)
- (set_local $3
+ (set_local $1
(i32.const 624)
)
(loop $while-in$49
@@ -3866,50 +3841,44 @@
(if
(i32.eq
(i32.load
- (get_local $3)
+ (get_local $1)
)
- (get_local $17)
+ (get_local $18)
)
(block
- (set_local $51
- (get_local $3)
+ (set_local $50
+ (get_local $1)
)
- (set_local $41
- (get_local $3)
+ (set_local $40
+ (get_local $1)
)
- (set_local $9
+ (set_local $6
(i32.const 211)
)
(br $while-out$48)
)
)
- (if
- (i32.eqz
- (tee_local $3
- (i32.load offset=8
- (get_local $3)
- )
+ (br_if $while-in$49
+ (tee_local $1
+ (i32.load offset=8
+ (get_local $1)
)
)
- (block
- (set_local $28
- (i32.const 624)
- )
- (br $while-out$48)
- )
)
- (br $while-in$49)
+ (set_local $28
+ (i32.const 624)
+ )
)
)
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 211)
)
(if
(i32.and
(i32.load offset=12
- (get_local $41)
+ (get_local $40)
)
(i32.const 8)
)
@@ -3918,32 +3887,31 @@
)
(block
(i32.store
- (get_local $51)
+ (get_local $50)
(get_local $20)
)
(i32.store
- (tee_local $3
+ (tee_local $1
(i32.add
- (get_local $41)
+ (get_local $40)
(i32.const 4)
)
)
(i32.add
(i32.load
- (get_local $3)
+ (get_local $1)
)
(get_local $22)
)
)
- (set_local $12
+ (set_local $11
(i32.add
(get_local $20)
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
- (tee_local $3
+ (tee_local $1
(i32.add
(get_local $20)
(i32.const 8)
@@ -3952,75 +3920,70 @@
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $3)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $1)
+ (i32.const 7)
)
)
)
)
- (set_local $6
+ (set_local $4
(i32.add
- (get_local $17)
+ (get_local $18)
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
- (tee_local $3
+ (tee_local $1
(i32.add
- (get_local $17)
+ (get_local $18)
(i32.const 8)
)
)
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $3)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $1)
+ (i32.const 7)
)
)
)
)
- (set_local $3
+ (set_local $1
(i32.add
- (get_local $12)
- (get_local $0)
+ (get_local $11)
+ (get_local $8)
)
)
(set_local $15
(i32.sub
(i32.sub
- (get_local $6)
- (get_local $12)
+ (get_local $4)
+ (get_local $11)
)
- (get_local $0)
+ (get_local $8)
)
)
(i32.store offset=4
- (get_local $12)
+ (get_local $11)
(i32.or
- (get_local $0)
+ (get_local $8)
(i32.const 3)
)
)
(block $do-once$50
(if
(i32.ne
- (get_local $6)
- (get_local $13)
+ (get_local $4)
+ (get_local $12)
)
(block
(if
(i32.eq
- (get_local $6)
+ (get_local $4)
(i32.load
(i32.const 196)
)
@@ -4028,7 +3991,7 @@
(block
(i32.store
(i32.const 184)
- (tee_local $1
+ (tee_local $0
(i32.add
(i32.load
(i32.const 184)
@@ -4039,21 +4002,21 @@
)
(i32.store
(i32.const 196)
- (get_local $3)
+ (get_local $1)
)
(i32.store offset=4
- (get_local $3)
+ (get_local $1)
(i32.or
- (get_local $1)
+ (get_local $0)
(i32.const 1)
)
)
(i32.store
(i32.add
- (get_local $3)
(get_local $1)
+ (get_local $0)
)
- (get_local $1)
+ (get_local $0)
)
(br $do-once$50)
)
@@ -4064,9 +4027,9 @@
(if
(i32.eq
(i32.and
- (tee_local $1
+ (tee_local $0
(i32.load offset=4
- (get_local $6)
+ (get_local $4)
)
)
(i32.const 3)
@@ -4074,28 +4037,28 @@
(i32.const 1)
)
(block
- (set_local $7
+ (set_local $13
(i32.and
- (get_local $1)
+ (get_local $0)
(i32.const -8)
)
)
(set_local $5
(i32.shr_u
- (get_local $1)
+ (get_local $0)
(i32.const 3)
)
)
(block $label$break$L331
(if
(i32.ge_u
- (get_local $1)
+ (get_local $0)
(i32.const 256)
)
(block
(set_local $23
(i32.load offset=24
- (get_local $6)
+ (get_local $4)
)
)
(block $do-once$53
@@ -4103,20 +4066,20 @@
(i32.eq
(tee_local $21
(i32.load offset=12
- (get_local $6)
+ (get_local $4)
)
)
- (get_local $6)
+ (get_local $4)
)
(block
(if
- (tee_local $8
+ (tee_local $3
(i32.load
(tee_local $2
(i32.add
- (tee_local $11
+ (tee_local $9
(i32.add
- (get_local $6)
+ (get_local $4)
(i32.const 16)
)
)
@@ -4127,9 +4090,9 @@
)
(block
(set_local $14
- (get_local $8)
+ (get_local $3)
)
- (set_local $11
+ (set_local $9
(get_local $2)
)
)
@@ -4137,7 +4100,7 @@
(i32.eqz
(tee_local $14
(i32.load
- (get_local $11)
+ (get_local $9)
)
)
)
@@ -4150,61 +4113,58 @@
)
)
(loop $while-in$56
- (block $while-out$55
- (if
- (tee_local $8
- (i32.load
- (tee_local $2
- (i32.add
- (get_local $14)
- (i32.const 20)
- )
+ (if
+ (tee_local $3
+ (i32.load
+ (tee_local $2
+ (i32.add
+ (get_local $14)
+ (i32.const 20)
)
)
)
- (block
- (set_local $14
- (get_local $8)
- )
- (set_local $11
- (get_local $2)
- )
- (br $while-in$56)
- )
)
- (if
- (tee_local $8
- (i32.load
- (tee_local $2
- (i32.add
- (get_local $14)
- (i32.const 16)
- )
+ (block
+ (set_local $14
+ (get_local $3)
+ )
+ (set_local $9
+ (get_local $2)
+ )
+ (br $while-in$56)
+ )
+ )
+ (if
+ (tee_local $3
+ (i32.load
+ (tee_local $2
+ (i32.add
+ (get_local $14)
+ (i32.const 16)
)
)
)
- (block
- (set_local $14
- (get_local $8)
- )
- (set_local $11
- (get_local $2)
- )
- )
- (br $while-out$55)
)
- (br $while-in$56)
+ (block
+ (set_local $14
+ (get_local $3)
+ )
+ (set_local $9
+ (get_local $2)
+ )
+ (br $while-in$56)
+ )
)
)
(if
(i32.lt_u
- (get_local $11)
- (get_local $4)
+ (get_local $9)
+ (get_local $17)
)
(call_import $_abort)
(block
(i32.store
- (get_local $11)
+ (get_local $9)
(i32.const 0)
)
(set_local $24
@@ -4218,7 +4178,21 @@
(i32.lt_u
(tee_local $2
(i32.load offset=8
- (get_local $6)
+ (get_local $4)
+ )
+ )
+ (get_local $17)
+ )
+ (call_import $_abort)
+ )
+ (if
+ (i32.ne
+ (i32.load
+ (tee_local $3
+ (i32.add
+ (get_local $2)
+ (i32.const 12)
+ )
)
)
(get_local $4)
@@ -4226,38 +4200,24 @@
(call_import $_abort)
)
(if
- (i32.ne
- (i32.load
- (tee_local $8
- (i32.add
- (get_local $2)
- (i32.const 12)
- )
- )
- )
- (get_local $6)
- )
- (call_import $_abort)
- )
- (if
(i32.eq
(i32.load
- (tee_local $11
+ (tee_local $9
(i32.add
(get_local $21)
(i32.const 8)
)
)
)
- (get_local $6)
+ (get_local $4)
)
(block
(i32.store
- (get_local $8)
+ (get_local $3)
(get_local $21)
)
(i32.store
- (get_local $11)
+ (get_local $9)
(get_local $2)
)
(set_local $24
@@ -4277,7 +4237,7 @@
(block $do-once$57
(if
(i32.ne
- (get_local $6)
+ (get_local $4)
(i32.load
(tee_local $2
(i32.add
@@ -4285,7 +4245,7 @@
(i32.shl
(tee_local $21
(i32.load offset=28
- (get_local $6)
+ (get_local $4)
)
)
(i32.const 2)
@@ -4307,17 +4267,17 @@
(if
(i32.eq
(i32.load
- (tee_local $11
+ (tee_local $9
(i32.add
(get_local $23)
(i32.const 16)
)
)
)
- (get_local $6)
+ (get_local $4)
)
(i32.store
- (get_local $11)
+ (get_local $9)
(get_local $24)
)
(i32.store offset=20
@@ -4374,11 +4334,11 @@
(get_local $23)
)
(if
- (tee_local $11
+ (tee_local $9
(i32.load
(tee_local $2
(i32.add
- (get_local $6)
+ (get_local $4)
(i32.const 16)
)
)
@@ -4386,17 +4346,17 @@
)
(if
(i32.lt_u
- (get_local $11)
+ (get_local $9)
(get_local $21)
)
(call_import $_abort)
(block
(i32.store offset=16
(get_local $24)
- (get_local $11)
+ (get_local $9)
)
(i32.store offset=24
- (get_local $11)
+ (get_local $9)
(get_local $24)
)
)
@@ -4404,7 +4364,7 @@
)
(br_if $label$break$L331
(i32.eqz
- (tee_local $11
+ (tee_local $9
(i32.load offset=4
(get_local $2)
)
@@ -4413,7 +4373,7 @@
)
(if
(i32.lt_u
- (get_local $11)
+ (get_local $9)
(i32.load
(i32.const 192)
)
@@ -4422,10 +4382,10 @@
(block
(i32.store offset=20
(get_local $24)
- (get_local $11)
+ (get_local $9)
)
(i32.store offset=24
- (get_local $11)
+ (get_local $9)
(get_local $24)
)
)
@@ -4434,15 +4394,15 @@
(block
(set_local $21
(i32.load offset=12
- (get_local $6)
+ (get_local $4)
)
)
(block $do-once$61
(if
(i32.ne
- (tee_local $11
+ (tee_local $9
(i32.load offset=8
- (get_local $6)
+ (get_local $4)
)
)
(tee_local $23
@@ -4461,17 +4421,17 @@
(block
(if
(i32.lt_u
- (get_local $11)
- (get_local $4)
+ (get_local $9)
+ (get_local $17)
)
(call_import $_abort)
)
(br_if $do-once$61
(i32.eq
(i32.load offset=12
- (get_local $11)
+ (get_local $9)
)
- (get_local $6)
+ (get_local $4)
)
)
(call_import $_abort)
@@ -4481,7 +4441,7 @@
(if
(i32.eq
(get_local $21)
- (get_local $11)
+ (get_local $9)
)
(block
(i32.store
@@ -4508,7 +4468,7 @@
(get_local $21)
(get_local $23)
)
- (set_local $42
+ (set_local $41
(i32.add
(get_local $21)
(i32.const 8)
@@ -4518,7 +4478,7 @@
(if
(i32.lt_u
(get_local $21)
- (get_local $4)
+ (get_local $17)
)
(call_import $_abort)
)
@@ -4532,10 +4492,10 @@
)
)
)
- (get_local $6)
+ (get_local $4)
)
(block
- (set_local $42
+ (set_local $41
(get_local $2)
)
(br $do-once$63)
@@ -4546,28 +4506,28 @@
)
)
(i32.store offset=12
- (get_local $11)
+ (get_local $9)
(get_local $21)
)
(i32.store
- (get_local $42)
- (get_local $11)
+ (get_local $41)
+ (get_local $9)
)
)
)
)
(set_local $15
(i32.add
- (get_local $7)
+ (get_local $13)
(get_local $15)
)
)
(i32.add
- (get_local $6)
- (get_local $7)
+ (get_local $4)
+ (get_local $13)
)
)
- (get_local $6)
+ (get_local $4)
)
(i32.const 4)
)
@@ -4580,7 +4540,7 @@
)
)
(i32.store offset=4
- (get_local $3)
+ (get_local $1)
(i32.or
(get_local $15)
(i32.const 1)
@@ -4588,7 +4548,7 @@
)
(i32.store
(i32.add
- (get_local $3)
+ (get_local $1)
(get_local $15)
)
(get_local $15)
@@ -4605,7 +4565,7 @@
(i32.const 256)
)
(block
- (set_local $1
+ (set_local $0
(i32.add
(i32.const 216)
(i32.shl
@@ -4635,11 +4595,11 @@
(block
(if
(i32.ge_u
- (tee_local $8
+ (tee_local $3
(i32.load
(tee_local $5
(i32.add
- (get_local $1)
+ (get_local $0)
(i32.const 8)
)
)
@@ -4650,11 +4610,11 @@
)
)
(block
- (set_local $43
+ (set_local $42
(get_local $5)
)
- (set_local $35
- (get_local $8)
+ (set_local $34
+ (get_local $3)
)
(br $do-once$65)
)
@@ -4669,33 +4629,33 @@
(get_local $2)
)
)
- (set_local $43
+ (set_local $42
(i32.add
- (get_local $1)
+ (get_local $0)
(i32.const 8)
)
)
- (set_local $35
- (get_local $1)
+ (set_local $34
+ (get_local $0)
)
)
)
)
(i32.store
- (get_local $43)
- (get_local $3)
+ (get_local $42)
+ (get_local $1)
)
(i32.store offset=12
- (get_local $35)
- (get_local $3)
+ (get_local $34)
+ (get_local $1)
)
(i32.store offset=8
- (get_local $3)
- (get_local $35)
+ (get_local $1)
+ (get_local $34)
)
(i32.store offset=12
- (get_local $3)
(get_local $1)
+ (get_local $0)
)
(br $do-once$50)
)
@@ -4704,7 +4664,7 @@
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $0
+ (tee_local $3
(block $do-once$67
(if
(tee_local $2
@@ -4732,11 +4692,11 @@
(i32.const 14)
(i32.or
(i32.or
- (tee_local $8
+ (tee_local $3
(i32.and
(i32.shr_u
(i32.add
- (tee_local $7
+ (tee_local $13
(i32.shl
(get_local $2)
(tee_local $23
@@ -4762,14 +4722,14 @@
)
(get_local $23)
)
- (tee_local $7
+ (tee_local $13
(i32.and
(i32.shr_u
(i32.add
(tee_local $5
(i32.shl
- (get_local $7)
- (get_local $8)
+ (get_local $13)
+ (get_local $3)
)
)
(i32.const 245760)
@@ -4784,7 +4744,7 @@
(i32.shr_u
(i32.shl
(get_local $5)
- (get_local $7)
+ (get_local $13)
)
(i32.const 15)
)
@@ -4810,26 +4770,26 @@
)
)
(i32.store offset=28
+ (get_local $1)
(get_local $3)
- (get_local $0)
)
(i32.store offset=4
- (tee_local $1
+ (tee_local $0
(i32.add
- (get_local $3)
+ (get_local $1)
(i32.const 16)
)
)
(i32.const 0)
)
(i32.store
- (get_local $1)
+ (get_local $0)
(i32.const 0)
)
(if
(i32.eqz
(i32.and
- (tee_local $1
+ (tee_local $0
(i32.load
(i32.const 180)
)
@@ -4837,7 +4797,7 @@
(tee_local $14
(i32.shl
(i32.const 1)
- (get_local $0)
+ (get_local $3)
)
)
)
@@ -4846,25 +4806,25 @@
(i32.store
(i32.const 180)
(i32.or
- (get_local $1)
+ (get_local $0)
(get_local $14)
)
)
(i32.store
(get_local $2)
- (get_local $3)
+ (get_local $1)
)
(i32.store offset=24
- (get_local $3)
+ (get_local $1)
(get_local $2)
)
(i32.store offset=12
- (get_local $3)
- (get_local $3)
+ (get_local $1)
+ (get_local $1)
)
(i32.store offset=8
- (get_local $3)
- (get_local $3)
+ (get_local $1)
+ (get_local $1)
)
(br $do-once$50)
)
@@ -4877,18 +4837,18 @@
(i32.sub
(i32.const 25)
(i32.shr_u
- (get_local $0)
+ (get_local $3)
(i32.const 1)
)
)
(i32.eq
- (get_local $0)
+ (get_local $3)
(i32.const 31)
)
)
)
)
- (set_local $1
+ (set_local $0
(i32.load
(get_local $2)
)
@@ -4899,29 +4859,29 @@
(i32.eq
(i32.and
(i32.load offset=4
- (get_local $1)
+ (get_local $0)
)
(i32.const -8)
)
(get_local $15)
)
(block
- (set_local $36
- (get_local $1)
+ (set_local $35
+ (get_local $0)
)
- (set_local $9
+ (set_local $6
(i32.const 281)
)
(br $while-out$69)
)
)
(if
- (tee_local $7
+ (tee_local $13
(i32.load
(tee_local $2
(i32.add
(i32.add
- (get_local $1)
+ (get_local $0)
(i32.const 16)
)
(i32.shl
@@ -4942,34 +4902,33 @@
(i32.const 1)
)
)
- (set_local $1
- (get_local $7)
+ (set_local $0
+ (get_local $13)
)
+ (br $while-in$70)
)
(block
- (set_local $44
+ (set_local $43
(get_local $2)
)
- (set_local $52
- (get_local $1)
+ (set_local $51
+ (get_local $0)
)
- (set_local $9
+ (set_local $6
(i32.const 278)
)
- (br $while-out$69)
)
)
- (br $while-in$70)
)
)
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 278)
)
(if
(i32.lt_u
- (get_local $44)
+ (get_local $43)
(i32.load
(i32.const 192)
)
@@ -4977,26 +4936,26 @@
(call_import $_abort)
(block
(i32.store
- (get_local $44)
- (get_local $3)
+ (get_local $43)
+ (get_local $1)
)
(i32.store offset=24
- (get_local $3)
- (get_local $52)
+ (get_local $1)
+ (get_local $51)
)
(i32.store offset=12
- (get_local $3)
- (get_local $3)
+ (get_local $1)
+ (get_local $1)
)
(i32.store offset=8
- (get_local $3)
- (get_local $3)
+ (get_local $1)
+ (get_local $1)
)
)
)
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 281)
)
(if
@@ -5004,44 +4963,44 @@
(i32.ge_u
(tee_local $14
(i32.load
- (tee_local $1
+ (tee_local $0
(i32.add
- (get_local $36)
+ (get_local $35)
(i32.const 8)
)
)
)
)
- (tee_local $7
+ (tee_local $13
(i32.load
(i32.const 192)
)
)
)
(i32.ge_u
- (get_local $36)
- (get_local $7)
+ (get_local $35)
+ (get_local $13)
)
)
(block
(i32.store offset=12
(get_local $14)
- (get_local $3)
+ (get_local $1)
)
(i32.store
+ (get_local $0)
(get_local $1)
- (get_local $3)
)
(i32.store offset=8
- (get_local $3)
+ (get_local $1)
(get_local $14)
)
(i32.store offset=12
- (get_local $3)
- (get_local $36)
+ (get_local $1)
+ (get_local $35)
)
(i32.store offset=24
- (get_local $3)
+ (get_local $1)
(i32.const 0)
)
)
@@ -5064,10 +5023,10 @@
)
(i32.store
(i32.const 200)
- (get_local $3)
+ (get_local $1)
)
(i32.store offset=4
- (get_local $3)
+ (get_local $1)
(i32.or
(get_local $14)
(i32.const 1)
@@ -5078,7 +5037,7 @@
)
(return
(i32.add
- (get_local $12)
+ (get_local $11)
(i32.const 8)
)
)
@@ -5086,66 +5045,62 @@
)
)
(loop $while-in$72
- (block $while-out$71
+ (if
(if
- (if
- (i32.le_u
- (tee_local $3
- (i32.load
+ (i32.le_u
+ (tee_local $1
+ (i32.load
+ (get_local $28)
+ )
+ )
+ (get_local $12)
+ )
+ (i32.gt_u
+ (tee_local $15
+ (i32.add
+ (get_local $1)
+ (i32.load offset=4
(get_local $28)
)
)
- (get_local $13)
)
- (i32.gt_u
- (tee_local $15
- (i32.add
- (get_local $3)
- (i32.load offset=4
- (get_local $28)
- )
- )
- )
- (get_local $13)
- )
- (i32.const 0)
+ (get_local $12)
)
- (block
- (set_local $5
- (get_local $15)
- )
- (br $while-out$71)
- )
+ (i32.const 0)
)
- (set_local $28
- (i32.load offset=8
- (get_local $28)
- )
+ (set_local $0
+ (get_local $15)
)
- (br $while-in$72)
+ (block
+ (set_local $28
+ (i32.load offset=8
+ (get_local $28)
+ )
+ )
+ (br $while-in$72)
+ )
)
)
(set_local $15
(i32.add
- (tee_local $12
+ (tee_local $11
(i32.add
- (get_local $5)
+ (get_local $0)
(i32.const -47)
)
)
(i32.const 8)
)
)
- (set_local $3
+ (set_local $1
(i32.add
- (tee_local $12
+ (tee_local $11
(select
- (get_local $13)
- (tee_local $3
+ (get_local $12)
+ (tee_local $1
(i32.add
- (get_local $12)
+ (get_local $11)
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
@@ -5153,21 +5108,19 @@
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $15)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $15)
+ (i32.const 7)
)
)
)
)
(i32.lt_u
- (get_local $3)
+ (get_local $1)
(tee_local $15
(i32.add
- (get_local $13)
+ (get_local $12)
(i32.const 16)
)
)
@@ -5179,16 +5132,15 @@
)
(i32.store
(i32.const 200)
- (tee_local $6
+ (tee_local $4
(i32.add
(get_local $20)
- (tee_local $17
+ (tee_local $18
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
- (tee_local $6
+ (tee_local $4
(i32.add
(get_local $20)
(i32.const 8)
@@ -5197,12 +5149,10 @@
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $6)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $4)
+ (i32.const 7)
)
)
)
@@ -5217,12 +5167,12 @@
(get_local $22)
(i32.const -40)
)
- (get_local $17)
+ (get_local $18)
)
)
)
(i32.store offset=4
- (get_local $6)
+ (get_local $4)
(i32.or
(get_local $14)
(i32.const 1)
@@ -5230,7 +5180,7 @@
)
(i32.store offset=4
(i32.add
- (get_local $6)
+ (get_local $4)
(get_local $14)
)
(i32.const 40)
@@ -5244,32 +5194,32 @@
(i32.store
(tee_local $14
(i32.add
- (get_local $12)
+ (get_local $11)
(i32.const 4)
)
)
(i32.const 27)
)
(i32.store
- (get_local $3)
+ (get_local $1)
(i32.load
(i32.const 624)
)
)
(i32.store offset=4
- (get_local $3)
+ (get_local $1)
(i32.load
(i32.const 628)
)
)
(i32.store offset=8
- (get_local $3)
+ (get_local $1)
(i32.load
(i32.const 632)
)
)
(i32.store offset=12
- (get_local $3)
+ (get_local $1)
(i32.load
(i32.const 636)
)
@@ -5288,19 +5238,19 @@
)
(i32.store
(i32.const 632)
- (get_local $3)
+ (get_local $1)
)
- (set_local $3
+ (set_local $1
(i32.add
- (get_local $12)
+ (get_local $11)
(i32.const 24)
)
)
(loop $do-in$74
(i32.store
- (tee_local $3
+ (tee_local $1
(i32.add
- (get_local $3)
+ (get_local $1)
(i32.const 4)
)
)
@@ -5309,17 +5259,17 @@
(br_if $do-in$74
(i32.lt_u
(i32.add
- (get_local $3)
+ (get_local $1)
(i32.const 4)
)
- (get_local $5)
+ (get_local $0)
)
)
)
(if
(i32.ne
+ (get_local $11)
(get_local $12)
- (get_local $13)
)
(block
(i32.store
@@ -5332,39 +5282,39 @@
)
)
(i32.store offset=4
- (get_local $13)
+ (get_local $12)
(i32.or
- (tee_local $3
+ (tee_local $1
(i32.sub
+ (get_local $11)
(get_local $12)
- (get_local $13)
)
)
(i32.const 1)
)
)
(i32.store
- (get_local $12)
- (get_local $3)
+ (get_local $11)
+ (get_local $1)
)
- (set_local $6
+ (set_local $4
(i32.shr_u
- (get_local $3)
+ (get_local $1)
(i32.const 3)
)
)
(if
(i32.lt_u
- (get_local $3)
+ (get_local $1)
(i32.const 256)
)
(block
- (set_local $17
+ (set_local $18
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (get_local $6)
+ (get_local $4)
(i32.const 1)
)
(i32.const 2)
@@ -5373,15 +5323,15 @@
)
(if
(i32.and
- (tee_local $1
+ (tee_local $0
(i32.load
(i32.const 176)
)
)
- (tee_local $7
+ (tee_local $13
(i32.shl
(i32.const 1)
- (get_local $6)
+ (get_local $4)
)
)
)
@@ -5389,9 +5339,9 @@
(i32.lt_u
(tee_local $2
(i32.load
- (tee_local $6
+ (tee_local $4
(i32.add
- (get_local $17)
+ (get_local $18)
(i32.const 8)
)
)
@@ -5403,10 +5353,10 @@
)
(call_import $_abort)
(block
- (set_local $45
- (get_local $6)
+ (set_local $44
+ (get_local $4)
)
- (set_local $37
+ (set_local $36
(get_local $2)
)
)
@@ -5415,81 +5365,81 @@
(i32.store
(i32.const 176)
(i32.or
- (get_local $1)
- (get_local $7)
+ (get_local $0)
+ (get_local $13)
)
)
- (set_local $45
+ (set_local $44
(i32.add
- (get_local $17)
+ (get_local $18)
(i32.const 8)
)
)
- (set_local $37
- (get_local $17)
+ (set_local $36
+ (get_local $18)
)
)
)
(i32.store
- (get_local $45)
- (get_local $13)
+ (get_local $44)
+ (get_local $12)
)
(i32.store offset=12
- (get_local $37)
- (get_local $13)
+ (get_local $36)
+ (get_local $12)
)
(i32.store offset=8
- (get_local $13)
- (get_local $37)
+ (get_local $12)
+ (get_local $36)
)
(i32.store offset=12
- (get_local $13)
- (get_local $17)
+ (get_local $12)
+ (get_local $18)
)
(br $do-once$44)
)
)
- (set_local $6
+ (set_local $4
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $5
+ (tee_local $3
(if
- (tee_local $17
+ (tee_local $18
(i32.shr_u
- (get_local $3)
+ (get_local $1)
(i32.const 8)
)
)
(if
(i32.gt_u
- (get_local $3)
+ (get_local $1)
(i32.const 16777215)
)
(i32.const 31)
(i32.or
(i32.and
(i32.shr_u
- (get_local $3)
+ (get_local $1)
(i32.add
- (tee_local $6
+ (tee_local $4
(i32.add
(i32.sub
(i32.const 14)
(i32.or
(i32.or
- (tee_local $17
+ (tee_local $18
(i32.and
(i32.shr_u
(i32.add
- (tee_local $1
+ (tee_local $0
(i32.shl
- (get_local $17)
- (tee_local $7
+ (get_local $18)
+ (tee_local $13
(i32.and
(i32.shr_u
(i32.add
- (get_local $17)
+ (get_local $18)
(i32.const 1048320)
)
(i32.const 16)
@@ -5506,16 +5456,16 @@
(i32.const 4)
)
)
- (get_local $7)
+ (get_local $13)
)
- (tee_local $1
+ (tee_local $0
(i32.and
(i32.shr_u
(i32.add
(tee_local $2
(i32.shl
- (get_local $1)
- (get_local $17)
+ (get_local $0)
+ (get_local $18)
)
)
(i32.const 245760)
@@ -5530,7 +5480,7 @@
(i32.shr_u
(i32.shl
(get_local $2)
- (get_local $1)
+ (get_local $0)
)
(i32.const 15)
)
@@ -5542,7 +5492,7 @@
(i32.const 1)
)
(i32.shl
- (get_local $6)
+ (get_local $4)
(i32.const 1)
)
)
@@ -5555,11 +5505,11 @@
)
)
(i32.store offset=28
- (get_local $13)
- (get_local $5)
+ (get_local $12)
+ (get_local $3)
)
(i32.store offset=20
- (get_local $13)
+ (get_local $12)
(i32.const 0)
)
(i32.store
@@ -5569,7 +5519,7 @@
(if
(i32.eqz
(i32.and
- (tee_local $1
+ (tee_local $0
(i32.load
(i32.const 180)
)
@@ -5577,7 +5527,7 @@
(tee_local $2
(i32.shl
(i32.const 1)
- (get_local $5)
+ (get_local $3)
)
)
)
@@ -5586,51 +5536,51 @@
(i32.store
(i32.const 180)
(i32.or
- (get_local $1)
+ (get_local $0)
(get_local $2)
)
)
(i32.store
- (get_local $6)
- (get_local $13)
+ (get_local $4)
+ (get_local $12)
)
(i32.store offset=24
- (get_local $13)
- (get_local $6)
+ (get_local $12)
+ (get_local $4)
)
(i32.store offset=12
- (get_local $13)
- (get_local $13)
+ (get_local $12)
+ (get_local $12)
)
(i32.store offset=8
- (get_local $13)
- (get_local $13)
+ (get_local $12)
+ (get_local $12)
)
(br $do-once$44)
)
)
(set_local $2
(i32.shl
- (get_local $3)
+ (get_local $1)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (get_local $5)
+ (get_local $3)
(i32.const 1)
)
)
(i32.eq
- (get_local $5)
+ (get_local $3)
(i32.const 31)
)
)
)
)
- (set_local $1
+ (set_local $0
(i32.load
- (get_local $6)
+ (get_local $4)
)
)
(loop $while-in$76
@@ -5639,29 +5589,29 @@
(i32.eq
(i32.and
(i32.load offset=4
- (get_local $1)
+ (get_local $0)
)
(i32.const -8)
)
- (get_local $3)
+ (get_local $1)
)
(block
- (set_local $38
- (get_local $1)
+ (set_local $37
+ (get_local $0)
)
- (set_local $9
+ (set_local $6
(i32.const 307)
)
(br $while-out$75)
)
)
(if
- (tee_local $7
+ (tee_local $13
(i32.load
- (tee_local $6
+ (tee_local $4
(i32.add
(i32.add
- (get_local $1)
+ (get_local $0)
(i32.const 16)
)
(i32.shl
@@ -5682,34 +5632,33 @@
(i32.const 1)
)
)
- (set_local $1
- (get_local $7)
+ (set_local $0
+ (get_local $13)
)
+ (br $while-in$76)
)
(block
- (set_local $46
- (get_local $6)
+ (set_local $45
+ (get_local $4)
)
- (set_local $53
- (get_local $1)
+ (set_local $52
+ (get_local $0)
)
- (set_local $9
+ (set_local $6
(i32.const 304)
)
- (br $while-out$75)
)
)
- (br $while-in$76)
)
)
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 304)
)
(if
(i32.lt_u
- (get_local $46)
+ (get_local $45)
(i32.load
(i32.const 192)
)
@@ -5717,26 +5666,26 @@
(call_import $_abort)
(block
(i32.store
- (get_local $46)
- (get_local $13)
+ (get_local $45)
+ (get_local $12)
)
(i32.store offset=24
- (get_local $13)
- (get_local $53)
+ (get_local $12)
+ (get_local $52)
)
(i32.store offset=12
- (get_local $13)
- (get_local $13)
+ (get_local $12)
+ (get_local $12)
)
(i32.store offset=8
- (get_local $13)
- (get_local $13)
+ (get_local $12)
+ (get_local $12)
)
)
)
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 307)
)
(if
@@ -5744,44 +5693,44 @@
(i32.ge_u
(tee_local $2
(i32.load
- (tee_local $1
+ (tee_local $0
(i32.add
- (get_local $38)
+ (get_local $37)
(i32.const 8)
)
)
)
)
- (tee_local $3
+ (tee_local $1
(i32.load
(i32.const 192)
)
)
)
(i32.ge_u
- (get_local $38)
- (get_local $3)
+ (get_local $37)
+ (get_local $1)
)
)
(block
(i32.store offset=12
(get_local $2)
- (get_local $13)
+ (get_local $12)
)
(i32.store
- (get_local $1)
- (get_local $13)
+ (get_local $0)
+ (get_local $12)
)
(i32.store offset=8
- (get_local $13)
+ (get_local $12)
(get_local $2)
)
(i32.store offset=12
- (get_local $13)
- (get_local $38)
+ (get_local $12)
+ (get_local $37)
)
(i32.store offset=24
- (get_local $13)
+ (get_local $12)
(i32.const 0)
)
)
@@ -5795,13 +5744,12 @@
(block
(if
(i32.or
- (i32.eq
+ (i32.eqz
(tee_local $2
(i32.load
(i32.const 192)
)
)
- (i32.const 0)
)
(i32.lt_u
(get_local $20)
@@ -5840,7 +5788,7 @@
)
(loop $do-in$78
(i32.store offset=12
- (tee_local $1
+ (tee_local $0
(i32.add
(i32.const 216)
(i32.shl
@@ -5852,11 +5800,11 @@
)
)
)
- (get_local $1)
+ (get_local $0)
)
(i32.store offset=8
- (get_local $1)
- (get_local $1)
+ (get_local $0)
+ (get_local $0)
)
(br_if $do-in$78
(i32.ne
@@ -5875,9 +5823,8 @@
(tee_local $2
(i32.add
(get_local $20)
- (tee_local $1
+ (tee_local $0
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
@@ -5890,12 +5837,10 @@
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $2)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $2)
+ (i32.const 7)
)
)
)
@@ -5904,27 +5849,27 @@
)
(i32.store
(i32.const 188)
- (tee_local $3
+ (tee_local $1
(i32.sub
(i32.add
(get_local $22)
(i32.const -40)
)
- (get_local $1)
+ (get_local $0)
)
)
)
(i32.store offset=4
(get_local $2)
(i32.or
- (get_local $3)
+ (get_local $1)
(i32.const 1)
)
)
(i32.store offset=4
(i32.add
(get_local $2)
- (get_local $3)
+ (get_local $1)
)
(i32.const 40)
)
@@ -5944,7 +5889,7 @@
(i32.const 188)
)
)
- (get_local $0)
+ (get_local $8)
)
(block
(i32.store
@@ -5952,25 +5897,25 @@
(tee_local $20
(i32.sub
(get_local $22)
- (get_local $0)
+ (get_local $8)
)
)
)
(i32.store
(i32.const 200)
- (tee_local $13
+ (tee_local $12
(i32.add
(tee_local $22
(i32.load
(i32.const 200)
)
)
- (get_local $0)
+ (get_local $8)
)
)
)
(i32.store offset=4
- (get_local $13)
+ (get_local $12)
(i32.or
(get_local $20)
(i32.const 1)
@@ -5979,7 +5924,7 @@
(i32.store offset=4
(get_local $22)
(i32.or
- (get_local $0)
+ (get_local $8)
(i32.const 3)
)
)
@@ -6045,7 +5990,7 @@
(i32.eq
(tee_local $0
(i32.and
- (tee_local $9
+ (tee_local $3
(i32.load
(i32.add
(get_local $0)
@@ -6063,9 +6008,9 @@
(set_local $8
(i32.add
(get_local $1)
- (tee_local $3
+ (tee_local $4
(i32.and
- (get_local $9)
+ (get_local $3)
(i32.const -8)
)
)
@@ -6074,7 +6019,7 @@
(block $do-once$0
(if
(i32.and
- (get_local $9)
+ (get_local $3)
(i32.const 1)
)
(block
@@ -6082,11 +6027,11 @@
(get_local $1)
)
(set_local $7
- (get_local $3)
+ (get_local $4)
)
)
(block
- (set_local $9
+ (set_local $11
(i32.load
(get_local $1)
)
@@ -6097,10 +6042,10 @@
)
(return)
)
- (set_local $3
+ (set_local $4
(i32.add
- (get_local $9)
- (get_local $3)
+ (get_local $11)
+ (get_local $4)
)
)
(if
@@ -6110,7 +6055,7 @@
(get_local $1)
(i32.sub
(i32.const 0)
- (get_local $9)
+ (get_local $11)
)
)
)
@@ -6129,7 +6074,7 @@
(if
(i32.ne
(i32.and
- (tee_local $5
+ (tee_local $6
(i32.load
(tee_local $1
(i32.add
@@ -6148,48 +6093,48 @@
(get_local $0)
)
(set_local $7
- (get_local $3)
+ (get_local $4)
)
(br $do-once$0)
)
)
(i32.store
(i32.const 184)
- (get_local $3)
+ (get_local $4)
)
(i32.store
(get_local $1)
(i32.and
- (get_local $5)
+ (get_local $6)
(i32.const -2)
)
)
(i32.store offset=4
(get_local $0)
(i32.or
- (get_local $3)
+ (get_local $4)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $0)
- (get_local $3)
+ (get_local $4)
)
- (get_local $3)
+ (get_local $4)
)
(return)
)
)
- (set_local $5
+ (set_local $6
(i32.shr_u
- (get_local $9)
+ (get_local $11)
(i32.const 3)
)
)
(if
(i32.lt_u
- (get_local $9)
+ (get_local $11)
(i32.const 256)
)
(block
@@ -6200,17 +6145,17 @@
)
(if
(i32.ne
- (tee_local $9
+ (tee_local $11
(i32.load offset=8
(get_local $0)
)
)
- (tee_local $6
+ (tee_local $3
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (get_local $5)
+ (get_local $6)
(i32.const 1)
)
(i32.const 2)
@@ -6221,7 +6166,7 @@
(block
(if
(i32.lt_u
- (get_local $9)
+ (get_local $11)
(get_local $14)
)
(call_import $_abort)
@@ -6229,7 +6174,7 @@
(if
(i32.ne
(i32.load offset=12
- (get_local $9)
+ (get_local $11)
)
(get_local $0)
)
@@ -6240,7 +6185,7 @@
(if
(i32.eq
(get_local $1)
- (get_local $9)
+ (get_local $11)
)
(block
(i32.store
@@ -6252,7 +6197,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $5)
+ (get_local $6)
)
(i32.const -1)
)
@@ -6262,7 +6207,7 @@
(get_local $0)
)
(set_local $7
- (get_local $3)
+ (get_local $4)
)
(br $do-once$0)
)
@@ -6270,7 +6215,7 @@
(if
(i32.ne
(get_local $1)
- (get_local $6)
+ (get_local $3)
)
(block
(if
@@ -6283,7 +6228,7 @@
(if
(i32.eq
(i32.load
- (tee_local $6
+ (tee_local $3
(i32.add
(get_local $1)
(i32.const 8)
@@ -6292,13 +6237,13 @@
)
(get_local $0)
)
- (set_local $11
- (get_local $6)
+ (set_local $10
+ (get_local $3)
)
(call_import $_abort)
)
)
- (set_local $11
+ (set_local $10
(i32.add
(get_local $1)
(i32.const 8)
@@ -6306,23 +6251,23 @@
)
)
(i32.store offset=12
- (get_local $9)
+ (get_local $11)
(get_local $1)
)
(i32.store
+ (get_local $10)
(get_local $11)
- (get_local $9)
)
(set_local $2
(get_local $0)
)
(set_local $7
- (get_local $3)
+ (get_local $4)
)
(br $do-once$0)
)
)
- (set_local $9
+ (set_local $11
(i32.load offset=24
(get_local $0)
)
@@ -6339,11 +6284,11 @@
)
(block
(if
- (tee_local $11
+ (tee_local $10
(i32.load
- (tee_local $5
+ (tee_local $6
(i32.add
- (tee_local $6
+ (tee_local $3
(i32.add
(get_local $0)
(i32.const 16)
@@ -6356,22 +6301,22 @@
)
(block
(set_local $1
- (get_local $11)
+ (get_local $10)
)
- (set_local $6
- (get_local $5)
+ (set_local $3
+ (get_local $6)
)
)
(if
(i32.eqz
(tee_local $1
(i32.load
- (get_local $6)
+ (get_local $3)
)
)
)
(block
- (set_local $4
+ (set_local $5
(i32.const 0)
)
(br $do-once$2)
@@ -6379,73 +6324,70 @@
)
)
(loop $while-in$5
- (block $while-out$4
- (if
- (tee_local $11
- (i32.load
- (tee_local $5
- (i32.add
- (get_local $1)
- (i32.const 20)
- )
+ (if
+ (tee_local $10
+ (i32.load
+ (tee_local $6
+ (i32.add
+ (get_local $1)
+ (i32.const 20)
)
)
)
- (block
- (set_local $1
- (get_local $11)
- )
- (set_local $6
- (get_local $5)
- )
- (br $while-in$5)
- )
)
- (if
- (tee_local $11
- (i32.load
- (tee_local $5
- (i32.add
- (get_local $1)
- (i32.const 16)
- )
+ (block
+ (set_local $1
+ (get_local $10)
+ )
+ (set_local $3
+ (get_local $6)
+ )
+ (br $while-in$5)
+ )
+ )
+ (if
+ (tee_local $10
+ (i32.load
+ (tee_local $6
+ (i32.add
+ (get_local $1)
+ (i32.const 16)
)
)
)
- (block
- (set_local $1
- (get_local $11)
- )
- (set_local $6
- (get_local $5)
- )
+ )
+ (block
+ (set_local $1
+ (get_local $10)
)
- (block
- (set_local $5
- (get_local $1)
- )
- (set_local $10
- (get_local $6)
- )
- (br $while-out$4)
+ (set_local $3
+ (get_local $6)
+ )
+ (br $while-in$5)
+ )
+ (block
+ (set_local $6
+ (get_local $1)
+ )
+ (set_local $9
+ (get_local $3)
)
)
- (br $while-in$5)
)
)
(if
(i32.lt_u
- (get_local $10)
+ (get_local $9)
(get_local $14)
)
(call_import $_abort)
(block
(i32.store
- (get_local $10)
+ (get_local $9)
(i32.const 0)
)
- (set_local $4
- (get_local $5)
+ (set_local $5
+ (get_local $6)
)
)
)
@@ -6453,7 +6395,7 @@
(block
(if
(i32.lt_u
- (tee_local $5
+ (tee_local $6
(i32.load offset=8
(get_local $0)
)
@@ -6465,9 +6407,9 @@
(if
(i32.ne
(i32.load
- (tee_local $11
+ (tee_local $10
(i32.add
- (get_local $5)
+ (get_local $6)
(i32.const 12)
)
)
@@ -6479,7 +6421,7 @@
(if
(i32.eq
(i32.load
- (tee_local $6
+ (tee_local $3
(i32.add
(get_local $1)
(i32.const 8)
@@ -6490,14 +6432,14 @@
)
(block
(i32.store
- (get_local $11)
+ (get_local $10)
(get_local $1)
)
(i32.store
+ (get_local $3)
(get_local $6)
- (get_local $5)
)
- (set_local $4
+ (set_local $5
(get_local $1)
)
)
@@ -6507,13 +6449,13 @@
)
)
(if
- (get_local $9)
+ (get_local $11)
(block
(if
(i32.eq
(get_local $0)
(i32.load
- (tee_local $5
+ (tee_local $6
(i32.add
(i32.const 480)
(i32.shl
@@ -6530,12 +6472,12 @@
)
(block
(i32.store
+ (get_local $6)
(get_local $5)
- (get_local $4)
)
(if
(i32.eqz
- (get_local $4)
+ (get_local $5)
)
(block
(i32.store
@@ -6557,7 +6499,7 @@
(get_local $0)
)
(set_local $7
- (get_local $3)
+ (get_local $4)
)
(br $do-once$0)
)
@@ -6566,7 +6508,7 @@
(block
(if
(i32.lt_u
- (get_local $9)
+ (get_local $11)
(i32.load
(i32.const 192)
)
@@ -6578,7 +6520,7 @@
(i32.load
(tee_local $1
(i32.add
- (get_local $9)
+ (get_local $11)
(i32.const 16)
)
)
@@ -6587,23 +6529,23 @@
)
(i32.store
(get_local $1)
- (get_local $4)
+ (get_local $5)
)
(i32.store offset=20
- (get_local $9)
- (get_local $4)
+ (get_local $11)
+ (get_local $5)
)
)
(if
(i32.eqz
- (get_local $4)
+ (get_local $5)
)
(block
(set_local $2
(get_local $0)
)
(set_local $7
- (get_local $3)
+ (get_local $4)
)
(br $do-once$0)
)
@@ -6612,7 +6554,7 @@
)
(if
(i32.lt_u
- (get_local $4)
+ (get_local $5)
(tee_local $1
(i32.load
(i32.const 192)
@@ -6622,13 +6564,13 @@
(call_import $_abort)
)
(i32.store offset=24
- (get_local $4)
- (get_local $9)
+ (get_local $5)
+ (get_local $11)
)
(if
- (tee_local $6
+ (tee_local $3
(i32.load
- (tee_local $5
+ (tee_local $6
(i32.add
(get_local $0)
(i32.const 16)
@@ -6638,31 +6580,31 @@
)
(if
(i32.lt_u
- (get_local $6)
+ (get_local $3)
(get_local $1)
)
(call_import $_abort)
(block
(i32.store offset=16
- (get_local $4)
- (get_local $6)
+ (get_local $5)
+ (get_local $3)
)
(i32.store offset=24
- (get_local $6)
- (get_local $4)
+ (get_local $3)
+ (get_local $5)
)
)
)
)
(if
- (tee_local $6
+ (tee_local $3
(i32.load offset=4
- (get_local $5)
+ (get_local $6)
)
)
(if
(i32.lt_u
- (get_local $6)
+ (get_local $3)
(i32.load
(i32.const 192)
)
@@ -6670,18 +6612,18 @@
(call_import $_abort)
(block
(i32.store offset=20
- (get_local $4)
- (get_local $6)
+ (get_local $5)
+ (get_local $3)
)
(i32.store offset=24
- (get_local $6)
- (get_local $4)
+ (get_local $3)
+ (get_local $5)
)
(set_local $2
(get_local $0)
)
(set_local $7
- (get_local $3)
+ (get_local $4)
)
)
)
@@ -6690,7 +6632,7 @@
(get_local $0)
)
(set_local $7
- (get_local $3)
+ (get_local $4)
)
)
)
@@ -6700,7 +6642,7 @@
(get_local $0)
)
(set_local $7
- (get_local $3)
+ (get_local $4)
)
)
)
@@ -6719,7 +6661,7 @@
(i32.and
(tee_local $1
(i32.load
- (tee_local $3
+ (tee_local $4
(i32.add
(get_local $8)
(i32.const 4)
@@ -6739,7 +6681,7 @@
)
(block
(i32.store
- (get_local $3)
+ (get_local $4)
(i32.and
(get_local $1)
(i32.const -2)
@@ -6774,7 +6716,7 @@
(block
(i32.store
(i32.const 188)
- (tee_local $4
+ (tee_local $5
(i32.add
(i32.load
(i32.const 188)
@@ -6790,7 +6732,7 @@
(i32.store offset=4
(get_local $2)
(i32.or
- (get_local $4)
+ (get_local $5)
(i32.const 1)
)
)
@@ -6824,7 +6766,7 @@
(block
(i32.store
(i32.const 184)
- (tee_local $4
+ (tee_local $5
(i32.add
(i32.load
(i32.const 184)
@@ -6840,21 +6782,21 @@
(i32.store offset=4
(get_local $2)
(i32.or
- (get_local $4)
+ (get_local $5)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $2)
- (get_local $4)
+ (get_local $5)
)
- (get_local $4)
+ (get_local $5)
)
(return)
)
)
- (set_local $4
+ (set_local $5
(i32.add
(i32.and
(get_local $1)
@@ -6876,7 +6818,7 @@
(i32.const 256)
)
(block
- (set_local $5
+ (set_local $6
(i32.load offset=24
(get_local $8)
)
@@ -6884,7 +6826,7 @@
(block $do-once$10
(if
(i32.eq
- (tee_local $10
+ (tee_local $9
(i32.load offset=12
(get_local $8)
)
@@ -6893,11 +6835,11 @@
)
(block
(if
- (tee_local $11
+ (tee_local $10
(i32.load
(tee_local $1
(i32.add
- (tee_local $6
+ (tee_local $3
(i32.add
(get_local $8)
(i32.const 16)
@@ -6910,9 +6852,9 @@
)
(block
(set_local $0
- (get_local $11)
+ (get_local $10)
)
- (set_local $6
+ (set_local $3
(get_local $1)
)
)
@@ -6920,7 +6862,7 @@
(i32.eqz
(tee_local $0
(i32.load
- (get_local $6)
+ (get_local $3)
)
)
)
@@ -6933,55 +6875,52 @@
)
)
(loop $while-in$13
- (block $while-out$12
- (if
- (tee_local $11
- (i32.load
- (tee_local $1
- (i32.add
- (get_local $0)
- (i32.const 20)
- )
+ (if
+ (tee_local $10
+ (i32.load
+ (tee_local $1
+ (i32.add
+ (get_local $0)
+ (i32.const 20)
)
)
)
- (block
- (set_local $0
- (get_local $11)
- )
- (set_local $6
- (get_local $1)
- )
- (br $while-in$13)
- )
)
- (if
- (tee_local $11
- (i32.load
- (tee_local $1
- (i32.add
- (get_local $0)
- (i32.const 16)
- )
+ (block
+ (set_local $0
+ (get_local $10)
+ )
+ (set_local $3
+ (get_local $1)
+ )
+ (br $while-in$13)
+ )
+ )
+ (if
+ (tee_local $10
+ (i32.load
+ (tee_local $1
+ (i32.add
+ (get_local $0)
+ (i32.const 16)
)
)
)
- (block
- (set_local $0
- (get_local $11)
- )
- (set_local $6
- (get_local $1)
- )
- )
- (br $while-out$12)
)
- (br $while-in$13)
+ (block
+ (set_local $0
+ (get_local $10)
+ )
+ (set_local $3
+ (get_local $1)
+ )
+ (br $while-in$13)
+ )
)
)
(if
(i32.lt_u
- (get_local $6)
+ (get_local $3)
(i32.load
(i32.const 192)
)
@@ -6989,7 +6928,7 @@
(call_import $_abort)
(block
(i32.store
- (get_local $6)
+ (get_local $3)
(i32.const 0)
)
(set_local $12
@@ -7015,7 +6954,7 @@
(if
(i32.ne
(i32.load
- (tee_local $11
+ (tee_local $10
(i32.add
(get_local $1)
(i32.const 12)
@@ -7029,9 +6968,9 @@
(if
(i32.eq
(i32.load
- (tee_local $6
+ (tee_local $3
(i32.add
- (get_local $10)
+ (get_local $9)
(i32.const 8)
)
)
@@ -7040,15 +6979,15 @@
)
(block
(i32.store
- (get_local $11)
(get_local $10)
+ (get_local $9)
)
(i32.store
- (get_local $6)
+ (get_local $3)
(get_local $1)
)
(set_local $12
- (get_local $10)
+ (get_local $9)
)
)
(call_import $_abort)
@@ -7057,17 +6996,17 @@
)
)
(if
- (get_local $5)
+ (get_local $6)
(block
(if
(i32.eq
(get_local $8)
(i32.load
- (tee_local $3
+ (tee_local $4
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $10
+ (tee_local $9
(i32.load offset=28
(get_local $8)
)
@@ -7080,7 +7019,7 @@
)
(block
(i32.store
- (get_local $3)
+ (get_local $4)
(get_local $12)
)
(if
@@ -7097,7 +7036,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $10)
+ (get_local $9)
)
(i32.const -1)
)
@@ -7110,7 +7049,7 @@
(block
(if
(i32.lt_u
- (get_local $5)
+ (get_local $6)
(i32.load
(i32.const 192)
)
@@ -7120,9 +7059,9 @@
(if
(i32.eq
(i32.load
- (tee_local $10
+ (tee_local $9
(i32.add
- (get_local $5)
+ (get_local $6)
(i32.const 16)
)
)
@@ -7130,11 +7069,11 @@
(get_local $8)
)
(i32.store
- (get_local $10)
+ (get_local $9)
(get_local $12)
)
(i32.store offset=20
- (get_local $5)
+ (get_local $6)
(get_local $12)
)
)
@@ -7148,7 +7087,7 @@
(if
(i32.lt_u
(get_local $12)
- (tee_local $10
+ (tee_local $9
(i32.load
(i32.const 192)
)
@@ -7158,12 +7097,12 @@
)
(i32.store offset=24
(get_local $12)
- (get_local $5)
+ (get_local $6)
)
(if
(tee_local $0
(i32.load
- (tee_local $3
+ (tee_local $4
(i32.add
(get_local $8)
(i32.const 16)
@@ -7174,7 +7113,7 @@
(if
(i32.lt_u
(get_local $0)
- (get_local $10)
+ (get_local $9)
)
(call_import $_abort)
(block
@@ -7192,7 +7131,7 @@
(if
(tee_local $0
(i32.load offset=4
- (get_local $3)
+ (get_local $4)
)
)
(if
@@ -7219,7 +7158,7 @@
)
)
(block
- (set_local $10
+ (set_local $9
(i32.load offset=12
(get_local $8)
)
@@ -7231,7 +7170,7 @@
(get_local $8)
)
)
- (tee_local $5
+ (tee_local $6
(i32.add
(i32.const 216)
(i32.shl
@@ -7267,7 +7206,7 @@
)
(if
(i32.eq
- (get_local $10)
+ (get_local $9)
(get_local $0)
)
(block
@@ -7291,13 +7230,13 @@
)
(if
(i32.ne
- (get_local $10)
- (get_local $5)
+ (get_local $9)
+ (get_local $6)
)
(block
(if
(i32.lt_u
- (get_local $10)
+ (get_local $9)
(i32.load
(i32.const 192)
)
@@ -7307,9 +7246,9 @@
(if
(i32.eq
(i32.load
- (tee_local $5
+ (tee_local $6
(i32.add
- (get_local $10)
+ (get_local $9)
(i32.const 8)
)
)
@@ -7317,21 +7256,21 @@
(get_local $8)
)
(set_local $16
- (get_local $5)
+ (get_local $6)
)
(call_import $_abort)
)
)
(set_local $16
(i32.add
- (get_local $10)
+ (get_local $9)
(i32.const 8)
)
)
)
(i32.store offset=12
(get_local $0)
- (get_local $10)
+ (get_local $9)
)
(i32.store
(get_local $16)
@@ -7343,16 +7282,16 @@
(i32.store offset=4
(get_local $2)
(i32.or
- (get_local $4)
+ (get_local $5)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $2)
- (get_local $4)
+ (get_local $5)
)
- (get_local $4)
+ (get_local $5)
)
(if
(i32.eq
@@ -7364,12 +7303,12 @@
(block
(i32.store
(i32.const 184)
- (get_local $4)
+ (get_local $5)
)
(return)
)
(set_local $0
- (get_local $4)
+ (get_local $5)
)
)
)
@@ -7400,12 +7339,12 @@
)
(if
(i32.and
- (tee_local $3
+ (tee_local $4
(i32.load
(i32.const 176)
)
)
- (tee_local $4
+ (tee_local $5
(i32.shl
(i32.const 1)
(get_local $7)
@@ -7442,8 +7381,8 @@
(i32.store
(i32.const 176)
(i32.or
- (get_local $3)
(get_local $4)
+ (get_local $5)
)
)
(set_local $15
@@ -7476,11 +7415,11 @@
(return)
)
)
- (set_local $3
+ (set_local $4
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $1
+ (tee_local $7
(if
(tee_local $1
(i32.shr_u
@@ -7499,7 +7438,7 @@
(i32.shr_u
(get_local $0)
(i32.add
- (tee_local $3
+ (tee_local $4
(i32.add
(i32.sub
(i32.const 14)
@@ -7539,7 +7478,7 @@
(i32.and
(i32.shr_u
(i32.add
- (tee_local $4
+ (tee_local $5
(i32.shl
(get_local $15)
(get_local $1)
@@ -7556,7 +7495,7 @@
)
(i32.shr_u
(i32.shl
- (get_local $4)
+ (get_local $5)
(get_local $15)
)
(i32.const 15)
@@ -7569,7 +7508,7 @@
(i32.const 1)
)
(i32.shl
- (get_local $3)
+ (get_local $4)
(i32.const 1)
)
)
@@ -7583,7 +7522,7 @@
)
(i32.store offset=28
(get_local $2)
- (get_local $1)
+ (get_local $7)
)
(i32.store offset=20
(get_local $2)
@@ -7600,10 +7539,10 @@
(i32.const 180)
)
)
- (tee_local $4
+ (tee_local $5
(i32.shl
(i32.const 1)
- (get_local $1)
+ (get_local $7)
)
)
)
@@ -7616,12 +7555,12 @@
(i32.sub
(i32.const 25)
(i32.shr_u
- (get_local $1)
+ (get_local $7)
(i32.const 1)
)
)
(i32.eq
- (get_local $1)
+ (get_local $7)
(i32.const 31)
)
)
@@ -7629,7 +7568,7 @@
)
(set_local $1
(i32.load
- (get_local $3)
+ (get_local $4)
)
)
(loop $while-in$19
@@ -7684,6 +7623,7 @@
(set_local $1
(get_local $7)
)
+ (br $while-in$19)
)
(block
(set_local $18
@@ -7695,10 +7635,8 @@
(set_local $0
(i32.const 127)
)
- (br $while-out$18)
)
)
- (br $while-in$19)
)
)
(if
@@ -7751,7 +7689,7 @@
)
)
)
- (tee_local $3
+ (tee_local $4
(i32.load
(i32.const 192)
)
@@ -7759,7 +7697,7 @@
)
(i32.ge_u
(get_local $17)
- (get_local $3)
+ (get_local $4)
)
)
(block
@@ -7794,16 +7732,16 @@
(i32.const 180)
(i32.or
(get_local $15)
- (get_local $4)
+ (get_local $5)
)
)
(i32.store
- (get_local $3)
+ (get_local $4)
(get_local $2)
)
(i32.store offset=24
(get_local $2)
- (get_local $3)
+ (get_local $4)
)
(i32.store offset=12
(get_local $2)
@@ -7834,22 +7772,21 @@
)
)
(loop $while-in$21
- (block $while-out$20
- (if
- (tee_local $2
- (i32.load
- (get_local $0)
- )
+ (if
+ (tee_local $2
+ (i32.load
+ (get_local $0)
)
+ )
+ (block
(set_local $0
(i32.add
(get_local $2)
(i32.const 8)
)
)
- (br $while-out$20)
+ (br $while-in$21)
)
- (br $while-in$21)
)
)
(i32.store
@@ -7873,8 +7810,7 @@
(local $15 i32)
(local $16 i32)
(local $17 i32)
- (local $18 i32)
- (set_local $11
+ (set_local $10
(get_global $STACKTOP)
)
(set_global $STACKTOP
@@ -7883,25 +7819,25 @@
(i32.const 48)
)
)
- (set_local $12
+ (set_local $11
(i32.add
- (get_local $11)
+ (get_local $10)
(i32.const 16)
)
)
- (set_local $13
- (get_local $11)
+ (set_local $12
+ (get_local $10)
)
(i32.store
- (tee_local $3
+ (tee_local $4
(i32.add
- (get_local $11)
+ (get_local $10)
(i32.const 32)
)
)
- (tee_local $8
+ (tee_local $7
(i32.load
- (tee_local $9
+ (tee_local $8
(i32.add
(get_local $0)
(i32.const 28)
@@ -7911,27 +7847,27 @@
)
)
(i32.store offset=4
- (get_local $3)
- (tee_local $10
+ (get_local $4)
+ (tee_local $9
(i32.sub
(i32.load
- (tee_local $14
+ (tee_local $13
(i32.add
(get_local $0)
(i32.const 20)
)
)
)
- (get_local $8)
+ (get_local $7)
)
)
)
(i32.store offset=8
- (get_local $3)
+ (get_local $4)
(get_local $1)
)
(i32.store offset=12
- (get_local $3)
+ (get_local $4)
(get_local $2)
)
(set_local $1
@@ -7940,21 +7876,21 @@
(i32.const 60)
)
)
- (set_local $8
+ (set_local $7
(i32.add
(get_local $0)
(i32.const 44)
)
)
- (set_local $4
- (get_local $3)
+ (set_local $5
+ (get_local $4)
)
- (set_local $3
+ (set_local $4
(i32.const 2)
)
- (set_local $5
+ (set_local $3
(i32.add
- (get_local $10)
+ (get_local $9)
(get_local $2)
)
)
@@ -7962,7 +7898,7 @@
(block $while-out$0
(if
(i32.eq
- (get_local $5)
+ (get_local $3)
(tee_local $6
(if
(i32.load
@@ -7974,51 +7910,51 @@
(get_local $0)
)
(i32.store
- (get_local $13)
+ (get_local $12)
(i32.load
(get_local $1)
)
)
(i32.store offset=4
- (get_local $13)
- (get_local $4)
+ (get_local $12)
+ (get_local $5)
)
(i32.store offset=8
- (get_local $13)
- (get_local $3)
+ (get_local $12)
+ (get_local $4)
)
- (set_local $10
+ (set_local $9
(call $___syscall_ret
(call_import $___syscall146
(i32.const 146)
- (get_local $13)
+ (get_local $12)
)
)
)
(call_import $_pthread_cleanup_pop
(i32.const 0)
)
- (get_local $10)
+ (get_local $9)
)
(block
(i32.store
- (get_local $12)
+ (get_local $11)
(i32.load
(get_local $1)
)
)
(i32.store offset=4
- (get_local $12)
- (get_local $4)
+ (get_local $11)
+ (get_local $5)
)
(i32.store offset=8
- (get_local $12)
- (get_local $3)
+ (get_local $11)
+ (get_local $4)
)
(call $___syscall_ret
(call_import $___syscall146
(i32.const 146)
- (get_local $12)
+ (get_local $11)
)
)
)
@@ -8038,130 +7974,125 @@
(i32.const 0)
)
(block
+ (set_local $16
+ (get_local $5)
+ )
(set_local $17
(get_local $4)
)
- (set_local $18
- (get_local $3)
- )
(set_local $1
(i32.const 8)
)
- (br $while-out$0)
)
- )
- (set_local $10
- (i32.sub
- (get_local $5)
- (get_local $6)
- )
- )
- (set_local $3
- (if
- (i32.le_u
- (get_local $6)
- (tee_local $5
- (i32.load offset=4
- (get_local $4)
- )
- )
- )
- (if
- (i32.eq
+ (block
+ (set_local $9
+ (i32.sub
(get_local $3)
- (i32.const 2)
- )
- (block
- (i32.store
- (get_local $9)
- (i32.add
- (i32.load
- (get_local $9)
- )
- (get_local $6)
- )
- )
- (set_local $7
- (get_local $4)
- )
- (set_local $15
- (i32.const 2)
- )
- (get_local $5)
- )
- (block
- (set_local $7
- (get_local $4)
- )
- (set_local $15
- (get_local $3)
- )
- (get_local $5)
+ (get_local $6)
)
)
- (block
- (i32.store
- (get_local $9)
- (tee_local $7
- (i32.load
- (get_local $8)
- )
- )
- )
- (i32.store
- (get_local $14)
- (get_local $7)
- )
- (set_local $6
- (i32.sub
+ (set_local $5
+ (if
+ (i32.le_u
(get_local $6)
- (get_local $5)
+ (tee_local $14
+ (i32.load offset=4
+ (get_local $5)
+ )
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $4)
+ (i32.const 2)
+ )
+ (block
+ (i32.store
+ (get_local $8)
+ (i32.add
+ (i32.load
+ (get_local $8)
+ )
+ (get_local $6)
+ )
+ )
+ (set_local $3
+ (get_local $5)
+ )
+ (set_local $4
+ (i32.const 2)
+ )
+ (get_local $14)
+ )
+ (block
+ (set_local $3
+ (get_local $5)
+ )
+ (get_local $14)
+ )
+ )
+ (block
+ (i32.store
+ (get_local $8)
+ (tee_local $3
+ (i32.load
+ (get_local $7)
+ )
+ )
+ )
+ (i32.store
+ (get_local $13)
+ (get_local $3)
+ )
+ (set_local $6
+ (i32.sub
+ (get_local $6)
+ (get_local $14)
+ )
+ )
+ (set_local $3
+ (i32.add
+ (get_local $5)
+ (i32.const 8)
+ )
+ )
+ (set_local $4
+ (i32.add
+ (get_local $4)
+ (i32.const -1)
+ )
+ )
+ (i32.load offset=12
+ (get_local $5)
+ )
)
)
- (set_local $7
- (i32.add
- (get_local $4)
- (i32.const 8)
- )
- )
- (set_local $15
- (i32.add
+ )
+ (i32.store
+ (get_local $3)
+ (i32.add
+ (i32.load
(get_local $3)
- (i32.const -1)
)
- )
- (i32.load offset=12
- (get_local $4)
+ (get_local $6)
)
)
- )
- )
- (i32.store
- (get_local $7)
- (i32.add
- (i32.load
- (get_local $7)
+ (i32.store offset=4
+ (get_local $3)
+ (i32.sub
+ (get_local $5)
+ (get_local $6)
+ )
)
- (get_local $6)
+ (set_local $5
+ (get_local $3)
+ )
+ (set_local $3
+ (get_local $9)
+ )
+ (br $while-in$1)
)
)
- (i32.store offset=4
- (get_local $7)
- (i32.sub
- (get_local $3)
- (get_local $6)
- )
- )
- (set_local $4
- (get_local $7)
- )
- (set_local $3
- (get_local $15)
- )
- (set_local $5
- (get_local $10)
- )
- (br $while-in$1)
)
)
(if
@@ -8173,9 +8104,9 @@
(i32.store offset=16
(get_local $0)
(i32.add
- (tee_local $5
+ (tee_local $3
(i32.load
- (get_local $8)
+ (get_local $7)
)
)
(i32.load offset=48
@@ -8184,16 +8115,16 @@
)
)
(i32.store
- (get_local $9)
- (tee_local $8
- (get_local $5)
+ (get_local $8)
+ (tee_local $7
+ (get_local $3)
)
)
(i32.store
- (get_local $14)
- (get_local $8)
+ (get_local $13)
+ (get_local $7)
)
- (set_local $16
+ (set_local $15
(get_local $2)
)
)
@@ -8208,11 +8139,11 @@
(i32.const 0)
)
(i32.store
- (get_local $9)
+ (get_local $8)
(i32.const 0)
)
(i32.store
- (get_local $14)
+ (get_local $13)
(i32.const 0)
)
(i32.store
@@ -8224,17 +8155,17 @@
(i32.const 32)
)
)
- (set_local $16
+ (set_local $15
(select
(i32.const 0)
(i32.sub
(get_local $2)
(i32.load offset=4
- (get_local $17)
+ (get_local $16)
)
)
(i32.eq
- (get_local $18)
+ (get_local $17)
(i32.const 2)
)
)
@@ -8243,9 +8174,9 @@
)
)
(set_global $STACKTOP
- (get_local $11)
+ (get_local $10)
)
- (get_local $16)
+ (get_local $15)
)
(func $___fwritex (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
@@ -8265,10 +8196,10 @@
)
)
(block
- (set_local $7
+ (set_local $6
(get_local $5)
)
- (set_local $6
+ (set_local $7
(i32.const 5)
)
)
@@ -8280,12 +8211,12 @@
(i32.const 0)
)
(block
- (set_local $7
+ (set_local $6
(i32.load
(get_local $3)
)
)
- (set_local $6
+ (set_local $7
(i32.const 5)
)
)
@@ -8294,11 +8225,11 @@
(block $label$break$L5
(if
(i32.eq
- (get_local $6)
+ (get_local $7)
(i32.const 5)
)
(block
- (set_local $6
+ (set_local $4
(tee_local $3
(i32.load
(tee_local $5
@@ -8313,7 +8244,7 @@
(if
(i32.lt_u
(i32.sub
- (get_local $7)
+ (get_local $6)
(get_local $3)
)
(get_local $1)
@@ -8338,7 +8269,7 @@
(br $label$break$L5)
)
)
- (set_local $0
+ (set_local $1
(block $label$break$L10
(if
(i32.gt_s
@@ -8352,57 +8283,48 @@
(get_local $1)
)
(loop $while-in$3
- (block $while-out$2
- (if
- (i32.eqz
- (get_local $3)
+ (if
+ (i32.eqz
+ (get_local $3)
+ )
+ (block
+ (set_local $2
+ (i32.const 0)
)
- (block
- (set_local $2
- (get_local $0)
- )
- (set_local $3
- (i32.const 0)
- )
- (br $label$break$L10
- (get_local $1)
- )
+ (br $label$break$L10
+ (get_local $1)
)
)
- (if
- (i32.eq
- (i32.load8_s
- (i32.add
- (get_local $0)
- (tee_local $7
- (i32.add
- (get_local $3)
- (i32.const -1)
- )
+ )
+ (if
+ (i32.ne
+ (i32.load8_s
+ (i32.add
+ (get_local $0)
+ (tee_local $6
+ (i32.add
+ (get_local $3)
+ (i32.const -1)
)
)
)
- (i32.const 10)
)
- (block
- (set_local $4
- (get_local $3)
- )
- (br $while-out$2)
- )
- (set_local $3
- (get_local $7)
- )
+ (i32.const 10)
)
- (br $while-in$3)
+ (block
+ (set_local $3
+ (get_local $6)
+ )
+ (br $while-in$3)
+ )
)
)
- (br_if $label$break$L5
+ (if
(i32.lt_u
(call_indirect $FUNCSIG$iiii
(get_local $2)
(get_local $0)
- (get_local $4)
+ (get_local $3)
(i32.add
(i32.and
(i32.load offset=36
@@ -8413,33 +8335,36 @@
(i32.const 2)
)
)
- (get_local $4)
+ (get_local $3)
+ )
+ (block
+ (set_local $4
+ (get_local $3)
+ )
+ (br $label$break$L5)
)
)
- (set_local $2
+ (set_local $0
(i32.add
(get_local $0)
- (get_local $4)
+ (get_local $3)
)
)
- (set_local $6
+ (set_local $4
(i32.load
(get_local $5)
)
)
- (set_local $3
- (get_local $4)
+ (set_local $2
+ (get_local $3)
)
(i32.sub
(get_local $1)
- (get_local $4)
+ (get_local $3)
)
)
(block
(set_local $2
- (get_local $0)
- )
- (set_local $3
(i32.const 0)
)
(get_local $1)
@@ -8449,9 +8374,9 @@
)
(drop
(call $_memcpy
- (get_local $6)
- (get_local $2)
+ (get_local $4)
(get_local $0)
+ (get_local $1)
)
)
(i32.store
@@ -8460,13 +8385,13 @@
(i32.load
(get_local $5)
)
- (get_local $0)
+ (get_local $1)
)
)
(set_local $4
(i32.add
- (get_local $3)
- (get_local $0)
+ (get_local $2)
+ (get_local $1)
)
)
)
@@ -8495,11 +8420,10 @@
)
)
(set_local $1
- (i32.eq
+ (i32.eqz
(call $___lockfile
(get_local $0)
)
- (i32.const 0)
)
)
(set_local $2
@@ -8549,70 +8473,62 @@
(get_local $0)
)
(loop $while-in$3
- (block $while-out$2
- (set_local $0
- (if
- (i32.gt_s
- (i32.load offset=76
- (get_local $1)
- )
- (i32.const -1)
- )
- (call $___lockfile
+ (set_local $0
+ (if
+ (i32.gt_s
+ (i32.load offset=76
(get_local $1)
)
- (i32.const 0)
+ (i32.const -1)
)
+ (call $___lockfile
+ (get_local $1)
+ )
+ (i32.const 0)
)
- (set_local $2
- (if
- (i32.gt_u
- (i32.load offset=20
- (get_local $1)
- )
- (i32.load offset=28
- (get_local $1)
- )
+ )
+ (set_local $2
+ (if
+ (i32.gt_u
+ (i32.load offset=20
+ (get_local $1)
)
- (i32.or
- (call $___fflush_unlocked
- (get_local $1)
- )
- (get_local $2)
+ (i32.load offset=28
+ (get_local $1)
+ )
+ )
+ (i32.or
+ (call $___fflush_unlocked
+ (get_local $1)
)
(get_local $2)
)
+ (get_local $2)
)
- (if
- (get_local $0)
- (call $___unlockfile
+ )
+ (if
+ (get_local $0)
+ (call $___unlockfile
+ (get_local $1)
+ )
+ )
+ (br_if $while-in$3
+ (tee_local $1
+ (i32.load offset=56
(get_local $1)
)
)
- (if
- (i32.eqz
- (tee_local $1
- (i32.load offset=56
- (get_local $1)
- )
- )
- )
- (block
- (set_local $0
- (get_local $2)
- )
- (br $while-out$2)
- )
- )
- (br $while-in$3)
)
)
)
+ (set_local $2
+ (get_local $0)
+ )
)
(call_import $___unlock
(i32.const 36)
)
- (get_local $0)
+ (get_local $2)
)
)
)
@@ -8636,53 +8552,47 @@
(get_local $3)
)
(loop $while-in$2
- (block $while-out$1
- (if
- (i32.eqz
- (i32.load8_s
- (get_local $0)
- )
- )
- (block
- (set_local $5
- (get_local $4)
- )
- (br $label$break$L1)
+ (if
+ (i32.eqz
+ (i32.load8_s
+ (get_local $0)
)
)
- (if
- (i32.eqz
- (i32.and
- (tee_local $4
- (tee_local $0
- (i32.add
- (get_local $0)
- (i32.const 1)
- )
- )
+ (block
+ (set_local $5
+ (get_local $4)
+ )
+ (br $label$break$L1)
+ )
+ )
+ (br_if $while-in$2
+ (i32.and
+ (tee_local $4
+ (tee_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
)
- (i32.const 3)
)
)
- (block
- (set_local $2
- (get_local $0)
- )
- (set_local $1
- (i32.const 4)
- )
- (br $while-out$1)
- )
+ (i32.const 3)
)
- (br $while-in$2)
+ )
+ (block
+ (set_local $1
+ (get_local $0)
+ )
+ (set_local $2
+ (i32.const 4)
+ )
)
)
)
(block
- (set_local $2
+ (set_local $1
(get_local $0)
)
- (set_local $1
+ (set_local $2
(i32.const 4)
)
)
@@ -8690,49 +8600,51 @@
)
(if
(i32.eq
- (get_local $1)
+ (get_local $2)
(i32.const 4)
)
(block
- (set_local $1
- (get_local $2)
+ (set_local $2
+ (get_local $1)
)
(loop $while-in$4
- (block $while-out$3
- (if
- (i32.and
- (i32.xor
- (i32.and
- (tee_local $2
- (i32.load
- (get_local $1)
- )
+ (if
+ (i32.and
+ (i32.xor
+ (i32.and
+ (tee_local $1
+ (i32.load
+ (get_local $2)
)
- (i32.const -2139062144)
)
(i32.const -2139062144)
)
+ (i32.const -2139062144)
+ )
+ (i32.add
+ (get_local $1)
+ (i32.const -16843009)
+ )
+ )
+ (set_local $0
+ (get_local $2)
+ )
+ (block
+ (set_local $2
(i32.add
(get_local $2)
- (i32.const -16843009)
- )
- )
- (br $while-out$3)
- (set_local $1
- (i32.add
- (get_local $1)
(i32.const 4)
)
)
+ (br $while-in$4)
)
- (br $while-in$4)
)
)
(if
(i32.shr_s
(i32.shl
(i32.and
- (get_local $2)
+ (get_local $1)
(i32.const 255)
)
(i32.const 24)
@@ -8740,32 +8652,31 @@
(i32.const 24)
)
(block
- (set_local $2
- (get_local $1)
+ (set_local $1
+ (get_local $0)
)
(loop $while-in$6
- (block $while-out$5
- (if
- (i32.load8_s
- (tee_local $1
- (i32.add
- (get_local $2)
- (i32.const 1)
- )
+ (if
+ (i32.load8_s
+ (tee_local $0
+ (i32.add
+ (get_local $1)
+ (i32.const 1)
)
)
- (set_local $2
- (get_local $1)
- )
- (br $while-out$5)
)
- (br $while-in$6)
+ (block
+ (set_local $1
+ (get_local $0)
+ )
+ (br $while-in$6)
+ )
)
)
)
)
(set_local $5
- (get_local $1)
+ (get_local $0)
)
)
)
@@ -8972,11 +8883,10 @@
)
)
)
- (i32.eq
+ (i32.eqz
(i32.load
(get_local $1)
)
- (i32.const 0)
)
)
(i32.const 0)
@@ -9006,21 +8916,23 @@
)
)
)
- (call_indirect $FUNCSIG$iiii
- (get_local $0)
- (i32.sub
- (get_local $4)
- (get_local $6)
- )
- (i32.const 1)
- (i32.add
- (i32.and
- (i32.load offset=40
- (get_local $0)
- )
- (i32.const 7)
+ (drop
+ (call_indirect $FUNCSIG$iiii
+ (get_local $0)
+ (i32.sub
+ (get_local $4)
+ (get_local $6)
)
- (i32.const 2)
+ (i32.const 1)
+ (i32.add
+ (i32.and
+ (i32.load offset=40
+ (get_local $0)
+ )
+ (i32.const 7)
+ )
+ (i32.const 2)
+ )
)
)
)
@@ -9124,75 +9036,75 @@
)
)
(loop $while-in$3
- (block $while-out$2
- (br_if $while-out$2
- (i32.lt_s
- (get_local $2)
- (i32.const 4)
- )
+ (if
+ (i32.ge_s
+ (get_local $2)
+ (i32.const 4)
)
- (i32.store
- (get_local $0)
- (i32.load
- (get_local $1)
- )
- )
- (set_local $0
- (i32.add
+ (block
+ (i32.store
(get_local $0)
- (i32.const 4)
+ (i32.load
+ (get_local $1)
+ )
)
- )
- (set_local $1
- (i32.add
- (get_local $1)
- (i32.const 4)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 4)
+ )
)
- )
- (set_local $2
- (i32.sub
- (get_local $2)
- (i32.const 4)
+ (set_local $1
+ (i32.add
+ (get_local $1)
+ (i32.const 4)
+ )
)
+ (set_local $2
+ (i32.sub
+ (get_local $2)
+ (i32.const 4)
+ )
+ )
+ (br $while-in$3)
)
- (br $while-in$3)
)
)
)
)
(loop $while-in$5
- (block $while-out$4
- (br_if $while-out$4
- (i32.le_s
- (get_local $2)
- (i32.const 0)
- )
+ (if
+ (i32.gt_s
+ (get_local $2)
+ (i32.const 0)
)
- (i32.store8
- (get_local $0)
- (i32.load8_s
- (get_local $1)
- )
- )
- (set_local $0
- (i32.add
+ (block
+ (i32.store8
(get_local $0)
- (i32.const 1)
+ (i32.load8_s
+ (get_local $1)
+ )
)
- )
- (set_local $1
- (i32.add
- (get_local $1)
- (i32.const 1)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
)
- )
- (set_local $2
- (i32.sub
- (get_local $2)
- (i32.const 1)
+ (set_local $1
+ (i32.add
+ (get_local $1)
+ (i32.const 1)
+ )
)
+ (set_local $2
+ (i32.sub
+ (get_local $2)
+ (i32.const 1)
+ )
+ )
+ (br $while-in$5)
)
- (br $while-in$5)
)
)
(get_local $3)
@@ -9267,70 +9179,70 @@
)
)
(loop $while-in$1
- (block $while-out$0
- (br_if $while-out$0
- (i32.ge_s
- (get_local $0)
- (get_local $3)
- )
- )
- (i32.store8
+ (if
+ (i32.lt_s
(get_local $0)
- (get_local $1)
+ (get_local $3)
)
- (set_local $0
- (i32.add
+ (block
+ (i32.store8
(get_local $0)
- (i32.const 1)
+ (get_local $1)
)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ (br $while-in$1)
)
- (br $while-in$1)
)
)
)
)
(loop $while-in$3
- (block $while-out$2
- (br_if $while-out$2
- (i32.ge_s
- (get_local $0)
- (get_local $6)
- )
- )
- (i32.store
+ (if
+ (i32.lt_s
(get_local $0)
- (get_local $5)
+ (get_local $6)
)
- (set_local $0
- (i32.add
+ (block
+ (i32.store
(get_local $0)
- (i32.const 4)
+ (get_local $5)
)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 4)
+ )
+ )
+ (br $while-in$3)
)
- (br $while-in$3)
)
)
)
)
(loop $while-in$5
- (block $while-out$4
- (br_if $while-out$4
- (i32.ge_s
- (get_local $0)
- (get_local $4)
- )
- )
- (i32.store8
+ (if
+ (i32.lt_s
(get_local $0)
- (get_local $1)
+ (get_local $4)
)
- (set_local $0
- (i32.add
+ (block
+ (i32.store8
(get_local $0)
- (i32.const 1)
+ (get_local $1)
)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ (br $while-in$5)
)
- (br $while-in$5)
)
)
(i32.sub
@@ -9606,11 +9518,10 @@
)
(block
(set_local $5
- (i32.eq
+ (i32.eqz
(call $___lockfile
(get_local $3)
)
- (i32.const 0)
)
)
(set_local $0
@@ -9668,15 +9579,13 @@
)
(if
(if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 64)
+ (i32.and
+ (i32.load
+ (get_local $0)
)
- (i32.const 0)
+ (i32.const 64)
)
+ (i32.const 0)
(block
(i32.store
(get_local $3)
@@ -9703,7 +9612,6 @@
(i32.const 0)
)
)
- (i32.const 0)
)
(i32.store8 offset=75
(get_local $0)
diff --git a/test/emcc_O2_hello_world.fromasm.imprecise b/test/emcc_O2_hello_world.fromasm.imprecise
index fbcc3c4..e0f3404 100644
--- a/test/emcc_O2_hello_world.fromasm.imprecise
+++ b/test/emcc_O2_hello_world.fromasm.imprecise
@@ -129,7 +129,6 @@
(local $50 i32)
(local $51 i32)
(local $52 i32)
- (local $53 i32)
(block $do-once$0
(if
(i32.lt_u
@@ -141,14 +140,14 @@
(i32.and
(tee_local $2
(i32.shr_u
- (tee_local $7
+ (tee_local $16
(i32.load
(i32.const 176)
)
)
(tee_local $5
(i32.shr_u
- (tee_local $0
+ (tee_local $8
(select
(i32.const 16)
(i32.and
@@ -172,20 +171,20 @@
(i32.const 3)
)
(block
- (set_local $2
+ (set_local $5
(i32.load
- (tee_local $8
+ (tee_local $17
(i32.add
- (tee_local $5
+ (tee_local $3
(i32.load
- (tee_local $4
+ (tee_local $7
(i32.add
- (tee_local $1
+ (tee_local $0
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (tee_local $0
+ (tee_local $2
(i32.add
(i32.xor
(i32.and
@@ -215,13 +214,13 @@
)
(if
(i32.ne
- (get_local $1)
- (get_local $2)
+ (get_local $0)
+ (get_local $5)
)
(block
(if
(i32.lt_u
- (get_local $2)
+ (get_local $5)
(i32.load
(i32.const 192)
)
@@ -231,23 +230,23 @@
(if
(i32.eq
(i32.load
- (tee_local $9
+ (tee_local $6
(i32.add
- (get_local $2)
+ (get_local $5)
(i32.const 12)
)
)
)
- (get_local $5)
+ (get_local $3)
)
(block
(i32.store
- (get_local $9)
- (get_local $1)
+ (get_local $6)
+ (get_local $0)
)
(i32.store
- (get_local $4)
- (get_local $2)
+ (get_local $7)
+ (get_local $5)
)
)
(call_import $_abort)
@@ -256,11 +255,11 @@
(i32.store
(i32.const 176)
(i32.and
- (get_local $7)
+ (get_local $16)
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $0)
+ (get_local $2)
)
(i32.const -1)
)
@@ -268,11 +267,11 @@
)
)
(i32.store offset=4
- (get_local $5)
+ (get_local $3)
(i32.or
- (tee_local $2
+ (tee_local $5
(i32.shl
- (get_local $0)
+ (get_local $2)
(i32.const 3)
)
)
@@ -280,31 +279,31 @@
)
)
(i32.store
- (tee_local $4
+ (tee_local $7
(i32.add
(i32.add
+ (get_local $3)
(get_local $5)
- (get_local $2)
)
(i32.const 4)
)
)
(i32.or
(i32.load
- (get_local $4)
+ (get_local $7)
)
(i32.const 1)
)
)
(return
- (get_local $8)
+ (get_local $17)
)
)
)
(if
(i32.gt_u
- (get_local $0)
- (tee_local $4
+ (get_local $8)
+ (tee_local $7
(i32.load
(i32.const 184)
)
@@ -314,20 +313,20 @@
(if
(get_local $2)
(block
- (set_local $1
+ (set_local $0
(i32.and
(i32.shr_u
- (tee_local $2
+ (tee_local $5
(i32.add
(i32.and
- (tee_local $1
+ (tee_local $0
(i32.and
(i32.shl
(get_local $2)
(get_local $5)
)
(i32.or
- (tee_local $2
+ (tee_local $5
(i32.shl
(i32.const 2)
(get_local $5)
@@ -335,14 +334,14 @@
)
(i32.sub
(i32.const 0)
- (get_local $2)
+ (get_local $5)
)
)
)
)
(i32.sub
(i32.const 0)
- (get_local $1)
+ (get_local $0)
)
)
(i32.const -1)
@@ -353,32 +352,32 @@
(i32.const 16)
)
)
- (set_local $1
+ (set_local $0
(i32.load
- (tee_local $9
+ (tee_local $6
(i32.add
- (tee_local $16
+ (tee_local $3
(i32.load
- (tee_local $18
+ (tee_local $19
(i32.add
(tee_local $10
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (tee_local $19
+ (tee_local $13
(i32.add
(i32.or
(i32.or
(i32.or
(i32.or
- (tee_local $2
+ (tee_local $5
(i32.and
(i32.shr_u
- (tee_local $9
+ (tee_local $6
(i32.shr_u
- (get_local $2)
- (get_local $1)
+ (get_local $5)
+ (get_local $0)
)
)
(i32.const 5)
@@ -386,15 +385,15 @@
(i32.const 8)
)
)
- (get_local $1)
+ (get_local $0)
)
- (tee_local $9
+ (tee_local $6
(i32.and
(i32.shr_u
- (tee_local $16
+ (tee_local $3
(i32.shr_u
- (get_local $9)
- (get_local $2)
+ (get_local $6)
+ (get_local $5)
)
)
(i32.const 2)
@@ -403,13 +402,13 @@
)
)
)
- (tee_local $16
+ (tee_local $3
(i32.and
(i32.shr_u
(tee_local $10
(i32.shr_u
- (get_local $16)
- (get_local $9)
+ (get_local $3)
+ (get_local $6)
)
)
(i32.const 1)
@@ -421,10 +420,10 @@
(tee_local $10
(i32.and
(i32.shr_u
- (tee_local $18
+ (tee_local $19
(i32.shr_u
(get_local $10)
- (get_local $16)
+ (get_local $3)
)
)
(i32.const 1)
@@ -434,7 +433,7 @@
)
)
(i32.shr_u
- (get_local $18)
+ (get_local $19)
(get_local $10)
)
)
@@ -458,12 +457,12 @@
(if
(i32.ne
(get_local $10)
- (get_local $1)
+ (get_local $0)
)
(block
(if
(i32.lt_u
- (get_local $1)
+ (get_local $0)
(i32.load
(i32.const 192)
)
@@ -473,25 +472,25 @@
(if
(i32.eq
(i32.load
- (tee_local $2
+ (tee_local $5
(i32.add
- (get_local $1)
+ (get_local $0)
(i32.const 12)
)
)
)
- (get_local $16)
+ (get_local $3)
)
(block
(i32.store
- (get_local $2)
+ (get_local $5)
(get_local $10)
)
(i32.store
- (get_local $18)
- (get_local $1)
+ (get_local $19)
+ (get_local $0)
)
- (set_local $8
+ (set_local $17
(i32.load
(i32.const 184)
)
@@ -504,43 +503,43 @@
(i32.store
(i32.const 176)
(i32.and
- (get_local $7)
+ (get_local $16)
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $19)
+ (get_local $13)
)
(i32.const -1)
)
)
)
- (set_local $8
- (get_local $4)
+ (set_local $17
+ (get_local $7)
)
)
)
(i32.store offset=4
- (get_local $16)
+ (get_local $3)
(i32.or
- (get_local $0)
+ (get_local $8)
(i32.const 3)
)
)
(i32.store offset=4
- (tee_local $7
+ (tee_local $16
(i32.add
- (get_local $16)
- (get_local $0)
+ (get_local $3)
+ (get_local $8)
)
)
(i32.or
- (tee_local $4
+ (tee_local $7
(i32.sub
(i32.shl
- (get_local $19)
+ (get_local $13)
(i32.const 3)
)
- (get_local $0)
+ (get_local $8)
)
)
(i32.const 1)
@@ -548,15 +547,15 @@
)
(i32.store
(i32.add
+ (get_local $16)
(get_local $7)
- (get_local $4)
)
- (get_local $4)
+ (get_local $7)
)
(if
- (get_local $8)
+ (get_local $17)
(block
- (set_local $1
+ (set_local $0
(i32.load
(i32.const 196)
)
@@ -566,9 +565,9 @@
(i32.const 216)
(i32.shl
(i32.shl
- (tee_local $18
+ (tee_local $19
(i32.shr_u
- (get_local $8)
+ (get_local $17)
(i32.const 3)
)
)
@@ -588,15 +587,15 @@
(tee_local $2
(i32.shl
(i32.const 1)
- (get_local $18)
+ (get_local $19)
)
)
)
(if
(i32.lt_u
- (tee_local $8
+ (tee_local $17
(i32.load
- (tee_local $18
+ (tee_local $19
(i32.add
(get_local $10)
(i32.const 8)
@@ -610,11 +609,11 @@
)
(call_import $_abort)
(block
- (set_local $39
- (get_local $18)
+ (set_local $38
+ (get_local $19)
)
(set_local $31
- (get_local $8)
+ (get_local $17)
)
)
)
@@ -626,7 +625,7 @@
(get_local $2)
)
)
- (set_local $39
+ (set_local $38
(i32.add
(get_local $10)
(i32.const 8)
@@ -638,53 +637,53 @@
)
)
(i32.store
- (get_local $39)
- (get_local $1)
+ (get_local $38)
+ (get_local $0)
)
(i32.store offset=12
(get_local $31)
- (get_local $1)
+ (get_local $0)
)
(i32.store offset=8
- (get_local $1)
+ (get_local $0)
(get_local $31)
)
(i32.store offset=12
- (get_local $1)
+ (get_local $0)
(get_local $10)
)
)
)
(i32.store
(i32.const 184)
- (get_local $4)
+ (get_local $7)
)
(i32.store
(i32.const 196)
- (get_local $7)
+ (get_local $16)
)
(return
- (get_local $9)
+ (get_local $6)
)
)
)
(if
- (tee_local $7
+ (tee_local $16
(i32.load
(i32.const 180)
)
)
(block
- (set_local $7
+ (set_local $16
(i32.and
(i32.shr_u
- (tee_local $4
+ (tee_local $7
(i32.add
(i32.and
- (get_local $7)
+ (get_local $16)
(i32.sub
(i32.const 0)
- (get_local $7)
+ (get_local $16)
)
)
(i32.const -1)
@@ -699,7 +698,7 @@
(i32.sub
(i32.and
(i32.load offset=4
- (tee_local $8
+ (tee_local $17
(i32.load offset=480
(i32.shl
(i32.add
@@ -707,13 +706,13 @@
(i32.or
(i32.or
(i32.or
- (tee_local $4
+ (tee_local $7
(i32.and
(i32.shr_u
(tee_local $10
(i32.shr_u
- (get_local $4)
(get_local $7)
+ (get_local $16)
)
)
(i32.const 5)
@@ -721,15 +720,15 @@
(i32.const 8)
)
)
- (get_local $7)
+ (get_local $16)
)
(tee_local $10
(i32.and
(i32.shr_u
- (tee_local $1
+ (tee_local $0
(i32.shr_u
(get_local $10)
- (get_local $4)
+ (get_local $7)
)
)
(i32.const 2)
@@ -738,12 +737,12 @@
)
)
)
- (tee_local $1
+ (tee_local $0
(i32.and
(i32.shr_u
(tee_local $2
(i32.shr_u
- (get_local $1)
+ (get_local $0)
(get_local $10)
)
)
@@ -759,7 +758,7 @@
(tee_local $5
(i32.shr_u
(get_local $2)
- (get_local $1)
+ (get_local $0)
)
)
(i32.const 1)
@@ -780,25 +779,25 @@
)
(i32.const -8)
)
- (get_local $0)
+ (get_local $8)
)
)
(set_local $5
- (get_local $8)
+ (get_local $17)
)
- (set_local $1
- (get_local $8)
+ (set_local $0
+ (get_local $17)
)
(loop $while-in$7
(block $while-out$6
(if
- (tee_local $8
+ (tee_local $17
(i32.load offset=16
(get_local $5)
)
)
- (set_local $7
- (get_local $8)
+ (set_local $3
+ (get_local $17)
)
(if
(tee_local $10
@@ -806,15 +805,15 @@
(get_local $5)
)
)
- (set_local $7
+ (set_local $3
(get_local $10)
)
(block
(set_local $7
(get_local $2)
)
- (set_local $4
- (get_local $1)
+ (set_local $1
+ (get_local $0)
)
(br $while-out$6)
)
@@ -822,15 +821,15 @@
)
(set_local $10
(i32.lt_u
- (tee_local $8
+ (tee_local $17
(i32.sub
(i32.and
(i32.load offset=4
- (get_local $7)
+ (get_local $3)
)
(i32.const -8)
)
- (get_local $0)
+ (get_local $8)
)
)
(get_local $2)
@@ -838,18 +837,18 @@
)
(set_local $2
(select
- (get_local $8)
+ (get_local $17)
(get_local $2)
(get_local $10)
)
)
(set_local $5
- (get_local $7)
+ (get_local $3)
)
- (set_local $1
+ (set_local $0
(select
- (get_local $7)
- (get_local $1)
+ (get_local $3)
+ (get_local $0)
(get_local $10)
)
)
@@ -858,8 +857,8 @@
)
(if
(i32.lt_u
- (get_local $4)
- (tee_local $1
+ (get_local $1)
+ (tee_local $0
(i32.load
(i32.const 192)
)
@@ -869,11 +868,11 @@
)
(if
(i32.ge_u
- (get_local $4)
+ (get_local $1)
(tee_local $5
(i32.add
- (get_local $4)
- (get_local $0)
+ (get_local $1)
+ (get_local $8)
)
)
)
@@ -881,54 +880,55 @@
)
(set_local $2
(i32.load offset=24
- (get_local $4)
+ (get_local $1)
)
)
(block $do-once$8
(if
(i32.eq
- (tee_local $9
+ (tee_local $6
(i32.load offset=12
- (get_local $4)
+ (get_local $1)
)
)
- (get_local $4)
+ (get_local $1)
)
(block
(if
- (tee_local $19
+ (tee_local $13
(i32.load
- (tee_local $16
+ (tee_local $3
(i32.add
- (get_local $4)
+ (get_local $1)
(i32.const 20)
)
)
)
)
(block
- (set_local $8
- (get_local $19)
+ (set_local $17
+ (get_local $13)
)
- (set_local $10
- (get_local $16)
+ (set_local $9
+ (get_local $3)
)
)
(if
- (i32.eqz
- (tee_local $8
- (i32.load
- (tee_local $10
- (i32.add
- (get_local $4)
- (i32.const 16)
- )
+ (tee_local $17
+ (i32.load
+ (tee_local $10
+ (i32.add
+ (get_local $1)
+ (i32.const 16)
)
)
)
)
+ (set_local $9
+ (get_local $10)
+ )
(block
- (set_local $18
+ (set_local $19
(i32.const 0)
)
(br $do-once$8)
@@ -936,65 +936,62 @@
)
)
(loop $while-in$11
- (block $while-out$10
- (if
- (tee_local $19
- (i32.load
- (tee_local $16
- (i32.add
- (get_local $8)
- (i32.const 20)
- )
+ (if
+ (tee_local $13
+ (i32.load
+ (tee_local $3
+ (i32.add
+ (get_local $17)
+ (i32.const 20)
)
)
)
- (block
- (set_local $8
- (get_local $19)
- )
- (set_local $10
- (get_local $16)
- )
- (br $while-in$11)
- )
)
- (if
- (tee_local $19
- (i32.load
- (tee_local $16
- (i32.add
- (get_local $8)
- (i32.const 16)
- )
+ (block
+ (set_local $17
+ (get_local $13)
+ )
+ (set_local $9
+ (get_local $3)
+ )
+ (br $while-in$11)
+ )
+ )
+ (if
+ (tee_local $13
+ (i32.load
+ (tee_local $3
+ (i32.add
+ (get_local $17)
+ (i32.const 16)
)
)
)
- (block
- (set_local $8
- (get_local $19)
- )
- (set_local $10
- (get_local $16)
- )
- )
- (br $while-out$10)
)
- (br $while-in$11)
+ (block
+ (set_local $17
+ (get_local $13)
+ )
+ (set_local $9
+ (get_local $3)
+ )
+ (br $while-in$11)
+ )
)
)
(if
(i32.lt_u
- (get_local $10)
- (get_local $1)
+ (get_local $9)
+ (get_local $0)
)
(call_import $_abort)
(block
(i32.store
- (get_local $10)
+ (get_local $9)
(i32.const 0)
)
- (set_local $18
- (get_local $8)
+ (set_local $19
+ (get_local $17)
)
)
)
@@ -1002,26 +999,26 @@
(block
(if
(i32.lt_u
- (tee_local $16
+ (tee_local $3
(i32.load offset=8
- (get_local $4)
+ (get_local $1)
)
)
- (get_local $1)
+ (get_local $0)
)
(call_import $_abort)
)
(if
(i32.ne
(i32.load
- (tee_local $19
+ (tee_local $13
(i32.add
- (get_local $16)
+ (get_local $3)
(i32.const 12)
)
)
)
- (get_local $4)
+ (get_local $1)
)
(call_import $_abort)
)
@@ -1030,24 +1027,24 @@
(i32.load
(tee_local $10
(i32.add
- (get_local $9)
+ (get_local $6)
(i32.const 8)
)
)
)
- (get_local $4)
+ (get_local $1)
)
(block
(i32.store
- (get_local $19)
- (get_local $9)
+ (get_local $13)
+ (get_local $6)
)
(i32.store
(get_local $10)
- (get_local $16)
+ (get_local $3)
)
- (set_local $18
- (get_local $9)
+ (set_local $19
+ (get_local $6)
)
)
(call_import $_abort)
@@ -1061,15 +1058,15 @@
(block
(if
(i32.eq
- (get_local $4)
+ (get_local $1)
(i32.load
- (tee_local $1
+ (tee_local $0
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $9
+ (tee_local $6
(i32.load offset=28
- (get_local $4)
+ (get_local $1)
)
)
(i32.const 2)
@@ -1080,12 +1077,12 @@
)
(block
(i32.store
- (get_local $1)
- (get_local $18)
+ (get_local $0)
+ (get_local $19)
)
(if
(i32.eqz
- (get_local $18)
+ (get_local $19)
)
(block
(i32.store
@@ -1097,7 +1094,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $9)
+ (get_local $6)
)
(i32.const -1)
)
@@ -1120,35 +1117,35 @@
(if
(i32.eq
(i32.load
- (tee_local $9
+ (tee_local $6
(i32.add
(get_local $2)
(i32.const 16)
)
)
)
- (get_local $4)
+ (get_local $1)
)
(i32.store
- (get_local $9)
- (get_local $18)
+ (get_local $6)
+ (get_local $19)
)
(i32.store offset=20
(get_local $2)
- (get_local $18)
+ (get_local $19)
)
)
(br_if $do-once$12
(i32.eqz
- (get_local $18)
+ (get_local $19)
)
)
)
)
(if
(i32.lt_u
- (get_local $18)
- (tee_local $9
+ (get_local $19)
+ (tee_local $6
(i32.load
(i32.const 192)
)
@@ -1157,42 +1154,42 @@
(call_import $_abort)
)
(i32.store offset=24
- (get_local $18)
+ (get_local $19)
(get_local $2)
)
(if
- (tee_local $1
+ (tee_local $0
(i32.load offset=16
- (get_local $4)
+ (get_local $1)
)
)
(if
(i32.lt_u
- (get_local $1)
- (get_local $9)
+ (get_local $0)
+ (get_local $6)
)
(call_import $_abort)
(block
(i32.store offset=16
- (get_local $18)
- (get_local $1)
+ (get_local $19)
+ (get_local $0)
)
(i32.store offset=24
- (get_local $1)
- (get_local $18)
+ (get_local $0)
+ (get_local $19)
)
)
)
)
(if
- (tee_local $1
+ (tee_local $0
(i32.load offset=20
- (get_local $4)
+ (get_local $1)
)
)
(if
(i32.lt_u
- (get_local $1)
+ (get_local $0)
(i32.load
(i32.const 192)
)
@@ -1200,12 +1197,12 @@
(call_import $_abort)
(block
(i32.store offset=20
- (get_local $18)
- (get_local $1)
+ (get_local $19)
+ (get_local $0)
)
(i32.store offset=24
- (get_local $1)
- (get_local $18)
+ (get_local $0)
+ (get_local $19)
)
)
)
@@ -1220,22 +1217,22 @@
)
(block
(i32.store offset=4
- (get_local $4)
+ (get_local $1)
(i32.or
(tee_local $2
(i32.add
(get_local $7)
- (get_local $0)
+ (get_local $8)
)
)
(i32.const 3)
)
)
(i32.store
- (tee_local $1
+ (tee_local $0
(i32.add
(i32.add
- (get_local $4)
+ (get_local $1)
(get_local $2)
)
(i32.const 4)
@@ -1243,7 +1240,7 @@
)
(i32.or
(i32.load
- (get_local $1)
+ (get_local $0)
)
(i32.const 1)
)
@@ -1251,9 +1248,9 @@
)
(block
(i32.store offset=4
- (get_local $4)
+ (get_local $1)
(i32.or
- (get_local $0)
+ (get_local $8)
(i32.const 3)
)
)
@@ -1272,7 +1269,7 @@
(get_local $7)
)
(if
- (tee_local $1
+ (tee_local $0
(i32.load
(i32.const 184)
)
@@ -1283,14 +1280,14 @@
(i32.const 196)
)
)
- (set_local $1
+ (set_local $0
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (tee_local $9
+ (tee_local $6
(i32.shr_u
- (get_local $1)
+ (get_local $0)
(i32.const 3)
)
)
@@ -1302,7 +1299,7 @@
)
(if
(i32.and
- (tee_local $16
+ (tee_local $3
(i32.load
(i32.const 176)
)
@@ -1310,17 +1307,17 @@
(tee_local $10
(i32.shl
(i32.const 1)
- (get_local $9)
+ (get_local $6)
)
)
)
(if
(i32.lt_u
- (tee_local $19
+ (tee_local $13
(i32.load
- (tee_local $9
+ (tee_local $6
(i32.add
- (get_local $1)
+ (get_local $0)
(i32.const 8)
)
)
@@ -1332,11 +1329,11 @@
)
(call_import $_abort)
(block
- (set_local $40
- (get_local $9)
+ (set_local $39
+ (get_local $6)
)
(set_local $32
- (get_local $19)
+ (get_local $13)
)
)
)
@@ -1344,23 +1341,23 @@
(i32.store
(i32.const 176)
(i32.or
- (get_local $16)
+ (get_local $3)
(get_local $10)
)
)
- (set_local $40
+ (set_local $39
(i32.add
- (get_local $1)
+ (get_local $0)
(i32.const 8)
)
)
(set_local $32
- (get_local $1)
+ (get_local $0)
)
)
)
(i32.store
- (get_local $40)
+ (get_local $39)
(get_local $2)
)
(i32.store offset=12
@@ -1373,7 +1370,7 @@
)
(i32.store offset=12
(get_local $2)
- (get_local $1)
+ (get_local $0)
)
)
)
@@ -1389,7 +1386,7 @@
)
(return
(i32.add
- (get_local $4)
+ (get_local $1)
(i32.const 8)
)
)
@@ -1406,7 +1403,7 @@
(block
(set_local $2
(i32.and
- (tee_local $1
+ (tee_local $0
(i32.add
(get_local $0)
(i32.const 11)
@@ -1422,7 +1419,7 @@
)
)
(block
- (set_local $16
+ (set_local $3
(i32.sub
(i32.const 0)
(get_local $2)
@@ -1430,14 +1427,14 @@
)
(block $label$break$L123
(if
- (tee_local $7
+ (tee_local $16
(i32.load offset=480
(i32.shl
- (tee_local $0
+ (tee_local $8
(if
- (tee_local $19
+ (tee_local $13
(i32.shr_u
- (get_local $1)
+ (get_local $0)
(i32.const 8)
)
)
@@ -1452,24 +1449,24 @@
(i32.shr_u
(get_local $2)
(i32.add
- (tee_local $7
+ (tee_local $16
(i32.add
(i32.sub
(i32.const 14)
(i32.or
(i32.or
- (tee_local $19
+ (tee_local $13
(i32.and
(i32.shr_u
(i32.add
- (tee_local $9
+ (tee_local $6
(i32.shl
- (get_local $19)
- (tee_local $1
+ (get_local $13)
+ (tee_local $0
(i32.and
(i32.shr_u
(i32.add
- (get_local $19)
+ (get_local $13)
(i32.const 1048320)
)
(i32.const 16)
@@ -1486,16 +1483,16 @@
(i32.const 4)
)
)
- (get_local $1)
+ (get_local $0)
)
- (tee_local $9
+ (tee_local $6
(i32.and
(i32.shr_u
(i32.add
- (tee_local $8
+ (tee_local $17
(i32.shl
- (get_local $9)
- (get_local $19)
+ (get_local $6)
+ (get_local $13)
)
)
(i32.const 245760)
@@ -1509,8 +1506,8 @@
)
(i32.shr_u
(i32.shl
- (get_local $8)
- (get_local $9)
+ (get_local $17)
+ (get_local $6)
)
(i32.const 15)
)
@@ -1522,7 +1519,7 @@
(i32.const 1)
)
(i32.shl
- (get_local $7)
+ (get_local $16)
(i32.const 1)
)
)
@@ -1535,13 +1532,13 @@
)
)
(block
- (set_local $9
- (get_local $16)
+ (set_local $6
+ (get_local $3)
)
- (set_local $8
+ (set_local $17
(i32.const 0)
)
- (set_local $1
+ (set_local $0
(i32.shl
(get_local $2)
(select
@@ -1549,101 +1546,98 @@
(i32.sub
(i32.const 25)
(i32.shr_u
- (get_local $0)
+ (get_local $8)
(i32.const 1)
)
)
(i32.eq
- (get_local $0)
+ (get_local $8)
(i32.const 31)
)
)
)
)
- (set_local $19
- (get_local $7)
+ (set_local $13
+ (get_local $16)
)
- (set_local $4
+ (set_local $7
(i32.const 0)
)
(loop $while-in$18
- (block $while-out$17
- (if
- (i32.lt_u
- (tee_local $5
- (i32.sub
- (tee_local $18
- (i32.and
- (i32.load offset=4
- (get_local $19)
- )
- (i32.const -8)
+ (if
+ (i32.lt_u
+ (tee_local $3
+ (i32.sub
+ (tee_local $19
+ (i32.and
+ (i32.load offset=4
+ (get_local $13)
)
+ (i32.const -8)
)
- (get_local $2)
)
- )
- (get_local $9)
- )
- (if
- (i32.eq
- (get_local $18)
(get_local $2)
)
- (block
- (set_local $27
- (get_local $5)
- )
- (set_local $25
- (get_local $19)
- )
- (set_local $29
- (get_local $19)
- )
- (set_local $9
- (i32.const 90)
- )
- (br $label$break$L123)
+ )
+ (get_local $6)
+ )
+ (if
+ (i32.eq
+ (get_local $19)
+ (get_local $2)
+ )
+ (block
+ (set_local $27
+ (get_local $3)
)
- (block
- (set_local $9
- (get_local $5)
- )
- (set_local $4
- (get_local $19)
- )
+ (set_local $25
+ (get_local $13)
+ )
+ (set_local $29
+ (get_local $13)
+ )
+ (set_local $6
+ (i32.const 90)
+ )
+ (br $label$break$L123)
+ )
+ (block
+ (set_local $6
+ (get_local $3)
+ )
+ (set_local $7
+ (get_local $13)
)
)
)
- (set_local $18
- (select
- (get_local $8)
- (tee_local $5
- (i32.load offset=20
- (get_local $19)
- )
+ )
+ (set_local $19
+ (select
+ (get_local $17)
+ (tee_local $3
+ (i32.load offset=20
+ (get_local $13)
)
- (i32.or
- (i32.eq
- (get_local $5)
- (i32.const 0)
- )
- (i32.eq
- (get_local $5)
- (tee_local $19
- (i32.load
+ )
+ (i32.or
+ (i32.eqz
+ (get_local $3)
+ )
+ (i32.eq
+ (get_local $3)
+ (tee_local $13
+ (i32.load
+ (i32.add
(i32.add
- (i32.add
- (get_local $19)
- (i32.const 16)
+ (get_local $13)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (get_local $0)
+ (i32.const 31)
)
- (i32.shl
- (i32.shr_u
- (get_local $1)
- (i32.const 31)
- )
- (i32.const 2)
- )
+ (i32.const 2)
)
)
)
@@ -1651,61 +1645,59 @@
)
)
)
- (if
- (tee_local $5
- (i32.eq
- (get_local $19)
- (i32.const 0)
- )
+ )
+ (if
+ (tee_local $3
+ (i32.eqz
+ (get_local $13)
)
- (block
- (set_local $33
- (get_local $9)
- )
- (set_local $34
- (get_local $18)
- )
- (set_local $30
- (get_local $4)
- )
- (set_local $9
- (i32.const 86)
- )
- (br $while-out$17)
+ )
+ (block
+ (set_local $33
+ (get_local $6)
)
- (block
- (set_local $8
- (get_local $18)
- )
- (set_local $1
- (i32.shl
- (get_local $1)
- (i32.xor
- (i32.and
- (get_local $5)
- (i32.const 1)
- )
+ (set_local $5
+ (get_local $19)
+ )
+ (set_local $30
+ (get_local $7)
+ )
+ (set_local $6
+ (i32.const 86)
+ )
+ )
+ (block
+ (set_local $17
+ (get_local $19)
+ )
+ (set_local $0
+ (i32.shl
+ (get_local $0)
+ (i32.xor
+ (i32.and
+ (get_local $3)
(i32.const 1)
)
+ (i32.const 1)
)
)
)
+ (br $while-in$18)
)
- (br $while-in$18)
)
)
)
(block
(set_local $33
- (get_local $16)
+ (get_local $3)
)
- (set_local $34
+ (set_local $5
(i32.const 0)
)
(set_local $30
(i32.const 0)
)
- (set_local $9
+ (set_local $6
(i32.const 86)
)
)
@@ -1713,60 +1705,58 @@
)
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 86)
)
(if
(tee_local $0
(if
(i32.and
- (i32.eq
- (get_local $34)
- (i32.const 0)
+ (i32.eqz
+ (get_local $5)
)
- (i32.eq
+ (i32.eqz
(get_local $30)
- (i32.const 0)
)
)
(block
(if
(i32.eqz
- (tee_local $16
+ (tee_local $3
(i32.and
(get_local $10)
(i32.or
- (tee_local $7
+ (tee_local $16
(i32.shl
(i32.const 2)
- (get_local $0)
+ (get_local $8)
)
)
(i32.sub
(i32.const 0)
- (get_local $7)
+ (get_local $16)
)
)
)
)
)
(block
- (set_local $0
+ (set_local $8
(get_local $2)
)
(br $do-once$0)
)
)
- (set_local $16
+ (set_local $3
(i32.and
(i32.shr_u
- (tee_local $7
+ (tee_local $16
(i32.add
(i32.and
- (get_local $16)
+ (get_local $3)
(i32.sub
(i32.const 0)
- (get_local $16)
+ (get_local $3)
)
)
(i32.const -1)
@@ -1784,13 +1774,13 @@
(i32.or
(i32.or
(i32.or
- (tee_local $7
+ (tee_local $16
(i32.and
(i32.shr_u
- (tee_local $0
+ (tee_local $8
(i32.shr_u
- (get_local $7)
(get_local $16)
+ (get_local $3)
)
)
(i32.const 5)
@@ -1798,15 +1788,15 @@
(i32.const 8)
)
)
- (get_local $16)
+ (get_local $3)
)
- (tee_local $0
+ (tee_local $8
(i32.and
(i32.shr_u
(tee_local $5
(i32.shr_u
- (get_local $0)
- (get_local $7)
+ (get_local $8)
+ (get_local $16)
)
)
(i32.const 2)
@@ -1818,10 +1808,10 @@
(tee_local $5
(i32.and
(i32.shr_u
- (tee_local $4
+ (tee_local $7
(i32.shr_u
(get_local $5)
- (get_local $0)
+ (get_local $8)
)
)
(i32.const 1)
@@ -1830,12 +1820,12 @@
)
)
)
- (tee_local $4
+ (tee_local $7
(i32.and
(i32.shr_u
- (tee_local $1
+ (tee_local $0
(i32.shr_u
- (get_local $4)
+ (get_local $7)
(get_local $5)
)
)
@@ -1846,15 +1836,15 @@
)
)
(i32.shr_u
- (get_local $1)
- (get_local $4)
+ (get_local $0)
+ (get_local $7)
)
)
(i32.const 2)
)
)
)
- (get_local $34)
+ (get_local $5)
)
)
(block
@@ -1867,15 +1857,15 @@
(set_local $29
(get_local $30)
)
- (set_local $9
+ (set_local $6
(i32.const 90)
)
)
(block
- (set_local $6
+ (set_local $4
(get_local $33)
)
- (set_local $12
+ (set_local $11
(get_local $30)
)
)
@@ -1883,95 +1873,92 @@
)
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 90)
)
(loop $while-in$20
- (block $while-out$19
- (set_local $9
- (i32.const 0)
- )
- (set_local $1
- (i32.lt_u
- (tee_local $4
- (i32.sub
- (i32.and
- (i32.load offset=4
- (get_local $25)
- )
- (i32.const -8)
+ (set_local $6
+ (i32.const 0)
+ )
+ (set_local $0
+ (i32.lt_u
+ (tee_local $7
+ (i32.sub
+ (i32.and
+ (i32.load offset=4
+ (get_local $25)
)
- (get_local $2)
+ (i32.const -8)
)
+ (get_local $2)
)
- (get_local $27)
)
+ (get_local $27)
)
- (set_local $5
- (select
- (get_local $4)
- (get_local $27)
- (get_local $1)
- )
+ )
+ (set_local $5
+ (select
+ (get_local $7)
+ (get_local $27)
+ (get_local $0)
)
- (set_local $4
- (select
+ )
+ (set_local $7
+ (select
+ (get_local $25)
+ (get_local $29)
+ (get_local $0)
+ )
+ )
+ (if
+ (tee_local $0
+ (i32.load offset=16
(get_local $25)
- (get_local $29)
- (get_local $1)
)
)
- (if
- (tee_local $1
- (i32.load offset=16
- (get_local $25)
- )
+ (block
+ (set_local $27
+ (get_local $5)
)
- (block
- (set_local $27
- (get_local $5)
- )
- (set_local $25
- (get_local $1)
- )
- (set_local $29
- (get_local $4)
- )
- (br $while-in$20)
+ (set_local $25
+ (get_local $0)
+ )
+ (set_local $29
+ (get_local $7)
+ )
+ (br $while-in$20)
+ )
+ )
+ (if
+ (tee_local $25
+ (i32.load offset=20
+ (get_local $25)
)
)
- (if
- (tee_local $25
- (i32.load offset=20
- (get_local $25)
- )
+ (block
+ (set_local $27
+ (get_local $5)
)
- (block
- (set_local $27
- (get_local $5)
- )
- (set_local $29
- (get_local $4)
- )
+ (set_local $29
+ (get_local $7)
)
- (block
- (set_local $6
- (get_local $5)
- )
- (set_local $12
- (get_local $4)
- )
- (br $while-out$19)
+ (br $while-in$20)
+ )
+ (block
+ (set_local $4
+ (get_local $5)
+ )
+ (set_local $11
+ (get_local $7)
)
)
- (br $while-in$20)
)
)
)
(if
(select
(i32.lt_u
- (get_local $6)
+ (get_local $4)
(i32.sub
(i32.load
(i32.const 184)
@@ -1981,14 +1968,14 @@
)
(i32.const 0)
(i32.ne
- (get_local $12)
+ (get_local $11)
(i32.const 0)
)
)
(block
(if
(i32.lt_u
- (get_local $12)
+ (get_local $11)
(tee_local $10
(i32.load
(i32.const 192)
@@ -1999,10 +1986,10 @@
)
(if
(i32.ge_u
- (get_local $12)
- (tee_local $4
+ (get_local $11)
+ (tee_local $7
(i32.add
- (get_local $12)
+ (get_local $11)
(get_local $2)
)
)
@@ -2011,54 +1998,55 @@
)
(set_local $5
(i32.load offset=24
- (get_local $12)
+ (get_local $11)
)
)
(block $do-once$21
(if
(i32.eq
- (tee_local $1
+ (tee_local $0
(i32.load offset=12
- (get_local $12)
+ (get_local $11)
)
)
- (get_local $12)
+ (get_local $11)
)
(block
(if
- (tee_local $16
+ (tee_local $3
(i32.load
- (tee_local $0
+ (tee_local $8
(i32.add
- (get_local $12)
+ (get_local $11)
(i32.const 20)
)
)
)
)
(block
- (set_local $8
- (get_local $16)
+ (set_local $17
+ (get_local $3)
)
- (set_local $7
- (get_local $0)
+ (set_local $0
+ (get_local $8)
)
)
(if
- (i32.eqz
- (tee_local $8
- (i32.load
- (tee_local $7
- (i32.add
- (get_local $12)
- (i32.const 16)
- )
+ (tee_local $17
+ (i32.load
+ (tee_local $16
+ (i32.add
+ (get_local $11)
+ (i32.const 16)
)
)
)
)
+ (set_local $0
+ (get_local $16)
+ )
(block
- (set_local $11
+ (set_local $9
(i32.const 0)
)
(br $do-once$21)
@@ -2066,65 +2054,62 @@
)
)
(loop $while-in$24
- (block $while-out$23
- (if
- (tee_local $16
- (i32.load
- (tee_local $0
- (i32.add
- (get_local $8)
- (i32.const 20)
- )
+ (if
+ (tee_local $3
+ (i32.load
+ (tee_local $8
+ (i32.add
+ (get_local $17)
+ (i32.const 20)
)
)
)
- (block
- (set_local $8
- (get_local $16)
- )
- (set_local $7
- (get_local $0)
- )
- (br $while-in$24)
- )
)
- (if
- (tee_local $16
- (i32.load
- (tee_local $0
- (i32.add
- (get_local $8)
- (i32.const 16)
- )
+ (block
+ (set_local $17
+ (get_local $3)
+ )
+ (set_local $0
+ (get_local $8)
+ )
+ (br $while-in$24)
+ )
+ )
+ (if
+ (tee_local $3
+ (i32.load
+ (tee_local $8
+ (i32.add
+ (get_local $17)
+ (i32.const 16)
)
)
)
- (block
- (set_local $8
- (get_local $16)
- )
- (set_local $7
- (get_local $0)
- )
- )
- (br $while-out$23)
)
- (br $while-in$24)
+ (block
+ (set_local $17
+ (get_local $3)
+ )
+ (set_local $0
+ (get_local $8)
+ )
+ (br $while-in$24)
+ )
)
)
(if
(i32.lt_u
- (get_local $7)
+ (get_local $0)
(get_local $10)
)
(call_import $_abort)
(block
(i32.store
- (get_local $7)
+ (get_local $0)
(i32.const 0)
)
- (set_local $11
- (get_local $8)
+ (set_local $9
+ (get_local $17)
)
)
)
@@ -2132,9 +2117,9 @@
(block
(if
(i32.lt_u
- (tee_local $0
+ (tee_local $8
(i32.load offset=8
- (get_local $12)
+ (get_local $11)
)
)
(get_local $10)
@@ -2144,40 +2129,40 @@
(if
(i32.ne
(i32.load
- (tee_local $16
+ (tee_local $3
(i32.add
- (get_local $0)
+ (get_local $8)
(i32.const 12)
)
)
)
- (get_local $12)
+ (get_local $11)
)
(call_import $_abort)
)
(if
(i32.eq
(i32.load
- (tee_local $7
+ (tee_local $16
(i32.add
- (get_local $1)
+ (get_local $0)
(i32.const 8)
)
)
)
- (get_local $12)
+ (get_local $11)
)
(block
(i32.store
- (get_local $16)
- (get_local $1)
- )
- (i32.store
- (get_local $7)
+ (get_local $3)
(get_local $0)
)
- (set_local $11
- (get_local $1)
+ (i32.store
+ (get_local $16)
+ (get_local $8)
+ )
+ (set_local $9
+ (get_local $0)
)
)
(call_import $_abort)
@@ -2191,15 +2176,15 @@
(block
(if
(i32.eq
- (get_local $12)
+ (get_local $11)
(i32.load
(tee_local $10
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $1
+ (tee_local $0
(i32.load offset=28
- (get_local $12)
+ (get_local $11)
)
)
(i32.const 2)
@@ -2211,11 +2196,11 @@
(block
(i32.store
(get_local $10)
- (get_local $11)
+ (get_local $9)
)
(if
(i32.eqz
- (get_local $11)
+ (get_local $9)
)
(block
(i32.store
@@ -2227,7 +2212,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $1)
+ (get_local $0)
)
(i32.const -1)
)
@@ -2250,35 +2235,35 @@
(if
(i32.eq
(i32.load
- (tee_local $1
+ (tee_local $0
(i32.add
(get_local $5)
(i32.const 16)
)
)
)
- (get_local $12)
+ (get_local $11)
)
(i32.store
- (get_local $1)
- (get_local $11)
+ (get_local $0)
+ (get_local $9)
)
(i32.store offset=20
(get_local $5)
- (get_local $11)
+ (get_local $9)
)
)
(br_if $do-once$25
(i32.eqz
- (get_local $11)
+ (get_local $9)
)
)
)
)
(if
(i32.lt_u
- (get_local $11)
- (tee_local $1
+ (get_local $9)
+ (tee_local $0
(i32.load
(i32.const 192)
)
@@ -2287,29 +2272,29 @@
(call_import $_abort)
)
(i32.store offset=24
- (get_local $11)
+ (get_local $9)
(get_local $5)
)
(if
(tee_local $10
(i32.load offset=16
- (get_local $12)
+ (get_local $11)
)
)
(if
(i32.lt_u
(get_local $10)
- (get_local $1)
+ (get_local $0)
)
(call_import $_abort)
(block
(i32.store offset=16
- (get_local $11)
+ (get_local $9)
(get_local $10)
)
(i32.store offset=24
(get_local $10)
- (get_local $11)
+ (get_local $9)
)
)
)
@@ -2317,7 +2302,7 @@
(if
(tee_local $10
(i32.load offset=20
- (get_local $12)
+ (get_local $11)
)
)
(if
@@ -2330,12 +2315,12 @@
(call_import $_abort)
(block
(i32.store offset=20
- (get_local $11)
+ (get_local $9)
(get_local $10)
)
(i32.store offset=24
(get_local $10)
- (get_local $11)
+ (get_local $9)
)
)
)
@@ -2346,40 +2331,40 @@
(block $do-once$29
(if
(i32.ge_u
- (get_local $6)
+ (get_local $4)
(i32.const 16)
)
(block
(i32.store offset=4
- (get_local $12)
+ (get_local $11)
(i32.or
(get_local $2)
(i32.const 3)
)
)
(i32.store offset=4
- (get_local $4)
+ (get_local $7)
(i32.or
- (get_local $6)
+ (get_local $4)
(i32.const 1)
)
)
(i32.store
(i32.add
+ (get_local $7)
(get_local $4)
- (get_local $6)
)
- (get_local $6)
+ (get_local $4)
)
(set_local $5
(i32.shr_u
- (get_local $6)
+ (get_local $4)
(i32.const 3)
)
)
(if
(i32.lt_u
- (get_local $6)
+ (get_local $4)
(i32.const 256)
)
(block
@@ -2397,12 +2382,12 @@
)
(if
(i32.and
- (tee_local $1
+ (tee_local $0
(i32.load
(i32.const 176)
)
)
- (tee_local $0
+ (tee_local $8
(i32.shl
(i32.const 1)
(get_local $5)
@@ -2411,7 +2396,7 @@
)
(if
(i32.lt_u
- (tee_local $7
+ (tee_local $16
(i32.load
(tee_local $5
(i32.add
@@ -2431,7 +2416,7 @@
(get_local $5)
)
(set_local $26
- (get_local $7)
+ (get_local $16)
)
)
)
@@ -2439,8 +2424,8 @@
(i32.store
(i32.const 176)
(i32.or
- (get_local $1)
(get_local $0)
+ (get_local $8)
)
)
(set_local $14
@@ -2456,18 +2441,18 @@
)
(i32.store
(get_local $14)
- (get_local $4)
+ (get_local $7)
)
(i32.store offset=12
(get_local $26)
- (get_local $4)
+ (get_local $7)
)
(i32.store offset=8
- (get_local $4)
+ (get_local $7)
(get_local $26)
)
(i32.store offset=12
- (get_local $4)
+ (get_local $7)
(get_local $10)
)
(br $do-once$29)
@@ -2477,24 +2462,24 @@
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $8
+ (tee_local $3
(if
(tee_local $10
(i32.shr_u
- (get_local $6)
+ (get_local $4)
(i32.const 8)
)
)
(if
(i32.gt_u
- (get_local $6)
+ (get_local $4)
(i32.const 16777215)
)
(i32.const 31)
(i32.or
(i32.and
(i32.shr_u
- (get_local $6)
+ (get_local $4)
(i32.add
(tee_local $5
(i32.add
@@ -2506,10 +2491,10 @@
(i32.and
(i32.shr_u
(i32.add
- (tee_local $1
+ (tee_local $0
(i32.shl
(get_local $10)
- (tee_local $0
+ (tee_local $8
(i32.and
(i32.shr_u
(i32.add
@@ -2530,15 +2515,15 @@
(i32.const 4)
)
)
- (get_local $0)
+ (get_local $8)
)
- (tee_local $1
+ (tee_local $0
(i32.and
(i32.shr_u
(i32.add
- (tee_local $7
+ (tee_local $16
(i32.shl
- (get_local $1)
+ (get_local $0)
(get_local $10)
)
)
@@ -2553,8 +2538,8 @@
)
(i32.shr_u
(i32.shl
- (get_local $7)
- (get_local $1)
+ (get_local $16)
+ (get_local $0)
)
(i32.const 15)
)
@@ -2579,34 +2564,34 @@
)
)
(i32.store offset=28
- (get_local $4)
- (get_local $8)
+ (get_local $7)
+ (get_local $3)
)
(i32.store offset=4
- (tee_local $1
+ (tee_local $0
(i32.add
- (get_local $4)
+ (get_local $7)
(i32.const 16)
)
)
(i32.const 0)
)
(i32.store
- (get_local $1)
+ (get_local $0)
(i32.const 0)
)
(if
(i32.eqz
(i32.and
- (tee_local $1
+ (tee_local $0
(i32.load
(i32.const 180)
)
)
- (tee_local $7
+ (tee_local $16
(i32.shl
(i32.const 1)
- (get_local $8)
+ (get_local $3)
)
)
)
@@ -2615,49 +2600,49 @@
(i32.store
(i32.const 180)
(i32.or
- (get_local $1)
- (get_local $7)
+ (get_local $0)
+ (get_local $16)
)
)
(i32.store
(get_local $5)
- (get_local $4)
+ (get_local $7)
)
(i32.store offset=24
- (get_local $4)
+ (get_local $7)
(get_local $5)
)
(i32.store offset=12
- (get_local $4)
- (get_local $4)
+ (get_local $7)
+ (get_local $7)
)
(i32.store offset=8
- (get_local $4)
- (get_local $4)
+ (get_local $7)
+ (get_local $7)
)
(br $do-once$29)
)
)
- (set_local $7
+ (set_local $16
(i32.shl
- (get_local $6)
+ (get_local $4)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (get_local $8)
+ (get_local $3)
(i32.const 1)
)
)
(i32.eq
- (get_local $8)
+ (get_local $3)
(i32.const 31)
)
)
)
)
- (set_local $1
+ (set_local $0
(i32.load
(get_local $5)
)
@@ -2668,34 +2653,34 @@
(i32.eq
(i32.and
(i32.load offset=4
- (get_local $1)
+ (get_local $0)
)
(i32.const -8)
)
- (get_local $6)
+ (get_local $4)
)
(block
(set_local $15
- (get_local $1)
+ (get_local $0)
)
- (set_local $9
+ (set_local $6
(i32.const 148)
)
(br $while-out$31)
)
)
(if
- (tee_local $0
+ (tee_local $8
(i32.load
(tee_local $5
(i32.add
(i32.add
- (get_local $1)
+ (get_local $0)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (get_local $7)
+ (get_local $16)
(i32.const 31)
)
(i32.const 2)
@@ -2705,35 +2690,34 @@
)
)
(block
- (set_local $7
+ (set_local $16
(i32.shl
- (get_local $7)
+ (get_local $16)
(i32.const 1)
)
)
- (set_local $1
- (get_local $0)
+ (set_local $0
+ (get_local $8)
)
+ (br $while-in$32)
)
(block
(set_local $23
(get_local $5)
)
(set_local $21
- (get_local $1)
+ (get_local $0)
)
- (set_local $9
+ (set_local $6
(i32.const 145)
)
- (br $while-out$31)
)
)
- (br $while-in$32)
)
)
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 145)
)
(if
@@ -2747,33 +2731,33 @@
(block
(i32.store
(get_local $23)
- (get_local $4)
+ (get_local $7)
)
(i32.store offset=24
- (get_local $4)
+ (get_local $7)
(get_local $21)
)
(i32.store offset=12
- (get_local $4)
- (get_local $4)
+ (get_local $7)
+ (get_local $7)
)
(i32.store offset=8
- (get_local $4)
- (get_local $4)
+ (get_local $7)
+ (get_local $7)
)
)
)
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 148)
)
(if
(i32.and
(i32.ge_u
- (tee_local $7
+ (tee_local $16
(i32.load
- (tee_local $1
+ (tee_local $0
(i32.add
(get_local $15)
(i32.const 8)
@@ -2781,7 +2765,7 @@
)
)
)
- (tee_local $0
+ (tee_local $8
(i32.load
(i32.const 192)
)
@@ -2789,28 +2773,28 @@
)
(i32.ge_u
(get_local $15)
- (get_local $0)
+ (get_local $8)
)
)
(block
(i32.store offset=12
+ (get_local $16)
(get_local $7)
- (get_local $4)
)
(i32.store
- (get_local $1)
- (get_local $4)
- )
- (i32.store offset=8
- (get_local $4)
+ (get_local $0)
(get_local $7)
)
+ (i32.store offset=8
+ (get_local $7)
+ (get_local $16)
+ )
(i32.store offset=12
- (get_local $4)
+ (get_local $7)
(get_local $15)
)
(i32.store offset=24
- (get_local $4)
+ (get_local $7)
(i32.const 0)
)
)
@@ -2821,11 +2805,11 @@
)
(block
(i32.store offset=4
- (get_local $12)
+ (get_local $11)
(i32.or
- (tee_local $7
+ (tee_local $16
(i32.add
- (get_local $6)
+ (get_local $4)
(get_local $2)
)
)
@@ -2833,18 +2817,18 @@
)
)
(i32.store
- (tee_local $1
+ (tee_local $0
(i32.add
(i32.add
- (get_local $12)
- (get_local $7)
+ (get_local $11)
+ (get_local $16)
)
(i32.const 4)
)
)
(i32.or
(i32.load
- (get_local $1)
+ (get_local $0)
)
(i32.const 1)
)
@@ -2854,22 +2838,22 @@
)
(return
(i32.add
- (get_local $12)
+ (get_local $11)
(i32.const 8)
)
)
)
- (set_local $0
+ (set_local $8
(get_local $2)
)
)
)
- (set_local $0
+ (set_local $8
(get_local $2)
)
)
)
- (set_local $0
+ (set_local $8
(i32.const -1)
)
)
@@ -2877,12 +2861,12 @@
)
(if
(i32.ge_u
- (tee_local $12
+ (tee_local $11
(i32.load
(i32.const 184)
)
)
- (get_local $0)
+ (get_local $8)
)
(block
(set_local $15
@@ -2892,10 +2876,10 @@
)
(if
(i32.gt_u
- (tee_local $6
+ (tee_local $4
(i32.sub
- (get_local $12)
- (get_local $0)
+ (get_local $11)
+ (get_local $8)
)
)
(i32.const 15)
@@ -2906,32 +2890,32 @@
(tee_local $21
(i32.add
(get_local $15)
- (get_local $0)
+ (get_local $8)
)
)
)
(i32.store
(i32.const 184)
- (get_local $6)
+ (get_local $4)
)
(i32.store offset=4
(get_local $21)
(i32.or
- (get_local $6)
+ (get_local $4)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $21)
- (get_local $6)
+ (get_local $4)
)
- (get_local $6)
+ (get_local $4)
)
(i32.store offset=4
(get_local $15)
(i32.or
- (get_local $0)
+ (get_local $8)
(i32.const 3)
)
)
@@ -2948,23 +2932,23 @@
(i32.store offset=4
(get_local $15)
(i32.or
- (get_local $12)
+ (get_local $11)
(i32.const 3)
)
)
(i32.store
- (tee_local $6
+ (tee_local $4
(i32.add
(i32.add
(get_local $15)
- (get_local $12)
+ (get_local $11)
)
(i32.const 4)
)
)
(i32.or
(i32.load
- (get_local $6)
+ (get_local $4)
)
(i32.const 1)
)
@@ -2986,42 +2970,42 @@
(i32.const 188)
)
)
- (get_local $0)
+ (get_local $8)
)
(block
(i32.store
(i32.const 188)
- (tee_local $6
+ (tee_local $4
(i32.sub
(get_local $15)
- (get_local $0)
+ (get_local $8)
)
)
)
(i32.store
(i32.const 200)
- (tee_local $12
+ (tee_local $11
(i32.add
(tee_local $15
(i32.load
(i32.const 200)
)
)
- (get_local $0)
+ (get_local $8)
)
)
)
(i32.store offset=4
- (get_local $12)
+ (get_local $11)
(i32.or
- (get_local $6)
+ (get_local $4)
(i32.const 1)
)
)
(i32.store offset=4
(get_local $15)
(i32.or
- (get_local $0)
+ (get_local $8)
(i32.const 3)
)
)
@@ -3094,24 +3078,24 @@
)
(set_local $15
(i32.add
- (get_local $0)
+ (get_local $8)
(i32.const 48)
)
)
(if
(i32.le_u
- (tee_local $6
+ (tee_local $4
(i32.and
(tee_local $21
(i32.add
- (tee_local $6
+ (tee_local $4
(i32.load
(i32.const 656)
)
)
- (tee_local $12
+ (tee_local $11
(i32.add
- (get_local $0)
+ (get_local $8)
(i32.const 47)
)
)
@@ -3120,12 +3104,12 @@
(tee_local $23
(i32.sub
(i32.const 0)
- (get_local $6)
+ (get_local $4)
)
)
)
)
- (get_local $0)
+ (get_local $8)
)
(return
(i32.const 0)
@@ -3134,7 +3118,7 @@
(if
(if
(i32.ne
- (tee_local $8
+ (tee_local $3
(i32.load
(i32.const 616)
)
@@ -3150,14 +3134,14 @@
(i32.const 608)
)
)
- (get_local $6)
+ (get_local $4)
)
)
(get_local $26)
)
(i32.gt_u
(get_local $14)
- (get_local $8)
+ (get_local $3)
)
)
(i32.const 0)
@@ -3171,12 +3155,12 @@
(if
(select
(i32.lt_u
- (get_local $6)
+ (get_local $4)
(i32.const 2147483647)
)
(i32.const 0)
(i32.eq
- (tee_local $9
+ (tee_local $6
(block $label$break$L257
(if
(i32.and
@@ -3189,7 +3173,7 @@
(block
(block $label$break$L259
(if
- (tee_local $8
+ (tee_local $3
(i32.load
(i32.const 200)
)
@@ -3208,13 +3192,13 @@
(get_local $14)
)
)
- (get_local $8)
+ (get_local $3)
)
(i32.gt_u
(i32.add
(get_local $26)
(i32.load
- (tee_local $11
+ (tee_local $9
(i32.add
(get_local $14)
(i32.const 4)
@@ -3222,7 +3206,7 @@
)
)
)
- (get_local $8)
+ (get_local $3)
)
(i32.const 0)
)
@@ -3230,28 +3214,23 @@
(set_local $5
(get_local $14)
)
- (set_local $7
- (get_local $11)
+ (set_local $13
+ (get_local $9)
)
(br $while-out$37)
)
)
- (if
- (i32.eqz
- (tee_local $14
- (i32.load offset=8
- (get_local $14)
- )
+ (br_if $while-in$38
+ (tee_local $14
+ (i32.load offset=8
+ (get_local $14)
)
)
- (block
- (set_local $9
- (i32.const 173)
- )
- (br $label$break$L259)
- )
)
- (br $while-in$38)
+ (set_local $6
+ (i32.const 173)
+ )
+ (br $label$break$L259)
)
)
(if
@@ -3271,7 +3250,7 @@
)
(if
(i32.eq
- (tee_local $11
+ (tee_local $9
(call_import $_sbrk
(get_local $14)
)
@@ -3281,18 +3260,18 @@
(get_local $5)
)
(i32.load
- (get_local $7)
+ (get_local $13)
)
)
)
(if
(i32.ne
- (get_local $11)
+ (get_local $9)
(i32.const -1)
)
(block
(set_local $20
- (get_local $11)
+ (get_local $9)
)
(set_local $22
(get_local $14)
@@ -3303,20 +3282,20 @@
)
)
(block
- (set_local $13
- (get_local $11)
+ (set_local $12
+ (get_local $9)
)
- (set_local $17
+ (set_local $18
(get_local $14)
)
- (set_local $9
+ (set_local $6
(i32.const 183)
)
)
)
)
)
- (set_local $9
+ (set_local $6
(i32.const 173)
)
)
@@ -3325,11 +3304,11 @@
(if
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 173)
)
(i32.ne
- (tee_local $8
+ (tee_local $3
(call_import $_sbrk
(i32.const 0)
)
@@ -3339,10 +3318,10 @@
(i32.const 0)
)
(block
- (set_local $1
+ (set_local $0
(if
(i32.and
- (tee_local $11
+ (tee_local $9
(i32.add
(tee_local $14
(i32.load
@@ -3353,17 +3332,17 @@
)
)
(tee_local $2
- (get_local $8)
+ (get_local $3)
)
)
(i32.add
(i32.sub
- (get_local $6)
+ (get_local $4)
(get_local $2)
)
(i32.and
(i32.add
- (get_local $11)
+ (get_local $9)
(get_local $2)
)
(i32.sub
@@ -3372,7 +3351,7 @@
)
)
)
- (get_local $6)
+ (get_local $4)
)
)
(set_local $2
@@ -3382,17 +3361,17 @@
(i32.const 608)
)
)
- (get_local $1)
+ (get_local $0)
)
)
(if
(i32.and
(i32.gt_u
- (get_local $1)
(get_local $0)
+ (get_local $8)
)
(i32.lt_u
- (get_local $1)
+ (get_local $0)
(i32.const 2147483647)
)
)
@@ -3406,7 +3385,7 @@
)
(i32.gt_u
(get_local $2)
- (tee_local $11
+ (tee_local $9
(i32.load
(i32.const 616)
)
@@ -3415,39 +3394,39 @@
)
(i32.const 0)
(i32.ne
- (get_local $11)
+ (get_local $9)
(i32.const 0)
)
)
)
(if
(i32.eq
- (tee_local $11
+ (tee_local $9
(call_import $_sbrk
- (get_local $1)
+ (get_local $0)
)
)
- (get_local $8)
+ (get_local $3)
)
(block
(set_local $20
- (get_local $8)
+ (get_local $3)
)
(set_local $22
- (get_local $1)
+ (get_local $0)
)
(br $label$break$L257
(i32.const 193)
)
)
(block
- (set_local $13
- (get_local $11)
+ (set_local $12
+ (get_local $9)
)
- (set_local $17
- (get_local $1)
+ (set_local $18
+ (get_local $0)
)
- (set_local $9
+ (set_local $6
(i32.const 183)
)
)
@@ -3460,14 +3439,14 @@
(block $label$break$L279
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 183)
)
(block
- (set_local $11
+ (set_local $9
(i32.sub
(i32.const 0)
- (get_local $17)
+ (get_local $18)
)
)
(if
@@ -3475,15 +3454,15 @@
(i32.and
(i32.gt_u
(get_local $15)
- (get_local $17)
+ (get_local $18)
)
(i32.and
(i32.lt_u
- (get_local $17)
+ (get_local $18)
(i32.const 2147483647)
)
(i32.ne
- (get_local $13)
+ (get_local $12)
(i32.const -1)
)
)
@@ -3493,10 +3472,10 @@
(i32.and
(i32.add
(i32.sub
- (get_local $12)
- (get_local $17)
+ (get_local $11)
+ (get_local $18)
)
- (tee_local $8
+ (tee_local $3
(i32.load
(i32.const 656)
)
@@ -3504,7 +3483,7 @@
)
(i32.sub
(i32.const 0)
- (get_local $8)
+ (get_local $3)
)
)
)
@@ -3522,33 +3501,33 @@
(block
(drop
(call_import $_sbrk
- (get_local $11)
+ (get_local $9)
)
)
(br $label$break$L279)
)
- (set_local $3
+ (set_local $1
(i32.add
(get_local $2)
- (get_local $17)
+ (get_local $18)
)
)
)
- (set_local $3
- (get_local $17)
+ (set_local $1
+ (get_local $18)
)
)
(if
(i32.ne
- (get_local $13)
+ (get_local $12)
(i32.const -1)
)
(block
(set_local $20
- (get_local $13)
+ (get_local $12)
)
(set_local $22
- (get_local $3)
+ (get_local $1)
)
(br $label$break$L257
(i32.const 193)
@@ -3577,12 +3556,12 @@
)
(i32.and
(i32.lt_u
- (tee_local $3
+ (tee_local $1
(call_import $_sbrk
- (get_local $6)
+ (get_local $4)
)
)
- (tee_local $6
+ (tee_local $4
(call_import $_sbrk
(i32.const 0)
)
@@ -3590,11 +3569,11 @@
)
(i32.and
(i32.ne
- (get_local $3)
+ (get_local $1)
(i32.const -1)
)
(i32.ne
- (get_local $6)
+ (get_local $4)
(i32.const -1)
)
)
@@ -3602,14 +3581,14 @@
(i32.const 0)
)
(i32.gt_u
- (tee_local $13
+ (tee_local $12
(i32.sub
- (get_local $6)
- (get_local $3)
+ (get_local $4)
+ (get_local $1)
)
)
(i32.add
- (get_local $0)
+ (get_local $8)
(i32.const 40)
)
)
@@ -3617,25 +3596,25 @@
)
(block
(set_local $20
- (get_local $3)
+ (get_local $1)
)
(set_local $22
- (get_local $13)
+ (get_local $12)
)
- (set_local $9
+ (set_local $6
(i32.const 193)
)
)
)
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 193)
)
(block
(i32.store
(i32.const 608)
- (tee_local $13
+ (tee_local $12
(i32.add
(i32.load
(i32.const 608)
@@ -3646,25 +3625,25 @@
)
(if
(i32.gt_u
- (get_local $13)
+ (get_local $12)
(i32.load
(i32.const 612)
)
)
(i32.store
(i32.const 612)
- (get_local $13)
+ (get_local $12)
)
)
(block $do-once$44
(if
- (tee_local $13
+ (tee_local $12
(i32.load
(i32.const 200)
)
)
(block
- (set_local $3
+ (set_local $1
(i32.const 624)
)
(loop $do-in$47
@@ -3673,16 +3652,16 @@
(i32.eq
(get_local $20)
(i32.add
- (tee_local $6
+ (tee_local $4
(i32.load
- (get_local $3)
+ (get_local $1)
)
)
- (tee_local $12
+ (tee_local $11
(i32.load
- (tee_local $17
+ (tee_local $18
(i32.add
- (get_local $3)
+ (get_local $1)
(i32.const 4)
)
)
@@ -3691,19 +3670,19 @@
)
)
(block
+ (set_local $46
+ (get_local $4)
+ )
(set_local $47
- (get_local $6)
+ (get_local $18)
)
(set_local $48
- (get_local $17)
+ (get_local $11)
)
(set_local $49
- (get_local $12)
+ (get_local $1)
)
- (set_local $50
- (get_local $3)
- )
- (set_local $9
+ (set_local $6
(i32.const 203)
)
(br $do-out$46)
@@ -3711,9 +3690,9 @@
)
(br_if $do-in$47
(i32.ne
- (tee_local $3
+ (tee_local $1
(i32.load offset=8
- (get_local $3)
+ (get_local $1)
)
)
(i32.const 0)
@@ -3725,74 +3704,70 @@
(select
(i32.and
(i32.lt_u
- (get_local $13)
+ (get_local $12)
(get_local $20)
)
(i32.ge_u
- (get_local $13)
- (get_local $47)
+ (get_local $12)
+ (get_local $46)
)
)
(i32.const 0)
(select
- (i32.eq
+ (i32.eqz
(i32.and
(i32.load offset=12
- (get_local $50)
+ (get_local $49)
)
(i32.const 8)
)
- (i32.const 0)
)
(i32.const 0)
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 203)
)
)
)
(block
(i32.store
- (get_local $48)
+ (get_local $47)
(i32.add
- (get_local $49)
+ (get_local $48)
(get_local $22)
)
)
- (set_local $3
+ (set_local $1
(i32.add
- (get_local $13)
- (tee_local $12
+ (get_local $12)
+ (tee_local $11
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
- (tee_local $3
+ (tee_local $1
(i32.add
- (get_local $13)
+ (get_local $12)
(i32.const 8)
)
)
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $3)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $1)
+ (i32.const 7)
)
)
)
)
)
- (set_local $17
+ (set_local $18
(i32.add
(i32.sub
(get_local $22)
- (get_local $12)
+ (get_local $11)
)
(i32.load
(i32.const 188)
@@ -3801,23 +3776,23 @@
)
(i32.store
(i32.const 200)
- (get_local $3)
+ (get_local $1)
)
(i32.store
(i32.const 188)
- (get_local $17)
+ (get_local $18)
)
(i32.store offset=4
- (get_local $3)
+ (get_local $1)
(i32.or
- (get_local $17)
+ (get_local $18)
(i32.const 1)
)
)
(i32.store offset=4
(i32.add
- (get_local $3)
- (get_local $17)
+ (get_local $1)
+ (get_local $18)
)
(i32.const 40)
)
@@ -3830,11 +3805,11 @@
(br $do-once$44)
)
)
- (set_local $4
+ (set_local $17
(if
(i32.lt_u
(get_local $20)
- (tee_local $17
+ (tee_local $18
(i32.load
(i32.const 192)
)
@@ -3847,16 +3822,16 @@
)
(get_local $20)
)
- (get_local $17)
+ (get_local $18)
)
)
- (set_local $17
+ (set_local $18
(i32.add
(get_local $20)
(get_local $22)
)
)
- (set_local $3
+ (set_local $1
(i32.const 624)
)
(loop $while-in$49
@@ -3864,50 +3839,44 @@
(if
(i32.eq
(i32.load
- (get_local $3)
+ (get_local $1)
)
- (get_local $17)
+ (get_local $18)
)
(block
- (set_local $51
- (get_local $3)
+ (set_local $50
+ (get_local $1)
)
- (set_local $41
- (get_local $3)
+ (set_local $40
+ (get_local $1)
)
- (set_local $9
+ (set_local $6
(i32.const 211)
)
(br $while-out$48)
)
)
- (if
- (i32.eqz
- (tee_local $3
- (i32.load offset=8
- (get_local $3)
- )
+ (br_if $while-in$49
+ (tee_local $1
+ (i32.load offset=8
+ (get_local $1)
)
)
- (block
- (set_local $28
- (i32.const 624)
- )
- (br $while-out$48)
- )
)
- (br $while-in$49)
+ (set_local $28
+ (i32.const 624)
+ )
)
)
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 211)
)
(if
(i32.and
(i32.load offset=12
- (get_local $41)
+ (get_local $40)
)
(i32.const 8)
)
@@ -3916,32 +3885,31 @@
)
(block
(i32.store
- (get_local $51)
+ (get_local $50)
(get_local $20)
)
(i32.store
- (tee_local $3
+ (tee_local $1
(i32.add
- (get_local $41)
+ (get_local $40)
(i32.const 4)
)
)
(i32.add
(i32.load
- (get_local $3)
+ (get_local $1)
)
(get_local $22)
)
)
- (set_local $12
+ (set_local $11
(i32.add
(get_local $20)
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
- (tee_local $3
+ (tee_local $1
(i32.add
(get_local $20)
(i32.const 8)
@@ -3950,75 +3918,70 @@
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $3)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $1)
+ (i32.const 7)
)
)
)
)
- (set_local $6
+ (set_local $4
(i32.add
- (get_local $17)
+ (get_local $18)
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
- (tee_local $3
+ (tee_local $1
(i32.add
- (get_local $17)
+ (get_local $18)
(i32.const 8)
)
)
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $3)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $1)
+ (i32.const 7)
)
)
)
)
- (set_local $3
+ (set_local $1
(i32.add
- (get_local $12)
- (get_local $0)
+ (get_local $11)
+ (get_local $8)
)
)
(set_local $15
(i32.sub
(i32.sub
- (get_local $6)
- (get_local $12)
+ (get_local $4)
+ (get_local $11)
)
- (get_local $0)
+ (get_local $8)
)
)
(i32.store offset=4
- (get_local $12)
+ (get_local $11)
(i32.or
- (get_local $0)
+ (get_local $8)
(i32.const 3)
)
)
(block $do-once$50
(if
(i32.ne
- (get_local $6)
- (get_local $13)
+ (get_local $4)
+ (get_local $12)
)
(block
(if
(i32.eq
- (get_local $6)
+ (get_local $4)
(i32.load
(i32.const 196)
)
@@ -4026,7 +3989,7 @@
(block
(i32.store
(i32.const 184)
- (tee_local $1
+ (tee_local $0
(i32.add
(i32.load
(i32.const 184)
@@ -4037,21 +4000,21 @@
)
(i32.store
(i32.const 196)
- (get_local $3)
+ (get_local $1)
)
(i32.store offset=4
- (get_local $3)
+ (get_local $1)
(i32.or
- (get_local $1)
+ (get_local $0)
(i32.const 1)
)
)
(i32.store
(i32.add
- (get_local $3)
(get_local $1)
+ (get_local $0)
)
- (get_local $1)
+ (get_local $0)
)
(br $do-once$50)
)
@@ -4062,9 +4025,9 @@
(if
(i32.eq
(i32.and
- (tee_local $1
+ (tee_local $0
(i32.load offset=4
- (get_local $6)
+ (get_local $4)
)
)
(i32.const 3)
@@ -4072,28 +4035,28 @@
(i32.const 1)
)
(block
- (set_local $7
+ (set_local $13
(i32.and
- (get_local $1)
+ (get_local $0)
(i32.const -8)
)
)
(set_local $5
(i32.shr_u
- (get_local $1)
+ (get_local $0)
(i32.const 3)
)
)
(block $label$break$L331
(if
(i32.ge_u
- (get_local $1)
+ (get_local $0)
(i32.const 256)
)
(block
(set_local $23
(i32.load offset=24
- (get_local $6)
+ (get_local $4)
)
)
(block $do-once$53
@@ -4101,20 +4064,20 @@
(i32.eq
(tee_local $21
(i32.load offset=12
- (get_local $6)
+ (get_local $4)
)
)
- (get_local $6)
+ (get_local $4)
)
(block
(if
- (tee_local $8
+ (tee_local $3
(i32.load
(tee_local $2
(i32.add
- (tee_local $11
+ (tee_local $9
(i32.add
- (get_local $6)
+ (get_local $4)
(i32.const 16)
)
)
@@ -4125,9 +4088,9 @@
)
(block
(set_local $14
- (get_local $8)
+ (get_local $3)
)
- (set_local $11
+ (set_local $9
(get_local $2)
)
)
@@ -4135,7 +4098,7 @@
(i32.eqz
(tee_local $14
(i32.load
- (get_local $11)
+ (get_local $9)
)
)
)
@@ -4148,61 +4111,58 @@
)
)
(loop $while-in$56
- (block $while-out$55
- (if
- (tee_local $8
- (i32.load
- (tee_local $2
- (i32.add
- (get_local $14)
- (i32.const 20)
- )
+ (if
+ (tee_local $3
+ (i32.load
+ (tee_local $2
+ (i32.add
+ (get_local $14)
+ (i32.const 20)
)
)
)
- (block
- (set_local $14
- (get_local $8)
- )
- (set_local $11
- (get_local $2)
- )
- (br $while-in$56)
- )
)
- (if
- (tee_local $8
- (i32.load
- (tee_local $2
- (i32.add
- (get_local $14)
- (i32.const 16)
- )
+ (block
+ (set_local $14
+ (get_local $3)
+ )
+ (set_local $9
+ (get_local $2)
+ )
+ (br $while-in$56)
+ )
+ )
+ (if
+ (tee_local $3
+ (i32.load
+ (tee_local $2
+ (i32.add
+ (get_local $14)
+ (i32.const 16)
)
)
)
- (block
- (set_local $14
- (get_local $8)
- )
- (set_local $11
- (get_local $2)
- )
- )
- (br $while-out$55)
)
- (br $while-in$56)
+ (block
+ (set_local $14
+ (get_local $3)
+ )
+ (set_local $9
+ (get_local $2)
+ )
+ (br $while-in$56)
+ )
)
)
(if
(i32.lt_u
- (get_local $11)
- (get_local $4)
+ (get_local $9)
+ (get_local $17)
)
(call_import $_abort)
(block
(i32.store
- (get_local $11)
+ (get_local $9)
(i32.const 0)
)
(set_local $24
@@ -4216,7 +4176,21 @@
(i32.lt_u
(tee_local $2
(i32.load offset=8
- (get_local $6)
+ (get_local $4)
+ )
+ )
+ (get_local $17)
+ )
+ (call_import $_abort)
+ )
+ (if
+ (i32.ne
+ (i32.load
+ (tee_local $3
+ (i32.add
+ (get_local $2)
+ (i32.const 12)
+ )
)
)
(get_local $4)
@@ -4224,38 +4198,24 @@
(call_import $_abort)
)
(if
- (i32.ne
- (i32.load
- (tee_local $8
- (i32.add
- (get_local $2)
- (i32.const 12)
- )
- )
- )
- (get_local $6)
- )
- (call_import $_abort)
- )
- (if
(i32.eq
(i32.load
- (tee_local $11
+ (tee_local $9
(i32.add
(get_local $21)
(i32.const 8)
)
)
)
- (get_local $6)
+ (get_local $4)
)
(block
(i32.store
- (get_local $8)
+ (get_local $3)
(get_local $21)
)
(i32.store
- (get_local $11)
+ (get_local $9)
(get_local $2)
)
(set_local $24
@@ -4275,7 +4235,7 @@
(block $do-once$57
(if
(i32.ne
- (get_local $6)
+ (get_local $4)
(i32.load
(tee_local $2
(i32.add
@@ -4283,7 +4243,7 @@
(i32.shl
(tee_local $21
(i32.load offset=28
- (get_local $6)
+ (get_local $4)
)
)
(i32.const 2)
@@ -4305,17 +4265,17 @@
(if
(i32.eq
(i32.load
- (tee_local $11
+ (tee_local $9
(i32.add
(get_local $23)
(i32.const 16)
)
)
)
- (get_local $6)
+ (get_local $4)
)
(i32.store
- (get_local $11)
+ (get_local $9)
(get_local $24)
)
(i32.store offset=20
@@ -4372,11 +4332,11 @@
(get_local $23)
)
(if
- (tee_local $11
+ (tee_local $9
(i32.load
(tee_local $2
(i32.add
- (get_local $6)
+ (get_local $4)
(i32.const 16)
)
)
@@ -4384,17 +4344,17 @@
)
(if
(i32.lt_u
- (get_local $11)
+ (get_local $9)
(get_local $21)
)
(call_import $_abort)
(block
(i32.store offset=16
(get_local $24)
- (get_local $11)
+ (get_local $9)
)
(i32.store offset=24
- (get_local $11)
+ (get_local $9)
(get_local $24)
)
)
@@ -4402,7 +4362,7 @@
)
(br_if $label$break$L331
(i32.eqz
- (tee_local $11
+ (tee_local $9
(i32.load offset=4
(get_local $2)
)
@@ -4411,7 +4371,7 @@
)
(if
(i32.lt_u
- (get_local $11)
+ (get_local $9)
(i32.load
(i32.const 192)
)
@@ -4420,10 +4380,10 @@
(block
(i32.store offset=20
(get_local $24)
- (get_local $11)
+ (get_local $9)
)
(i32.store offset=24
- (get_local $11)
+ (get_local $9)
(get_local $24)
)
)
@@ -4432,15 +4392,15 @@
(block
(set_local $21
(i32.load offset=12
- (get_local $6)
+ (get_local $4)
)
)
(block $do-once$61
(if
(i32.ne
- (tee_local $11
+ (tee_local $9
(i32.load offset=8
- (get_local $6)
+ (get_local $4)
)
)
(tee_local $23
@@ -4459,17 +4419,17 @@
(block
(if
(i32.lt_u
- (get_local $11)
- (get_local $4)
+ (get_local $9)
+ (get_local $17)
)
(call_import $_abort)
)
(br_if $do-once$61
(i32.eq
(i32.load offset=12
- (get_local $11)
+ (get_local $9)
)
- (get_local $6)
+ (get_local $4)
)
)
(call_import $_abort)
@@ -4479,7 +4439,7 @@
(if
(i32.eq
(get_local $21)
- (get_local $11)
+ (get_local $9)
)
(block
(i32.store
@@ -4506,7 +4466,7 @@
(get_local $21)
(get_local $23)
)
- (set_local $42
+ (set_local $41
(i32.add
(get_local $21)
(i32.const 8)
@@ -4516,7 +4476,7 @@
(if
(i32.lt_u
(get_local $21)
- (get_local $4)
+ (get_local $17)
)
(call_import $_abort)
)
@@ -4530,10 +4490,10 @@
)
)
)
- (get_local $6)
+ (get_local $4)
)
(block
- (set_local $42
+ (set_local $41
(get_local $2)
)
(br $do-once$63)
@@ -4544,28 +4504,28 @@
)
)
(i32.store offset=12
- (get_local $11)
+ (get_local $9)
(get_local $21)
)
(i32.store
- (get_local $42)
- (get_local $11)
+ (get_local $41)
+ (get_local $9)
)
)
)
)
(set_local $15
(i32.add
- (get_local $7)
+ (get_local $13)
(get_local $15)
)
)
(i32.add
- (get_local $6)
- (get_local $7)
+ (get_local $4)
+ (get_local $13)
)
)
- (get_local $6)
+ (get_local $4)
)
(i32.const 4)
)
@@ -4578,7 +4538,7 @@
)
)
(i32.store offset=4
- (get_local $3)
+ (get_local $1)
(i32.or
(get_local $15)
(i32.const 1)
@@ -4586,7 +4546,7 @@
)
(i32.store
(i32.add
- (get_local $3)
+ (get_local $1)
(get_local $15)
)
(get_local $15)
@@ -4603,7 +4563,7 @@
(i32.const 256)
)
(block
- (set_local $1
+ (set_local $0
(i32.add
(i32.const 216)
(i32.shl
@@ -4633,11 +4593,11 @@
(block
(if
(i32.ge_u
- (tee_local $8
+ (tee_local $3
(i32.load
(tee_local $5
(i32.add
- (get_local $1)
+ (get_local $0)
(i32.const 8)
)
)
@@ -4648,11 +4608,11 @@
)
)
(block
- (set_local $43
+ (set_local $42
(get_local $5)
)
- (set_local $35
- (get_local $8)
+ (set_local $34
+ (get_local $3)
)
(br $do-once$65)
)
@@ -4667,33 +4627,33 @@
(get_local $2)
)
)
- (set_local $43
+ (set_local $42
(i32.add
- (get_local $1)
+ (get_local $0)
(i32.const 8)
)
)
- (set_local $35
- (get_local $1)
+ (set_local $34
+ (get_local $0)
)
)
)
)
(i32.store
- (get_local $43)
- (get_local $3)
+ (get_local $42)
+ (get_local $1)
)
(i32.store offset=12
- (get_local $35)
- (get_local $3)
+ (get_local $34)
+ (get_local $1)
)
(i32.store offset=8
- (get_local $3)
- (get_local $35)
+ (get_local $1)
+ (get_local $34)
)
(i32.store offset=12
- (get_local $3)
(get_local $1)
+ (get_local $0)
)
(br $do-once$50)
)
@@ -4702,7 +4662,7 @@
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $0
+ (tee_local $3
(block $do-once$67
(if
(tee_local $2
@@ -4730,11 +4690,11 @@
(i32.const 14)
(i32.or
(i32.or
- (tee_local $8
+ (tee_local $3
(i32.and
(i32.shr_u
(i32.add
- (tee_local $7
+ (tee_local $13
(i32.shl
(get_local $2)
(tee_local $23
@@ -4760,14 +4720,14 @@
)
(get_local $23)
)
- (tee_local $7
+ (tee_local $13
(i32.and
(i32.shr_u
(i32.add
(tee_local $5
(i32.shl
- (get_local $7)
- (get_local $8)
+ (get_local $13)
+ (get_local $3)
)
)
(i32.const 245760)
@@ -4782,7 +4742,7 @@
(i32.shr_u
(i32.shl
(get_local $5)
- (get_local $7)
+ (get_local $13)
)
(i32.const 15)
)
@@ -4808,26 +4768,26 @@
)
)
(i32.store offset=28
+ (get_local $1)
(get_local $3)
- (get_local $0)
)
(i32.store offset=4
- (tee_local $1
+ (tee_local $0
(i32.add
- (get_local $3)
+ (get_local $1)
(i32.const 16)
)
)
(i32.const 0)
)
(i32.store
- (get_local $1)
+ (get_local $0)
(i32.const 0)
)
(if
(i32.eqz
(i32.and
- (tee_local $1
+ (tee_local $0
(i32.load
(i32.const 180)
)
@@ -4835,7 +4795,7 @@
(tee_local $14
(i32.shl
(i32.const 1)
- (get_local $0)
+ (get_local $3)
)
)
)
@@ -4844,25 +4804,25 @@
(i32.store
(i32.const 180)
(i32.or
- (get_local $1)
+ (get_local $0)
(get_local $14)
)
)
(i32.store
(get_local $2)
- (get_local $3)
+ (get_local $1)
)
(i32.store offset=24
- (get_local $3)
+ (get_local $1)
(get_local $2)
)
(i32.store offset=12
- (get_local $3)
- (get_local $3)
+ (get_local $1)
+ (get_local $1)
)
(i32.store offset=8
- (get_local $3)
- (get_local $3)
+ (get_local $1)
+ (get_local $1)
)
(br $do-once$50)
)
@@ -4875,18 +4835,18 @@
(i32.sub
(i32.const 25)
(i32.shr_u
- (get_local $0)
+ (get_local $3)
(i32.const 1)
)
)
(i32.eq
- (get_local $0)
+ (get_local $3)
(i32.const 31)
)
)
)
)
- (set_local $1
+ (set_local $0
(i32.load
(get_local $2)
)
@@ -4897,29 +4857,29 @@
(i32.eq
(i32.and
(i32.load offset=4
- (get_local $1)
+ (get_local $0)
)
(i32.const -8)
)
(get_local $15)
)
(block
- (set_local $36
- (get_local $1)
+ (set_local $35
+ (get_local $0)
)
- (set_local $9
+ (set_local $6
(i32.const 281)
)
(br $while-out$69)
)
)
(if
- (tee_local $7
+ (tee_local $13
(i32.load
(tee_local $2
(i32.add
(i32.add
- (get_local $1)
+ (get_local $0)
(i32.const 16)
)
(i32.shl
@@ -4940,34 +4900,33 @@
(i32.const 1)
)
)
- (set_local $1
- (get_local $7)
+ (set_local $0
+ (get_local $13)
)
+ (br $while-in$70)
)
(block
- (set_local $44
+ (set_local $43
(get_local $2)
)
- (set_local $52
- (get_local $1)
+ (set_local $51
+ (get_local $0)
)
- (set_local $9
+ (set_local $6
(i32.const 278)
)
- (br $while-out$69)
)
)
- (br $while-in$70)
)
)
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 278)
)
(if
(i32.lt_u
- (get_local $44)
+ (get_local $43)
(i32.load
(i32.const 192)
)
@@ -4975,26 +4934,26 @@
(call_import $_abort)
(block
(i32.store
- (get_local $44)
- (get_local $3)
+ (get_local $43)
+ (get_local $1)
)
(i32.store offset=24
- (get_local $3)
- (get_local $52)
+ (get_local $1)
+ (get_local $51)
)
(i32.store offset=12
- (get_local $3)
- (get_local $3)
+ (get_local $1)
+ (get_local $1)
)
(i32.store offset=8
- (get_local $3)
- (get_local $3)
+ (get_local $1)
+ (get_local $1)
)
)
)
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 281)
)
(if
@@ -5002,44 +4961,44 @@
(i32.ge_u
(tee_local $14
(i32.load
- (tee_local $1
+ (tee_local $0
(i32.add
- (get_local $36)
+ (get_local $35)
(i32.const 8)
)
)
)
)
- (tee_local $7
+ (tee_local $13
(i32.load
(i32.const 192)
)
)
)
(i32.ge_u
- (get_local $36)
- (get_local $7)
+ (get_local $35)
+ (get_local $13)
)
)
(block
(i32.store offset=12
(get_local $14)
- (get_local $3)
+ (get_local $1)
)
(i32.store
+ (get_local $0)
(get_local $1)
- (get_local $3)
)
(i32.store offset=8
- (get_local $3)
+ (get_local $1)
(get_local $14)
)
(i32.store offset=12
- (get_local $3)
- (get_local $36)
+ (get_local $1)
+ (get_local $35)
)
(i32.store offset=24
- (get_local $3)
+ (get_local $1)
(i32.const 0)
)
)
@@ -5062,10 +5021,10 @@
)
(i32.store
(i32.const 200)
- (get_local $3)
+ (get_local $1)
)
(i32.store offset=4
- (get_local $3)
+ (get_local $1)
(i32.or
(get_local $14)
(i32.const 1)
@@ -5076,7 +5035,7 @@
)
(return
(i32.add
- (get_local $12)
+ (get_local $11)
(i32.const 8)
)
)
@@ -5084,66 +5043,62 @@
)
)
(loop $while-in$72
- (block $while-out$71
+ (if
(if
- (if
- (i32.le_u
- (tee_local $3
- (i32.load
+ (i32.le_u
+ (tee_local $1
+ (i32.load
+ (get_local $28)
+ )
+ )
+ (get_local $12)
+ )
+ (i32.gt_u
+ (tee_local $15
+ (i32.add
+ (get_local $1)
+ (i32.load offset=4
(get_local $28)
)
)
- (get_local $13)
)
- (i32.gt_u
- (tee_local $15
- (i32.add
- (get_local $3)
- (i32.load offset=4
- (get_local $28)
- )
- )
- )
- (get_local $13)
- )
- (i32.const 0)
+ (get_local $12)
)
- (block
- (set_local $5
- (get_local $15)
- )
- (br $while-out$71)
- )
+ (i32.const 0)
)
- (set_local $28
- (i32.load offset=8
- (get_local $28)
- )
+ (set_local $0
+ (get_local $15)
)
- (br $while-in$72)
+ (block
+ (set_local $28
+ (i32.load offset=8
+ (get_local $28)
+ )
+ )
+ (br $while-in$72)
+ )
)
)
(set_local $15
(i32.add
- (tee_local $12
+ (tee_local $11
(i32.add
- (get_local $5)
+ (get_local $0)
(i32.const -47)
)
)
(i32.const 8)
)
)
- (set_local $3
+ (set_local $1
(i32.add
- (tee_local $12
+ (tee_local $11
(select
- (get_local $13)
- (tee_local $3
+ (get_local $12)
+ (tee_local $1
(i32.add
- (get_local $12)
+ (get_local $11)
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
@@ -5151,21 +5106,19 @@
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $15)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $15)
+ (i32.const 7)
)
)
)
)
(i32.lt_u
- (get_local $3)
+ (get_local $1)
(tee_local $15
(i32.add
- (get_local $13)
+ (get_local $12)
(i32.const 16)
)
)
@@ -5177,16 +5130,15 @@
)
(i32.store
(i32.const 200)
- (tee_local $6
+ (tee_local $4
(i32.add
(get_local $20)
- (tee_local $17
+ (tee_local $18
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
- (tee_local $6
+ (tee_local $4
(i32.add
(get_local $20)
(i32.const 8)
@@ -5195,12 +5147,10 @@
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $6)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $4)
+ (i32.const 7)
)
)
)
@@ -5215,12 +5165,12 @@
(get_local $22)
(i32.const -40)
)
- (get_local $17)
+ (get_local $18)
)
)
)
(i32.store offset=4
- (get_local $6)
+ (get_local $4)
(i32.or
(get_local $14)
(i32.const 1)
@@ -5228,7 +5178,7 @@
)
(i32.store offset=4
(i32.add
- (get_local $6)
+ (get_local $4)
(get_local $14)
)
(i32.const 40)
@@ -5242,32 +5192,32 @@
(i32.store
(tee_local $14
(i32.add
- (get_local $12)
+ (get_local $11)
(i32.const 4)
)
)
(i32.const 27)
)
(i32.store
- (get_local $3)
+ (get_local $1)
(i32.load
(i32.const 624)
)
)
(i32.store offset=4
- (get_local $3)
+ (get_local $1)
(i32.load
(i32.const 628)
)
)
(i32.store offset=8
- (get_local $3)
+ (get_local $1)
(i32.load
(i32.const 632)
)
)
(i32.store offset=12
- (get_local $3)
+ (get_local $1)
(i32.load
(i32.const 636)
)
@@ -5286,19 +5236,19 @@
)
(i32.store
(i32.const 632)
- (get_local $3)
+ (get_local $1)
)
- (set_local $3
+ (set_local $1
(i32.add
- (get_local $12)
+ (get_local $11)
(i32.const 24)
)
)
(loop $do-in$74
(i32.store
- (tee_local $3
+ (tee_local $1
(i32.add
- (get_local $3)
+ (get_local $1)
(i32.const 4)
)
)
@@ -5307,17 +5257,17 @@
(br_if $do-in$74
(i32.lt_u
(i32.add
- (get_local $3)
+ (get_local $1)
(i32.const 4)
)
- (get_local $5)
+ (get_local $0)
)
)
)
(if
(i32.ne
+ (get_local $11)
(get_local $12)
- (get_local $13)
)
(block
(i32.store
@@ -5330,39 +5280,39 @@
)
)
(i32.store offset=4
- (get_local $13)
+ (get_local $12)
(i32.or
- (tee_local $3
+ (tee_local $1
(i32.sub
+ (get_local $11)
(get_local $12)
- (get_local $13)
)
)
(i32.const 1)
)
)
(i32.store
- (get_local $12)
- (get_local $3)
+ (get_local $11)
+ (get_local $1)
)
- (set_local $6
+ (set_local $4
(i32.shr_u
- (get_local $3)
+ (get_local $1)
(i32.const 3)
)
)
(if
(i32.lt_u
- (get_local $3)
+ (get_local $1)
(i32.const 256)
)
(block
- (set_local $17
+ (set_local $18
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (get_local $6)
+ (get_local $4)
(i32.const 1)
)
(i32.const 2)
@@ -5371,15 +5321,15 @@
)
(if
(i32.and
- (tee_local $1
+ (tee_local $0
(i32.load
(i32.const 176)
)
)
- (tee_local $7
+ (tee_local $13
(i32.shl
(i32.const 1)
- (get_local $6)
+ (get_local $4)
)
)
)
@@ -5387,9 +5337,9 @@
(i32.lt_u
(tee_local $2
(i32.load
- (tee_local $6
+ (tee_local $4
(i32.add
- (get_local $17)
+ (get_local $18)
(i32.const 8)
)
)
@@ -5401,10 +5351,10 @@
)
(call_import $_abort)
(block
- (set_local $45
- (get_local $6)
+ (set_local $44
+ (get_local $4)
)
- (set_local $37
+ (set_local $36
(get_local $2)
)
)
@@ -5413,81 +5363,81 @@
(i32.store
(i32.const 176)
(i32.or
- (get_local $1)
- (get_local $7)
+ (get_local $0)
+ (get_local $13)
)
)
- (set_local $45
+ (set_local $44
(i32.add
- (get_local $17)
+ (get_local $18)
(i32.const 8)
)
)
- (set_local $37
- (get_local $17)
+ (set_local $36
+ (get_local $18)
)
)
)
(i32.store
- (get_local $45)
- (get_local $13)
+ (get_local $44)
+ (get_local $12)
)
(i32.store offset=12
- (get_local $37)
- (get_local $13)
+ (get_local $36)
+ (get_local $12)
)
(i32.store offset=8
- (get_local $13)
- (get_local $37)
+ (get_local $12)
+ (get_local $36)
)
(i32.store offset=12
- (get_local $13)
- (get_local $17)
+ (get_local $12)
+ (get_local $18)
)
(br $do-once$44)
)
)
- (set_local $6
+ (set_local $4
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $5
+ (tee_local $3
(if
- (tee_local $17
+ (tee_local $18
(i32.shr_u
- (get_local $3)
+ (get_local $1)
(i32.const 8)
)
)
(if
(i32.gt_u
- (get_local $3)
+ (get_local $1)
(i32.const 16777215)
)
(i32.const 31)
(i32.or
(i32.and
(i32.shr_u
- (get_local $3)
+ (get_local $1)
(i32.add
- (tee_local $6
+ (tee_local $4
(i32.add
(i32.sub
(i32.const 14)
(i32.or
(i32.or
- (tee_local $17
+ (tee_local $18
(i32.and
(i32.shr_u
(i32.add
- (tee_local $1
+ (tee_local $0
(i32.shl
- (get_local $17)
- (tee_local $7
+ (get_local $18)
+ (tee_local $13
(i32.and
(i32.shr_u
(i32.add
- (get_local $17)
+ (get_local $18)
(i32.const 1048320)
)
(i32.const 16)
@@ -5504,16 +5454,16 @@
(i32.const 4)
)
)
- (get_local $7)
+ (get_local $13)
)
- (tee_local $1
+ (tee_local $0
(i32.and
(i32.shr_u
(i32.add
(tee_local $2
(i32.shl
- (get_local $1)
- (get_local $17)
+ (get_local $0)
+ (get_local $18)
)
)
(i32.const 245760)
@@ -5528,7 +5478,7 @@
(i32.shr_u
(i32.shl
(get_local $2)
- (get_local $1)
+ (get_local $0)
)
(i32.const 15)
)
@@ -5540,7 +5490,7 @@
(i32.const 1)
)
(i32.shl
- (get_local $6)
+ (get_local $4)
(i32.const 1)
)
)
@@ -5553,11 +5503,11 @@
)
)
(i32.store offset=28
- (get_local $13)
- (get_local $5)
+ (get_local $12)
+ (get_local $3)
)
(i32.store offset=20
- (get_local $13)
+ (get_local $12)
(i32.const 0)
)
(i32.store
@@ -5567,7 +5517,7 @@
(if
(i32.eqz
(i32.and
- (tee_local $1
+ (tee_local $0
(i32.load
(i32.const 180)
)
@@ -5575,7 +5525,7 @@
(tee_local $2
(i32.shl
(i32.const 1)
- (get_local $5)
+ (get_local $3)
)
)
)
@@ -5584,51 +5534,51 @@
(i32.store
(i32.const 180)
(i32.or
- (get_local $1)
+ (get_local $0)
(get_local $2)
)
)
(i32.store
- (get_local $6)
- (get_local $13)
+ (get_local $4)
+ (get_local $12)
)
(i32.store offset=24
- (get_local $13)
- (get_local $6)
+ (get_local $12)
+ (get_local $4)
)
(i32.store offset=12
- (get_local $13)
- (get_local $13)
+ (get_local $12)
+ (get_local $12)
)
(i32.store offset=8
- (get_local $13)
- (get_local $13)
+ (get_local $12)
+ (get_local $12)
)
(br $do-once$44)
)
)
(set_local $2
(i32.shl
- (get_local $3)
+ (get_local $1)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (get_local $5)
+ (get_local $3)
(i32.const 1)
)
)
(i32.eq
- (get_local $5)
+ (get_local $3)
(i32.const 31)
)
)
)
)
- (set_local $1
+ (set_local $0
(i32.load
- (get_local $6)
+ (get_local $4)
)
)
(loop $while-in$76
@@ -5637,29 +5587,29 @@
(i32.eq
(i32.and
(i32.load offset=4
- (get_local $1)
+ (get_local $0)
)
(i32.const -8)
)
- (get_local $3)
+ (get_local $1)
)
(block
- (set_local $38
- (get_local $1)
+ (set_local $37
+ (get_local $0)
)
- (set_local $9
+ (set_local $6
(i32.const 307)
)
(br $while-out$75)
)
)
(if
- (tee_local $7
+ (tee_local $13
(i32.load
- (tee_local $6
+ (tee_local $4
(i32.add
(i32.add
- (get_local $1)
+ (get_local $0)
(i32.const 16)
)
(i32.shl
@@ -5680,34 +5630,33 @@
(i32.const 1)
)
)
- (set_local $1
- (get_local $7)
+ (set_local $0
+ (get_local $13)
)
+ (br $while-in$76)
)
(block
- (set_local $46
- (get_local $6)
+ (set_local $45
+ (get_local $4)
)
- (set_local $53
- (get_local $1)
+ (set_local $52
+ (get_local $0)
)
- (set_local $9
+ (set_local $6
(i32.const 304)
)
- (br $while-out$75)
)
)
- (br $while-in$76)
)
)
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 304)
)
(if
(i32.lt_u
- (get_local $46)
+ (get_local $45)
(i32.load
(i32.const 192)
)
@@ -5715,26 +5664,26 @@
(call_import $_abort)
(block
(i32.store
- (get_local $46)
- (get_local $13)
+ (get_local $45)
+ (get_local $12)
)
(i32.store offset=24
- (get_local $13)
- (get_local $53)
+ (get_local $12)
+ (get_local $52)
)
(i32.store offset=12
- (get_local $13)
- (get_local $13)
+ (get_local $12)
+ (get_local $12)
)
(i32.store offset=8
- (get_local $13)
- (get_local $13)
+ (get_local $12)
+ (get_local $12)
)
)
)
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.const 307)
)
(if
@@ -5742,44 +5691,44 @@
(i32.ge_u
(tee_local $2
(i32.load
- (tee_local $1
+ (tee_local $0
(i32.add
- (get_local $38)
+ (get_local $37)
(i32.const 8)
)
)
)
)
- (tee_local $3
+ (tee_local $1
(i32.load
(i32.const 192)
)
)
)
(i32.ge_u
- (get_local $38)
- (get_local $3)
+ (get_local $37)
+ (get_local $1)
)
)
(block
(i32.store offset=12
(get_local $2)
- (get_local $13)
+ (get_local $12)
)
(i32.store
- (get_local $1)
- (get_local $13)
+ (get_local $0)
+ (get_local $12)
)
(i32.store offset=8
- (get_local $13)
+ (get_local $12)
(get_local $2)
)
(i32.store offset=12
- (get_local $13)
- (get_local $38)
+ (get_local $12)
+ (get_local $37)
)
(i32.store offset=24
- (get_local $13)
+ (get_local $12)
(i32.const 0)
)
)
@@ -5793,13 +5742,12 @@
(block
(if
(i32.or
- (i32.eq
+ (i32.eqz
(tee_local $2
(i32.load
(i32.const 192)
)
)
- (i32.const 0)
)
(i32.lt_u
(get_local $20)
@@ -5838,7 +5786,7 @@
)
(loop $do-in$78
(i32.store offset=12
- (tee_local $1
+ (tee_local $0
(i32.add
(i32.const 216)
(i32.shl
@@ -5850,11 +5798,11 @@
)
)
)
- (get_local $1)
+ (get_local $0)
)
(i32.store offset=8
- (get_local $1)
- (get_local $1)
+ (get_local $0)
+ (get_local $0)
)
(br_if $do-in$78
(i32.ne
@@ -5873,9 +5821,8 @@
(tee_local $2
(i32.add
(get_local $20)
- (tee_local $1
+ (tee_local $0
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
@@ -5888,12 +5835,10 @@
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $2)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $2)
+ (i32.const 7)
)
)
)
@@ -5902,27 +5847,27 @@
)
(i32.store
(i32.const 188)
- (tee_local $3
+ (tee_local $1
(i32.sub
(i32.add
(get_local $22)
(i32.const -40)
)
- (get_local $1)
+ (get_local $0)
)
)
)
(i32.store offset=4
(get_local $2)
(i32.or
- (get_local $3)
+ (get_local $1)
(i32.const 1)
)
)
(i32.store offset=4
(i32.add
(get_local $2)
- (get_local $3)
+ (get_local $1)
)
(i32.const 40)
)
@@ -5942,7 +5887,7 @@
(i32.const 188)
)
)
- (get_local $0)
+ (get_local $8)
)
(block
(i32.store
@@ -5950,25 +5895,25 @@
(tee_local $20
(i32.sub
(get_local $22)
- (get_local $0)
+ (get_local $8)
)
)
)
(i32.store
(i32.const 200)
- (tee_local $13
+ (tee_local $12
(i32.add
(tee_local $22
(i32.load
(i32.const 200)
)
)
- (get_local $0)
+ (get_local $8)
)
)
)
(i32.store offset=4
- (get_local $13)
+ (get_local $12)
(i32.or
(get_local $20)
(i32.const 1)
@@ -5977,7 +5922,7 @@
(i32.store offset=4
(get_local $22)
(i32.or
- (get_local $0)
+ (get_local $8)
(i32.const 3)
)
)
@@ -6043,7 +5988,7 @@
(i32.eq
(tee_local $0
(i32.and
- (tee_local $9
+ (tee_local $3
(i32.load
(i32.add
(get_local $0)
@@ -6061,9 +6006,9 @@
(set_local $8
(i32.add
(get_local $1)
- (tee_local $3
+ (tee_local $4
(i32.and
- (get_local $9)
+ (get_local $3)
(i32.const -8)
)
)
@@ -6072,7 +6017,7 @@
(block $do-once$0
(if
(i32.and
- (get_local $9)
+ (get_local $3)
(i32.const 1)
)
(block
@@ -6080,11 +6025,11 @@
(get_local $1)
)
(set_local $7
- (get_local $3)
+ (get_local $4)
)
)
(block
- (set_local $9
+ (set_local $11
(i32.load
(get_local $1)
)
@@ -6095,10 +6040,10 @@
)
(return)
)
- (set_local $3
+ (set_local $4
(i32.add
- (get_local $9)
- (get_local $3)
+ (get_local $11)
+ (get_local $4)
)
)
(if
@@ -6108,7 +6053,7 @@
(get_local $1)
(i32.sub
(i32.const 0)
- (get_local $9)
+ (get_local $11)
)
)
)
@@ -6127,7 +6072,7 @@
(if
(i32.ne
(i32.and
- (tee_local $5
+ (tee_local $6
(i32.load
(tee_local $1
(i32.add
@@ -6146,48 +6091,48 @@
(get_local $0)
)
(set_local $7
- (get_local $3)
+ (get_local $4)
)
(br $do-once$0)
)
)
(i32.store
(i32.const 184)
- (get_local $3)
+ (get_local $4)
)
(i32.store
(get_local $1)
(i32.and
- (get_local $5)
+ (get_local $6)
(i32.const -2)
)
)
(i32.store offset=4
(get_local $0)
(i32.or
- (get_local $3)
+ (get_local $4)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $0)
- (get_local $3)
+ (get_local $4)
)
- (get_local $3)
+ (get_local $4)
)
(return)
)
)
- (set_local $5
+ (set_local $6
(i32.shr_u
- (get_local $9)
+ (get_local $11)
(i32.const 3)
)
)
(if
(i32.lt_u
- (get_local $9)
+ (get_local $11)
(i32.const 256)
)
(block
@@ -6198,17 +6143,17 @@
)
(if
(i32.ne
- (tee_local $9
+ (tee_local $11
(i32.load offset=8
(get_local $0)
)
)
- (tee_local $6
+ (tee_local $3
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (get_local $5)
+ (get_local $6)
(i32.const 1)
)
(i32.const 2)
@@ -6219,7 +6164,7 @@
(block
(if
(i32.lt_u
- (get_local $9)
+ (get_local $11)
(get_local $14)
)
(call_import $_abort)
@@ -6227,7 +6172,7 @@
(if
(i32.ne
(i32.load offset=12
- (get_local $9)
+ (get_local $11)
)
(get_local $0)
)
@@ -6238,7 +6183,7 @@
(if
(i32.eq
(get_local $1)
- (get_local $9)
+ (get_local $11)
)
(block
(i32.store
@@ -6250,7 +6195,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $5)
+ (get_local $6)
)
(i32.const -1)
)
@@ -6260,7 +6205,7 @@
(get_local $0)
)
(set_local $7
- (get_local $3)
+ (get_local $4)
)
(br $do-once$0)
)
@@ -6268,7 +6213,7 @@
(if
(i32.ne
(get_local $1)
- (get_local $6)
+ (get_local $3)
)
(block
(if
@@ -6281,7 +6226,7 @@
(if
(i32.eq
(i32.load
- (tee_local $6
+ (tee_local $3
(i32.add
(get_local $1)
(i32.const 8)
@@ -6290,13 +6235,13 @@
)
(get_local $0)
)
- (set_local $11
- (get_local $6)
+ (set_local $10
+ (get_local $3)
)
(call_import $_abort)
)
)
- (set_local $11
+ (set_local $10
(i32.add
(get_local $1)
(i32.const 8)
@@ -6304,23 +6249,23 @@
)
)
(i32.store offset=12
- (get_local $9)
+ (get_local $11)
(get_local $1)
)
(i32.store
+ (get_local $10)
(get_local $11)
- (get_local $9)
)
(set_local $2
(get_local $0)
)
(set_local $7
- (get_local $3)
+ (get_local $4)
)
(br $do-once$0)
)
)
- (set_local $9
+ (set_local $11
(i32.load offset=24
(get_local $0)
)
@@ -6337,11 +6282,11 @@
)
(block
(if
- (tee_local $11
+ (tee_local $10
(i32.load
- (tee_local $5
+ (tee_local $6
(i32.add
- (tee_local $6
+ (tee_local $3
(i32.add
(get_local $0)
(i32.const 16)
@@ -6354,22 +6299,22 @@
)
(block
(set_local $1
- (get_local $11)
+ (get_local $10)
)
- (set_local $6
- (get_local $5)
+ (set_local $3
+ (get_local $6)
)
)
(if
(i32.eqz
(tee_local $1
(i32.load
- (get_local $6)
+ (get_local $3)
)
)
)
(block
- (set_local $4
+ (set_local $5
(i32.const 0)
)
(br $do-once$2)
@@ -6377,73 +6322,70 @@
)
)
(loop $while-in$5
- (block $while-out$4
- (if
- (tee_local $11
- (i32.load
- (tee_local $5
- (i32.add
- (get_local $1)
- (i32.const 20)
- )
+ (if
+ (tee_local $10
+ (i32.load
+ (tee_local $6
+ (i32.add
+ (get_local $1)
+ (i32.const 20)
)
)
)
- (block
- (set_local $1
- (get_local $11)
- )
- (set_local $6
- (get_local $5)
- )
- (br $while-in$5)
- )
)
- (if
- (tee_local $11
- (i32.load
- (tee_local $5
- (i32.add
- (get_local $1)
- (i32.const 16)
- )
+ (block
+ (set_local $1
+ (get_local $10)
+ )
+ (set_local $3
+ (get_local $6)
+ )
+ (br $while-in$5)
+ )
+ )
+ (if
+ (tee_local $10
+ (i32.load
+ (tee_local $6
+ (i32.add
+ (get_local $1)
+ (i32.const 16)
)
)
)
- (block
- (set_local $1
- (get_local $11)
- )
- (set_local $6
- (get_local $5)
- )
+ )
+ (block
+ (set_local $1
+ (get_local $10)
)
- (block
- (set_local $5
- (get_local $1)
- )
- (set_local $10
- (get_local $6)
- )
- (br $while-out$4)
+ (set_local $3
+ (get_local $6)
+ )
+ (br $while-in$5)
+ )
+ (block
+ (set_local $6
+ (get_local $1)
+ )
+ (set_local $9
+ (get_local $3)
)
)
- (br $while-in$5)
)
)
(if
(i32.lt_u
- (get_local $10)
+ (get_local $9)
(get_local $14)
)
(call_import $_abort)
(block
(i32.store
- (get_local $10)
+ (get_local $9)
(i32.const 0)
)
- (set_local $4
- (get_local $5)
+ (set_local $5
+ (get_local $6)
)
)
)
@@ -6451,7 +6393,7 @@
(block
(if
(i32.lt_u
- (tee_local $5
+ (tee_local $6
(i32.load offset=8
(get_local $0)
)
@@ -6463,9 +6405,9 @@
(if
(i32.ne
(i32.load
- (tee_local $11
+ (tee_local $10
(i32.add
- (get_local $5)
+ (get_local $6)
(i32.const 12)
)
)
@@ -6477,7 +6419,7 @@
(if
(i32.eq
(i32.load
- (tee_local $6
+ (tee_local $3
(i32.add
(get_local $1)
(i32.const 8)
@@ -6488,14 +6430,14 @@
)
(block
(i32.store
- (get_local $11)
+ (get_local $10)
(get_local $1)
)
(i32.store
+ (get_local $3)
(get_local $6)
- (get_local $5)
)
- (set_local $4
+ (set_local $5
(get_local $1)
)
)
@@ -6505,13 +6447,13 @@
)
)
(if
- (get_local $9)
+ (get_local $11)
(block
(if
(i32.eq
(get_local $0)
(i32.load
- (tee_local $5
+ (tee_local $6
(i32.add
(i32.const 480)
(i32.shl
@@ -6528,12 +6470,12 @@
)
(block
(i32.store
+ (get_local $6)
(get_local $5)
- (get_local $4)
)
(if
(i32.eqz
- (get_local $4)
+ (get_local $5)
)
(block
(i32.store
@@ -6555,7 +6497,7 @@
(get_local $0)
)
(set_local $7
- (get_local $3)
+ (get_local $4)
)
(br $do-once$0)
)
@@ -6564,7 +6506,7 @@
(block
(if
(i32.lt_u
- (get_local $9)
+ (get_local $11)
(i32.load
(i32.const 192)
)
@@ -6576,7 +6518,7 @@
(i32.load
(tee_local $1
(i32.add
- (get_local $9)
+ (get_local $11)
(i32.const 16)
)
)
@@ -6585,23 +6527,23 @@
)
(i32.store
(get_local $1)
- (get_local $4)
+ (get_local $5)
)
(i32.store offset=20
- (get_local $9)
- (get_local $4)
+ (get_local $11)
+ (get_local $5)
)
)
(if
(i32.eqz
- (get_local $4)
+ (get_local $5)
)
(block
(set_local $2
(get_local $0)
)
(set_local $7
- (get_local $3)
+ (get_local $4)
)
(br $do-once$0)
)
@@ -6610,7 +6552,7 @@
)
(if
(i32.lt_u
- (get_local $4)
+ (get_local $5)
(tee_local $1
(i32.load
(i32.const 192)
@@ -6620,13 +6562,13 @@
(call_import $_abort)
)
(i32.store offset=24
- (get_local $4)
- (get_local $9)
+ (get_local $5)
+ (get_local $11)
)
(if
- (tee_local $6
+ (tee_local $3
(i32.load
- (tee_local $5
+ (tee_local $6
(i32.add
(get_local $0)
(i32.const 16)
@@ -6636,31 +6578,31 @@
)
(if
(i32.lt_u
- (get_local $6)
+ (get_local $3)
(get_local $1)
)
(call_import $_abort)
(block
(i32.store offset=16
- (get_local $4)
- (get_local $6)
+ (get_local $5)
+ (get_local $3)
)
(i32.store offset=24
- (get_local $6)
- (get_local $4)
+ (get_local $3)
+ (get_local $5)
)
)
)
)
(if
- (tee_local $6
+ (tee_local $3
(i32.load offset=4
- (get_local $5)
+ (get_local $6)
)
)
(if
(i32.lt_u
- (get_local $6)
+ (get_local $3)
(i32.load
(i32.const 192)
)
@@ -6668,18 +6610,18 @@
(call_import $_abort)
(block
(i32.store offset=20
- (get_local $4)
- (get_local $6)
+ (get_local $5)
+ (get_local $3)
)
(i32.store offset=24
- (get_local $6)
- (get_local $4)
+ (get_local $3)
+ (get_local $5)
)
(set_local $2
(get_local $0)
)
(set_local $7
- (get_local $3)
+ (get_local $4)
)
)
)
@@ -6688,7 +6630,7 @@
(get_local $0)
)
(set_local $7
- (get_local $3)
+ (get_local $4)
)
)
)
@@ -6698,7 +6640,7 @@
(get_local $0)
)
(set_local $7
- (get_local $3)
+ (get_local $4)
)
)
)
@@ -6717,7 +6659,7 @@
(i32.and
(tee_local $1
(i32.load
- (tee_local $3
+ (tee_local $4
(i32.add
(get_local $8)
(i32.const 4)
@@ -6737,7 +6679,7 @@
)
(block
(i32.store
- (get_local $3)
+ (get_local $4)
(i32.and
(get_local $1)
(i32.const -2)
@@ -6772,7 +6714,7 @@
(block
(i32.store
(i32.const 188)
- (tee_local $4
+ (tee_local $5
(i32.add
(i32.load
(i32.const 188)
@@ -6788,7 +6730,7 @@
(i32.store offset=4
(get_local $2)
(i32.or
- (get_local $4)
+ (get_local $5)
(i32.const 1)
)
)
@@ -6822,7 +6764,7 @@
(block
(i32.store
(i32.const 184)
- (tee_local $4
+ (tee_local $5
(i32.add
(i32.load
(i32.const 184)
@@ -6838,21 +6780,21 @@
(i32.store offset=4
(get_local $2)
(i32.or
- (get_local $4)
+ (get_local $5)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $2)
- (get_local $4)
+ (get_local $5)
)
- (get_local $4)
+ (get_local $5)
)
(return)
)
)
- (set_local $4
+ (set_local $5
(i32.add
(i32.and
(get_local $1)
@@ -6874,7 +6816,7 @@
(i32.const 256)
)
(block
- (set_local $5
+ (set_local $6
(i32.load offset=24
(get_local $8)
)
@@ -6882,7 +6824,7 @@
(block $do-once$10
(if
(i32.eq
- (tee_local $10
+ (tee_local $9
(i32.load offset=12
(get_local $8)
)
@@ -6891,11 +6833,11 @@
)
(block
(if
- (tee_local $11
+ (tee_local $10
(i32.load
(tee_local $1
(i32.add
- (tee_local $6
+ (tee_local $3
(i32.add
(get_local $8)
(i32.const 16)
@@ -6908,9 +6850,9 @@
)
(block
(set_local $0
- (get_local $11)
+ (get_local $10)
)
- (set_local $6
+ (set_local $3
(get_local $1)
)
)
@@ -6918,7 +6860,7 @@
(i32.eqz
(tee_local $0
(i32.load
- (get_local $6)
+ (get_local $3)
)
)
)
@@ -6931,55 +6873,52 @@
)
)
(loop $while-in$13
- (block $while-out$12
- (if
- (tee_local $11
- (i32.load
- (tee_local $1
- (i32.add
- (get_local $0)
- (i32.const 20)
- )
+ (if
+ (tee_local $10
+ (i32.load
+ (tee_local $1
+ (i32.add
+ (get_local $0)
+ (i32.const 20)
)
)
)
- (block
- (set_local $0
- (get_local $11)
- )
- (set_local $6
- (get_local $1)
- )
- (br $while-in$13)
- )
)
- (if
- (tee_local $11
- (i32.load
- (tee_local $1
- (i32.add
- (get_local $0)
- (i32.const 16)
- )
+ (block
+ (set_local $0
+ (get_local $10)
+ )
+ (set_local $3
+ (get_local $1)
+ )
+ (br $while-in$13)
+ )
+ )
+ (if
+ (tee_local $10
+ (i32.load
+ (tee_local $1
+ (i32.add
+ (get_local $0)
+ (i32.const 16)
)
)
)
- (block
- (set_local $0
- (get_local $11)
- )
- (set_local $6
- (get_local $1)
- )
- )
- (br $while-out$12)
)
- (br $while-in$13)
+ (block
+ (set_local $0
+ (get_local $10)
+ )
+ (set_local $3
+ (get_local $1)
+ )
+ (br $while-in$13)
+ )
)
)
(if
(i32.lt_u
- (get_local $6)
+ (get_local $3)
(i32.load
(i32.const 192)
)
@@ -6987,7 +6926,7 @@
(call_import $_abort)
(block
(i32.store
- (get_local $6)
+ (get_local $3)
(i32.const 0)
)
(set_local $12
@@ -7013,7 +6952,7 @@
(if
(i32.ne
(i32.load
- (tee_local $11
+ (tee_local $10
(i32.add
(get_local $1)
(i32.const 12)
@@ -7027,9 +6966,9 @@
(if
(i32.eq
(i32.load
- (tee_local $6
+ (tee_local $3
(i32.add
- (get_local $10)
+ (get_local $9)
(i32.const 8)
)
)
@@ -7038,15 +6977,15 @@
)
(block
(i32.store
- (get_local $11)
(get_local $10)
+ (get_local $9)
)
(i32.store
- (get_local $6)
+ (get_local $3)
(get_local $1)
)
(set_local $12
- (get_local $10)
+ (get_local $9)
)
)
(call_import $_abort)
@@ -7055,17 +6994,17 @@
)
)
(if
- (get_local $5)
+ (get_local $6)
(block
(if
(i32.eq
(get_local $8)
(i32.load
- (tee_local $3
+ (tee_local $4
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $10
+ (tee_local $9
(i32.load offset=28
(get_local $8)
)
@@ -7078,7 +7017,7 @@
)
(block
(i32.store
- (get_local $3)
+ (get_local $4)
(get_local $12)
)
(if
@@ -7095,7 +7034,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $10)
+ (get_local $9)
)
(i32.const -1)
)
@@ -7108,7 +7047,7 @@
(block
(if
(i32.lt_u
- (get_local $5)
+ (get_local $6)
(i32.load
(i32.const 192)
)
@@ -7118,9 +7057,9 @@
(if
(i32.eq
(i32.load
- (tee_local $10
+ (tee_local $9
(i32.add
- (get_local $5)
+ (get_local $6)
(i32.const 16)
)
)
@@ -7128,11 +7067,11 @@
(get_local $8)
)
(i32.store
- (get_local $10)
+ (get_local $9)
(get_local $12)
)
(i32.store offset=20
- (get_local $5)
+ (get_local $6)
(get_local $12)
)
)
@@ -7146,7 +7085,7 @@
(if
(i32.lt_u
(get_local $12)
- (tee_local $10
+ (tee_local $9
(i32.load
(i32.const 192)
)
@@ -7156,12 +7095,12 @@
)
(i32.store offset=24
(get_local $12)
- (get_local $5)
+ (get_local $6)
)
(if
(tee_local $0
(i32.load
- (tee_local $3
+ (tee_local $4
(i32.add
(get_local $8)
(i32.const 16)
@@ -7172,7 +7111,7 @@
(if
(i32.lt_u
(get_local $0)
- (get_local $10)
+ (get_local $9)
)
(call_import $_abort)
(block
@@ -7190,7 +7129,7 @@
(if
(tee_local $0
(i32.load offset=4
- (get_local $3)
+ (get_local $4)
)
)
(if
@@ -7217,7 +7156,7 @@
)
)
(block
- (set_local $10
+ (set_local $9
(i32.load offset=12
(get_local $8)
)
@@ -7229,7 +7168,7 @@
(get_local $8)
)
)
- (tee_local $5
+ (tee_local $6
(i32.add
(i32.const 216)
(i32.shl
@@ -7265,7 +7204,7 @@
)
(if
(i32.eq
- (get_local $10)
+ (get_local $9)
(get_local $0)
)
(block
@@ -7289,13 +7228,13 @@
)
(if
(i32.ne
- (get_local $10)
- (get_local $5)
+ (get_local $9)
+ (get_local $6)
)
(block
(if
(i32.lt_u
- (get_local $10)
+ (get_local $9)
(i32.load
(i32.const 192)
)
@@ -7305,9 +7244,9 @@
(if
(i32.eq
(i32.load
- (tee_local $5
+ (tee_local $6
(i32.add
- (get_local $10)
+ (get_local $9)
(i32.const 8)
)
)
@@ -7315,21 +7254,21 @@
(get_local $8)
)
(set_local $16
- (get_local $5)
+ (get_local $6)
)
(call_import $_abort)
)
)
(set_local $16
(i32.add
- (get_local $10)
+ (get_local $9)
(i32.const 8)
)
)
)
(i32.store offset=12
(get_local $0)
- (get_local $10)
+ (get_local $9)
)
(i32.store
(get_local $16)
@@ -7341,16 +7280,16 @@
(i32.store offset=4
(get_local $2)
(i32.or
- (get_local $4)
+ (get_local $5)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $2)
- (get_local $4)
+ (get_local $5)
)
- (get_local $4)
+ (get_local $5)
)
(if
(i32.eq
@@ -7362,12 +7301,12 @@
(block
(i32.store
(i32.const 184)
- (get_local $4)
+ (get_local $5)
)
(return)
)
(set_local $0
- (get_local $4)
+ (get_local $5)
)
)
)
@@ -7398,12 +7337,12 @@
)
(if
(i32.and
- (tee_local $3
+ (tee_local $4
(i32.load
(i32.const 176)
)
)
- (tee_local $4
+ (tee_local $5
(i32.shl
(i32.const 1)
(get_local $7)
@@ -7440,8 +7379,8 @@
(i32.store
(i32.const 176)
(i32.or
- (get_local $3)
(get_local $4)
+ (get_local $5)
)
)
(set_local $15
@@ -7474,11 +7413,11 @@
(return)
)
)
- (set_local $3
+ (set_local $4
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $1
+ (tee_local $7
(if
(tee_local $1
(i32.shr_u
@@ -7497,7 +7436,7 @@
(i32.shr_u
(get_local $0)
(i32.add
- (tee_local $3
+ (tee_local $4
(i32.add
(i32.sub
(i32.const 14)
@@ -7537,7 +7476,7 @@
(i32.and
(i32.shr_u
(i32.add
- (tee_local $4
+ (tee_local $5
(i32.shl
(get_local $15)
(get_local $1)
@@ -7554,7 +7493,7 @@
)
(i32.shr_u
(i32.shl
- (get_local $4)
+ (get_local $5)
(get_local $15)
)
(i32.const 15)
@@ -7567,7 +7506,7 @@
(i32.const 1)
)
(i32.shl
- (get_local $3)
+ (get_local $4)
(i32.const 1)
)
)
@@ -7581,7 +7520,7 @@
)
(i32.store offset=28
(get_local $2)
- (get_local $1)
+ (get_local $7)
)
(i32.store offset=20
(get_local $2)
@@ -7598,10 +7537,10 @@
(i32.const 180)
)
)
- (tee_local $4
+ (tee_local $5
(i32.shl
(i32.const 1)
- (get_local $1)
+ (get_local $7)
)
)
)
@@ -7614,12 +7553,12 @@
(i32.sub
(i32.const 25)
(i32.shr_u
- (get_local $1)
+ (get_local $7)
(i32.const 1)
)
)
(i32.eq
- (get_local $1)
+ (get_local $7)
(i32.const 31)
)
)
@@ -7627,7 +7566,7 @@
)
(set_local $1
(i32.load
- (get_local $3)
+ (get_local $4)
)
)
(loop $while-in$19
@@ -7682,6 +7621,7 @@
(set_local $1
(get_local $7)
)
+ (br $while-in$19)
)
(block
(set_local $18
@@ -7693,10 +7633,8 @@
(set_local $0
(i32.const 127)
)
- (br $while-out$18)
)
)
- (br $while-in$19)
)
)
(if
@@ -7749,7 +7687,7 @@
)
)
)
- (tee_local $3
+ (tee_local $4
(i32.load
(i32.const 192)
)
@@ -7757,7 +7695,7 @@
)
(i32.ge_u
(get_local $17)
- (get_local $3)
+ (get_local $4)
)
)
(block
@@ -7792,16 +7730,16 @@
(i32.const 180)
(i32.or
(get_local $15)
- (get_local $4)
+ (get_local $5)
)
)
(i32.store
- (get_local $3)
+ (get_local $4)
(get_local $2)
)
(i32.store offset=24
(get_local $2)
- (get_local $3)
+ (get_local $4)
)
(i32.store offset=12
(get_local $2)
@@ -7832,22 +7770,21 @@
)
)
(loop $while-in$21
- (block $while-out$20
- (if
- (tee_local $2
- (i32.load
- (get_local $0)
- )
+ (if
+ (tee_local $2
+ (i32.load
+ (get_local $0)
)
+ )
+ (block
(set_local $0
(i32.add
(get_local $2)
(i32.const 8)
)
)
- (br $while-out$20)
+ (br $while-in$21)
)
- (br $while-in$21)
)
)
(i32.store
@@ -7871,8 +7808,7 @@
(local $15 i32)
(local $16 i32)
(local $17 i32)
- (local $18 i32)
- (set_local $11
+ (set_local $10
(get_global $STACKTOP)
)
(set_global $STACKTOP
@@ -7881,25 +7817,25 @@
(i32.const 48)
)
)
- (set_local $12
+ (set_local $11
(i32.add
- (get_local $11)
+ (get_local $10)
(i32.const 16)
)
)
- (set_local $13
- (get_local $11)
+ (set_local $12
+ (get_local $10)
)
(i32.store
- (tee_local $3
+ (tee_local $4
(i32.add
- (get_local $11)
+ (get_local $10)
(i32.const 32)
)
)
- (tee_local $8
+ (tee_local $7
(i32.load
- (tee_local $9
+ (tee_local $8
(i32.add
(get_local $0)
(i32.const 28)
@@ -7909,27 +7845,27 @@
)
)
(i32.store offset=4
- (get_local $3)
- (tee_local $10
+ (get_local $4)
+ (tee_local $9
(i32.sub
(i32.load
- (tee_local $14
+ (tee_local $13
(i32.add
(get_local $0)
(i32.const 20)
)
)
)
- (get_local $8)
+ (get_local $7)
)
)
)
(i32.store offset=8
- (get_local $3)
+ (get_local $4)
(get_local $1)
)
(i32.store offset=12
- (get_local $3)
+ (get_local $4)
(get_local $2)
)
(set_local $1
@@ -7938,21 +7874,21 @@
(i32.const 60)
)
)
- (set_local $8
+ (set_local $7
(i32.add
(get_local $0)
(i32.const 44)
)
)
- (set_local $4
- (get_local $3)
+ (set_local $5
+ (get_local $4)
)
- (set_local $3
+ (set_local $4
(i32.const 2)
)
- (set_local $5
+ (set_local $3
(i32.add
- (get_local $10)
+ (get_local $9)
(get_local $2)
)
)
@@ -7960,7 +7896,7 @@
(block $while-out$0
(if
(i32.eq
- (get_local $5)
+ (get_local $3)
(tee_local $6
(if
(i32.load
@@ -7972,51 +7908,51 @@
(get_local $0)
)
(i32.store
- (get_local $13)
+ (get_local $12)
(i32.load
(get_local $1)
)
)
(i32.store offset=4
- (get_local $13)
- (get_local $4)
+ (get_local $12)
+ (get_local $5)
)
(i32.store offset=8
- (get_local $13)
- (get_local $3)
+ (get_local $12)
+ (get_local $4)
)
- (set_local $10
+ (set_local $9
(call $___syscall_ret
(call_import $___syscall146
(i32.const 146)
- (get_local $13)
+ (get_local $12)
)
)
)
(call_import $_pthread_cleanup_pop
(i32.const 0)
)
- (get_local $10)
+ (get_local $9)
)
(block
(i32.store
- (get_local $12)
+ (get_local $11)
(i32.load
(get_local $1)
)
)
(i32.store offset=4
- (get_local $12)
- (get_local $4)
+ (get_local $11)
+ (get_local $5)
)
(i32.store offset=8
- (get_local $12)
- (get_local $3)
+ (get_local $11)
+ (get_local $4)
)
(call $___syscall_ret
(call_import $___syscall146
(i32.const 146)
- (get_local $12)
+ (get_local $11)
)
)
)
@@ -8036,130 +7972,125 @@
(i32.const 0)
)
(block
+ (set_local $16
+ (get_local $5)
+ )
(set_local $17
(get_local $4)
)
- (set_local $18
- (get_local $3)
- )
(set_local $1
(i32.const 8)
)
- (br $while-out$0)
)
- )
- (set_local $10
- (i32.sub
- (get_local $5)
- (get_local $6)
- )
- )
- (set_local $3
- (if
- (i32.le_u
- (get_local $6)
- (tee_local $5
- (i32.load offset=4
- (get_local $4)
- )
- )
- )
- (if
- (i32.eq
+ (block
+ (set_local $9
+ (i32.sub
(get_local $3)
- (i32.const 2)
- )
- (block
- (i32.store
- (get_local $9)
- (i32.add
- (i32.load
- (get_local $9)
- )
- (get_local $6)
- )
- )
- (set_local $7
- (get_local $4)
- )
- (set_local $15
- (i32.const 2)
- )
- (get_local $5)
- )
- (block
- (set_local $7
- (get_local $4)
- )
- (set_local $15
- (get_local $3)
- )
- (get_local $5)
+ (get_local $6)
)
)
- (block
- (i32.store
- (get_local $9)
- (tee_local $7
- (i32.load
- (get_local $8)
- )
- )
- )
- (i32.store
- (get_local $14)
- (get_local $7)
- )
- (set_local $6
- (i32.sub
+ (set_local $5
+ (if
+ (i32.le_u
(get_local $6)
- (get_local $5)
+ (tee_local $14
+ (i32.load offset=4
+ (get_local $5)
+ )
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $4)
+ (i32.const 2)
+ )
+ (block
+ (i32.store
+ (get_local $8)
+ (i32.add
+ (i32.load
+ (get_local $8)
+ )
+ (get_local $6)
+ )
+ )
+ (set_local $3
+ (get_local $5)
+ )
+ (set_local $4
+ (i32.const 2)
+ )
+ (get_local $14)
+ )
+ (block
+ (set_local $3
+ (get_local $5)
+ )
+ (get_local $14)
+ )
+ )
+ (block
+ (i32.store
+ (get_local $8)
+ (tee_local $3
+ (i32.load
+ (get_local $7)
+ )
+ )
+ )
+ (i32.store
+ (get_local $13)
+ (get_local $3)
+ )
+ (set_local $6
+ (i32.sub
+ (get_local $6)
+ (get_local $14)
+ )
+ )
+ (set_local $3
+ (i32.add
+ (get_local $5)
+ (i32.const 8)
+ )
+ )
+ (set_local $4
+ (i32.add
+ (get_local $4)
+ (i32.const -1)
+ )
+ )
+ (i32.load offset=12
+ (get_local $5)
+ )
)
)
- (set_local $7
- (i32.add
- (get_local $4)
- (i32.const 8)
- )
- )
- (set_local $15
- (i32.add
+ )
+ (i32.store
+ (get_local $3)
+ (i32.add
+ (i32.load
(get_local $3)
- (i32.const -1)
)
- )
- (i32.load offset=12
- (get_local $4)
+ (get_local $6)
)
)
- )
- )
- (i32.store
- (get_local $7)
- (i32.add
- (i32.load
- (get_local $7)
+ (i32.store offset=4
+ (get_local $3)
+ (i32.sub
+ (get_local $5)
+ (get_local $6)
+ )
)
- (get_local $6)
+ (set_local $5
+ (get_local $3)
+ )
+ (set_local $3
+ (get_local $9)
+ )
+ (br $while-in$1)
)
)
- (i32.store offset=4
- (get_local $7)
- (i32.sub
- (get_local $3)
- (get_local $6)
- )
- )
- (set_local $4
- (get_local $7)
- )
- (set_local $3
- (get_local $15)
- )
- (set_local $5
- (get_local $10)
- )
- (br $while-in$1)
)
)
(if
@@ -8171,9 +8102,9 @@
(i32.store offset=16
(get_local $0)
(i32.add
- (tee_local $5
+ (tee_local $3
(i32.load
- (get_local $8)
+ (get_local $7)
)
)
(i32.load offset=48
@@ -8182,16 +8113,16 @@
)
)
(i32.store
- (get_local $9)
- (tee_local $8
- (get_local $5)
+ (get_local $8)
+ (tee_local $7
+ (get_local $3)
)
)
(i32.store
- (get_local $14)
- (get_local $8)
+ (get_local $13)
+ (get_local $7)
)
- (set_local $16
+ (set_local $15
(get_local $2)
)
)
@@ -8206,11 +8137,11 @@
(i32.const 0)
)
(i32.store
- (get_local $9)
+ (get_local $8)
(i32.const 0)
)
(i32.store
- (get_local $14)
+ (get_local $13)
(i32.const 0)
)
(i32.store
@@ -8222,17 +8153,17 @@
(i32.const 32)
)
)
- (set_local $16
+ (set_local $15
(select
(i32.const 0)
(i32.sub
(get_local $2)
(i32.load offset=4
- (get_local $17)
+ (get_local $16)
)
)
(i32.eq
- (get_local $18)
+ (get_local $17)
(i32.const 2)
)
)
@@ -8241,9 +8172,9 @@
)
)
(set_global $STACKTOP
- (get_local $11)
+ (get_local $10)
)
- (get_local $16)
+ (get_local $15)
)
(func $___fwritex (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
@@ -8263,10 +8194,10 @@
)
)
(block
- (set_local $7
+ (set_local $6
(get_local $5)
)
- (set_local $6
+ (set_local $7
(i32.const 5)
)
)
@@ -8278,12 +8209,12 @@
(i32.const 0)
)
(block
- (set_local $7
+ (set_local $6
(i32.load
(get_local $3)
)
)
- (set_local $6
+ (set_local $7
(i32.const 5)
)
)
@@ -8292,11 +8223,11 @@
(block $label$break$L5
(if
(i32.eq
- (get_local $6)
+ (get_local $7)
(i32.const 5)
)
(block
- (set_local $6
+ (set_local $4
(tee_local $3
(i32.load
(tee_local $5
@@ -8311,7 +8242,7 @@
(if
(i32.lt_u
(i32.sub
- (get_local $7)
+ (get_local $6)
(get_local $3)
)
(get_local $1)
@@ -8336,7 +8267,7 @@
(br $label$break$L5)
)
)
- (set_local $0
+ (set_local $1
(block $label$break$L10
(if
(i32.gt_s
@@ -8350,57 +8281,48 @@
(get_local $1)
)
(loop $while-in$3
- (block $while-out$2
- (if
- (i32.eqz
- (get_local $3)
+ (if
+ (i32.eqz
+ (get_local $3)
+ )
+ (block
+ (set_local $2
+ (i32.const 0)
)
- (block
- (set_local $2
- (get_local $0)
- )
- (set_local $3
- (i32.const 0)
- )
- (br $label$break$L10
- (get_local $1)
- )
+ (br $label$break$L10
+ (get_local $1)
)
)
- (if
- (i32.eq
- (i32.load8_s
- (i32.add
- (get_local $0)
- (tee_local $7
- (i32.add
- (get_local $3)
- (i32.const -1)
- )
+ )
+ (if
+ (i32.ne
+ (i32.load8_s
+ (i32.add
+ (get_local $0)
+ (tee_local $6
+ (i32.add
+ (get_local $3)
+ (i32.const -1)
)
)
)
- (i32.const 10)
)
- (block
- (set_local $4
- (get_local $3)
- )
- (br $while-out$2)
- )
- (set_local $3
- (get_local $7)
- )
+ (i32.const 10)
)
- (br $while-in$3)
+ (block
+ (set_local $3
+ (get_local $6)
+ )
+ (br $while-in$3)
+ )
)
)
- (br_if $label$break$L5
+ (if
(i32.lt_u
(call_indirect $FUNCSIG$iiii
(get_local $2)
(get_local $0)
- (get_local $4)
+ (get_local $3)
(i32.add
(i32.and
(i32.load offset=36
@@ -8411,33 +8333,36 @@
(i32.const 2)
)
)
- (get_local $4)
+ (get_local $3)
+ )
+ (block
+ (set_local $4
+ (get_local $3)
+ )
+ (br $label$break$L5)
)
)
- (set_local $2
+ (set_local $0
(i32.add
(get_local $0)
- (get_local $4)
+ (get_local $3)
)
)
- (set_local $6
+ (set_local $4
(i32.load
(get_local $5)
)
)
- (set_local $3
- (get_local $4)
+ (set_local $2
+ (get_local $3)
)
(i32.sub
(get_local $1)
- (get_local $4)
+ (get_local $3)
)
)
(block
(set_local $2
- (get_local $0)
- )
- (set_local $3
(i32.const 0)
)
(get_local $1)
@@ -8447,9 +8372,9 @@
)
(drop
(call $_memcpy
- (get_local $6)
- (get_local $2)
+ (get_local $4)
(get_local $0)
+ (get_local $1)
)
)
(i32.store
@@ -8458,13 +8383,13 @@
(i32.load
(get_local $5)
)
- (get_local $0)
+ (get_local $1)
)
)
(set_local $4
(i32.add
- (get_local $3)
- (get_local $0)
+ (get_local $2)
+ (get_local $1)
)
)
)
@@ -8493,11 +8418,10 @@
)
)
(set_local $1
- (i32.eq
+ (i32.eqz
(call $___lockfile
(get_local $0)
)
- (i32.const 0)
)
)
(set_local $2
@@ -8547,70 +8471,62 @@
(get_local $0)
)
(loop $while-in$3
- (block $while-out$2
- (set_local $0
- (if
- (i32.gt_s
- (i32.load offset=76
- (get_local $1)
- )
- (i32.const -1)
- )
- (call $___lockfile
+ (set_local $0
+ (if
+ (i32.gt_s
+ (i32.load offset=76
(get_local $1)
)
- (i32.const 0)
+ (i32.const -1)
)
+ (call $___lockfile
+ (get_local $1)
+ )
+ (i32.const 0)
)
- (set_local $2
- (if
- (i32.gt_u
- (i32.load offset=20
- (get_local $1)
- )
- (i32.load offset=28
- (get_local $1)
- )
+ )
+ (set_local $2
+ (if
+ (i32.gt_u
+ (i32.load offset=20
+ (get_local $1)
)
- (i32.or
- (call $___fflush_unlocked
- (get_local $1)
- )
- (get_local $2)
+ (i32.load offset=28
+ (get_local $1)
+ )
+ )
+ (i32.or
+ (call $___fflush_unlocked
+ (get_local $1)
)
(get_local $2)
)
+ (get_local $2)
)
- (if
- (get_local $0)
- (call $___unlockfile
+ )
+ (if
+ (get_local $0)
+ (call $___unlockfile
+ (get_local $1)
+ )
+ )
+ (br_if $while-in$3
+ (tee_local $1
+ (i32.load offset=56
(get_local $1)
)
)
- (if
- (i32.eqz
- (tee_local $1
- (i32.load offset=56
- (get_local $1)
- )
- )
- )
- (block
- (set_local $0
- (get_local $2)
- )
- (br $while-out$2)
- )
- )
- (br $while-in$3)
)
)
)
+ (set_local $2
+ (get_local $0)
+ )
)
(call_import $___unlock
(i32.const 36)
)
- (get_local $0)
+ (get_local $2)
)
)
)
@@ -8634,53 +8550,47 @@
(get_local $3)
)
(loop $while-in$2
- (block $while-out$1
- (if
- (i32.eqz
- (i32.load8_s
- (get_local $0)
- )
- )
- (block
- (set_local $5
- (get_local $4)
- )
- (br $label$break$L1)
+ (if
+ (i32.eqz
+ (i32.load8_s
+ (get_local $0)
)
)
- (if
- (i32.eqz
- (i32.and
- (tee_local $4
- (tee_local $0
- (i32.add
- (get_local $0)
- (i32.const 1)
- )
- )
+ (block
+ (set_local $5
+ (get_local $4)
+ )
+ (br $label$break$L1)
+ )
+ )
+ (br_if $while-in$2
+ (i32.and
+ (tee_local $4
+ (tee_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
)
- (i32.const 3)
)
)
- (block
- (set_local $2
- (get_local $0)
- )
- (set_local $1
- (i32.const 4)
- )
- (br $while-out$1)
- )
+ (i32.const 3)
)
- (br $while-in$2)
+ )
+ (block
+ (set_local $1
+ (get_local $0)
+ )
+ (set_local $2
+ (i32.const 4)
+ )
)
)
)
(block
- (set_local $2
+ (set_local $1
(get_local $0)
)
- (set_local $1
+ (set_local $2
(i32.const 4)
)
)
@@ -8688,49 +8598,51 @@
)
(if
(i32.eq
- (get_local $1)
+ (get_local $2)
(i32.const 4)
)
(block
- (set_local $1
- (get_local $2)
+ (set_local $2
+ (get_local $1)
)
(loop $while-in$4
- (block $while-out$3
- (if
- (i32.and
- (i32.xor
- (i32.and
- (tee_local $2
- (i32.load
- (get_local $1)
- )
+ (if
+ (i32.and
+ (i32.xor
+ (i32.and
+ (tee_local $1
+ (i32.load
+ (get_local $2)
)
- (i32.const -2139062144)
)
(i32.const -2139062144)
)
+ (i32.const -2139062144)
+ )
+ (i32.add
+ (get_local $1)
+ (i32.const -16843009)
+ )
+ )
+ (set_local $0
+ (get_local $2)
+ )
+ (block
+ (set_local $2
(i32.add
(get_local $2)
- (i32.const -16843009)
- )
- )
- (br $while-out$3)
- (set_local $1
- (i32.add
- (get_local $1)
(i32.const 4)
)
)
+ (br $while-in$4)
)
- (br $while-in$4)
)
)
(if
(i32.shr_s
(i32.shl
(i32.and
- (get_local $2)
+ (get_local $1)
(i32.const 255)
)
(i32.const 24)
@@ -8738,32 +8650,31 @@
(i32.const 24)
)
(block
- (set_local $2
- (get_local $1)
+ (set_local $1
+ (get_local $0)
)
(loop $while-in$6
- (block $while-out$5
- (if
- (i32.load8_s
- (tee_local $1
- (i32.add
- (get_local $2)
- (i32.const 1)
- )
+ (if
+ (i32.load8_s
+ (tee_local $0
+ (i32.add
+ (get_local $1)
+ (i32.const 1)
)
)
- (set_local $2
- (get_local $1)
- )
- (br $while-out$5)
)
- (br $while-in$6)
+ (block
+ (set_local $1
+ (get_local $0)
+ )
+ (br $while-in$6)
+ )
)
)
)
)
(set_local $5
- (get_local $1)
+ (get_local $0)
)
)
)
@@ -8970,11 +8881,10 @@
)
)
)
- (i32.eq
+ (i32.eqz
(i32.load
(get_local $1)
)
- (i32.const 0)
)
)
(i32.const 0)
@@ -9004,21 +8914,23 @@
)
)
)
- (call_indirect $FUNCSIG$iiii
- (get_local $0)
- (i32.sub
- (get_local $4)
- (get_local $6)
- )
- (i32.const 1)
- (i32.add
- (i32.and
- (i32.load offset=40
- (get_local $0)
- )
- (i32.const 7)
+ (drop
+ (call_indirect $FUNCSIG$iiii
+ (get_local $0)
+ (i32.sub
+ (get_local $4)
+ (get_local $6)
)
- (i32.const 2)
+ (i32.const 1)
+ (i32.add
+ (i32.and
+ (i32.load offset=40
+ (get_local $0)
+ )
+ (i32.const 7)
+ )
+ (i32.const 2)
+ )
)
)
)
@@ -9122,75 +9034,75 @@
)
)
(loop $while-in$3
- (block $while-out$2
- (br_if $while-out$2
- (i32.lt_s
- (get_local $2)
- (i32.const 4)
- )
+ (if
+ (i32.ge_s
+ (get_local $2)
+ (i32.const 4)
)
- (i32.store
- (get_local $0)
- (i32.load
- (get_local $1)
- )
- )
- (set_local $0
- (i32.add
+ (block
+ (i32.store
(get_local $0)
- (i32.const 4)
+ (i32.load
+ (get_local $1)
+ )
)
- )
- (set_local $1
- (i32.add
- (get_local $1)
- (i32.const 4)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 4)
+ )
)
- )
- (set_local $2
- (i32.sub
- (get_local $2)
- (i32.const 4)
+ (set_local $1
+ (i32.add
+ (get_local $1)
+ (i32.const 4)
+ )
)
+ (set_local $2
+ (i32.sub
+ (get_local $2)
+ (i32.const 4)
+ )
+ )
+ (br $while-in$3)
)
- (br $while-in$3)
)
)
)
)
(loop $while-in$5
- (block $while-out$4
- (br_if $while-out$4
- (i32.le_s
- (get_local $2)
- (i32.const 0)
- )
+ (if
+ (i32.gt_s
+ (get_local $2)
+ (i32.const 0)
)
- (i32.store8
- (get_local $0)
- (i32.load8_s
- (get_local $1)
- )
- )
- (set_local $0
- (i32.add
+ (block
+ (i32.store8
(get_local $0)
- (i32.const 1)
+ (i32.load8_s
+ (get_local $1)
+ )
)
- )
- (set_local $1
- (i32.add
- (get_local $1)
- (i32.const 1)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
)
- )
- (set_local $2
- (i32.sub
- (get_local $2)
- (i32.const 1)
+ (set_local $1
+ (i32.add
+ (get_local $1)
+ (i32.const 1)
+ )
)
+ (set_local $2
+ (i32.sub
+ (get_local $2)
+ (i32.const 1)
+ )
+ )
+ (br $while-in$5)
)
- (br $while-in$5)
)
)
(get_local $3)
@@ -9265,70 +9177,70 @@
)
)
(loop $while-in$1
- (block $while-out$0
- (br_if $while-out$0
- (i32.ge_s
- (get_local $0)
- (get_local $3)
- )
- )
- (i32.store8
+ (if
+ (i32.lt_s
(get_local $0)
- (get_local $1)
+ (get_local $3)
)
- (set_local $0
- (i32.add
+ (block
+ (i32.store8
(get_local $0)
- (i32.const 1)
+ (get_local $1)
)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ (br $while-in$1)
)
- (br $while-in$1)
)
)
)
)
(loop $while-in$3
- (block $while-out$2
- (br_if $while-out$2
- (i32.ge_s
- (get_local $0)
- (get_local $6)
- )
- )
- (i32.store
+ (if
+ (i32.lt_s
(get_local $0)
- (get_local $5)
+ (get_local $6)
)
- (set_local $0
- (i32.add
+ (block
+ (i32.store
(get_local $0)
- (i32.const 4)
+ (get_local $5)
)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 4)
+ )
+ )
+ (br $while-in$3)
)
- (br $while-in$3)
)
)
)
)
(loop $while-in$5
- (block $while-out$4
- (br_if $while-out$4
- (i32.ge_s
- (get_local $0)
- (get_local $4)
- )
- )
- (i32.store8
+ (if
+ (i32.lt_s
(get_local $0)
- (get_local $1)
+ (get_local $4)
)
- (set_local $0
- (i32.add
+ (block
+ (i32.store8
(get_local $0)
- (i32.const 1)
+ (get_local $1)
)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ (br $while-in$5)
)
- (br $while-in$5)
)
)
(i32.sub
@@ -9604,11 +9516,10 @@
)
(block
(set_local $5
- (i32.eq
+ (i32.eqz
(call $___lockfile
(get_local $3)
)
- (i32.const 0)
)
)
(set_local $0
@@ -9666,15 +9577,13 @@
)
(if
(if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 64)
+ (i32.and
+ (i32.load
+ (get_local $0)
)
- (i32.const 0)
+ (i32.const 64)
)
+ (i32.const 0)
(block
(i32.store
(get_local $3)
@@ -9701,7 +9610,6 @@
(i32.const 0)
)
)
- (i32.const 0)
)
(i32.store8 offset=75
(get_local $0)
diff --git a/test/emcc_O2_hello_world.fromasm.imprecise.no-opts b/test/emcc_O2_hello_world.fromasm.imprecise.no-opts
index b125481..d158d27 100644
--- a/test/emcc_O2_hello_world.fromasm.imprecise.no-opts
+++ b/test/emcc_O2_hello_world.fromasm.imprecise.no-opts
@@ -10632,24 +10632,26 @@
(get_local $i6)
(get_local $i8)
)
- (call_indirect $FUNCSIG$iiii
- (get_local $i1)
- (i32.sub
- (get_local $i6)
- (get_local $i8)
- )
- (i32.const 1)
- (i32.add
- (i32.and
- (i32.load
- (i32.add
- (get_local $i1)
- (i32.const 40)
- )
- )
- (i32.const 7)
+ (drop
+ (call_indirect $FUNCSIG$iiii
+ (get_local $i1)
+ (i32.sub
+ (get_local $i6)
+ (get_local $i8)
)
- (i32.const 2)
+ (i32.const 1)
+ (i32.add
+ (i32.and
+ (i32.load
+ (i32.add
+ (get_local $i1)
+ (i32.const 40)
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 2)
+ )
)
)
)
diff --git a/test/emcc_O2_hello_world.fromasm.no-opts b/test/emcc_O2_hello_world.fromasm.no-opts
index 4acb5bc..618b0f5 100644
--- a/test/emcc_O2_hello_world.fromasm.no-opts
+++ b/test/emcc_O2_hello_world.fromasm.no-opts
@@ -10633,24 +10633,26 @@
(get_local $i6)
(get_local $i8)
)
- (call_indirect $FUNCSIG$iiii
- (get_local $i1)
- (i32.sub
- (get_local $i6)
- (get_local $i8)
- )
- (i32.const 1)
- (i32.add
- (i32.and
- (i32.load
- (i32.add
- (get_local $i1)
- (i32.const 40)
- )
- )
- (i32.const 7)
+ (drop
+ (call_indirect $FUNCSIG$iiii
+ (get_local $i1)
+ (i32.sub
+ (get_local $i6)
+ (get_local $i8)
)
- (i32.const 2)
+ (i32.const 1)
+ (i32.add
+ (i32.and
+ (i32.load
+ (i32.add
+ (get_local $i1)
+ (i32.const 40)
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 2)
+ )
)
)
)
diff --git a/test/emcc_hello_world.fromasm b/test/emcc_hello_world.fromasm
index 7cb00db..a4bf51c 100644
--- a/test/emcc_hello_world.fromasm
+++ b/test/emcc_hello_world.fromasm
@@ -139,9 +139,8 @@
)
(func $setThrew (param $0 i32) (param $1 i32)
(if
- (i32.eq
+ (i32.eqz
(get_global $__THREW__)
- (i32.const 0)
)
(block
(set_global $__THREW__
@@ -381,37 +380,30 @@
(set_local $1
(i32.const 0)
)
- (loop $while-in$1
- (block $while-out$0
- (if
- (i32.eq
- (i32.and
- (i32.load8_s offset=687
- (get_local $1)
+ (block $jumpthreading$outer$0
+ (block $jumpthreading$inner$0
+ (loop $while-in$1
+ (br_if $jumpthreading$inner$0
+ (i32.eq
+ (i32.and
+ (i32.load8_s offset=687
+ (get_local $1)
+ )
+ (i32.const 255)
)
- (i32.const 255)
+ (get_local $0)
)
- (get_local $0)
)
- (block
- (set_local $4
- (get_local $1)
- )
- (set_local $0
- (i32.const 2)
- )
- (br $while-out$0)
- )
- )
- (if
- (i32.eq
- (tee_local $1
- (i32.add
- (get_local $1)
- (i32.const 1)
+ (br_if $while-in$1
+ (i32.ne
+ (tee_local $1
+ (i32.add
+ (get_local $1)
+ (i32.const 1)
+ )
)
+ (i32.const 87)
)
- (i32.const 87)
)
(block
(set_local $3
@@ -420,108 +412,72 @@
(set_local $2
(i32.const 775)
)
- (set_local $0
+ (set_local $4
(i32.const 5)
)
- (br $while-out$0)
)
)
- (br $while-in$1)
- )
- )
- (if
- (i32.eq
- (get_local $0)
- (i32.const 2)
+ (br $jumpthreading$outer$0)
)
(if
- (i32.eq
- (get_local $4)
- (i32.const 0)
- )
- (set_local $5
- (i32.const 775)
- )
+ (get_local $1)
(block
(set_local $3
- (get_local $4)
+ (get_local $1)
)
(set_local $2
(i32.const 775)
)
- (set_local $0
+ (set_local $4
(i32.const 5)
)
)
+ (set_local $5
+ (i32.const 775)
+ )
)
)
(if
(i32.eq
- (get_local $0)
+ (get_local $4)
(i32.const 5)
)
(loop $while-in$3
- (block $while-out$2
- (loop $while-in$5
- (block $while-out$4
- (set_local $0
- (i32.add
- (get_local $2)
- (i32.const 1)
- )
- )
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (get_local $2)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 0)
- )
- (block
- (set_local $1
- (get_local $0)
- )
- (br $while-out$4)
- )
- (set_local $2
- (get_local $0)
- )
+ (loop $while-in$5
+ (set_local $0
+ (i32.add
+ (get_local $2)
+ (i32.const 1)
+ )
+ )
+ (if
+ (i32.load8_s
+ (get_local $2)
+ )
+ (block
+ (set_local $2
+ (get_local $0)
)
(br $while-in$5)
)
)
- (if
- (i32.eq
- (tee_local $0
- (i32.add
- (get_local $3)
- (i32.const -1)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $5
- (get_local $1)
- )
- (br $while-out$2)
- )
- (block
- (set_local $3
- (get_local $0)
- )
- (set_local $2
- (get_local $1)
- )
+ )
+ (if
+ (tee_local $3
+ (i32.add
+ (get_local $3)
+ (i32.const -1)
)
)
- (br $while-in$3)
+ (block
+ (set_local $2
+ (get_local $0)
+ )
+ (br $while-in$3)
+ )
+ (set_local $5
+ (get_local $0)
+ )
)
)
)
@@ -529,16 +485,13 @@
)
(func $___errno_location (result i32)
(if
- (i32.eq
- (i32.load
- (i32.const 16)
- )
- (i32.const 0)
+ (i32.load
+ (i32.const 16)
)
- (i32.const 60)
(i32.load offset=60
(call_import $_pthread_self)
)
+ (i32.const 60)
)
)
(func $___stdio_close (param $0 i32) (result i32)
@@ -615,14 +568,13 @@
(i32.const 4)
)
(if
- (i32.eq
+ (i32.eqz
(i32.and
(i32.load
(get_local $0)
)
(i32.const 64)
)
- (i32.const 0)
)
(block
(i32.store
@@ -640,12 +592,9 @@
(get_local $5)
)
(if
- (i32.ne
- (call_import $___syscall54
- (i32.const 54)
- (get_local $3)
- )
- (i32.const 0)
+ (call_import $___syscall54
+ (i32.const 54)
+ (get_local $3)
)
(i32.store8 offset=75
(get_local $0)
@@ -747,116 +696,7 @@
(local $2 i32)
(block $do-once$0
(if
- (i32.eq
- (get_local $0)
- (i32.const 0)
- )
- (block
- (set_local $0
- (if
- (i32.eq
- (i32.load
- (i32.const 12)
- )
- (i32.const 0)
- )
- (i32.const 0)
- (call $_fflush
- (i32.load
- (i32.const 12)
- )
- )
- )
- )
- (call_import $___lock
- (i32.const 44)
- )
- (if
- (i32.ne
- (tee_local $1
- (i32.load
- (i32.const 40)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $2
- (get_local $0)
- )
- (loop $while-in$3
- (block $while-out$2
- (set_local $0
- (if
- (i32.gt_s
- (i32.load offset=76
- (get_local $1)
- )
- (i32.const -1)
- )
- (call $___lockfile
- (get_local $1)
- )
- (i32.const 0)
- )
- )
- (set_local $2
- (if
- (i32.gt_u
- (i32.load offset=20
- (get_local $1)
- )
- (i32.load offset=28
- (get_local $1)
- )
- )
- (i32.or
- (call $___fflush_unlocked
- (get_local $1)
- )
- (get_local $2)
- )
- (get_local $2)
- )
- )
- (if
- (i32.ne
- (get_local $0)
- (i32.const 0)
- )
- (call $___unlockfile
- (get_local $1)
- )
- )
- (if
- (i32.eq
- (tee_local $0
- (i32.load offset=56
- (get_local $1)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $0
- (get_local $2)
- )
- (br $while-out$2)
- )
- (set_local $1
- (get_local $0)
- )
- )
- (br $while-in$3)
- )
- )
- )
- )
- (call_import $___unlock
- (i32.const 44)
- )
- (get_local $0)
- )
+ (get_local $0)
(block
(if
(i32.le_s
@@ -872,11 +712,10 @@
)
)
(set_local $2
- (i32.eq
+ (i32.eqz
(call $___lockfile
(get_local $0)
)
- (i32.const 0)
)
)
(set_local $1
@@ -895,6 +734,83 @@
)
)
)
+ (block
+ (set_local $0
+ (if
+ (i32.load
+ (i32.const 12)
+ )
+ (call $_fflush
+ (i32.load
+ (i32.const 12)
+ )
+ )
+ (i32.const 0)
+ )
+ )
+ (call_import $___lock
+ (i32.const 44)
+ )
+ (if
+ (tee_local $1
+ (i32.load
+ (i32.const 40)
+ )
+ )
+ (loop $while-in$3
+ (set_local $2
+ (if
+ (i32.gt_s
+ (i32.load offset=76
+ (get_local $1)
+ )
+ (i32.const -1)
+ )
+ (call $___lockfile
+ (get_local $1)
+ )
+ (i32.const 0)
+ )
+ )
+ (set_local $0
+ (if
+ (i32.gt_u
+ (i32.load offset=20
+ (get_local $1)
+ )
+ (i32.load offset=28
+ (get_local $1)
+ )
+ )
+ (i32.or
+ (call $___fflush_unlocked
+ (get_local $1)
+ )
+ (get_local $0)
+ )
+ (get_local $0)
+ )
+ )
+ (if
+ (get_local $2)
+ (call $___unlockfile
+ (get_local $1)
+ )
+ )
+ (br_if $while-in$3
+ (tee_local $1
+ (i32.load offset=56
+ (get_local $1)
+ )
+ )
+ )
+ )
+ )
+ (call_import $___unlock
+ (i32.const 44)
+ )
+ (get_local $0)
+ )
)
)
)
@@ -956,10 +872,7 @@
(local $12 i32)
(local $13 i32)
(local $14 i32)
- (local $15 i32)
- (local $16 i32)
- (local $17 i32)
- (set_local $8
+ (set_local $7
(get_global $STACKTOP)
)
(set_global $STACKTOP
@@ -975,25 +888,25 @@
)
(call_import $abort)
)
- (set_local $9
+ (set_local $8
(i32.add
- (get_local $8)
+ (get_local $7)
(i32.const 16)
)
)
- (set_local $10
- (get_local $8)
+ (set_local $9
+ (get_local $7)
)
(i32.store
(tee_local $4
(i32.add
- (get_local $8)
+ (get_local $7)
(i32.const 32)
)
)
(tee_local $3
(i32.load
- (tee_local $7
+ (tee_local $6
(i32.add
(get_local $0)
(i32.const 28)
@@ -1007,7 +920,7 @@
(tee_local $3
(i32.sub
(i32.load
- (tee_local $11
+ (tee_local $10
(i32.add
(get_local $0)
(i32.const 20)
@@ -1026,310 +939,281 @@
(get_local $4)
(get_local $2)
)
- (set_local $12
+ (set_local $13
(i32.add
(get_local $0)
(i32.const 60)
)
)
- (set_local $13
+ (set_local $14
(i32.add
(get_local $0)
(i32.const 44)
)
)
- (set_local $6
+ (set_local $1
+ (get_local $4)
+ )
+ (set_local $4
(i32.const 2)
)
- (set_local $3
+ (set_local $11
(i32.add
(get_local $3)
(get_local $2)
)
)
- (loop $while-in$1
- (block $while-out$0
- (if
- (i32.eq
- (get_local $3)
- (tee_local $5
- (if
+ (set_local $0
+ (block $jumpthreading$outer$1
+ (block $jumpthreading$inner$1
+ (block $jumpthreading$inner$0
+ (loop $while-in$1
+ (br_if $jumpthreading$inner$0
(i32.eq
- (i32.load
- (i32.const 16)
- )
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $9)
- (i32.load
- (get_local $12)
- )
- )
- (i32.store offset=4
- (get_local $9)
- (get_local $4)
- )
- (i32.store offset=8
- (get_local $9)
- (get_local $6)
- )
- (call $___syscall_ret
- (call_import $___syscall146
- (i32.const 146)
- (get_local $9)
- )
- )
- )
- (block
- (call_import $_pthread_cleanup_push
- (i32.const 5)
- (get_local $0)
- )
- (i32.store
- (get_local $10)
- (i32.load
- (get_local $12)
- )
- )
- (i32.store offset=4
- (get_local $10)
- (get_local $4)
- )
- (i32.store offset=8
- (get_local $10)
- (get_local $6)
- )
- (set_local $1
- (call $___syscall_ret
- (call_import $___syscall146
- (i32.const 146)
- (get_local $10)
+ (get_local $11)
+ (tee_local $5
+ (if
+ (i32.load
+ (i32.const 16)
+ )
+ (block
+ (call_import $_pthread_cleanup_push
+ (i32.const 5)
+ (get_local $0)
+ )
+ (i32.store
+ (get_local $9)
+ (i32.load
+ (get_local $13)
+ )
+ )
+ (i32.store offset=4
+ (get_local $9)
+ (get_local $1)
+ )
+ (i32.store offset=8
+ (get_local $9)
+ (get_local $4)
+ )
+ (set_local $3
+ (call $___syscall_ret
+ (call_import $___syscall146
+ (i32.const 146)
+ (get_local $9)
+ )
+ )
+ )
+ (call_import $_pthread_cleanup_pop
+ (i32.const 0)
+ )
+ (get_local $3)
+ )
+ (block
+ (i32.store
+ (get_local $8)
+ (i32.load
+ (get_local $13)
+ )
+ )
+ (i32.store offset=4
+ (get_local $8)
+ (get_local $1)
+ )
+ (i32.store offset=8
+ (get_local $8)
+ (get_local $4)
+ )
+ (call $___syscall_ret
+ (call_import $___syscall146
+ (i32.const 146)
+ (get_local $8)
+ )
+ )
)
)
)
- (call_import $_pthread_cleanup_pop
- (i32.const 0)
- )
- (get_local $1)
)
)
- )
- )
- (block
- (set_local $1
- (i32.const 6)
- )
- (br $while-out$0)
- )
- )
- (if
- (i32.lt_s
- (get_local $5)
- (i32.const 0)
- )
- (block
- (set_local $15
- (get_local $4)
- )
- (set_local $16
- (get_local $6)
- )
- (set_local $1
- (i32.const 8)
- )
- (br $while-out$0)
- )
- )
- (set_local $17
- (i32.sub
- (get_local $3)
- (get_local $5)
- )
- )
- (set_local $1
- (if
- (i32.gt_u
- (get_local $5)
- (tee_local $1
- (i32.load offset=4
- (get_local $4)
- )
- )
- )
- (block
- (i32.store
- (get_local $7)
- (tee_local $3
- (i32.load
- (get_local $13)
- )
- )
- )
- (i32.store
- (get_local $11)
- (get_local $3)
- )
- (set_local $5
- (i32.sub
+ (br_if $jumpthreading$inner$1
+ (i32.lt_s
(get_local $5)
- (get_local $1)
+ (i32.const 0)
)
)
- (set_local $3
- (i32.add
- (get_local $4)
- (i32.const 8)
- )
- )
- (set_local $6
- (i32.add
- (get_local $6)
- (i32.const -1)
- )
- )
- (i32.load offset=12
- (get_local $4)
- )
- )
- (if
- (i32.eq
- (get_local $6)
- (i32.const 2)
- )
(block
+ (set_local $11
+ (i32.sub
+ (get_local $11)
+ (get_local $5)
+ )
+ )
+ (set_local $1
+ (if
+ (i32.gt_u
+ (get_local $5)
+ (tee_local $12
+ (i32.load offset=4
+ (get_local $1)
+ )
+ )
+ )
+ (block
+ (i32.store
+ (get_local $6)
+ (tee_local $3
+ (i32.load
+ (get_local $14)
+ )
+ )
+ )
+ (i32.store
+ (get_local $10)
+ (get_local $3)
+ )
+ (set_local $5
+ (i32.sub
+ (get_local $5)
+ (get_local $12)
+ )
+ )
+ (set_local $3
+ (i32.add
+ (get_local $1)
+ (i32.const 8)
+ )
+ )
+ (set_local $4
+ (i32.add
+ (get_local $4)
+ (i32.const -1)
+ )
+ )
+ (i32.load offset=12
+ (get_local $1)
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $4)
+ (i32.const 2)
+ )
+ (block
+ (i32.store
+ (get_local $6)
+ (i32.add
+ (i32.load
+ (get_local $6)
+ )
+ (get_local $5)
+ )
+ )
+ (set_local $3
+ (get_local $1)
+ )
+ (set_local $4
+ (i32.const 2)
+ )
+ (get_local $12)
+ )
+ (block
+ (set_local $3
+ (get_local $1)
+ )
+ (get_local $12)
+ )
+ )
+ )
+ )
(i32.store
- (get_local $7)
+ (get_local $3)
(i32.add
(i32.load
- (get_local $7)
+ (get_local $3)
)
(get_local $5)
)
)
- (set_local $3
- (get_local $4)
+ (i32.store offset=4
+ (get_local $3)
+ (i32.sub
+ (get_local $1)
+ (get_local $5)
+ )
)
- (set_local $6
- (i32.const 2)
+ (set_local $1
+ (get_local $3)
)
- (get_local $1)
- )
- (block
- (set_local $3
- (get_local $4)
- )
- (get_local $1)
+ (br $while-in$1)
)
)
)
- )
- (i32.store
- (get_local $3)
- (i32.add
- (i32.load
- (get_local $3)
- )
- (get_local $5)
- )
- )
- (i32.store offset=4
- (get_local $3)
- (i32.sub
- (get_local $1)
- (get_local $5)
- )
- )
- (set_local $4
- (get_local $3)
- )
- (set_local $3
- (get_local $17)
- )
- (br $while-in$1)
- )
- )
- (if
- (i32.eq
- (get_local $1)
- (i32.const 6)
- )
- (block
- (i32.store offset=16
- (get_local $0)
- (i32.add
- (tee_local $1
- (i32.load
- (get_local $13)
- )
- )
- (i32.load offset=48
- (get_local $0)
- )
- )
- )
- (i32.store
- (get_local $7)
- (get_local $1)
- )
- (i32.store
- (get_local $11)
- (get_local $1)
- )
- (set_local $14
- (get_local $2)
- )
- )
- (if
- (i32.eq
- (get_local $1)
- (i32.const 8)
- )
- (block
(i32.store offset=16
(get_local $0)
- (i32.const 0)
- )
- (i32.store
- (get_local $7)
- (i32.const 0)
- )
- (i32.store
- (get_local $11)
- (i32.const 0)
- )
- (i32.store
- (get_local $0)
- (i32.or
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- )
- (set_local $14
- (select
- (i32.const 0)
- (i32.sub
- (get_local $2)
- (i32.load offset=4
- (get_local $15)
+ (i32.add
+ (tee_local $1
+ (i32.load
+ (get_local $14)
)
)
- (i32.eq
- (get_local $16)
- (i32.const 2)
+ (i32.load offset=48
+ (get_local $0)
)
)
)
+ (i32.store
+ (get_local $6)
+ (tee_local $0
+ (get_local $1)
+ )
+ )
+ (i32.store
+ (get_local $10)
+ (get_local $0)
+ )
+ (br $jumpthreading$outer$1
+ (get_local $2)
+ )
+ )
+ (i32.store offset=16
+ (get_local $0)
+ (i32.const 0)
+ )
+ (i32.store
+ (get_local $6)
+ (i32.const 0)
+ )
+ (i32.store
+ (get_local $10)
+ (i32.const 0)
+ )
+ (i32.store
+ (get_local $0)
+ (i32.or
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (select
+ (i32.const 0)
+ (i32.sub
+ (get_local $2)
+ (i32.load offset=4
+ (get_local $1)
+ )
+ )
+ (i32.eq
+ (get_local $4)
+ (i32.const 2)
+ )
)
)
)
(set_global $STACKTOP
- (get_local $8)
+ (get_local $7)
)
- (get_local $14)
+ (get_local $0)
)
(func $_vfprintf (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
@@ -1451,14 +1335,8 @@
)
(if
(i32.lt_s
- (i32.shr_s
- (i32.shl
- (i32.load8_s offset=74
- (get_local $0)
- )
- (i32.const 24)
- )
- (i32.const 24)
+ (i32.load8_s offset=74
+ (get_local $0)
)
(i32.const 1)
)
@@ -1472,17 +1350,22 @@
)
(set_local $2
(select
+ (i32.const -1)
(if
- (i32.eq
- (i32.load
- (tee_local $10
- (i32.add
- (get_local $0)
- (i32.const 48)
- )
+ (i32.load
+ (tee_local $10
+ (i32.add
+ (get_local $0)
+ (i32.const 48)
)
)
- (i32.const 0)
+ )
+ (call $_printf_core
+ (get_local $0)
+ (get_local $1)
+ (get_local $5)
+ (get_local $8)
+ (get_local $9)
)
(block
(set_local $2
@@ -1543,11 +1426,7 @@
)
)
(if
- (i32.eq
- (get_local $2)
- (i32.const 0)
- )
- (get_local $1)
+ (get_local $2)
(block
(drop
(call_indirect $FUNCSIG$iiii
@@ -1567,13 +1446,10 @@
)
(set_local $1
(select
- (i32.const -1)
(get_local $1)
- (i32.eq
- (i32.load
- (get_local $11)
- )
- (i32.const 0)
+ (i32.const -1)
+ (i32.load
+ (get_local $11)
)
)
)
@@ -1599,27 +1475,17 @@
)
(get_local $1)
)
+ (get_local $1)
)
)
- (call $_printf_core
- (get_local $0)
- (get_local $1)
- (get_local $5)
- (get_local $8)
- (get_local $9)
- )
)
- (i32.const -1)
- (i32.eq
- (i32.and
- (tee_local $1
- (i32.load
- (get_local $0)
- )
+ (i32.and
+ (tee_local $1
+ (i32.load
+ (get_local $0)
)
- (i32.const 32)
)
- (i32.const 0)
+ (i32.const 32)
)
)
)
@@ -1631,10 +1497,7 @@
)
)
(if
- (i32.ne
- (get_local $12)
- (i32.const 0)
- )
+ (get_local $12)
(call $___unlockfile
(get_local $0)
)
@@ -1653,262 +1516,216 @@
(local $4 i32)
(local $5 i32)
(local $6 i32)
- (local $7 i32)
- (if
- (i32.eq
- (tee_local $6
+ (block $label$break$L5
+ (block $jumpthreading$inner$0
+ (br_if $jumpthreading$inner$0
+ (tee_local $3
+ (i32.load
+ (tee_local $4
+ (i32.add
+ (get_local $2)
+ (i32.const 16)
+ )
+ )
+ )
+ )
+ )
+ (if
+ (call $___towrite
+ (get_local $2)
+ )
+ (set_local $3
+ (i32.const 0)
+ )
+ (block
+ (set_local $3
+ (i32.load
+ (get_local $4)
+ )
+ )
+ (br $jumpthreading$inner$0)
+ )
+ )
+ (br $label$break$L5)
+ )
+ (set_local $6
+ (tee_local $4
(i32.load
(tee_local $5
(i32.add
(get_local $2)
- (i32.const 16)
+ (i32.const 20)
)
)
)
)
- (i32.const 0)
)
(if
- (i32.eq
- (call $___towrite
- (get_local $2)
- )
- (i32.const 0)
- )
- (block
- (set_local $3
- (i32.load
- (get_local $5)
- )
- )
- (set_local $7
- (i32.const 5)
- )
- )
- (set_local $4
- (i32.const 0)
- )
- )
- (block
- (set_local $3
- (get_local $6)
- )
- (set_local $7
- (i32.const 5)
- )
- )
- )
- (block $label$break$L5
- (if
- (i32.eq
- (get_local $7)
- (i32.const 5)
- )
- (block
- (set_local $3
- (i32.lt_u
- (i32.sub
- (get_local $3)
- (tee_local $6
- (i32.load
- (tee_local $5
- (i32.add
- (get_local $2)
- (i32.const 20)
- )
- )
- )
- )
- )
- (get_local $1)
- )
- )
- (if
+ (i32.lt_u
+ (i32.sub
(get_local $3)
- (block
- (set_local $4
- (call_indirect $FUNCSIG$iiii
- (get_local $2)
- (get_local $0)
- (get_local $1)
- (i32.add
- (i32.and
- (i32.load offset=36
- (get_local $2)
- )
- (i32.const 7)
- )
- (i32.const 2)
- )
- )
- )
- (br $label$break$L5)
- )
+ (get_local $4)
)
- (drop
- (call $_memcpy
- (block $label$break$L10
- (if
- (i32.gt_s
- (i32.shr_s
- (i32.shl
- (i32.load8_s offset=75
- (get_local $2)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const -1)
- )
- (block
- (set_local $3
- (get_local $1)
- )
- (loop $while-in$3
- (block $while-out$2
- (if
- (i32.eq
- (get_local $3)
- (i32.const 0)
- )
- (block
- (set_local $2
- (i32.const 0)
- )
- (br $label$break$L10
- (get_local $6)
- )
- )
- )
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (i32.add
- (get_local $0)
- (tee_local $4
- (i32.add
- (get_local $3)
- (i32.const -1)
- )
- )
- )
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 10)
- )
- (br $while-out$2)
- (set_local $3
- (get_local $4)
- )
- )
- (br $while-in$3)
- )
- )
- (if
- (i32.lt_u
- (call_indirect $FUNCSIG$iiii
- (get_local $2)
- (get_local $0)
- (get_local $3)
- (i32.add
- (i32.and
- (i32.load offset=36
- (get_local $2)
- )
- (i32.const 7)
- )
- (i32.const 2)
- )
- )
- (get_local $3)
- )
- (block
- (set_local $4
- (get_local $3)
- )
- (br $label$break$L5)
- )
- )
- (set_local $2
- (get_local $3)
- )
- (set_local $1
- (i32.sub
- (get_local $1)
- (get_local $3)
- )
- )
- (set_local $0
- (i32.add
- (get_local $0)
- (get_local $3)
- )
- )
- (i32.load
- (get_local $5)
- )
- )
- (block
- (set_local $2
- (i32.const 0)
- )
- (get_local $6)
- )
- )
- )
+ (get_local $1)
+ )
+ (block
+ (set_local $3
+ (call_indirect $FUNCSIG$iiii
+ (get_local $2)
(get_local $0)
(get_local $1)
- )
- )
- (i32.store
- (get_local $5)
- (i32.add
- (i32.load
- (get_local $5)
+ (i32.add
+ (i32.and
+ (i32.load offset=36
+ (get_local $2)
+ )
+ (i32.const 7)
+ )
+ (i32.const 2)
)
- (get_local $1)
)
)
- (set_local $4
- (i32.add
- (get_local $2)
- (get_local $1)
+ (br $label$break$L5)
+ )
+ )
+ (drop
+ (call $_memcpy
+ (block $label$break$L10
+ (if
+ (i32.gt_s
+ (i32.load8_s offset=75
+ (get_local $2)
+ )
+ (i32.const -1)
+ )
+ (block
+ (set_local $3
+ (get_local $1)
+ )
+ (loop $while-in$3
+ (if
+ (i32.eqz
+ (get_local $3)
+ )
+ (block
+ (set_local $2
+ (i32.const 0)
+ )
+ (br $label$break$L10
+ (get_local $6)
+ )
+ )
+ )
+ (if
+ (i32.ne
+ (i32.load8_s
+ (i32.add
+ (get_local $0)
+ (tee_local $4
+ (i32.add
+ (get_local $3)
+ (i32.const -1)
+ )
+ )
+ )
+ )
+ (i32.const 10)
+ )
+ (block
+ (set_local $3
+ (get_local $4)
+ )
+ (br $while-in$3)
+ )
+ )
+ )
+ (br_if $label$break$L5
+ (i32.lt_u
+ (call_indirect $FUNCSIG$iiii
+ (get_local $2)
+ (get_local $0)
+ (get_local $3)
+ (i32.add
+ (i32.and
+ (i32.load offset=36
+ (get_local $2)
+ )
+ (i32.const 7)
+ )
+ (i32.const 2)
+ )
+ )
+ (get_local $3)
+ )
+ )
+ (set_local $2
+ (get_local $3)
+ )
+ (set_local $1
+ (i32.sub
+ (get_local $1)
+ (get_local $3)
+ )
+ )
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (get_local $3)
+ )
+ )
+ (i32.load
+ (get_local $5)
+ )
+ )
+ (block
+ (set_local $2
+ (i32.const 0)
+ )
+ (get_local $6)
+ )
)
)
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (i32.store
+ (get_local $5)
+ (i32.add
+ (i32.load
+ (get_local $5)
+ )
+ (get_local $1)
+ )
+ )
+ (set_local $3
+ (i32.add
+ (get_local $2)
+ (get_local $1)
)
)
)
- (get_local $4)
+ (get_local $3)
)
(func $___towrite (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(set_local $1
+ (i32.load8_s
+ (tee_local $2
+ (i32.add
+ (get_local $0)
+ (i32.const 74)
+ )
+ )
+ )
+ )
+ (i32.store8
+ (get_local $2)
(i32.and
(i32.or
(i32.add
- (tee_local $1
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (tee_local $2
- (i32.add
- (get_local $0)
- (i32.const 74)
- )
- )
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- )
+ (get_local $1)
(i32.const 255)
)
(get_local $1)
@@ -1916,21 +1733,24 @@
(i32.const 255)
)
)
- (i32.store8
- (get_local $2)
- (get_local $1)
- )
(if
- (i32.eq
- (i32.and
- (tee_local $1
- (i32.load
- (get_local $0)
- )
+ (i32.and
+ (tee_local $1
+ (i32.load
+ (get_local $0)
)
- (i32.const 8)
)
- (i32.const 0)
+ (i32.const 8)
+ )
+ (block
+ (i32.store
+ (get_local $0)
+ (i32.or
+ (get_local $1)
+ (i32.const 32)
+ )
+ )
+ (i32.const -1)
)
(block
(i32.store offset=8
@@ -1964,26 +1784,12 @@
)
(i32.const 0)
)
- (block
- (i32.store
- (get_local $0)
- (i32.or
- (get_local $1)
- (i32.const 32)
- )
- )
- (i32.const -1)
- )
)
)
(func $_wcrtomb (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(block $do-once$0
(if
- (i32.eq
- (get_local $0)
- (i32.const 0)
- )
- (i32.const 1)
+ (get_local $0)
(block
(if
(i32.lt_u
@@ -2180,444 +1986,264 @@
)
)
)
+ (i32.const 1)
)
)
)
(func $_wctomb (param $0 i32) (param $1 i32) (result i32)
(if
- (i32.eq
- (get_local $0)
- (i32.const 0)
- )
- (i32.const 0)
+ (get_local $0)
(call $_wcrtomb
(get_local $0)
(get_local $1)
(i32.const 0)
)
+ (i32.const 0)
)
)
(func $_memchr (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
- (local $6 i32)
- (local $7 i32)
- (local $8 i32)
- (local $9 i32)
- (local $10 i32)
- (local $11 i32)
- (local $12 i32)
- (local $13 i32)
- (local $14 i32)
- (local $15 i32)
- (local $16 i32)
- (set_local $16
+ (set_local $5
(i32.and
(get_local $1)
(i32.const 255)
)
)
- (block $label$break$L1
- (if
- (i32.and
- (tee_local $6
- (i32.ne
- (get_local $2)
- (i32.const 0)
- )
- )
- (i32.ne
+ (block $label$break$L8
+ (block $jumpthreading$inner$2
+ (block $jumpthreading$inner$1
+ (if
(i32.and
- (get_local $0)
- (i32.const 3)
+ (tee_local $3
+ (i32.ne
+ (get_local $2)
+ (i32.const 0)
+ )
+ )
+ (i32.ne
+ (i32.and
+ (get_local $0)
+ (i32.const 3)
+ )
+ (i32.const 0)
+ )
)
- (i32.const 0)
- )
- )
- (block
- (set_local $6
- (i32.and
- (get_local $1)
- (i32.const 255)
- )
- )
- (set_local $3
- (get_local $2)
- )
- (set_local $2
- (get_local $0)
- )
- (loop $while-in$2
- (block $while-out$1
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (get_local $2)
+ (block
+ (set_local $4
+ (i32.and
+ (get_local $1)
+ (i32.const 255)
+ )
+ )
+ (loop $while-in$2
+ (br_if $jumpthreading$inner$2
+ (i32.eq
+ (i32.load8_s
+ (get_local $0)
+ )
+ (i32.shr_s
+ (i32.shl
+ (get_local $4)
+ (i32.const 24)
)
(i32.const 24)
)
- (i32.const 24)
- )
- (i32.shr_s
- (i32.shl
- (get_local $6)
- (i32.const 24)
- )
- (i32.const 24)
)
)
- (block
- (set_local $4
- (get_local $3)
- )
- (set_local $5
- (get_local $2)
- )
- (set_local $3
- (i32.const 6)
- )
- (br $label$break$L1)
- )
- )
- (if
- (i32.and
- (tee_local $3
- (i32.ne
- (tee_local $0
- (i32.add
- (get_local $3)
- (i32.const -1)
+ (br_if $while-in$2
+ (i32.and
+ (tee_local $3
+ (i32.ne
+ (tee_local $2
+ (i32.add
+ (get_local $2)
+ (i32.const -1)
+ )
)
+ (i32.const 0)
+ )
+ )
+ (i32.ne
+ (i32.and
+ (tee_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ (i32.const 3)
)
(i32.const 0)
)
)
- (i32.ne
- (i32.and
- (tee_local $2
- (i32.add
- (get_local $2)
- (i32.const 1)
- )
- )
- (i32.const 3)
- )
- (i32.const 0)
- )
)
- (set_local $3
- (get_local $0)
- )
- (block
- (set_local $14
- (get_local $0)
- )
- (set_local $11
- (get_local $2)
- )
- (set_local $15
- (get_local $3)
- )
- (set_local $3
- (i32.const 5)
- )
- (br $while-out$1)
- )
+ (br $jumpthreading$inner$1)
)
- (br $while-in$2)
)
)
)
- (block
- (set_local $14
- (get_local $2)
- )
- (set_local $11
- (get_local $0)
- )
- (set_local $15
- (get_local $6)
- )
- (set_local $3
- (i32.const 5)
- )
+ (br_if $jumpthreading$inner$2
+ (get_local $3)
)
- )
- )
- (if
- (i32.eq
- (get_local $3)
- (i32.const 5)
- )
- (if
- (get_local $15)
- (block
- (set_local $4
- (get_local $14)
- )
- (set_local $5
- (get_local $11)
- )
- (set_local $3
- (i32.const 6)
- )
+ (set_local $1
+ (i32.const 0)
)
- (block
- (set_local $7
- (i32.const 0)
- )
- (set_local $8
- (get_local $11)
- )
- )
+ (br $label$break$L8)
)
- )
- (block $label$break$L8
(if
(i32.eq
- (get_local $3)
- (i32.const 6)
+ (i32.load8_s
+ (get_local $0)
+ )
+ (i32.shr_s
+ (i32.shl
+ (tee_local $4
+ (i32.and
+ (get_local $1)
+ (i32.const 255)
+ )
+ )
+ (i32.const 24)
+ )
+ (i32.const 24)
+ )
)
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (get_local $5)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.shr_s
- (i32.shl
- (tee_local $0
- (i32.and
- (get_local $1)
- (i32.const 255)
- )
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- )
- (block
- (set_local $7
- (get_local $4)
- )
- (set_local $8
+ (set_local $1
+ (get_local $2)
+ )
+ (block
+ (set_local $3
+ (i32.mul
(get_local $5)
+ (i32.const 16843009)
)
)
- (block
- (set_local $2
- (i32.mul
- (get_local $16)
- (i32.const 16843009)
- )
- )
- (block $label$break$L11
+ (block $jumpthreading$outer$0
+ (block $jumpthreading$inner$0
(if
(i32.gt_u
- (get_local $4)
+ (get_local $2)
(i32.const 3)
)
- (block
- (loop $while-in$6
- (block $while-out$5
- (set_local $1
- (i32.add
- (tee_local $6
- (i32.xor
- (i32.load
- (get_local $5)
+ (loop $while-in$6
+ (block $while-out$5
+ (if
+ (i32.and
+ (i32.xor
+ (i32.and
+ (tee_local $1
+ (i32.xor
+ (i32.load
+ (get_local $0)
+ )
+ (get_local $3)
)
- (get_local $2)
)
+ (i32.const -2139062144)
)
+ (i32.const -2139062144)
+ )
+ (i32.add
+ (get_local $1)
(i32.const -16843009)
)
)
- (br_if $while-out$5
- (i32.ne
- (i32.and
- (i32.xor
- (i32.and
- (get_local $6)
- (i32.const -2139062144)
- )
- (i32.const -2139062144)
- )
- (get_local $1)
- )
- (i32.const 0)
+ (block
+ (set_local $1
+ (get_local $2)
)
+ (br $while-out$5)
)
- (set_local $1
- (i32.add
- (get_local $5)
- (i32.const 4)
- )
+ )
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 4)
)
- (if
- (i32.gt_u
- (tee_local $4
- (i32.add
- (get_local $4)
- (i32.const -4)
- )
+ )
+ (br_if $jumpthreading$inner$0
+ (i32.le_u
+ (tee_local $1
+ (i32.add
+ (get_local $2)
+ (i32.const -4)
)
- (i32.const 3)
)
- (set_local $5
- (get_local $1)
- )
- (block
- (set_local $12
- (get_local $4)
- )
- (set_local $13
- (get_local $1)
- )
- (set_local $3
- (i32.const 11)
- )
- (br $label$break$L11)
- )
+ (i32.const 3)
+ )
+ )
+ (block
+ (set_local $2
+ (get_local $1)
)
(br $while-in$6)
)
)
- (set_local $10
- (get_local $4)
- )
- (set_local $9
- (get_local $5)
- )
)
(block
- (set_local $12
- (get_local $4)
+ (set_local $1
+ (get_local $2)
)
- (set_local $13
- (get_local $5)
- )
- (set_local $3
- (i32.const 11)
- )
+ (br $jumpthreading$inner$0)
)
)
+ (br $jumpthreading$outer$0)
)
(if
- (i32.eq
- (get_local $3)
- (i32.const 11)
+ (i32.eqz
+ (get_local $1)
)
- (if
- (i32.eq
- (get_local $12)
+ (block
+ (set_local $1
(i32.const 0)
)
- (block
- (set_local $7
- (i32.const 0)
- )
- (set_local $8
- (get_local $13)
- )
- (br $label$break$L8)
+ (br $label$break$L8)
+ )
+ )
+ )
+ (loop $while-in$8
+ (br_if $label$break$L8
+ (i32.eq
+ (i32.load8_s
+ (get_local $0)
)
- (block
- (set_local $10
- (get_local $12)
+ (i32.shr_s
+ (i32.shl
+ (get_local $4)
+ (i32.const 24)
)
- (set_local $9
- (get_local $13)
- )
+ (i32.const 24)
)
)
)
- (loop $while-in$8
- (block $while-out$7
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (get_local $9)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.shr_s
- (i32.shl
- (get_local $0)
- (i32.const 24)
- )
- (i32.const 24)
- )
- )
- (block
- (set_local $7
- (get_local $10)
- )
- (set_local $8
- (get_local $9)
- )
- (br $label$break$L8)
- )
- )
- (set_local $2
- (i32.add
- (get_local $9)
- (i32.const 1)
- )
- )
- (if
- (i32.eq
- (tee_local $1
- (i32.add
- (get_local $10)
- (i32.const -1)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $7
- (i32.const 0)
- )
- (set_local $8
- (get_local $2)
- )
- (br $while-out$7)
- )
- (block
- (set_local $10
- (get_local $1)
- )
- (set_local $9
- (get_local $2)
- )
- )
- )
- (br $while-in$8)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
)
)
+ (br_if $while-in$8
+ (tee_local $1
+ (i32.add
+ (get_local $1)
+ (i32.const -1)
+ )
+ )
+ )
+ (set_local $1
+ (i32.const 0)
+ )
)
)
)
)
(select
- (get_local $8)
+ (get_local $0)
(i32.const 0)
(i32.ne
- (get_local $7)
+ (get_local $1)
(i32.const 0)
)
)
@@ -2648,26 +2274,28 @@
(local $4 i32)
(local $5 i32)
(local $6 i32)
- (if
- (i32.gt_u
- (i32.load
- (tee_local $3
- (i32.add
- (get_local $0)
- (i32.const 20)
+ (block $jumpthreading$outer$0
+ (block $jumpthreading$inner$0
+ (br_if $jumpthreading$inner$0
+ (i32.le_u
+ (i32.load
+ (tee_local $1
+ (i32.add
+ (get_local $0)
+ (i32.const 20)
+ )
+ )
+ )
+ (i32.load
+ (tee_local $2
+ (i32.add
+ (get_local $0)
+ (i32.const 28)
+ )
+ )
)
)
)
- (i32.load
- (tee_local $4
- (i32.add
- (get_local $0)
- (i32.const 28)
- )
- )
- )
- )
- (block
(drop
(call_indirect $FUNCSIG$iiii
(get_local $0)
@@ -2684,108 +2312,87 @@
)
)
)
- (if
- (i32.eq
+ (br_if $jumpthreading$inner$0
+ (i32.load
+ (get_local $1)
+ )
+ )
+ (br $jumpthreading$outer$0
+ (i32.const -1)
+ )
+ )
+ (if
+ (i32.lt_u
+ (tee_local $4
(i32.load
- (get_local $3)
+ (tee_local $3
+ (i32.add
+ (get_local $0)
+ (i32.const 4)
+ )
+ )
)
- (i32.const 0)
)
- (set_local $1
- (i32.const -1)
+ (tee_local $6
+ (i32.load
+ (tee_local $5
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ )
+ )
)
- (set_local $2
- (i32.const 3)
+ )
+ (drop
+ (call_indirect $FUNCSIG$iiii
+ (get_local $0)
+ (i32.sub
+ (get_local $4)
+ (get_local $6)
+ )
+ (i32.const 1)
+ (i32.add
+ (i32.and
+ (i32.load offset=40
+ (get_local $0)
+ )
+ (i32.const 7)
+ )
+ (i32.const 2)
+ )
)
)
)
- (set_local $2
- (i32.const 3)
+ (i32.store offset=16
+ (get_local $0)
+ (i32.const 0)
)
- )
- (if
- (i32.eq
+ (i32.store
(get_local $2)
- (i32.const 3)
+ (i32.const 0)
)
- (block
- (if
- (i32.lt_u
- (tee_local $1
- (i32.load
- (tee_local $5
- (i32.add
- (get_local $0)
- (i32.const 4)
- )
- )
- )
- )
- (tee_local $2
- (i32.load
- (tee_local $6
- (i32.add
- (get_local $0)
- (i32.const 8)
- )
- )
- )
- )
- )
- (drop
- (call_indirect $FUNCSIG$iiii
- (get_local $0)
- (i32.sub
- (get_local $1)
- (get_local $2)
- )
- (i32.const 1)
- (i32.add
- (i32.and
- (i32.load offset=40
- (get_local $0)
- )
- (i32.const 7)
- )
- (i32.const 2)
- )
- )
- )
- )
- (i32.store offset=16
- (get_local $0)
- (i32.const 0)
- )
- (i32.store
- (get_local $4)
- (i32.const 0)
- )
- (i32.store
- (get_local $3)
- (i32.const 0)
- )
- (i32.store
- (get_local $6)
- (i32.const 0)
- )
- (i32.store
- (get_local $5)
- (i32.const 0)
- )
- (set_local $1
- (i32.const 0)
- )
+ (i32.store
+ (get_local $1)
+ (i32.const 0)
)
+ (i32.store
+ (get_local $5)
+ (i32.const 0)
+ )
+ (i32.store
+ (get_local $3)
+ (i32.const 0)
+ )
+ (i32.const 0)
)
- (get_local $1)
)
(func $_cleanup (param $0 i32)
(if
- (i32.eq
+ (i32.eqz
(i32.load offset=68
(get_local $0)
)
- (i32.const 0)
)
(call $___unlockfile
(get_local $0)
@@ -2810,7 +2417,7 @@
(local $19 i32)
(local $20 i32)
(local $21 i32)
- (local $22 i32)
+ (local $22 f64)
(local $23 i32)
(local $24 i32)
(local $25 i32)
@@ -2818,7 +2425,7 @@
(local $27 i32)
(local $28 i32)
(local $29 i32)
- (local $30 f64)
+ (local $30 i32)
(local $31 i32)
(local $32 i32)
(local $33 i32)
@@ -2844,35 +2451,7 @@
(local $53 i32)
(local $54 i32)
(local $55 i32)
- (local $56 i32)
- (local $57 i32)
- (local $58 i32)
- (local $59 i32)
- (local $60 i32)
- (local $61 i32)
- (local $62 i32)
- (local $63 i32)
- (local $64 i32)
- (local $65 i32)
- (local $66 i32)
- (local $67 i32)
- (local $68 i32)
- (local $69 i32)
- (local $70 i32)
- (local $71 i32)
- (local $72 i32)
- (local $73 i32)
- (local $74 i32)
- (local $75 i32)
- (local $76 i32)
- (local $77 i32)
- (local $78 i32)
- (local $79 i32)
- (local $80 i32)
- (local $81 i32)
- (local $82 i32)
- (local $83 i32)
- (set_local $31
+ (set_local $27
(get_global $STACKTOP)
)
(set_global $STACKTOP
@@ -2888,33 +2467,33 @@
)
(call_import $abort)
)
- (set_local $25
+ (set_local $20
(i32.add
- (get_local $31)
+ (get_local $27)
(i32.const 16)
)
)
- (set_local $19
- (get_local $31)
+ (set_local $18
+ (get_local $27)
)
- (set_local $63
+ (set_local $41
(i32.add
- (get_local $31)
+ (get_local $27)
(i32.const 528)
)
)
- (set_local $44
+ (set_local $33
(i32.ne
(get_local $0)
(i32.const 0)
)
)
- (set_local $71
- (tee_local $28
+ (set_local $45
+ (tee_local $23
(i32.add
- (tee_local $5
+ (tee_local $13
(i32.add
- (get_local $31)
+ (get_local $27)
(i32.const 536)
)
)
@@ -2922,542 +2501,320 @@
)
)
)
- (set_local $72
+ (set_local $46
(i32.add
- (get_local $5)
+ (get_local $13)
(i32.const 39)
)
)
- (set_local $76
+ (set_local $50
(i32.add
- (tee_local $73
+ (tee_local $47
(i32.add
- (get_local $31)
+ (get_local $27)
(i32.const 8)
)
)
(i32.const 4)
)
)
- (set_local $52
+ (set_local $37
(i32.add
- (tee_local $5
+ (tee_local $13
(i32.add
- (get_local $31)
+ (get_local $27)
(i32.const 576)
)
)
(i32.const 12)
)
)
- (set_local $74
+ (set_local $48
(i32.add
- (get_local $5)
+ (get_local $13)
(i32.const 11)
)
)
- (set_local $77
+ (set_local $51
(i32.sub
- (tee_local $40
- (get_local $52)
+ (tee_local $32
+ (get_local $37)
)
- (tee_local $64
- (tee_local $29
+ (tee_local $42
+ (tee_local $24
(i32.add
- (get_local $31)
+ (get_local $27)
(i32.const 588)
)
)
)
)
)
- (set_local $78
+ (set_local $52
(i32.sub
(i32.const -2)
- (get_local $64)
+ (get_local $42)
)
)
- (set_local $79
+ (set_local $53
(i32.add
- (get_local $40)
+ (get_local $32)
(i32.const 2)
)
)
- (set_local $81
+ (set_local $55
(i32.add
- (tee_local $80
+ (tee_local $54
(i32.add
- (get_local $31)
+ (get_local $27)
(i32.const 24)
)
)
(i32.const 288)
)
)
- (set_local $75
- (tee_local $45
+ (set_local $49
+ (tee_local $34
(i32.add
- (get_local $29)
+ (get_local $24)
(i32.const 9)
)
)
)
- (set_local $53
+ (set_local $38
(i32.add
- (get_local $29)
+ (get_local $24)
(i32.const 8)
)
)
- (set_local $22
+ (set_local $15
(i32.const 0)
)
- (set_local $20
- (get_local $1)
- )
- (set_local $1
+ (set_local $5
(i32.const 0)
)
- (set_local $8
+ (set_local $13
(i32.const 0)
)
- (loop $label$continue$L1
- (block $label$break$L1
- (set_local $22
- (if
- (i32.gt_s
- (get_local $22)
- (i32.const -1)
- )
- (if
- (i32.gt_s
- (get_local $1)
- (i32.sub
- (i32.const 2147483647)
- (get_local $22)
+ (block $label$break$L343
+ (block $jumpthreading$inner$8
+ (loop $label$continue$L1
+ (block $label$break$L1
+ (set_local $15
+ (if
+ (i32.gt_s
+ (get_local $15)
+ (i32.const -1)
)
- )
- (block
- (i32.store
- (call $___errno_location)
- (i32.const 75)
- )
- (i32.const -1)
- )
- (i32.add
- (get_local $1)
- (get_local $22)
- )
- )
- (get_local $22)
- )
- )
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (tee_local $1
- (i32.load8_s
- (get_local $20)
- )
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 0)
- )
- (block
- (set_local $82
- (get_local $22)
- )
- (set_local $83
- (get_local $8)
- )
- (set_local $12
- (i32.const 242)
- )
- (br $label$break$L1)
- )
- (set_local $5
- (get_local $20)
- )
- )
- (loop $label$continue$L9
- (block $label$break$L9
- (block $switch-default$5
- (block $switch-case$4
- (block $switch-case$3
- (br_table $switch-case$4 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-case$3 $switch-default$5
+ (if
+ (i32.gt_s
+ (get_local $5)
(i32.sub
- (i32.shr_s
- (i32.shl
- (get_local $1)
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 0)
+ (i32.const 2147483647)
+ (get_local $15)
)
)
- )
- (set_local $54
- (get_local $5)
- )
- (set_local $65
- (get_local $5)
- )
- (set_local $12
- (i32.const 9)
- )
- (br $label$break$L9)
- )
- (set_local $41
- (get_local $5)
- )
- (set_local $55
- (get_local $5)
- )
- (br $label$break$L9)
- )
- (set_local $1
- (i32.load8_s
- (tee_local $5
+ (block
+ (i32.store
+ (call $___errno_location)
+ (i32.const 75)
+ )
+ (i32.const -1)
+ )
(i32.add
(get_local $5)
- (i32.const 1)
+ (get_local $15)
)
)
+ (get_local $15)
)
)
- (br $label$continue$L9)
- )
- )
- (block $label$break$L12
- (if
- (i32.eq
- (get_local $12)
- (i32.const 9)
- )
- (loop $while-in$8
- (block $while-out$7
- (set_local $12
- (i32.const 0)
- )
- (if
- (i32.ne
- (i32.shr_s
- (i32.shl
- (i32.load8_s offset=1
- (get_local $54)
- )
- (i32.const 24)
+ (br_if $jumpthreading$inner$8
+ (i32.eqz
+ (i32.shr_s
+ (i32.shl
+ (tee_local $5
+ (i32.load8_s
+ (get_local $1)
)
- (i32.const 24)
- )
- (i32.const 37)
- )
- (block
- (set_local $41
- (get_local $54)
- )
- (set_local $55
- (get_local $65)
- )
- (br $label$break$L12)
- )
- )
- (set_local $5
- (i32.add
- (get_local $65)
- (i32.const 1)
- )
- )
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (tee_local $1
- (i32.add
- (get_local $54)
- (i32.const 2)
- )
- )
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 37)
- )
- (block
- (set_local $54
- (get_local $1)
- )
- (set_local $65
- (get_local $5)
- )
- )
- (block
- (set_local $41
- (get_local $1)
- )
- (set_local $55
- (get_local $5)
- )
- (br $while-out$7)
- )
- )
- (br $while-in$8)
- )
- )
- )
- )
- (set_local $17
- (i32.sub
- (get_local $55)
- (get_local $20)
- )
- )
- (if
- (get_local $44)
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (call $___fwritex
- (get_local $20)
- (get_local $17)
- (get_local $0)
- )
- )
- )
- (if
- (i32.ne
- (get_local $55)
- (get_local $20)
- )
- (block
- (set_local $20
- (get_local $41)
- )
- (set_local $1
- (get_local $17)
- )
- (br $label$continue$L1)
- )
- )
- (set_local $7
- (if
- (i32.lt_u
- (tee_local $6
- (i32.add
- (i32.shr_s
- (i32.shl
- (tee_local $1
- (i32.load8_s
- (tee_local $5
- (i32.add
- (get_local $41)
- (i32.const 1)
- )
- )
- )
- )
- (i32.const 24)
)
(i32.const 24)
)
- (i32.const -48)
+ (i32.const 24)
)
)
- (i32.const 10)
)
(block
- (set_local $1
- (i32.load8_s
- (tee_local $5
- (select
+ (set_local $6
+ (get_local $5)
+ )
+ (set_local $5
+ (get_local $1)
+ )
+ )
+ (loop $label$continue$L9
+ (block $label$break$L9
+ (block $switch-default$5
+ (block $switch-case$4
+ (block $switch-case$3
+ (br_table $switch-case$4 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-case$3 $switch-default$5
+ (i32.sub
+ (i32.shr_s
+ (i32.shl
+ (get_local $6)
+ (i32.const 24)
+ )
+ (i32.const 24)
+ )
+ (i32.const 0)
+ )
+ )
+ )
+ (set_local $39
+ (get_local $5)
+ )
+ (set_local $43
+ (get_local $5)
+ )
+ (set_local $28
+ (i32.const 9)
+ )
+ (br $label$break$L9)
+ )
+ (set_local $29
+ (get_local $5)
+ )
+ (set_local $35
+ (get_local $5)
+ )
+ (br $label$break$L9)
+ )
+ (set_local $6
+ (i32.load8_s
+ (tee_local $5
(i32.add
- (get_local $41)
- (i32.const 3)
- )
- (get_local $5)
- (tee_local $7
- (i32.eq
- (i32.shr_s
- (i32.shl
- (i32.load8_s offset=2
- (get_local $41)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 36)
- )
- )
- )
- )
- )
- )
- (set_local $11
- (select
- (i32.const 1)
- (get_local $8)
- (get_local $7)
- )
- )
- (set_local $9
- (get_local $5)
- )
- (select
- (get_local $6)
- (i32.const -1)
- (get_local $7)
- )
- )
- (block
- (set_local $11
- (get_local $8)
- )
- (set_local $9
- (get_local $5)
- )
- (i32.const -1)
- )
- )
- )
- (block $label$break$L25
- (if
- (i32.eq
- (i32.and
- (tee_local $5
- (i32.shr_s
- (i32.shl
- (get_local $1)
- (i32.const 24)
- )
- (i32.const 24)
- )
- )
- (i32.const -32)
- )
- (i32.const 32)
- )
- (block
- (set_local $8
- (i32.const 0)
- )
- (loop $while-in$11
- (block $while-out$10
- (br_if $label$break$L25
- (i32.eq
- (i32.and
- (i32.shl
- (i32.const 1)
- (i32.add
- (get_local $5)
- (i32.const -32)
- )
- )
- (i32.const 75913)
- )
- (i32.const 0)
- )
- )
- (set_local $8
- (i32.or
- (i32.shl
+ (get_local $5)
(i32.const 1)
- (i32.add
- (i32.shr_s
- (i32.shl
- (get_local $1)
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const -32)
- )
)
- (get_local $8)
+ )
+ )
+ )
+ (br $label$continue$L9)
+ )
+ )
+ (block $label$break$L12
+ (if
+ (i32.eq
+ (get_local $28)
+ (i32.const 9)
+ )
+ (loop $while-in$8
+ (set_local $28
+ (i32.const 0)
+ )
+ (if
+ (i32.ne
+ (i32.load8_s offset=1
+ (get_local $39)
+ )
+ (i32.const 37)
+ )
+ (block
+ (set_local $29
+ (get_local $39)
+ )
+ (set_local $35
+ (get_local $43)
+ )
+ (br $label$break$L12)
+ )
+ )
+ (set_local $35
+ (i32.add
+ (get_local $43)
+ (i32.const 1)
)
)
(if
(i32.eq
- (i32.and
- (tee_local $5
- (i32.shr_s
- (i32.shl
- (tee_local $1
- (i32.load8_s
- (tee_local $6
- (i32.add
- (get_local $9)
- (i32.const 1)
- )
- )
- )
- )
- (i32.const 24)
- )
- (i32.const 24)
+ (i32.load8_s
+ (tee_local $29
+ (i32.add
+ (get_local $39)
+ (i32.const 2)
)
)
- (i32.const -32)
)
- (i32.const 32)
- )
- (set_local $9
- (get_local $6)
+ (i32.const 37)
)
(block
- (set_local $9
- (get_local $6)
+ (set_local $39
+ (get_local $29)
)
- (br $while-out$10)
+ (set_local $43
+ (get_local $35)
+ )
+ (br $while-in$8)
)
)
- (br $while-in$11)
)
)
)
- (set_local $8
- (i32.const 0)
- )
- )
- )
- (block $do-once$12
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (get_local $1)
- (i32.const 24)
- )
- (i32.const 24)
+ (set_local $6
+ (i32.sub
+ (get_local $35)
+ (get_local $1)
)
- (i32.const 42)
)
- (block
+ (if
+ (get_local $33)
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $1)
+ (get_local $6)
+ (get_local $0)
+ )
+ )
+ )
+ )
+ (if
+ (i32.ne
+ (get_local $35)
+ (get_local $1)
+ )
+ (block
+ (set_local $1
+ (get_local $29)
+ )
+ (set_local $5
+ (get_local $6)
+ )
+ (br $label$continue$L1)
+ )
+ )
+ (set_local $21
(if
(i32.lt_u
- (tee_local $1
+ (tee_local $9
(i32.add
(i32.shr_s
(i32.shl
- (i32.load8_s
- (tee_local $6
- (i32.add
- (get_local $9)
- (i32.const 1)
+ (tee_local $5
+ (i32.load8_s
+ (tee_local $10
+ (i32.add
+ (get_local $29)
+ (i32.const 1)
+ )
)
)
)
@@ -3470,409 +2827,331 @@
)
(i32.const 10)
)
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (i32.load8_s offset=2
- (get_local $9)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 36)
- )
- (block
- (i32.store
- (i32.add
- (get_local $4)
- (i32.shl
- (get_local $1)
- (i32.const 2)
- )
- )
- (i32.const 10)
- )
- (set_local $1
- (i32.load
- (i32.add
- (get_local $3)
- (i32.shl
- (i32.add
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (get_local $6)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const -48)
- )
- (i32.const 3)
- )
- )
- )
- )
- (set_local $66
- (i32.const 1)
- )
- (set_local $67
- (i32.add
- (get_local $9)
- (i32.const 3)
- )
- )
- (set_local $56
- (get_local $1)
- )
- )
- (set_local $12
- (i32.const 24)
- )
- )
- (set_local $12
- (i32.const 24)
- )
- )
- (if
- (i32.eq
- (get_local $12)
- (i32.const 24)
- )
(block
- (set_local $12
- (i32.const 0)
- )
- (if
- (i32.ne
- (get_local $11)
- (i32.const 0)
- )
- (block
- (set_local $24
- (i32.const -1)
- )
- (br $label$break$L1)
- )
- )
- (if
- (i32.eqz
- (get_local $44)
- )
- (block
- (set_local $9
- (get_local $6)
- )
- (set_local $21
- (i32.const 0)
- )
- (set_local $16
- (i32.const 0)
- )
- (br $do-once$12)
- )
- )
(set_local $5
- (i32.load
- (tee_local $1
- (i32.and
+ (i32.load8_s
+ (tee_local $10
+ (select
(i32.add
- (i32.load
- (get_local $2)
- )
+ (get_local $29)
(i32.const 3)
)
- (i32.const -4)
+ (get_local $10)
+ (tee_local $8
+ (i32.eq
+ (i32.load8_s offset=2
+ (get_local $29)
+ )
+ (i32.const 36)
+ )
+ )
)
)
)
)
- (i32.store
- (get_local $2)
- (i32.add
- (get_local $1)
- (i32.const 4)
- )
- )
- (set_local $66
- (i32.const 0)
- )
- (set_local $67
- (get_local $6)
- )
- (set_local $56
- (get_local $5)
- )
- )
- )
- (set_local $8
- (if
- (i32.lt_s
- (get_local $56)
- (i32.const 0)
- )
- (block
- (set_local $9
- (get_local $67)
- )
- (set_local $21
- (get_local $66)
- )
- (set_local $16
- (i32.sub
- (i32.const 0)
- (get_local $56)
- )
- )
- (i32.or
+ (set_local $7
+ (select
+ (i32.const 1)
+ (get_local $13)
(get_local $8)
- (i32.const 8192)
)
)
- (block
- (set_local $9
- (get_local $67)
- )
- (set_local $21
- (get_local $66)
- )
- (set_local $16
- (get_local $56)
- )
+ (select
+ (get_local $9)
+ (i32.const -1)
(get_local $8)
)
)
+ (block
+ (set_local $7
+ (get_local $13)
+ )
+ (i32.const -1)
+ )
)
)
- (if
- (i32.lt_u
- (tee_local $6
- (i32.add
- (i32.shr_s
- (i32.shl
- (get_local $1)
+ (block $label$break$L25
+ (if
+ (i32.eq
+ (i32.and
+ (tee_local $8
+ (i32.shr_s
+ (i32.shl
+ (get_local $5)
+ (i32.const 24)
+ )
(i32.const 24)
)
- (i32.const 24)
)
- (i32.const -48)
+ (i32.const -32)
)
+ (i32.const 32)
)
- (i32.const 10)
- )
- (block
- (set_local $1
- (get_local $9)
- )
- (set_local $5
- (i32.const 0)
- )
- (loop $while-in$15
- (block $while-out$14
- (set_local $5
- (i32.add
- (i32.mul
- (get_local $5)
- (i32.const 10)
- )
- (get_local $6)
- )
- )
- (br_if $while-out$14
- (i32.ge_u
- (tee_local $6
- (i32.add
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (tee_local $1
- (i32.add
- (get_local $1)
- (i32.const 1)
- )
- )
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const -48)
- )
- )
- (i32.const 10)
- )
- )
- (br $while-in$15)
- )
- )
- (if
- (i32.lt_s
+ (block
+ (set_local $13
(get_local $5)
+ )
+ (set_local $5
+ (get_local $8)
+ )
+ (set_local $8
(i32.const 0)
)
- (block
- (set_local $24
- (i32.const -1)
- )
- (br $label$break$L1)
- )
- (block
- (set_local $9
- (get_local $1)
- )
- (set_local $21
- (get_local $11)
- )
- (set_local $16
- (get_local $5)
- )
- )
- )
- )
- (block
- (set_local $21
- (get_local $11)
- )
- (set_local $16
- (i32.const 0)
- )
- )
- )
- )
- )
- (set_local $11
- (block $label$break$L46
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (get_local $9)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 46)
- )
- (block
- (if
- (i32.ne
- (i32.shr_s
- (i32.shl
- (tee_local $1
- (i32.load8_s
- (tee_local $5
- (i32.add
- (get_local $9)
- (i32.const 1)
- )
+ (loop $while-in$11
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.shl
+ (i32.const 1)
+ (i32.add
+ (get_local $5)
+ (i32.const -32)
)
)
+ (i32.const 75913)
)
- (i32.const 24)
)
- (i32.const 24)
+ (block
+ (set_local $5
+ (get_local $8)
+ )
+ (br $label$break$L25)
+ )
)
- (i32.const 42)
- )
- (block
- (if
- (i32.lt_u
- (tee_local $6
+ (set_local $8
+ (i32.or
+ (i32.shl
+ (i32.const 1)
(i32.add
(i32.shr_s
(i32.shl
- (get_local $1)
+ (get_local $13)
(i32.const 24)
)
(i32.const 24)
)
- (i32.const -48)
+ (i32.const -32)
)
)
- (i32.const 10)
- )
- (block
- (set_local $1
- (get_local $5)
- )
- (set_local $5
- (i32.const 0)
- )
- )
- (block
- (set_local $10
- (i32.const 0)
- )
- (br $label$break$L46
- (get_local $5)
- )
+ (get_local $8)
)
)
- (loop $while-in$18
- (set_local $5
- (i32.add
- (i32.mul
- (get_local $5)
- (i32.const 10)
- )
- (get_local $6)
- )
- )
- (if
- (i32.ge_u
- (tee_local $6
- (i32.add
- (i32.shr_s
- (i32.shl
+ (br_if $while-in$11
+ (i32.eq
+ (i32.and
+ (tee_local $5
+ (i32.shr_s
+ (i32.shl
+ (tee_local $13
(i32.load8_s
- (tee_local $1
+ (tee_local $10
(i32.add
- (get_local $1)
+ (get_local $10)
(i32.const 1)
)
)
)
- (i32.const 24)
)
(i32.const 24)
)
- (i32.const -48)
+ (i32.const 24)
+ )
+ )
+ (i32.const -32)
+ )
+ (i32.const 32)
+ )
+ )
+ (set_local $5
+ (get_local $8)
+ )
+ )
+ )
+ (block
+ (set_local $13
+ (get_local $5)
+ )
+ (set_local $5
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ (block $do-once$12
+ (if
+ (i32.eq
+ (i32.shr_s
+ (i32.shl
+ (get_local $13)
+ (i32.const 24)
+ )
+ (i32.const 24)
+ )
+ (i32.const 42)
+ )
+ (block
+ (set_local $13
+ (block $jumpthreading$outer$0
+ (block $jumpthreading$inner$0
+ (br_if $jumpthreading$inner$0
+ (i32.ge_u
+ (tee_local $8
+ (i32.add
+ (i32.load8_s
+ (tee_local $13
+ (i32.add
+ (get_local $10)
+ (i32.const 1)
+ )
+ )
+ )
+ (i32.const -48)
+ )
+ )
+ (i32.const 10)
+ )
+ )
+ (br_if $jumpthreading$inner$0
+ (i32.ne
+ (i32.load8_s offset=2
+ (get_local $10)
+ )
+ (i32.const 36)
+ )
+ )
+ (i32.store
+ (i32.add
+ (get_local $4)
+ (i32.shl
+ (get_local $8)
+ (i32.const 2)
)
)
(i32.const 10)
)
+ (set_local $13
+ (i32.add
+ (get_local $3)
+ (i32.shl
+ (i32.add
+ (i32.load8_s
+ (get_local $13)
+ )
+ (i32.const -48)
+ )
+ (i32.const 3)
+ )
+ )
+ )
+ (set_local $10
+ (i32.add
+ (get_local $10)
+ (i32.const 3)
+ )
+ )
+ (set_local $7
+ (i32.load
+ (get_local $13)
+ )
+ )
+ (br $jumpthreading$outer$0
+ (i32.const 1)
+ )
+ )
+ (set_local $28
+ (i32.const 0)
+ )
+ (if
+ (get_local $7)
(block
- (set_local $10
+ (set_local $15
+ (i32.const -1)
+ )
+ (br $label$break$L1)
+ )
+ )
+ (if
+ (i32.eqz
+ (get_local $33)
+ )
+ (block
+ (set_local $8
(get_local $5)
)
- (br $label$break$L46
- (get_local $1)
+ (set_local $10
+ (get_local $13)
+ )
+ (set_local $13
+ (i32.const 0)
+ )
+ (set_local $17
+ (i32.const 0)
+ )
+ (br $do-once$12)
+ )
+ )
+ (set_local $7
+ (i32.load
+ (tee_local $10
+ (i32.and
+ (i32.add
+ (i32.load
+ (get_local $2)
+ )
+ (i32.const 3)
+ )
+ (i32.const -4)
+ )
)
)
)
- (br $while-in$18)
+ (i32.store
+ (get_local $2)
+ (i32.add
+ (get_local $10)
+ (i32.const 4)
+ )
+ )
+ (set_local $10
+ (get_local $13)
+ )
+ (i32.const 0)
+ )
+ )
+ (set_local $8
+ (if
+ (i32.lt_s
+ (get_local $7)
+ (i32.const 0)
+ )
+ (block
+ (set_local $17
+ (i32.sub
+ (i32.const 0)
+ (get_local $7)
+ )
+ )
+ (i32.or
+ (get_local $5)
+ (i32.const 8192)
+ )
+ )
+ (block
+ (set_local $17
+ (get_local $7)
+ )
+ (get_local $5)
+ )
)
)
)
(if
(i32.lt_u
- (tee_local $1
+ (tee_local $13
(i32.add
(i32.shr_s
(i32.shl
- (i32.load8_s
- (tee_local $6
- (i32.add
- (get_local $9)
- (i32.const 2)
- )
- )
- )
+ (get_local $13)
(i32.const 24)
)
(i32.const 24)
@@ -3882,4693 +3161,4362 @@
)
(i32.const 10)
)
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (i32.load8_s offset=3
+ (block
+ (set_local $8
+ (i32.const 0)
+ )
+ (loop $while-in$15
+ (set_local $13
+ (i32.add
+ (i32.mul
+ (get_local $8)
+ (i32.const 10)
+ )
+ (get_local $13)
+ )
+ )
+ (if
+ (i32.lt_u
+ (tee_local $9
+ (i32.add
+ (i32.load8_s
+ (tee_local $10
+ (i32.add
+ (get_local $10)
+ (i32.const 1)
+ )
+ )
+ )
+ (i32.const -48)
+ )
+ )
+ (i32.const 10)
+ )
+ (block
+ (set_local $8
+ (get_local $13)
+ )
+ (set_local $13
(get_local $9)
)
+ (br $while-in$15)
+ )
+ (set_local $9
+ (get_local $13)
+ )
+ )
+ )
+ (if
+ (i32.lt_s
+ (get_local $9)
+ (i32.const 0)
+ )
+ (block
+ (set_local $15
+ (i32.const -1)
+ )
+ (br $label$break$L1)
+ )
+ (block
+ (set_local $8
+ (get_local $5)
+ )
+ (set_local $13
+ (get_local $7)
+ )
+ (set_local $17
+ (get_local $9)
+ )
+ )
+ )
+ )
+ (block
+ (set_local $8
+ (get_local $5)
+ )
+ (set_local $13
+ (get_local $7)
+ )
+ (set_local $17
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ )
+ (set_local $9
+ (block $label$break$L46
+ (if
+ (i32.eq
+ (i32.load8_s
+ (get_local $10)
+ )
+ (i32.const 46)
+ )
+ (block
+ (if
+ (i32.ne
+ (i32.shr_s
+ (i32.shl
+ (tee_local $7
+ (i32.load8_s
+ (tee_local $5
+ (i32.add
+ (get_local $10)
+ (i32.const 1)
+ )
+ )
+ )
+ )
+ (i32.const 24)
+ )
(i32.const 24)
)
- (i32.const 24)
+ (i32.const 42)
)
- (i32.const 36)
- )
- (block
- (i32.store
- (i32.add
- (get_local $4)
- (i32.shl
- (get_local $1)
- (i32.const 2)
- )
- )
- (i32.const 10)
- )
- (set_local $1
- (i32.load
- (i32.add
- (get_local $3)
- (i32.shl
+ (block
+ (if
+ (i32.lt_u
+ (tee_local $7
(i32.add
(i32.shr_s
(i32.shl
- (i32.load8_s
- (get_local $6)
- )
+ (get_local $7)
(i32.const 24)
)
(i32.const 24)
)
(i32.const -48)
)
- (i32.const 3)
+ )
+ (i32.const 10)
+ )
+ (set_local $10
+ (i32.const 0)
+ )
+ (block
+ (set_local $7
+ (i32.const 0)
+ )
+ (br $label$break$L46
+ (get_local $5)
+ )
+ )
+ )
+ (loop $while-in$18
+ (set_local $7
+ (i32.add
+ (i32.mul
+ (get_local $10)
+ (i32.const 10)
+ )
+ (get_local $7)
+ )
+ )
+ (if
+ (i32.lt_u
+ (tee_local $9
+ (i32.add
+ (i32.load8_s
+ (tee_local $5
+ (i32.add
+ (get_local $5)
+ (i32.const 1)
+ )
+ )
+ )
+ (i32.const -48)
+ )
+ )
+ (i32.const 10)
+ )
+ (block
+ (set_local $10
+ (get_local $7)
+ )
+ (set_local $7
+ (get_local $9)
+ )
+ (br $while-in$18)
+ )
+ (br $label$break$L46
+ (get_local $5)
)
)
)
)
- (set_local $10
- (get_local $1)
+ )
+ (if
+ (i32.lt_u
+ (tee_local $5
+ (i32.add
+ (i32.load8_s
+ (tee_local $9
+ (i32.add
+ (get_local $10)
+ (i32.const 2)
+ )
+ )
+ )
+ (i32.const -48)
+ )
+ )
+ (i32.const 10)
)
- (br $label$break$L46
- (i32.add
- (get_local $9)
- (i32.const 4)
+ (if
+ (i32.eq
+ (i32.load8_s offset=3
+ (get_local $10)
+ )
+ (i32.const 36)
+ )
+ (block
+ (i32.store
+ (i32.add
+ (get_local $4)
+ (i32.shl
+ (get_local $5)
+ (i32.const 2)
+ )
+ )
+ (i32.const 10)
+ )
+ (set_local $5
+ (i32.add
+ (get_local $3)
+ (i32.shl
+ (i32.add
+ (i32.load8_s
+ (get_local $9)
+ )
+ (i32.const -48)
+ )
+ (i32.const 3)
+ )
+ )
+ )
+ (set_local $7
+ (i32.load
+ (get_local $5)
+ )
+ )
+ (br $label$break$L46
+ (i32.add
+ (get_local $10)
+ (i32.const 4)
+ )
+ )
)
)
)
- )
- )
- (if
- (i32.ne
- (get_local $21)
- (i32.const 0)
+ (if
+ (get_local $13)
+ (block
+ (set_local $15
+ (i32.const -1)
+ )
+ (br $label$break$L1)
+ )
+ )
+ (if
+ (get_local $33)
+ (block
+ (set_local $7
+ (i32.load
+ (tee_local $5
+ (i32.and
+ (i32.add
+ (i32.load
+ (get_local $2)
+ )
+ (i32.const 3)
+ )
+ (i32.const -4)
+ )
+ )
+ )
+ )
+ (i32.store
+ (get_local $2)
+ (i32.add
+ (get_local $5)
+ (i32.const 4)
+ )
+ )
+ (get_local $9)
+ )
+ (block
+ (set_local $7
+ (i32.const 0)
+ )
+ (get_local $9)
+ )
+ )
)
(block
- (set_local $24
+ (set_local $7
(i32.const -1)
)
- (br $label$break$L1)
+ (get_local $10)
)
)
- (if
- (get_local $44)
- (block
- (set_local $5
- (i32.load
- (tee_local $1
- (i32.and
- (i32.add
- (i32.load
- (get_local $2)
- )
- (i32.const 3)
- )
- (i32.const -4)
- )
- )
- )
- )
- (i32.store
- (get_local $2)
- (i32.add
- (get_local $1)
- (i32.const 4)
- )
- )
- (set_local $10
- (get_local $5)
- )
- (get_local $6)
- )
- (block
- (set_local $10
- (i32.const 0)
- )
- (get_local $6)
- )
- )
- )
- (block
- (set_local $10
- (i32.const -1)
- )
- (get_local $9)
)
)
- )
- )
- (set_local $13
- (i32.const 0)
- )
- (loop $while-in$20
- (block $while-out$19
- (if
- (i32.gt_u
- (tee_local $1
- (i32.add
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (get_local $11)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const -65)
- )
- )
- (i32.const 57)
- )
- (block
- (set_local $24
- (i32.const -1)
- )
- (br $label$break$L1)
- )
+ (set_local $11
+ (i32.const 0)
)
- (set_local $9
- (i32.add
- (get_local $11)
- (i32.const 1)
- )
- )
- (if
- (i32.lt_u
- (i32.add
+ (loop $while-in$20
+ (if
+ (i32.gt_u
(tee_local $5
- (i32.and
- (tee_local $1
- (i32.load8_s
- (i32.add
- (i32.add
- (i32.const 3611)
- (i32.mul
- (get_local $13)
- (i32.const 58)
- )
- )
- (get_local $1)
- )
- )
- )
- (i32.const 255)
- )
- )
- (i32.const -1)
- )
- (i32.const 8)
- )
- (block
- (set_local $11
- (get_local $9)
- )
- (set_local $13
- (get_local $5)
- )
- )
- (block
- (set_local $6
- (get_local $5)
- )
- (br $while-out$19)
- )
- )
- (br $while-in$20)
- )
- )
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (get_local $1)
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 0)
- )
- (block
- (set_local $24
- (i32.const -1)
- )
- (br $label$break$L1)
- )
- )
- (set_local $5
- (i32.gt_s
- (get_local $7)
- (i32.const -1)
- )
- )
- (block $do-once$21
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (get_local $1)
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 19)
- )
- (if
- (get_local $5)
- (block
- (set_local $24
- (i32.const -1)
- )
- (br $label$break$L1)
- )
- (set_local $12
- (i32.const 52)
- )
- )
- (block
- (if
- (get_local $5)
- (block
- (i32.store
(i32.add
- (get_local $4)
- (i32.shl
- (get_local $7)
- (i32.const 2)
+ (i32.load8_s
+ (get_local $9)
)
- )
- (get_local $6)
- )
- (set_local $5
- (i32.load
- (tee_local $1
- (i32.add
- (get_local $3)
- (i32.shl
- (get_local $7)
- (i32.const 3)
- )
- )
- )
+ (i32.const -65)
)
)
- (set_local $1
- (i32.load offset=4
- (get_local $1)
- )
- )
- (i32.store
- (tee_local $7
- (get_local $19)
- )
- (get_local $5)
- )
- (i32.store offset=4
- (get_local $7)
- (get_local $1)
- )
- (set_local $12
- (i32.const 52)
- )
- (br $do-once$21)
- )
- )
- (if
- (i32.eqz
- (get_local $44)
+ (i32.const 57)
)
(block
- (set_local $24
- (i32.const 0)
+ (set_local $15
+ (i32.const -1)
)
(br $label$break$L1)
)
)
- (call $_pop_arg_336
- (get_local $19)
- (get_local $6)
- (get_local $2)
+ (set_local $10
+ (i32.add
+ (get_local $9)
+ (i32.const 1)
+ )
)
- )
- )
- )
- (if
- (i32.eq
- (get_local $12)
- (i32.const 52)
- )
- (block
- (set_local $12
- (i32.const 0)
+ (if
+ (i32.lt_u
+ (i32.add
+ (tee_local $5
+ (i32.and
+ (tee_local $12
+ (i32.load8_s
+ (i32.add
+ (i32.add
+ (i32.const 3611)
+ (i32.mul
+ (get_local $11)
+ (i32.const 58)
+ )
+ )
+ (get_local $5)
+ )
+ )
+ )
+ (i32.const 255)
+ )
+ )
+ (i32.const -1)
+ )
+ (i32.const 8)
+ )
+ (block
+ (set_local $9
+ (get_local $10)
+ )
+ (set_local $11
+ (get_local $5)
+ )
+ (br $while-in$20)
+ )
+ (block
+ (set_local $16
+ (get_local $5)
+ )
+ (set_local $5
+ (get_local $10)
+ )
+ (set_local $19
+ (get_local $9)
+ )
+ )
+ )
)
(if
(i32.eqz
- (get_local $44)
+ (i32.shr_s
+ (i32.shl
+ (get_local $12)
+ (i32.const 24)
+ )
+ (i32.const 24)
+ )
)
(block
- (set_local $20
- (get_local $9)
+ (set_local $15
+ (i32.const -1)
)
- (set_local $1
- (get_local $17)
- )
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
+ (br $label$break$L1)
)
)
- )
- )
- (set_local $5
- (i32.and
- (i32.ne
- (get_local $13)
- (i32.const 0)
+ (set_local $10
+ (i32.gt_s
+ (get_local $21)
+ (i32.const -1)
+ )
)
- (i32.eq
- (i32.and
- (tee_local $1
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (get_local $11)
+ (block $jumpthreading$outer$1
+ (block $jumpthreading$inner$1
+ (if
+ (i32.eq
+ (i32.shr_s
+ (i32.shl
+ (get_local $12)
+ (i32.const 24)
)
(i32.const 24)
)
- (i32.const 24)
+ (i32.const 19)
+ )
+ (if
+ (get_local $10)
+ (block
+ (set_local $15
+ (i32.const -1)
+ )
+ (br $label$break$L1)
+ )
+ (br $jumpthreading$inner$1)
+ )
+ (block
+ (if
+ (get_local $10)
+ (block
+ (i32.store
+ (i32.add
+ (get_local $4)
+ (i32.shl
+ (get_local $21)
+ (i32.const 2)
+ )
+ )
+ (get_local $16)
+ )
+ (set_local $12
+ (i32.load offset=4
+ (tee_local $9
+ (i32.add
+ (get_local $3)
+ (i32.shl
+ (get_local $21)
+ (i32.const 3)
+ )
+ )
+ )
+ )
+ )
+ (i32.store
+ (tee_local $10
+ (get_local $18)
+ )
+ (i32.load
+ (get_local $9)
+ )
+ )
+ (i32.store offset=4
+ (get_local $10)
+ (get_local $12)
+ )
+ (br $jumpthreading$inner$1)
+ )
+ )
+ (if
+ (i32.eqz
+ (get_local $33)
+ )
+ (block
+ (set_local $15
+ (i32.const 0)
+ )
+ (br $label$break$L1)
+ )
+ )
+ (call $_pop_arg_336
+ (get_local $18)
+ (get_local $16)
+ (get_local $2)
+ )
)
)
- (i32.const 15)
+ (br $jumpthreading$outer$1)
)
- (i32.const 3)
+ (set_local $28
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (get_local $33)
+ )
+ (block
+ (set_local $1
+ (get_local $5)
+ )
+ (set_local $5
+ (get_local $6)
+ )
+ (br $label$continue$L1)
+ )
+ )
)
- )
- )
- (set_local $18
- (select
- (get_local $8)
- (tee_local $7
- (i32.and
+ (set_local $10
+ (select
+ (tee_local $9
+ (i32.and
+ (get_local $8)
+ (i32.const -65537)
+ )
+ )
(get_local $8)
- (i32.const -65537)
+ (i32.and
+ (get_local $8)
+ (i32.const 8192)
+ )
)
)
- (i32.eq
- (i32.and
- (get_local $8)
- (i32.const 8192)
- )
- (i32.const 0)
- )
- )
- )
- (block $switch$24
- (block $switch-default$127
- (block $switch-case$49
- (block $switch-case$48
- (block $switch-case$47
- (block $switch-case$46
- (block $switch-case$45
- (block $switch-case$44
- (block $switch-case$43
- (block $switch-case$41
- (block $switch-case$40
- (block $switch-case$36
- (block $switch-case$35
- (block $switch-case$34
- (br_table $switch-case$49 $switch-default$127 $switch-case$47 $switch-default$127 $switch-case$49 $switch-case$49 $switch-case$49 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$48 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$36 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$49 $switch-default$127 $switch-case$44 $switch-case$41 $switch-case$49 $switch-case$49 $switch-case$49 $switch-default$127 $switch-case$41 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$45 $switch-case$34 $switch-case$40 $switch-case$35 $switch-default$127 $switch-default$127 $switch-case$46 $switch-default$127 $switch-case$43 $switch-default$127 $switch-default$127 $switch-case$36 $switch-default$127
- (i32.sub
- (tee_local $26
- (select
- (i32.and
- (get_local $1)
- (i32.const -33)
- )
- (get_local $1)
- (get_local $5)
- )
- )
- (i32.const 65)
- )
- )
- )
- (block $switch-default$33
- (block $switch-case$32
- (block $switch-case$31
- (block $switch-case$30
- (block $switch-case$29
- (block $switch-case$28
- (block $switch-case$27
- (block $switch-case$26
- (br_table $switch-case$26 $switch-case$27 $switch-case$28 $switch-case$29 $switch-case$30 $switch-default$33 $switch-case$31 $switch-case$32 $switch-default$33
- (i32.sub
- (get_local $13)
- (i32.const 0)
+ (block $jumpthreading$outer$7
+ (block $jumpthreading$inner$7
+ (block $jumpthreading$inner$6
+ (block $jumpthreading$inner$5
+ (block $jumpthreading$inner$4
+ (block $jumpthreading$inner$3
+ (block $jumpthreading$inner$2
+ (block $switch-default$127
+ (block $switch-case$49
+ (block $switch-case$48
+ (block $switch-case$47
+ (block $switch-case$46
+ (block $switch-case$45
+ (block $switch-case$44
+ (block $switch-case$43
+ (block $switch-case$41
+ (block $switch-case$40
+ (block $switch-case$36
+ (block $switch-case$35
+ (block $switch-case$34
+ (br_table $switch-case$49 $switch-default$127 $switch-case$47 $switch-default$127 $switch-case$49 $switch-case$49 $switch-case$49 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$48 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$36 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$49 $switch-default$127 $switch-case$44 $switch-case$41 $switch-case$49 $switch-case$49 $switch-case$49 $switch-default$127 $switch-case$41 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$45 $switch-case$34 $switch-case$40 $switch-case$35 $switch-default$127 $switch-default$127 $switch-case$46 $switch-default$127 $switch-case$43 $switch-default$127 $switch-default$127 $switch-case$36 $switch-default$127
+ (i32.sub
+ (tee_local $16
+ (select
+ (i32.and
+ (tee_local $8
+ (i32.load8_s
+ (get_local $19)
+ )
+ )
+ (i32.const -33)
+ )
+ (get_local $8)
+ (i32.and
+ (i32.ne
+ (get_local $11)
+ (i32.const 0)
+ )
+ (i32.eq
+ (i32.and
+ (get_local $8)
+ (i32.const 15)
+ )
+ (i32.const 3)
+ )
+ )
+ )
+ )
+ (i32.const 65)
+ )
+ )
+ )
+ (block $switch-default$33
+ (block $switch-case$32
+ (block $switch-case$31
+ (block $switch-case$30
+ (block $switch-case$29
+ (block $switch-case$28
+ (block $switch-case$27
+ (block $switch-case$26
+ (br_table $switch-case$26 $switch-case$27 $switch-case$28 $switch-case$29 $switch-case$30 $switch-default$33 $switch-case$31 $switch-case$32 $switch-default$33
+ (i32.sub
+ (get_local $11)
+ (i32.const 0)
+ )
+ )
+ )
+ (i32.store
+ (i32.load
+ (get_local $18)
+ )
+ (get_local $15)
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (set_local $5
+ (get_local $6)
+ )
+ (br $label$continue$L1)
+ )
+ (i32.store
+ (i32.load
+ (get_local $18)
+ )
+ (get_local $15)
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (set_local $5
+ (get_local $6)
+ )
+ (br $label$continue$L1)
+ )
+ (i32.store
+ (tee_local $1
+ (i32.load
+ (get_local $18)
+ )
+ )
+ (get_local $15)
+ )
+ (i32.store offset=4
+ (get_local $1)
+ (i32.shr_s
+ (i32.shl
+ (i32.lt_s
+ (get_local $15)
+ (i32.const 0)
+ )
+ (i32.const 31)
+ )
+ (i32.const 31)
+ )
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (set_local $5
+ (get_local $6)
+ )
+ (br $label$continue$L1)
+ )
+ (i32.store16
+ (i32.load
+ (get_local $18)
+ )
+ (i32.and
+ (get_local $15)
+ (i32.const 65535)
+ )
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (set_local $5
+ (get_local $6)
+ )
+ (br $label$continue$L1)
+ )
+ (i32.store8
+ (i32.load
+ (get_local $18)
+ )
+ (i32.and
+ (get_local $15)
+ (i32.const 255)
+ )
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (set_local $5
+ (get_local $6)
+ )
+ (br $label$continue$L1)
+ )
+ (i32.store
+ (i32.load
+ (get_local $18)
+ )
+ (get_local $15)
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (set_local $5
+ (get_local $6)
+ )
+ (br $label$continue$L1)
+ )
+ (i32.store
+ (tee_local $1
+ (i32.load
+ (get_local $18)
+ )
+ )
+ (get_local $15)
+ )
+ (i32.store offset=4
+ (get_local $1)
+ (i32.shr_s
+ (i32.shl
+ (i32.lt_s
+ (get_local $15)
+ (i32.const 0)
+ )
+ (i32.const 31)
+ )
+ (i32.const 31)
+ )
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (set_local $5
+ (get_local $6)
+ )
+ (br $label$continue$L1)
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (set_local $5
+ (get_local $6)
+ )
+ (br $label$continue$L1)
+ )
+ (set_local $1
+ (i32.or
+ (get_local $10)
+ (i32.const 8)
+ )
+ )
+ (set_local $7
+ (select
+ (get_local $7)
+ (i32.const 8)
+ (i32.gt_u
+ (get_local $7)
+ (i32.const 8)
)
)
)
- (i32.store
- (i32.load
- (get_local $19)
- )
- (get_local $22)
+ (set_local $16
+ (i32.const 120)
)
- (set_local $20
- (get_local $9)
- )
- (set_local $1
- (get_local $17)
- )
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
- )
- (i32.store
- (i32.load
- (get_local $19)
- )
- (get_local $22)
- )
- (set_local $20
- (get_local $9)
+ (br $jumpthreading$inner$2)
)
(set_local $1
- (get_local $17)
+ (get_local $10)
)
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
+ (br $jumpthreading$inner$2)
)
- (i32.store
- (tee_local $1
- (i32.load
- (get_local $19)
+ (if
+ (i32.and
+ (i32.eqz
+ (tee_local $6
+ (i32.load
+ (tee_local $1
+ (get_local $18)
+ )
+ )
+ )
+ )
+ (i32.eqz
+ (tee_local $8
+ (i32.load offset=4
+ (get_local $1)
+ )
+ )
)
)
- (get_local $22)
+ (set_local $8
+ (get_local $23)
+ )
+ (block
+ (set_local $1
+ (get_local $6)
+ )
+ (set_local $6
+ (get_local $8)
+ )
+ (set_local $8
+ (get_local $23)
+ )
+ (loop $while-in$39
+ (i32.store8
+ (tee_local $8
+ (i32.add
+ (get_local $8)
+ (i32.const -1)
+ )
+ )
+ (i32.and
+ (i32.or
+ (i32.and
+ (get_local $1)
+ (i32.const 7)
+ )
+ (i32.const 48)
+ )
+ (i32.const 255)
+ )
+ )
+ (br_if $while-in$39
+ (i32.eqz
+ (i32.and
+ (i32.eqz
+ (tee_local $1
+ (call $_bitshift64Lshr
+ (get_local $1)
+ (get_local $6)
+ (i32.const 3)
+ )
+ )
+ )
+ (i32.eqz
+ (tee_local $6
+ (get_global $tempRet0)
+ )
+ )
+ )
+ )
+ )
+ )
+ )
)
- (i32.store offset=4
- (get_local $1)
+ (if
+ (i32.and
+ (get_local $10)
+ (i32.const 8)
+ )
+ (block
+ (set_local $6
+ (get_local $8)
+ )
+ (set_local $1
+ (get_local $10)
+ )
+ (set_local $7
+ (select
+ (tee_local $10
+ (i32.add
+ (i32.sub
+ (get_local $45)
+ (get_local $8)
+ )
+ (i32.const 1)
+ )
+ )
+ (get_local $7)
+ (i32.lt_s
+ (get_local $7)
+ (get_local $10)
+ )
+ )
+ )
+ (set_local $8
+ (i32.const 0)
+ )
+ (set_local $9
+ (i32.const 4091)
+ )
+ (br $jumpthreading$inner$7)
+ )
+ (block
+ (set_local $6
+ (get_local $8)
+ )
+ (set_local $1
+ (get_local $10)
+ )
+ (set_local $8
+ (i32.const 0)
+ )
+ (set_local $9
+ (i32.const 4091)
+ )
+ (br $jumpthreading$inner$7)
+ )
+ )
+ )
+ (set_local $1
+ (i32.load
+ (tee_local $6
+ (get_local $18)
+ )
+ )
+ )
+ (if
+ (i32.lt_s
+ (tee_local $6
+ (i32.load offset=4
+ (get_local $6)
+ )
+ )
+ (i32.const 0)
+ )
+ (block
+ (i32.store
+ (tee_local $8
+ (get_local $18)
+ )
+ (tee_local $1
+ (call $_i64Subtract
+ (i32.const 0)
+ (i32.const 0)
+ (get_local $1)
+ (get_local $6)
+ )
+ )
+ )
+ (i32.store offset=4
+ (get_local $8)
+ (tee_local $6
+ (get_global $tempRet0)
+ )
+ )
+ (set_local $8
+ (i32.const 1)
+ )
+ (set_local $9
+ (i32.const 4091)
+ )
+ (br $jumpthreading$inner$3)
+ )
+ )
+ (if
+ (i32.and
+ (get_local $10)
+ (i32.const 2048)
+ )
+ (block
+ (set_local $8
+ (i32.const 1)
+ )
+ (set_local $9
+ (i32.const 4092)
+ )
+ (br $jumpthreading$inner$3)
+ )
+ (block
+ (set_local $8
+ (tee_local $9
+ (i32.and
+ (get_local $10)
+ (i32.const 1)
+ )
+ )
+ )
+ (set_local $9
+ (select
+ (i32.const 4093)
+ (i32.const 4091)
+ (get_local $9)
+ )
+ )
+ (br $jumpthreading$inner$3)
+ )
+ )
+ )
+ (set_local $1
+ (i32.load
+ (tee_local $6
+ (get_local $18)
+ )
+ )
+ )
+ (set_local $6
+ (i32.load offset=4
+ (get_local $6)
+ )
+ )
+ (set_local $8
+ (i32.const 0)
+ )
+ (set_local $9
+ (i32.const 4091)
+ )
+ (br $jumpthreading$inner$3)
+ )
+ (set_local $1
+ (get_local $18)
+ )
+ (i32.store8
+ (get_local $46)
+ (i32.and
+ (i32.load
+ (get_local $1)
+ )
+ (i32.const 255)
+ )
+ )
+ (set_local $6
+ (get_local $46)
+ )
+ (set_local $10
+ (get_local $9)
+ )
+ (set_local $11
+ (i32.const 1)
+ )
+ (set_local $8
+ (i32.const 0)
+ )
+ (set_local $9
+ (i32.const 4091)
+ )
+ (set_local $1
+ (get_local $23)
+ )
+ (br $jumpthreading$outer$7)
+ )
+ (set_local $1
+ (call $_strerror
+ (i32.load
+ (call $___errno_location)
+ )
+ )
+ )
+ (br $jumpthreading$inner$4)
+ )
+ (set_local $1
+ (select
+ (tee_local $1
+ (i32.load
+ (get_local $18)
+ )
+ )
+ (i32.const 4101)
+ (i32.ne
+ (get_local $1)
+ (i32.const 0)
+ )
+ )
+ )
+ (br $jumpthreading$inner$4)
+ )
+ (set_local $1
+ (get_local $18)
+ )
+ (i32.store
+ (get_local $47)
+ (i32.load
+ (get_local $1)
+ )
+ )
+ (i32.store
+ (get_local $50)
+ (i32.const 0)
+ )
+ (i32.store
+ (get_local $18)
+ (get_local $47)
+ )
+ (set_local $8
+ (i32.const -1)
+ )
+ (br $jumpthreading$inner$5)
+ )
+ (if
+ (get_local $7)
+ (block
+ (set_local $8
+ (get_local $7)
+ )
+ (br $jumpthreading$inner$5)
+ )
+ (block
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $17)
+ (i32.const 0)
+ (get_local $10)
+ )
+ (set_local $6
+ (i32.const 0)
+ )
+ (br $jumpthreading$inner$6)
+ )
+ )
+ )
+ (set_local $14
+ (f64.load
+ (get_local $18)
+ )
+ )
+ (i32.store
+ (get_local $20)
+ (i32.const 0)
+ )
+ (f64.store
+ (get_global $tempDoublePtr)
+ (get_local $14)
+ )
+ (set_local $36
+ (if
+ (i32.lt_s
+ (i32.load offset=4
+ (get_global $tempDoublePtr)
+ )
+ (i32.const 0)
+ )
+ (block
+ (set_local $30
+ (i32.const 1)
+ )
+ (set_local $14
+ (f64.neg
+ (get_local $14)
+ )
+ )
+ (i32.const 4108)
+ )
+ (if
+ (i32.and
+ (get_local $10)
+ (i32.const 2048)
+ )
+ (block
+ (set_local $30
+ (i32.const 1)
+ )
+ (i32.const 4111)
+ )
+ (block
+ (set_local $30
+ (tee_local $1
+ (i32.and
+ (get_local $10)
+ (i32.const 1)
+ )
+ )
+ )
+ (select
+ (i32.const 4114)
+ (i32.const 4109)
+ (get_local $1)
+ )
+ )
+ )
+ )
+ )
+ (f64.store
+ (get_global $tempDoublePtr)
+ (get_local $14)
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (set_local $5
+ (block $do-once$56
+ (if
+ (i32.or
+ (i32.lt_u
+ (tee_local $5
+ (i32.and
+ (i32.load offset=4
+ (get_global $tempDoublePtr)
+ )
+ (i32.const 2146435072)
+ )
+ )
+ (i32.const 2146435072)
+ )
+ (i32.and
+ (i32.eq
+ (get_local $5)
+ (i32.const 2146435072)
+ )
+ (i32.const 0)
+ )
+ )
+ (block
+ (if
+ (tee_local $5
+ (f64.ne
+ (tee_local $22
+ (f64.mul
+ (call $_frexpl
+ (get_local $14)
+ (get_local $20)
+ )
+ (f64.const 2)
+ )
+ )
+ (f64.const 0)
+ )
+ )
+ (i32.store
+ (get_local $20)
+ (i32.add
+ (i32.load
+ (get_local $20)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (if
+ (i32.eq
+ (tee_local $25
+ (i32.or
+ (get_local $16)
+ (i32.const 32)
+ )
+ )
+ (i32.const 97)
+ )
+ (block
+ (set_local $19
+ (select
+ (i32.add
+ (get_local $36)
+ (i32.const 9)
+ )
+ (get_local $36)
+ (tee_local $9
+ (i32.and
+ (get_local $16)
+ (i32.const 32)
+ )
+ )
+ )
+ )
+ (set_local $8
+ (i32.or
+ (get_local $30)
+ (i32.const 2)
+ )
+ )
+ (set_local $14
+ (if
+ (i32.or
+ (i32.gt_u
+ (get_local $7)
+ (i32.const 11)
+ )
+ (i32.eqz
+ (tee_local $5
+ (i32.sub
+ (i32.const 12)
+ (get_local $7)
+ )
+ )
+ )
+ )
+ (get_local $22)
+ (block
+ (set_local $14
+ (f64.const 8)
+ )
+ (loop $while-in$61
+ (set_local $14
+ (f64.mul
+ (get_local $14)
+ (f64.const 16)
+ )
+ )
+ (br_if $while-in$61
+ (tee_local $5
+ (i32.add
+ (get_local $5)
+ (i32.const -1)
+ )
+ )
+ )
+ )
+ (select
+ (f64.neg
+ (f64.add
+ (get_local $14)
+ (f64.sub
+ (f64.neg
+ (get_local $22)
+ )
+ (get_local $14)
+ )
+ )
+ )
+ (f64.sub
+ (f64.add
+ (get_local $22)
+ (get_local $14)
+ )
+ (get_local $14)
+ )
+ (i32.eq
+ (i32.load8_s
+ (get_local $19)
+ )
+ (i32.const 45)
+ )
+ )
+ )
+ )
+ )
+ (i32.store8
+ (i32.add
+ (tee_local $6
+ (if
+ (i32.eq
+ (tee_local $6
+ (call $_fmt_u
+ (tee_local $6
+ (select
+ (i32.sub
+ (i32.const 0)
+ (tee_local $5
+ (i32.load
+ (get_local $20)
+ )
+ )
+ )
+ (get_local $5)
+ (i32.lt_s
+ (get_local $5)
+ (i32.const 0)
+ )
+ )
+ )
+ (i32.shr_s
+ (i32.shl
+ (i32.lt_s
+ (get_local $6)
+ (i32.const 0)
+ )
+ (i32.const 31)
+ )
+ (i32.const 31)
+ )
+ (get_local $37)
+ )
+ )
+ (get_local $37)
+ )
+ (block
+ (i32.store8
+ (get_local $48)
+ (i32.const 48)
+ )
+ (get_local $48)
+ )
+ (get_local $6)
+ )
+ )
+ (i32.const -1)
+ )
+ (i32.and
+ (i32.add
+ (i32.and
+ (i32.shr_s
+ (get_local $5)
+ (i32.const 31)
+ )
+ (i32.const 2)
+ )
+ (i32.const 43)
+ )
+ (i32.const 255)
+ )
+ )
+ (i32.store8
+ (tee_local $11
+ (i32.add
+ (get_local $6)
+ (i32.const -2)
+ )
+ )
+ (i32.and
+ (i32.add
+ (get_local $16)
+ (i32.const 15)
+ )
+ (i32.const 255)
+ )
+ )
+ (set_local $12
+ (i32.lt_s
+ (get_local $7)
+ (i32.const 1)
+ )
+ )
+ (set_local $16
+ (i32.eqz
+ (i32.and
+ (get_local $10)
+ (i32.const 8)
+ )
+ )
+ )
+ (set_local $5
+ (get_local $24)
+ )
+ (loop $while-in$63
+ (i32.store8
+ (get_local $5)
+ (i32.and
+ (i32.or
+ (i32.and
+ (i32.load8_s
+ (i32.add
+ (tee_local $6
+ (call_import $f64-to-int
+ (get_local $14)
+ )
+ )
+ (i32.const 4075)
+ )
+ )
+ (i32.const 255)
+ )
+ (get_local $9)
+ )
+ (i32.const 255)
+ )
+ )
+ (set_local $14
+ (f64.mul
+ (f64.sub
+ (get_local $14)
+ (f64.convert_s/i32
+ (get_local $6)
+ )
+ )
+ (f64.const 16)
+ )
+ )
+ (set_local $5
+ (block $do-once$64
+ (if
+ (i32.eq
+ (i32.sub
+ (tee_local $6
+ (i32.add
+ (get_local $5)
+ (i32.const 1)
+ )
+ )
+ (get_local $42)
+ )
+ (i32.const 1)
+ )
+ (block
+ (br_if $do-once$64
+ (get_local $6)
+ (i32.and
+ (get_local $16)
+ (i32.and
+ (get_local $12)
+ (f64.eq
+ (get_local $14)
+ (f64.const 0)
+ )
+ )
+ )
+ )
+ (i32.store8
+ (get_local $6)
+ (i32.const 46)
+ )
+ (i32.add
+ (get_local $5)
+ (i32.const 2)
+ )
+ )
+ (get_local $6)
+ )
+ )
+ )
+ (br_if $while-in$63
+ (f64.ne
+ (get_local $14)
+ (f64.const 0)
+ )
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $17)
+ (tee_local $6
+ (i32.add
+ (tee_local $7
+ (select
+ (i32.sub
+ (i32.add
+ (get_local $53)
+ (get_local $7)
+ )
+ (get_local $11)
+ )
+ (i32.add
+ (i32.sub
+ (get_local $51)
+ (get_local $11)
+ )
+ (get_local $5)
+ )
+ (i32.and
+ (i32.ne
+ (get_local $7)
+ (i32.const 0)
+ )
+ (i32.lt_s
+ (i32.add
+ (get_local $52)
+ (get_local $5)
+ )
+ (get_local $7)
+ )
+ )
+ )
+ )
+ (get_local $8)
+ )
+ )
+ (get_local $10)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $19)
+ (get_local $8)
+ (get_local $0)
+ )
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 48)
+ (get_local $17)
+ (get_local $6)
+ (i32.xor
+ (get_local $10)
+ (i32.const 65536)
+ )
+ )
+ (set_local $5
+ (i32.sub
+ (get_local $5)
+ (get_local $42)
+ )
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $24)
+ (get_local $5)
+ (get_local $0)
+ )
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 48)
+ (i32.sub
+ (get_local $7)
+ (i32.add
+ (get_local $5)
+ (tee_local $5
+ (i32.sub
+ (get_local $32)
+ (get_local $11)
+ )
+ )
+ )
+ )
+ (i32.const 0)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $11)
+ (get_local $5)
+ (get_local $0)
+ )
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $17)
+ (get_local $6)
+ (i32.xor
+ (get_local $10)
+ (i32.const 8192)
+ )
+ )
+ (br $do-once$56
+ (select
+ (get_local $17)
+ (get_local $6)
+ (i32.lt_s
+ (get_local $6)
+ (get_local $17)
+ )
+ )
+ )
+ )
+ )
+ (set_local $19
+ (select
+ (i32.const 6)
+ (get_local $7)
+ (i32.lt_s
+ (get_local $7)
+ (i32.const 0)
+ )
+ )
+ )
+ (set_local $40
+ (tee_local $8
+ (select
+ (get_local $54)
+ (get_local $55)
+ (i32.lt_s
+ (if
+ (get_local $5)
+ (block
+ (i32.store
+ (get_local $20)
+ (tee_local $5
+ (i32.add
+ (i32.load
+ (get_local $20)
+ )
+ (i32.const -28)
+ )
+ )
+ )
+ (set_local $14
+ (f64.mul
+ (get_local $22)
+ (f64.const 268435456)
+ )
+ )
+ (get_local $5)
+ )
+ (block
+ (set_local $14
+ (get_local $22)
+ )
+ (i32.load
+ (get_local $20)
+ )
+ )
+ )
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ (set_local $6
+ (get_local $8)
+ )
+ (loop $while-in$67
+ (i32.store
+ (get_local $6)
+ (tee_local $5
+ (call_import $f64-to-int
+ (get_local $14)
+ )
+ )
+ )
+ (set_local $6
+ (i32.add
+ (get_local $6)
+ (i32.const 4)
+ )
+ )
+ (br_if $while-in$67
+ (f64.ne
+ (tee_local $14
+ (f64.mul
+ (f64.sub
+ (get_local $14)
+ (f64.convert_u/i32
+ (get_local $5)
+ )
+ )
+ (f64.const 1e9)
+ )
+ )
+ (f64.const 0)
+ )
+ )
+ )
+ (if
+ (i32.gt_s
+ (tee_local $7
+ (i32.load
+ (get_local $20)
+ )
+ )
+ (i32.const 0)
+ )
+ (block
+ (set_local $9
+ (get_local $8)
+ )
+ (loop $while-in$69
+ (set_local $21
+ (select
+ (i32.const 29)
+ (get_local $7)
+ (i32.gt_s
+ (get_local $7)
+ (i32.const 29)
+ )
+ )
+ )
+ (set_local $9
+ (block $do-once$70
+ (if
+ (i32.lt_u
+ (tee_local $7
+ (i32.add
+ (get_local $6)
+ (i32.const -4)
+ )
+ )
+ (get_local $9)
+ )
+ (get_local $9)
+ (block
+ (set_local $5
+ (i32.const 0)
+ )
+ (loop $while-in$73
+ (set_local $12
+ (call $___uremdi3
+ (tee_local $5
+ (call $_i64Add
+ (call $_bitshift64Shl
+ (i32.load
+ (get_local $7)
+ )
+ (i32.const 0)
+ (get_local $21)
+ )
+ (get_global $tempRet0)
+ (get_local $5)
+ (i32.const 0)
+ )
+ )
+ (tee_local $11
+ (get_global $tempRet0)
+ )
+ (i32.const 1000000000)
+ (i32.const 0)
+ )
+ )
+ (i32.store
+ (get_local $7)
+ (get_local $12)
+ )
+ (set_local $5
+ (call $___udivdi3
+ (get_local $5)
+ (get_local $11)
+ (i32.const 1000000000)
+ (i32.const 0)
+ )
+ )
+ (br_if $while-in$73
+ (i32.ge_u
+ (tee_local $7
+ (i32.add
+ (get_local $7)
+ (i32.const -4)
+ )
+ )
+ (get_local $9)
+ )
+ )
+ )
+ (br_if $do-once$70
+ (get_local $9)
+ (i32.eqz
+ (get_local $5)
+ )
+ )
+ (i32.store
+ (tee_local $7
+ (i32.add
+ (get_local $9)
+ (i32.const -4)
+ )
+ )
+ (get_local $5)
+ )
+ (get_local $7)
+ )
+ )
+ )
+ )
+ (set_local $5
+ (get_local $6)
+ )
+ (loop $while-in$75
+ (block $while-out$74
+ (if
+ (i32.le_u
+ (get_local $5)
+ (get_local $9)
+ )
+ (block
+ (set_local $6
+ (get_local $5)
+ )
+ (br $while-out$74)
+ )
+ )
+ (if
+ (i32.load
+ (tee_local $6
+ (i32.add
+ (get_local $5)
+ (i32.const -4)
+ )
+ )
+ )
+ (set_local $6
+ (get_local $5)
+ )
+ (block
+ (set_local $5
+ (get_local $6)
+ )
+ (br $while-in$75)
+ )
+ )
+ )
+ )
+ (i32.store
+ (get_local $20)
+ (tee_local $7
+ (i32.sub
+ (i32.load
+ (get_local $20)
+ )
+ (get_local $21)
+ )
+ )
+ )
+ (br_if $while-in$69
+ (i32.gt_s
+ (get_local $7)
+ (i32.const 0)
+ )
+ )
+ (set_local $5
+ (get_local $9)
+ )
+ )
+ )
+ (set_local $5
+ (get_local $8)
+ )
+ )
+ (if
+ (i32.lt_s
+ (get_local $7)
+ (i32.const 0)
+ )
+ (block
+ (set_local $12
+ (i32.add
+ (i32.and
+ (call_import $i32s-div
+ (i32.add
+ (get_local $19)
+ (i32.const 25)
+ )
+ (i32.const 9)
+ )
+ (i32.const -1)
+ )
+ (i32.const 1)
+ )
+ )
+ (set_local $21
+ (i32.eq
+ (get_local $25)
+ (i32.const 102)
+ )
+ )
+ (loop $while-in$77
+ (set_local $26
+ (select
+ (i32.const 9)
+ (tee_local $7
+ (i32.sub
+ (i32.const 0)
+ (get_local $7)
+ )
+ )
+ (i32.gt_s
+ (get_local $7)
+ (i32.const 9)
+ )
+ )
+ )
+ (set_local $6
+ (select
+ (i32.add
+ (tee_local $7
+ (select
+ (get_local $8)
+ (tee_local $5
+ (block $do-once$78
+ (if
+ (i32.lt_u
+ (get_local $5)
+ (get_local $6)
+ )
+ (block
+ (set_local $44
+ (i32.add
+ (i32.shl
+ (i32.const 1)
+ (get_local $26)
+ )
+ (i32.const -1)
+ )
+ )
+ (set_local $31
+ (i32.shr_u
+ (i32.const 1000000000)
+ (get_local $26)
+ )
+ )
+ (set_local $9
+ (i32.const 0)
+ )
+ (set_local $7
+ (get_local $5)
+ )
+ (loop $while-in$81
+ (i32.store
+ (get_local $7)
+ (i32.add
+ (i32.shr_u
+ (tee_local $11
+ (i32.load
+ (get_local $7)
+ )
+ )
+ (get_local $26)
+ )
+ (get_local $9)
+ )
+ )
+ (set_local $9
+ (i32.mul
+ (i32.and
+ (get_local $11)
+ (get_local $44)
+ )
+ (get_local $31)
+ )
+ )
+ (br_if $while-in$81
+ (i32.lt_u
+ (tee_local $7
+ (i32.add
+ (get_local $7)
+ (i32.const 4)
+ )
+ )
+ (get_local $6)
+ )
+ )
+ )
+ (set_local $5
+ (select
+ (get_local $5)
+ (i32.add
+ (get_local $5)
+ (i32.const 4)
+ )
+ (i32.load
+ (get_local $5)
+ )
+ )
+ )
+ (br_if $do-once$78
+ (get_local $5)
+ (i32.eqz
+ (get_local $9)
+ )
+ )
+ (i32.store
+ (get_local $6)
+ (get_local $9)
+ )
+ (set_local $6
+ (i32.add
+ (get_local $6)
+ (i32.const 4)
+ )
+ )
+ (get_local $5)
+ )
+ (select
+ (get_local $5)
+ (i32.add
+ (get_local $5)
+ (i32.const 4)
+ )
+ (i32.load
+ (get_local $5)
+ )
+ )
+ )
+ )
+ )
+ (get_local $21)
+ )
+ )
+ (i32.shl
+ (get_local $12)
+ (i32.const 2)
+ )
+ )
+ (get_local $6)
+ (i32.gt_s
+ (i32.shr_s
+ (i32.sub
+ (get_local $6)
+ (get_local $7)
+ )
+ (i32.const 2)
+ )
+ (get_local $12)
+ )
+ )
+ )
+ (i32.store
+ (get_local $20)
+ (tee_local $7
+ (i32.add
+ (i32.load
+ (get_local $20)
+ )
+ (get_local $26)
+ )
+ )
+ )
+ (br_if $while-in$77
+ (i32.lt_s
+ (get_local $7)
+ (i32.const 0)
+ )
+ )
+ (set_local $9
+ (get_local $6)
+ )
+ )
+ )
+ (set_local $9
+ (get_local $6)
+ )
+ )
+ (block $do-once$82
+ (if
+ (i32.lt_u
+ (get_local $5)
+ (get_local $9)
+ )
+ (block
+ (set_local $6
+ (i32.mul
+ (i32.shr_s
+ (i32.sub
+ (get_local $40)
+ (get_local $5)
+ )
+ (i32.const 2)
+ )
+ (i32.const 9)
+ )
+ )
+ (br_if $do-once$82
+ (i32.lt_u
+ (tee_local $11
+ (i32.load
+ (get_local $5)
+ )
+ )
+ (i32.const 10)
+ )
+ )
+ (set_local $7
+ (i32.const 10)
+ )
+ (loop $while-in$85
+ (set_local $6
+ (i32.add
+ (get_local $6)
+ (i32.const 1)
+ )
+ )
+ (br_if $while-in$85
+ (i32.ge_u
+ (get_local $11)
+ (tee_local $7
+ (i32.mul
+ (get_local $7)
+ (i32.const 10)
+ )
+ )
+ )
+ )
+ )
+ )
+ (set_local $6
+ (i32.const 0)
+ )
+ )
+ )
+ (set_local $12
+ (if
+ (i32.lt_s
+ (tee_local $7
+ (i32.add
+ (i32.sub
+ (get_local $19)
+ (select
+ (get_local $6)
+ (i32.const 0)
+ (i32.ne
+ (get_local $25)
+ (i32.const 102)
+ )
+ )
+ )
(i32.shr_s
(i32.shl
- (i32.lt_s
- (get_local $22)
- (i32.const 0)
+ (i32.and
+ (tee_local $44
+ (i32.ne
+ (get_local $19)
+ (i32.const 0)
+ )
+ )
+ (tee_local $21
+ (i32.eq
+ (get_local $25)
+ (i32.const 103)
+ )
+ )
)
(i32.const 31)
)
(i32.const 31)
)
)
- (set_local $20
- (get_local $9)
- )
- (set_local $1
- (get_local $17)
- )
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
)
- (i32.store16
- (i32.load
- (get_local $19)
- )
- (i32.and
- (get_local $22)
- (i32.const 65535)
- )
- )
- (set_local $20
- (get_local $9)
- )
- (set_local $1
- (get_local $17)
- )
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
- )
- (i32.store8
- (i32.load
- (get_local $19)
- )
- (i32.and
- (get_local $22)
- (i32.const 255)
- )
- )
- (set_local $20
- (get_local $9)
- )
- (set_local $1
- (get_local $17)
- )
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
- )
- (i32.store
- (i32.load
- (get_local $19)
- )
- (get_local $22)
- )
- (set_local $20
- (get_local $9)
- )
- (set_local $1
- (get_local $17)
- )
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
- )
- (i32.store
- (tee_local $1
- (i32.load
- (get_local $19)
- )
- )
- (get_local $22)
- )
- (i32.store offset=4
- (get_local $1)
- (i32.shr_s
- (i32.shl
- (i32.lt_s
- (get_local $22)
- (i32.const 0)
- )
- (i32.const 31)
- )
- (i32.const 31)
- )
- )
- (set_local $20
- (get_local $9)
- )
- (set_local $1
- (get_local $17)
- )
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
- )
- (set_local $20
- (get_local $9)
- )
- (set_local $1
- (get_local $17)
- )
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
- )
- (set_local $46
- (i32.or
- (get_local $18)
- (i32.const 8)
- )
- )
- (set_local $57
- (select
- (get_local $10)
- (i32.const 8)
- (i32.gt_u
- (get_local $10)
- (i32.const 8)
- )
- )
- )
- (set_local $68
- (i32.const 120)
- )
- (set_local $12
- (i32.const 64)
- )
- (br $switch$24)
- )
- (set_local $46
- (get_local $18)
- )
- (set_local $57
- (get_local $10)
- )
- (set_local $68
- (get_local $26)
- )
- (set_local $12
- (i32.const 64)
- )
- (br $switch$24)
- )
- (if
- (i32.and
- (i32.eq
- (tee_local $5
- (i32.load
- (tee_local $1
- (get_local $19)
- )
- )
- )
- (i32.const 0)
- )
- (i32.eq
- (tee_local $1
- (i32.load offset=4
- (get_local $1)
- )
- )
- (i32.const 0)
- )
- )
- (set_local $6
- (get_local $28)
- )
- (block
- (set_local $6
- (get_local $28)
- )
- (loop $while-in$39
- (block $while-out$38
- (i32.store8
- (tee_local $6
- (i32.add
- (get_local $6)
- (i32.const -1)
- )
- )
- (i32.and
- (i32.or
- (i32.and
- (get_local $5)
- (i32.const 7)
- )
- (i32.const 48)
- )
- (i32.const 255)
- )
- )
- (br_if $while-out$38
- (i32.and
- (i32.eq
- (tee_local $5
- (call $_bitshift64Lshr
- (get_local $5)
- (get_local $1)
- (i32.const 3)
- )
- )
- (i32.const 0)
- )
- (i32.eq
- (tee_local $1
- (get_global $tempRet0)
- )
- (i32.const 0)
- )
- )
- )
- (br $while-in$39)
- )
- )
- )
- )
- (set_local $58
- (if
- (i32.eq
- (i32.and
- (get_local $18)
- (i32.const 8)
- )
- (i32.const 0)
- )
- (block
- (set_local $34
- (get_local $18)
- )
- (set_local $32
- (get_local $10)
- )
- (set_local $35
- (i32.const 0)
- )
- (set_local $36
- (i32.const 4091)
- )
- (set_local $12
- (i32.const 77)
- )
- (get_local $6)
- )
- (block
- (set_local $5
- (i32.lt_s
- (get_local $10)
- (tee_local $1
- (i32.add
- (i32.sub
- (get_local $71)
- (get_local $6)
- )
- (i32.const 1)
- )
- )
- )
- )
- (set_local $34
- (get_local $18)
- )
- (set_local $32
- (select
- (get_local $1)
- (get_local $10)
- (get_local $5)
- )
- )
- (set_local $35
- (i32.const 0)
- )
- (set_local $36
- (i32.const 4091)
- )
- (set_local $12
- (i32.const 77)
- )
- (get_local $6)
- )
- )
- )
- (br $switch$24)
- )
- (set_local $5
- (i32.load
- (tee_local $1
- (get_local $19)
- )
- )
- )
- (if
- (i32.lt_s
- (tee_local $33
- (i32.load offset=4
- (get_local $1)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $1
- (call $_i64Subtract
- (i32.const 0)
- (i32.const 0)
- (get_local $5)
- (get_local $33)
- )
- )
- (set_local $5
- (get_global $tempRet0)
- )
- (i32.store
- (tee_local $33
- (get_local $19)
- )
- (get_local $1)
- )
- (i32.store offset=4
- (get_local $33)
- (get_local $5)
- )
- (set_local $33
- (get_local $1)
- )
- (set_local $59
- (get_local $5)
- )
- (set_local $60
- (i32.const 1)
- )
- (set_local $61
- (i32.const 4091)
- )
- (set_local $12
- (i32.const 76)
- )
- (br $switch$24)
- )
- )
- (set_local $33
- (if
- (i32.eq
- (i32.and
- (get_local $18)
- (i32.const 2048)
- )
- (i32.const 0)
- )
- (block
- (set_local $1
- (select
- (i32.const 4091)
- (i32.const 4093)
- (i32.eq
- (tee_local $6
- (i32.and
- (get_local $18)
- (i32.const 1)
- )
- )
- (i32.const 0)
- )
- )
- )
- (set_local $59
- (get_local $33)
- )
- (set_local $60
- (get_local $6)
- )
- (set_local $61
- (get_local $1)
- )
- (set_local $12
- (i32.const 76)
- )
- (get_local $5)
- )
- (block
- (set_local $59
- (get_local $33)
- )
- (set_local $60
- (i32.const 1)
- )
- (set_local $61
- (i32.const 4092)
- )
- (set_local $12
- (i32.const 76)
- )
- (get_local $5)
- )
- )
- )
- (br $switch$24)
- )
- (set_local $33
- (i32.load
- (tee_local $1
- (get_local $19)
- )
- )
- )
- (set_local $59
- (i32.load offset=4
- (get_local $1)
- )
- )
- (set_local $60
- (i32.const 0)
- )
- (set_local $61
- (i32.const 4091)
- )
- (set_local $12
- (i32.const 76)
- )
- (br $switch$24)
- )
- (set_local $1
- (i32.load
- (get_local $19)
- )
- )
- (i32.store8
- (get_local $72)
- (i32.and
- (get_local $1)
- (i32.const 255)
- )
- )
- (set_local $47
- (get_local $72)
- )
- (set_local $37
- (get_local $7)
- )
- (set_local $42
- (i32.const 1)
- )
- (set_local $43
- (i32.const 0)
- )
- (set_local $48
- (i32.const 4091)
- )
- (set_local $49
- (get_local $28)
- )
- (br $switch$24)
- )
- (set_local $50
- (call $_strerror
- (i32.load
- (call $___errno_location)
- )
- )
- )
- (set_local $12
- (i32.const 82)
- )
- (br $switch$24)
- )
- (set_local $5
- (i32.ne
- (tee_local $1
- (i32.load
- (get_local $19)
- )
- )
- (i32.const 0)
- )
- )
- (set_local $50
- (select
- (get_local $1)
- (i32.const 4101)
- (get_local $5)
- )
- )
- (set_local $12
- (i32.const 82)
- )
- (br $switch$24)
- )
- (set_local $1
- (i32.load
- (get_local $19)
- )
- )
- (i32.store
- (get_local $73)
- (get_local $1)
- )
- (i32.store
- (get_local $76)
- (i32.const 0)
- )
- (i32.store
- (get_local $19)
- (get_local $73)
- )
- (set_local $69
- (i32.const -1)
- )
- (set_local $12
- (i32.const 86)
- )
- (br $switch$24)
- )
- (set_local $12
- (if
- (i32.eq
- (get_local $10)
- (i32.const 0)
- )
- (block
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (i32.const 0)
- (get_local $18)
- )
- (set_local $38
- (i32.const 0)
- )
- (i32.const 98)
- )
- (block
- (set_local $69
- (get_local $10)
- )
- (i32.const 86)
- )
- )
- )
- (br $switch$24)
- )
- (set_local $14
- (f64.load
- (get_local $19)
- )
- )
- (i32.store
- (get_local $25)
- (i32.const 0)
- )
- (f64.store
- (get_global $tempDoublePtr)
- (get_local $14)
- )
- (set_local $51
- (if
- (i32.lt_s
- (i32.load offset=4
- (get_global $tempDoublePtr)
- )
- (i32.const 0)
- )
- (block
- (set_local $39
- (i32.const 4108)
- )
- (set_local $14
- (f64.neg
- (get_local $14)
- )
- )
- (i32.const 1)
- )
- (if
- (i32.eq
- (i32.and
- (get_local $18)
- (i32.const 2048)
- )
- (i32.const 0)
- )
- (block
- (set_local $39
- (select
- (i32.const 4109)
- (i32.const 4114)
- (i32.eq
- (tee_local $1
- (i32.and
- (get_local $18)
- (i32.const 1)
- )
- )
- (i32.const 0)
- )
- )
- )
- (get_local $1)
- )
- (block
- (set_local $39
- (i32.const 4111)
- )
- (i32.const 1)
- )
- )
- )
- )
- (f64.store
- (get_global $tempDoublePtr)
- (get_local $14)
- )
- (set_local $20
- (get_local $9)
- )
- (set_local $1
- (block $do-once$56
- (if
- (i32.or
- (i32.lt_u
- (tee_local $1
- (i32.and
- (i32.load offset=4
- (get_global $tempDoublePtr)
- )
- (i32.const 2146435072)
- )
- )
- (i32.const 2146435072)
- )
- (i32.and
- (i32.eq
- (get_local $1)
- (i32.const 2146435072)
- )
- (i32.const 0)
- )
- )
- (block
- (if
- (tee_local $5
- (f64.ne
- (tee_local $14
- (f64.mul
- (call $_frexpl
- (get_local $14)
- (get_local $25)
- )
- (f64.const 2)
- )
- )
- (f64.const 0)
- )
- )
- (i32.store
- (get_local $25)
- (i32.add
- (i32.load
- (get_local $25)
- )
- (i32.const -1)
- )
- )
- )
- (if
- (i32.eq
- (tee_local $15
- (i32.or
- (get_local $26)
- (i32.const 32)
- )
- )
- (i32.const 97)
- )
- (block
- (set_local $9
- (select
- (get_local $39)
- (i32.add
- (get_local $39)
- (i32.const 9)
- )
- (i32.eq
- (tee_local $6
- (i32.and
- (get_local $26)
- (i32.const 32)
- )
- )
- (i32.const 0)
- )
- )
- )
- (set_local $7
- (i32.or
- (get_local $51)
- (i32.const 2)
- )
- )
- (set_local $14
- (if
- (i32.or
- (i32.gt_u
- (get_local $10)
- (i32.const 11)
- )
- (i32.eq
- (tee_local $1
- (i32.sub
- (i32.const 12)
- (get_local $10)
- )
- )
- (i32.const 0)
- )
- )
- (get_local $14)
- (block
- (set_local $30
- (f64.const 8)
- )
- (loop $while-in$61
- (block $while-out$60
- (set_local $30
- (f64.mul
- (get_local $30)
- (f64.const 16)
- )
- )
- (br_if $while-out$60
- (i32.eq
- (tee_local $1
- (i32.add
- (get_local $1)
- (i32.const -1)
- )
- )
- (i32.const 0)
- )
- )
- (br $while-in$61)
- )
- )
- (select
- (f64.neg
- (f64.add
- (get_local $30)
- (f64.sub
- (f64.neg
- (get_local $14)
- )
- (get_local $30)
- )
- )
- )
- (f64.sub
- (f64.add
- (get_local $14)
- (get_local $30)
- )
- (get_local $30)
- )
- (i32.eq
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (get_local $9)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 45)
- )
- )
- )
- )
- )
- (set_local $5
- (i32.lt_s
- (tee_local $1
- (i32.load
- (get_local $25)
- )
- )
- (i32.const 0)
- )
- )
- (set_local $5
- (i32.shr_s
- (i32.shl
- (i32.lt_s
- (tee_local $8
- (select
- (i32.sub
- (i32.const 0)
- (get_local $1)
- )
- (get_local $1)
- (get_local $5)
- )
- )
- (i32.const 0)
- )
- (i32.const 31)
- )
- (i32.const 31)
- )
- )
- (i32.store8
- (i32.add
- (tee_local $5
- (if
- (i32.eq
- (tee_local $5
- (call $_fmt_u
- (get_local $8)
- (get_local $5)
- (get_local $52)
- )
- )
- (get_local $52)
- )
- (block
- (i32.store8
- (get_local $74)
- (i32.const 48)
- )
- (get_local $74)
- )
- (get_local $5)
- )
- )
- (i32.const -1)
- )
- (i32.and
- (i32.add
- (i32.and
- (i32.shr_s
- (get_local $1)
- (i32.const 31)
- )
- (i32.const 2)
- )
- (i32.const 43)
- )
- (i32.const 255)
- )
- )
- (i32.store8
- (tee_local $8
- (i32.add
- (get_local $5)
- (i32.const -2)
- )
- )
- (i32.and
- (i32.add
- (get_local $26)
- (i32.const 15)
- )
- (i32.const 255)
- )
- )
- (set_local $5
- (i32.lt_s
- (get_local $10)
- (i32.const 1)
- )
- )
- (set_local $13
- (i32.eq
- (i32.and
- (get_local $18)
- (i32.const 8)
- )
- (i32.const 0)
- )
- )
- (set_local $11
- (get_local $29)
- )
- (loop $while-in$63
- (block $while-out$62
- (i32.store8
- (get_local $11)
- (i32.and
- (i32.or
- (i32.and
- (i32.load8_s
- (i32.add
- (tee_local $1
- (call_import $f64-to-int
- (get_local $14)
- )
- )
- (i32.const 4075)
- )
- )
- (i32.const 255)
- )
- (get_local $6)
- )
- (i32.const 255)
- )
- )
- (set_local $14
- (f64.mul
- (f64.sub
- (get_local $14)
- (f64.convert_s/i32
- (get_local $1)
- )
- )
- (f64.const 16)
- )
- )
- (set_local $11
- (block $do-once$64
- (if
- (i32.eq
- (i32.sub
- (tee_local $1
- (i32.add
- (get_local $11)
- (i32.const 1)
- )
- )
- (get_local $64)
- )
- (i32.const 1)
- )
- (block
- (br_if $do-once$64
- (get_local $1)
- (i32.and
- (get_local $13)
- (i32.and
- (get_local $5)
- (f64.eq
- (get_local $14)
- (f64.const 0)
- )
- )
- )
- )
- (i32.store8
- (get_local $1)
- (i32.const 46)
- )
- (i32.add
- (get_local $11)
- (i32.const 2)
- )
- )
- (get_local $1)
- )
- )
- )
- (if
- (f64.eq
- (get_local $14)
- (f64.const 0)
- )
- (block
- (set_local $1
- (get_local $11)
- )
- (br $while-out$62)
- )
- )
- (br $while-in$63)
- )
- )
- (set_local $5
- (i32.and
- (i32.ne
- (get_local $10)
- (i32.const 0)
- )
- (i32.lt_s
- (i32.add
- (get_local $78)
- (get_local $1)
- )
- (get_local $10)
- )
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (tee_local $5
- (i32.add
- (tee_local $6
- (select
- (i32.sub
- (i32.add
- (get_local $79)
- (get_local $10)
- )
- (get_local $8)
- )
- (i32.add
- (i32.sub
- (get_local $77)
- (get_local $8)
- )
- (get_local $1)
- )
- (get_local $5)
- )
- )
- (get_local $7)
- )
- )
- (get_local $18)
- )
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (call $___fwritex
- (get_local $9)
- (get_local $7)
- (get_local $0)
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 48)
- (get_local $16)
- (get_local $5)
- (i32.xor
- (get_local $18)
- (i32.const 65536)
- )
- )
- (set_local $1
- (i32.sub
- (get_local $1)
- (get_local $64)
- )
- )
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (call $___fwritex
- (get_local $29)
- (get_local $1)
- (get_local $0)
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 48)
- (i32.sub
- (get_local $6)
- (i32.add
- (get_local $1)
- (tee_local $1
- (i32.sub
- (get_local $40)
- (get_local $8)
- )
- )
- )
- )
- (i32.const 0)
- (i32.const 0)
- )
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (call $___fwritex
- (get_local $8)
- (get_local $1)
- (get_local $0)
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (get_local $5)
- (i32.xor
- (get_local $18)
- (i32.const 8192)
- )
- )
- (br $do-once$56
- (select
- (get_local $16)
- (get_local $5)
- (i32.lt_s
- (get_local $5)
- (get_local $16)
- )
- )
- )
- )
- )
- (set_local $1
- (select
- (i32.const 6)
- (get_local $10)
- (i32.lt_s
- (get_local $10)
- (i32.const 0)
- )
- )
- )
- (set_local $62
- (tee_local $9
- (select
- (get_local $80)
- (get_local $81)
- (i32.lt_s
- (if
- (get_local $5)
- (block
- (i32.store
- (get_local $25)
- (tee_local $5
- (i32.add
- (i32.load
- (get_local $25)
- )
- (i32.const -28)
- )
- )
- )
- (set_local $14
- (f64.mul
- (get_local $14)
- (f64.const 268435456)
- )
- )
- (get_local $5)
- )
- (i32.load
- (get_local $25)
- )
- )
- (i32.const 0)
- )
- )
- )
- )
- (set_local $7
- (get_local $9)
- )
- (loop $while-in$67
- (block $while-out$66
- (i32.store
- (get_local $7)
- (tee_local $5
- (call_import $f64-to-int
- (get_local $14)
- )
- )
- )
- (set_local $7
- (i32.add
- (get_local $7)
- (i32.const 4)
- )
- )
- (if
- (f64.eq
- (tee_local $14
- (f64.mul
- (f64.sub
- (get_local $14)
- (f64.convert_u/i32
- (get_local $5)
- )
- )
- (f64.const 1e9)
- )
- )
- (f64.const 0)
- )
- (block
- (set_local $6
- (get_local $7)
- )
- (br $while-out$66)
- )
- )
- (br $while-in$67)
- )
- )
- (if
- (i32.gt_s
- (tee_local $5
- (i32.load
- (get_local $25)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $8
- (get_local $9)
- )
- (set_local $13
- (get_local $6)
- )
- (loop $while-in$69
- (block $while-out$68
- (set_local $11
- (select
- (i32.const 29)
- (get_local $5)
- (i32.gt_s
- (get_local $5)
- (i32.const 29)
- )
- )
- )
- (set_local $7
- (block $do-once$70
- (if
- (i32.lt_u
- (tee_local $7
- (i32.add
- (get_local $13)
- (i32.const -4)
- )
- )
- (get_local $8)
- )
- (get_local $8)
- (block
- (set_local $5
- (i32.const 0)
- )
- (set_local $10
- (get_local $7)
- )
- (loop $while-in$73
- (block $while-out$72
- (set_local $6
- (call $___uremdi3
- (tee_local $5
- (call $_i64Add
- (call $_bitshift64Shl
- (i32.load
- (get_local $10)
- )
- (i32.const 0)
- (get_local $11)
+ (i32.add
+ (i32.mul
+ (i32.shr_s
+ (i32.sub
+ (get_local $9)
+ (get_local $40)
)
- (get_global $tempRet0)
- (get_local $5)
- (i32.const 0)
+ (i32.const 2)
+ )
+ (i32.const 9)
+ )
+ (i32.const -9)
+ )
+ )
+ (block
+ (set_local $7
+ (i32.add
+ (i32.add
+ (get_local $8)
+ (i32.const 4)
+ )
+ (i32.shl
+ (i32.add
+ (i32.and
+ (call_import $i32s-div
+ (tee_local $11
+ (i32.add
+ (get_local $7)
+ (i32.const 9216)
+ )
+ )
+ (i32.const 9)
+ )
+ (i32.const -1)
+ )
+ (i32.const -1024)
+ )
+ (i32.const 2)
)
)
- (tee_local $7
- (get_global $tempRet0)
- )
- (i32.const 1000000000)
- (i32.const 0)
)
+ (if
+ (i32.lt_s
+ (tee_local $11
+ (i32.add
+ (i32.and
+ (call_import $i32s-rem
+ (get_local $11)
+ (i32.const 9)
+ )
+ (i32.const -1)
+ )
+ (i32.const 1)
+ )
+ )
+ (i32.const 9)
+ )
+ (block
+ (set_local $12
+ (i32.const 10)
+ )
+ (loop $while-in$87
+ (set_local $12
+ (i32.mul
+ (get_local $12)
+ (i32.const 10)
+ )
+ )
+ (br_if $while-in$87
+ (i32.ne
+ (tee_local $11
+ (i32.add
+ (get_local $11)
+ (i32.const 1)
+ )
+ )
+ (i32.const 9)
+ )
+ )
+ )
+ )
+ (set_local $12
+ (i32.const 10)
+ )
+ )
+ (block $do-once$88
+ (if
+ (i32.eqz
+ (i32.and
+ (tee_local $26
+ (i32.eq
+ (i32.add
+ (get_local $7)
+ (i32.const 4)
+ )
+ (get_local $9)
+ )
+ )
+ (i32.eqz
+ (tee_local $31
+ (i32.and
+ (call_import $i32u-rem
+ (tee_local $11
+ (i32.load
+ (get_local $7)
+ )
+ )
+ (get_local $12)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ )
+ )
+ (block
+ (set_local $22
+ (select
+ (f64.const 9007199254740994)
+ (f64.const 9007199254740992)
+ (i32.and
+ (i32.and
+ (call_import $i32u-div
+ (get_local $11)
+ (get_local $12)
+ )
+ (i32.const -1)
+ )
+ (i32.const 1)
+ )
+ )
+ )
+ (set_local $14
+ (if
+ (i32.lt_u
+ (get_local $31)
+ (tee_local $25
+ (i32.and
+ (call_import $i32s-div
+ (get_local $12)
+ (i32.const 2)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (f64.const 0.5)
+ (select
+ (f64.const 1)
+ (f64.const 1.5)
+ (i32.and
+ (get_local $26)
+ (i32.eq
+ (get_local $31)
+ (get_local $25)
+ )
+ )
+ )
+ )
+ )
+ (set_local $22
+ (block $do-once$90
+ (if
+ (get_local $30)
+ (block
+ (br_if $do-once$90
+ (get_local $22)
+ (i32.ne
+ (i32.load8_s
+ (get_local $36)
+ )
+ (i32.const 45)
+ )
+ )
+ (set_local $14
+ (f64.neg
+ (get_local $14)
+ )
+ )
+ (f64.neg
+ (get_local $22)
+ )
+ )
+ (get_local $22)
+ )
+ )
+ )
+ (i32.store
+ (get_local $7)
+ (tee_local $11
+ (i32.sub
+ (get_local $11)
+ (get_local $31)
+ )
+ )
+ )
+ (br_if $do-once$88
+ (f64.eq
+ (f64.add
+ (get_local $22)
+ (get_local $14)
+ )
+ (get_local $22)
+ )
+ )
+ (i32.store
+ (get_local $7)
+ (tee_local $6
+ (i32.add
+ (get_local $11)
+ (get_local $12)
+ )
+ )
+ )
+ (if
+ (i32.gt_u
+ (get_local $6)
+ (i32.const 999999999)
+ )
+ (loop $while-in$93
+ (i32.store
+ (get_local $7)
+ (i32.const 0)
+ )
+ (set_local $5
+ (if
+ (i32.lt_u
+ (tee_local $7
+ (i32.add
+ (get_local $7)
+ (i32.const -4)
+ )
+ )
+ (get_local $5)
+ )
+ (block
+ (i32.store
+ (tee_local $5
+ (i32.add
+ (get_local $5)
+ (i32.const -4)
+ )
+ )
+ (i32.const 0)
+ )
+ (get_local $5)
+ )
+ (get_local $5)
+ )
+ )
+ (i32.store
+ (get_local $7)
+ (tee_local $6
+ (i32.add
+ (i32.load
+ (get_local $7)
+ )
+ (i32.const 1)
+ )
+ )
+ )
+ (br_if $while-in$93
+ (i32.gt_u
+ (get_local $6)
+ (i32.const 999999999)
+ )
+ )
+ )
+ )
+ (set_local $6
+ (i32.mul
+ (i32.shr_s
+ (i32.sub
+ (get_local $40)
+ (get_local $5)
+ )
+ (i32.const 2)
+ )
+ (i32.const 9)
+ )
+ )
+ (br_if $do-once$88
+ (i32.lt_u
+ (tee_local $12
+ (i32.load
+ (get_local $5)
+ )
+ )
+ (i32.const 10)
+ )
+ )
+ (set_local $11
+ (i32.const 10)
+ )
+ (loop $while-in$95
+ (set_local $6
+ (i32.add
+ (get_local $6)
+ (i32.const 1)
+ )
+ )
+ (br_if $while-in$95
+ (i32.ge_u
+ (get_local $12)
+ (tee_local $11
+ (i32.mul
+ (get_local $11)
+ (i32.const 10)
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ (set_local $11
+ (get_local $6)
+ )
+ (set_local $9
+ (select
+ (tee_local $6
+ (i32.add
+ (get_local $7)
+ (i32.const 4)
+ )
+ )
+ (get_local $9)
+ (i32.gt_u
+ (get_local $9)
+ (get_local $6)
+ )
+ )
+ )
+ (get_local $5)
)
- (i32.store
- (get_local $10)
- (get_local $6)
+ (block
+ (set_local $11
+ (get_local $6)
+ )
+ (get_local $5)
)
- (set_local $5
- (call $___udivdi3
+ )
+ )
+ (set_local $25
+ (i32.sub
+ (i32.const 0)
+ (get_local $11)
+ )
+ )
+ (set_local $5
+ (get_local $9)
+ )
+ (loop $while-in$97
+ (block $while-out$96
+ (if
+ (i32.le_u
(get_local $5)
- (get_local $7)
- (i32.const 1000000000)
- (i32.const 0)
+ (get_local $12)
+ )
+ (block
+ (set_local $26
+ (i32.const 0)
+ )
+ (set_local $9
+ (get_local $5)
+ )
+ (br $while-out$96)
)
)
(if
- (i32.lt_u
- (tee_local $7
+ (i32.load
+ (tee_local $6
(i32.add
- (get_local $10)
+ (get_local $5)
(i32.const -4)
)
)
- (get_local $8)
)
- (br $while-out$72)
- (set_local $10
- (get_local $7)
+ (block
+ (set_local $26
+ (i32.const 1)
+ )
+ (set_local $9
+ (get_local $5)
+ )
+ )
+ (block
+ (set_local $5
+ (get_local $6)
+ )
+ (br $while-in$97)
)
)
- (br $while-in$73)
)
)
- (br_if $do-once$70
- (get_local $8)
- (i32.eq
- (get_local $5)
+ (set_local $19
+ (block $do-once$98
+ (if
+ (get_local $21)
+ (block
+ (set_local $16
+ (if
+ (i32.and
+ (i32.gt_s
+ (tee_local $5
+ (i32.add
+ (i32.xor
+ (i32.and
+ (get_local $44)
+ (i32.const 1)
+ )
+ (i32.const 1)
+ )
+ (get_local $19)
+ )
+ )
+ (get_local $11)
+ )
+ (i32.gt_s
+ (get_local $11)
+ (i32.const -5)
+ )
+ )
+ (block
+ (set_local $6
+ (i32.add
+ (get_local $16)
+ (i32.const -1)
+ )
+ )
+ (i32.sub
+ (i32.add
+ (get_local $5)
+ (i32.const -1)
+ )
+ (get_local $11)
+ )
+ )
+ (block
+ (set_local $6
+ (i32.add
+ (get_local $16)
+ (i32.const -2)
+ )
+ )
+ (i32.add
+ (get_local $5)
+ (i32.const -1)
+ )
+ )
+ )
+ )
+ (if
+ (tee_local $7
+ (i32.and
+ (get_local $10)
+ (i32.const 8)
+ )
+ )
+ (block
+ (set_local $5
+ (get_local $16)
+ )
+ (br $do-once$98
+ (get_local $7)
+ )
+ )
+ )
+ (block $do-once$100
+ (if
+ (get_local $26)
+ (block
+ (if
+ (i32.eqz
+ (tee_local $19
+ (i32.load
+ (i32.add
+ (get_local $9)
+ (i32.const -4)
+ )
+ )
+ )
+ )
+ (block
+ (set_local $5
+ (i32.const 9)
+ )
+ (br $do-once$100)
+ )
+ )
+ (if
+ (i32.and
+ (call_import $i32u-rem
+ (get_local $19)
+ (i32.const 10)
+ )
+ (i32.const -1)
+ )
+ (block
+ (set_local $5
+ (i32.const 0)
+ )
+ (br $do-once$100)
+ )
+ (block
+ (set_local $7
+ (i32.const 10)
+ )
+ (set_local $5
+ (i32.const 0)
+ )
+ )
+ )
+ (loop $while-in$103
+ (set_local $5
+ (i32.add
+ (get_local $5)
+ (i32.const 1)
+ )
+ )
+ (br_if $while-in$103
+ (i32.eqz
+ (i32.and
+ (call_import $i32u-rem
+ (get_local $19)
+ (tee_local $7
+ (i32.mul
+ (get_local $7)
+ (i32.const 10)
+ )
+ )
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ )
+ )
+ (set_local $5
+ (i32.const 9)
+ )
+ )
+ )
+ (set_local $7
+ (i32.add
+ (i32.mul
+ (i32.shr_s
+ (i32.sub
+ (get_local $9)
+ (get_local $40)
+ )
+ (i32.const 2)
+ )
+ (i32.const 9)
+ )
+ (i32.const -9)
+ )
+ )
+ (if
+ (i32.eq
+ (i32.or
+ (get_local $6)
+ (i32.const 32)
+ )
+ (i32.const 102)
+ )
+ (block
+ (set_local $5
+ (select
+ (get_local $16)
+ (tee_local $5
+ (select
+ (i32.const 0)
+ (tee_local $5
+ (i32.sub
+ (get_local $7)
+ (get_local $5)
+ )
+ )
+ (i32.lt_s
+ (get_local $5)
+ (i32.const 0)
+ )
+ )
+ )
+ (i32.lt_s
+ (get_local $16)
+ (get_local $5)
+ )
+ )
+ )
+ (i32.const 0)
+ )
+ (block
+ (set_local $5
+ (select
+ (get_local $16)
+ (tee_local $5
+ (select
+ (i32.const 0)
+ (tee_local $5
+ (i32.sub
+ (i32.add
+ (get_local $7)
+ (get_local $11)
+ )
+ (get_local $5)
+ )
+ )
+ (i32.lt_s
+ (get_local $5)
+ (i32.const 0)
+ )
+ )
+ )
+ (i32.lt_s
+ (get_local $16)
+ (get_local $5)
+ )
+ )
+ )
+ (i32.const 0)
+ )
+ )
+ )
+ (block
+ (set_local $5
+ (get_local $19)
+ )
+ (set_local $6
+ (get_local $16)
+ )
+ (i32.and
+ (get_local $10)
+ (i32.const 8)
+ )
+ )
+ )
+ )
+ )
+ (set_local $31
+ (i32.and
+ (i32.ne
+ (tee_local $16
+ (i32.or
+ (get_local $5)
+ (get_local $19)
+ )
+ )
+ (i32.const 0)
+ )
+ (i32.const 1)
+ )
+ )
+ (set_local $25
+ (if
+ (tee_local $21
+ (i32.eq
+ (i32.or
+ (get_local $6)
+ (i32.const 32)
+ )
+ (i32.const 102)
+ )
+ )
+ (block
+ (set_local $6
+ (select
+ (get_local $11)
+ (i32.const 0)
+ (i32.gt_s
+ (get_local $11)
+ (i32.const 0)
+ )
+ )
+ )
+ (i32.const 0)
+ )
+ (block
+ (if
+ (i32.lt_s
+ (i32.sub
+ (get_local $32)
+ (tee_local $7
+ (call $_fmt_u
+ (tee_local $7
+ (select
+ (get_local $25)
+ (get_local $11)
+ (i32.lt_s
+ (get_local $11)
+ (i32.const 0)
+ )
+ )
+ )
+ (i32.shr_s
+ (i32.shl
+ (i32.lt_s
+ (get_local $7)
+ (i32.const 0)
+ )
+ (i32.const 31)
+ )
+ (i32.const 31)
+ )
+ (get_local $37)
+ )
+ )
+ )
+ (i32.const 2)
+ )
+ (loop $while-in$105
+ (i32.store8
+ (tee_local $7
+ (i32.add
+ (get_local $7)
+ (i32.const -1)
+ )
+ )
+ (i32.const 48)
+ )
+ (br_if $while-in$105
+ (i32.lt_s
+ (i32.sub
+ (get_local $32)
+ (get_local $7)
+ )
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ (i32.store8
+ (i32.add
+ (get_local $7)
+ (i32.const -1)
+ )
+ (i32.and
+ (i32.add
+ (i32.and
+ (i32.shr_s
+ (get_local $11)
+ (i32.const 31)
+ )
+ (i32.const 2)
+ )
+ (i32.const 43)
+ )
+ (i32.const 255)
+ )
+ )
+ (i32.store8
+ (tee_local $7
+ (i32.add
+ (get_local $7)
+ (i32.const -2)
+ )
+ )
+ (i32.and
+ (get_local $6)
+ (i32.const 255)
+ )
+ )
+ (set_local $6
+ (i32.sub
+ (get_local $32)
+ (get_local $7)
+ )
+ )
+ (get_local $7)
+ )
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $17)
+ (tee_local $11
+ (i32.add
+ (i32.add
+ (i32.add
+ (i32.add
+ (get_local $30)
+ (i32.const 1)
+ )
+ (get_local $5)
+ )
+ (get_local $31)
+ )
+ (get_local $6)
+ )
+ )
+ (get_local $10)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $36)
+ (get_local $30)
+ (get_local $0)
+ )
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 48)
+ (get_local $17)
+ (get_local $11)
+ (i32.xor
+ (get_local $10)
+ (i32.const 65536)
+ )
+ )
+ (block $do-once$106
+ (if
+ (get_local $21)
+ (block
+ (set_local $7
+ (tee_local $12
+ (select
+ (get_local $8)
+ (get_local $12)
+ (i32.gt_u
+ (get_local $12)
+ (get_local $8)
+ )
+ )
+ )
+ )
+ (loop $while-in$109
+ (set_local $6
+ (call $_fmt_u
+ (i32.load
+ (get_local $7)
+ )
+ (i32.const 0)
+ (get_local $34)
+ )
+ )
+ (block $do-once$110
+ (if
+ (i32.eq
+ (get_local $7)
+ (get_local $12)
+ )
+ (block
+ (br_if $do-once$110
+ (i32.ne
+ (get_local $6)
+ (get_local $34)
+ )
+ )
+ (i32.store8
+ (get_local $38)
+ (i32.const 48)
+ )
+ (set_local $6
+ (get_local $38)
+ )
+ )
+ (block
+ (br_if $do-once$110
+ (i32.le_u
+ (get_local $6)
+ (get_local $24)
+ )
+ )
+ (loop $while-in$113
+ (i32.store8
+ (tee_local $6
+ (i32.add
+ (get_local $6)
+ (i32.const -1)
+ )
+ )
+ (i32.const 48)
+ )
+ (br_if $while-in$113
+ (i32.gt_u
+ (get_local $6)
+ (get_local $24)
+ )
+ )
+ )
+ )
+ )
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $6)
+ (i32.sub
+ (get_local $49)
+ (get_local $6)
+ )
+ (get_local $0)
+ )
+ )
+ )
+ (if
+ (i32.le_u
+ (tee_local $6
+ (i32.add
+ (get_local $7)
+ (i32.const 4)
+ )
+ )
+ (get_local $8)
+ )
+ (block
+ (set_local $7
+ (get_local $6)
+ )
+ (br $while-in$109)
+ )
+ )
+ )
+ (block $do-once$114
+ (if
+ (get_local $16)
+ (block
+ (br_if $do-once$114
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (i32.const 4143)
+ (i32.const 1)
+ (get_local $0)
+ )
+ )
+ )
+ )
+ )
+ (if
+ (i32.and
+ (i32.gt_s
+ (get_local $5)
+ (i32.const 0)
+ )
+ (i32.lt_u
+ (get_local $6)
+ (get_local $9)
+ )
+ )
+ (block
+ (set_local $7
+ (get_local $5)
+ )
+ (loop $while-in$117
+ (if
+ (i32.gt_u
+ (tee_local $5
+ (call $_fmt_u
+ (i32.load
+ (get_local $6)
+ )
+ (i32.const 0)
+ (get_local $34)
+ )
+ )
+ (get_local $24)
+ )
+ (loop $while-in$119
+ (i32.store8
+ (tee_local $5
+ (i32.add
+ (get_local $5)
+ (i32.const -1)
+ )
+ )
+ (i32.const 48)
+ )
+ (br_if $while-in$119
+ (i32.gt_u
+ (get_local $5)
+ (get_local $24)
+ )
+ )
+ )
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $5)
+ (select
+ (i32.const 9)
+ (get_local $7)
+ (i32.gt_s
+ (get_local $7)
+ (i32.const 9)
+ )
+ )
+ (get_local $0)
+ )
+ )
+ )
+ (set_local $5
+ (i32.add
+ (get_local $7)
+ (i32.const -9)
+ )
+ )
+ (if
+ (i32.and
+ (i32.gt_s
+ (get_local $7)
+ (i32.const 9)
+ )
+ (i32.lt_u
+ (tee_local $6
+ (i32.add
+ (get_local $6)
+ (i32.const 4)
+ )
+ )
+ (get_local $9)
+ )
+ )
+ (block
+ (set_local $7
+ (get_local $5)
+ )
+ (br $while-in$117)
+ )
+ )
+ )
+ )
+ )
+ (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 $16
+ (select
+ (get_local $9)
+ (i32.add
+ (get_local $12)
+ (i32.const 4)
+ )
+ (get_local $26)
+ )
+ )
+ (if
+ (i32.gt_s
+ (get_local $5)
+ (i32.const -1)
+ )
+ (block
+ (set_local $9
+ (i32.eqz
+ (get_local $19)
+ )
+ )
+ (set_local $6
+ (get_local $12)
+ )
+ (set_local $7
+ (get_local $5)
+ )
+ (loop $while-in$121
+ (set_local $8
+ (if
+ (i32.eq
+ (tee_local $5
+ (call $_fmt_u
+ (i32.load
+ (get_local $6)
+ )
+ (i32.const 0)
+ (get_local $34)
+ )
+ )
+ (get_local $34)
+ )
+ (block
+ (i32.store8
+ (get_local $38)
+ (i32.const 48)
+ )
+ (get_local $38)
+ )
+ (get_local $5)
+ )
+ )
+ (block $do-once$122
+ (if
+ (i32.eq
+ (get_local $6)
+ (get_local $12)
+ )
+ (block
+ (set_local $5
+ (i32.add
+ (get_local $8)
+ (i32.const 1)
+ )
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $8)
+ (i32.const 1)
+ (get_local $0)
+ )
+ )
+ )
+ (br_if $do-once$122
+ (i32.and
+ (get_local $9)
+ (i32.lt_s
+ (get_local $7)
+ (i32.const 1)
+ )
+ )
+ )
+ (br_if $do-once$122
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (i32.const 4143)
+ (i32.const 1)
+ (get_local $0)
+ )
+ )
+ )
+ (block
+ (if
+ (i32.gt_u
+ (get_local $8)
+ (get_local $24)
+ )
+ (set_local $5
+ (get_local $8)
+ )
+ (block
+ (set_local $5
+ (get_local $8)
+ )
+ (br $do-once$122)
+ )
+ )
+ (loop $while-in$125
+ (i32.store8
+ (tee_local $5
+ (i32.add
+ (get_local $5)
+ (i32.const -1)
+ )
+ )
+ (i32.const 48)
+ )
+ (br_if $while-in$125
+ (i32.gt_u
+ (get_local $5)
+ (get_local $24)
+ )
+ )
+ )
+ )
+ )
+ )
+ (set_local $8
+ (i32.sub
+ (get_local $49)
+ (get_local $5)
+ )
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (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)
+ )
+ )
+ )
+ (if
+ (i32.and
+ (i32.lt_u
+ (tee_local $6
+ (i32.add
+ (get_local $6)
+ (i32.const 4)
+ )
+ )
+ (get_local $16)
+ )
+ (i32.gt_s
+ (tee_local $5
+ (i32.sub
+ (get_local $7)
+ (get_local $8)
+ )
+ )
+ (i32.const -1)
+ )
+ )
+ (block
+ (set_local $7
+ (get_local $5)
+ )
+ (br $while-in$121)
+ )
+ )
+ )
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 48)
+ (i32.add
+ (get_local $5)
+ (i32.const 18)
+ )
+ (i32.const 18)
+ (i32.const 0)
+ )
+ (br_if $do-once$106
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $25)
+ (i32.sub
+ (get_local $32)
+ (get_local $25)
+ )
+ (get_local $0)
+ )
+ )
+ )
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $17)
+ (get_local $11)
+ (i32.xor
+ (get_local $10)
+ (i32.const 8192)
+ )
+ )
+ (select
+ (get_local $17)
+ (get_local $11)
+ (i32.lt_s
+ (get_local $11)
+ (get_local $17)
+ )
+ )
+ )
+ (block
+ (set_local $7
+ (select
(i32.const 0)
+ (get_local $30)
+ (tee_local $5
+ (i32.or
+ (f64.ne
+ (get_local $14)
+ (get_local $14)
+ )
+ (i32.const 0)
+ )
+ )
)
)
- (i32.store
- (tee_local $7
+ (set_local $8
+ (select
+ (select
+ (i32.const 4135)
+ (i32.const 4139)
+ (tee_local $6
+ (i32.ne
+ (i32.and
+ (get_local $16)
+ (i32.const 32)
+ )
+ (i32.const 0)
+ )
+ )
+ )
+ (select
+ (i32.const 4127)
+ (i32.const 4131)
+ (get_local $6)
+ )
+ (get_local $5)
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $17)
+ (tee_local $6
(i32.add
+ (get_local $7)
+ (i32.const 3)
+ )
+ )
+ (get_local $9)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (if
+ (i32.and
+ (tee_local $5
+ (i32.load
+ (get_local $0)
+ )
+ )
+ (i32.const 32)
+ )
+ (get_local $5)
+ (block
+ (drop
+ (call $___fwritex
+ (get_local $36)
+ (get_local $7)
+ (get_local $0)
+ )
+ )
+ (i32.load
+ (get_local $0)
+ )
+ )
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
(get_local $8)
- (i32.const -4)
+ (i32.const 3)
+ (get_local $0)
)
)
- (get_local $5)
)
- (get_local $7)
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $17)
+ (get_local $6)
+ (i32.xor
+ (get_local $10)
+ (i32.const 8192)
+ )
+ )
+ (select
+ (get_local $17)
+ (get_local $6)
+ (i32.lt_s
+ (get_local $6)
+ (get_local $17)
+ )
+ )
)
)
)
)
- (loop $while-in$75
- (block $while-out$74
- (br_if $while-out$74
- (i32.le_u
- (get_local $13)
- (get_local $7)
+ (br $label$continue$L1)
+ )
+ (set_local $6
+ (get_local $1)
+ )
+ (set_local $11
+ (get_local $7)
+ )
+ (set_local $8
+ (i32.const 0)
+ )
+ (set_local $9
+ (i32.const 4091)
+ )
+ (set_local $1
+ (get_local $23)
+ )
+ (br $jumpthreading$outer$7)
+ )
+ (set_local $9
+ (i32.and
+ (get_local $16)
+ (i32.const 32)
+ )
+ )
+ (if
+ (i32.and
+ (i32.eqz
+ (tee_local $10
+ (i32.load
+ (tee_local $6
+ (get_local $18)
)
)
- (if
- (i32.eq
- (i32.load
- (tee_local $5
+ )
+ )
+ (i32.eqz
+ (tee_local $6
+ (i32.load offset=4
+ (get_local $6)
+ )
+ )
+ )
+ )
+ (block
+ (set_local $6
+ (get_local $23)
+ )
+ (set_local $8
+ (i32.const 0)
+ )
+ (set_local $9
+ (i32.const 4091)
+ )
+ (br $jumpthreading$inner$7)
+ )
+ (block
+ (set_local $8
+ (get_local $23)
+ )
+ (loop $while-in$130
+ (i32.store8
+ (tee_local $8
+ (i32.add
+ (get_local $8)
+ (i32.const -1)
+ )
+ )
+ (i32.and
+ (i32.or
+ (i32.and
+ (i32.load8_s
(i32.add
- (get_local $13)
- (i32.const -4)
+ (i32.and
+ (get_local $10)
+ (i32.const 15)
+ )
+ (i32.const 4075)
+ )
+ )
+ (i32.const 255)
+ )
+ (get_local $9)
+ )
+ (i32.const 255)
+ )
+ )
+ (br_if $while-in$130
+ (i32.eqz
+ (i32.and
+ (i32.eqz
+ (tee_local $10
+ (call $_bitshift64Lshr
+ (get_local $10)
+ (get_local $6)
+ (i32.const 4)
)
)
)
- (i32.const 0)
+ (i32.eqz
+ (tee_local $6
+ (get_global $tempRet0)
+ )
+ )
)
- (set_local $13
- (get_local $5)
- )
- (br $while-out$74)
)
- (br $while-in$75)
)
- )
- (i32.store
- (get_local $25)
- (tee_local $5
- (i32.sub
- (i32.load
- (get_local $25)
- )
- (get_local $11)
- )
+ (set_local $6
+ (get_local $8)
)
)
(if
- (i32.gt_s
- (get_local $5)
- (i32.const 0)
- )
- (set_local $8
- (get_local $7)
+ (i32.or
+ (i32.eqz
+ (i32.and
+ (get_local $1)
+ (i32.const 8)
+ )
+ )
+ (i32.and
+ (i32.eqz
+ (i32.load
+ (tee_local $10
+ (get_local $18)
+ )
+ )
+ )
+ (i32.eqz
+ (i32.load offset=4
+ (get_local $10)
+ )
+ )
+ )
)
(block
- (set_local $6
- (get_local $13)
+ (set_local $8
+ (i32.const 0)
)
- (br $while-out$68)
+ (set_local $9
+ (i32.const 4091)
+ )
+ (br $jumpthreading$inner$7)
+ )
+ (block
+ (set_local $8
+ (i32.const 2)
+ )
+ (set_local $9
+ (i32.add
+ (i32.const 4091)
+ (i32.shr_s
+ (get_local $16)
+ (i32.const 4)
+ )
+ )
+ )
+ (br $jumpthreading$inner$7)
)
)
- (br $while-in$69)
+ )
+ )
+ (br $jumpthreading$outer$7)
+ )
+ (set_local $6
+ (call $_fmt_u
+ (get_local $1)
+ (get_local $6)
+ (get_local $23)
+ )
+ )
+ (set_local $1
+ (get_local $10)
+ )
+ (br $jumpthreading$inner$7)
+ )
+ (set_local $28
+ (i32.const 0)
+ )
+ (set_local $16
+ (i32.eqz
+ (tee_local $12
+ (call $_memchr
+ (get_local $1)
+ (i32.const 0)
+ (get_local $7)
+ )
+ )
+ )
+ )
+ (set_local $6
+ (get_local $1)
+ )
+ (set_local $10
+ (get_local $9)
+ )
+ (set_local $11
+ (select
+ (get_local $7)
+ (i32.sub
+ (get_local $12)
+ (get_local $1)
+ )
+ (get_local $16)
+ )
+ )
+ (set_local $8
+ (i32.const 0)
+ )
+ (set_local $9
+ (i32.const 4091)
+ )
+ (set_local $1
+ (select
+ (i32.add
+ (get_local $1)
+ (get_local $7)
+ )
+ (get_local $12)
+ (get_local $16)
+ )
+ )
+ (br $jumpthreading$outer$7)
+ )
+ (set_local $1
+ (i32.const 0)
+ )
+ (set_local $6
+ (i32.const 0)
+ )
+ (set_local $7
+ (i32.load
+ (get_local $18)
+ )
+ )
+ (loop $while-in$132
+ (block $while-out$131
+ (br_if $while-out$131
+ (i32.eqz
+ (tee_local $9
+ (i32.load
+ (get_local $7)
+ )
+ )
+ )
+ )
+ (br_if $while-out$131
+ (i32.or
+ (i32.lt_s
+ (tee_local $6
+ (call $_wctomb
+ (get_local $41)
+ (get_local $9)
+ )
+ )
+ (i32.const 0)
+ )
+ (i32.gt_u
+ (get_local $6)
+ (i32.sub
+ (get_local $8)
+ (get_local $1)
+ )
)
)
)
(set_local $7
- (get_local $9)
- )
- )
- (if
- (i32.lt_s
- (get_local $5)
- (i32.const 0)
- )
- (block
- (set_local $8
- (i32.add
- (i32.and
- (call_import $i32s-div
- (i32.add
- (get_local $1)
- (i32.const 25)
- )
- (i32.const 9)
- )
- (i32.const -1)
- )
- (i32.const 1)
- )
- )
- (set_local $10
- (i32.eq
- (get_local $15)
- (i32.const 102)
- )
- )
- (set_local $23
- (get_local $6)
- )
- (loop $while-in$77
- (block $while-out$76
- (set_local $5
- (i32.gt_s
- (tee_local $6
- (i32.sub
- (i32.const 0)
- (get_local $5)
- )
- )
- (i32.const 9)
- )
- )
- (set_local $13
- (select
- (i32.const 9)
- (get_local $6)
- (get_local $5)
- )
- )
- (set_local $11
- (block $do-once$78
- (if
- (i32.lt_u
- (get_local $7)
- (get_local $23)
- )
- (block
- (set_local $70
- (i32.add
- (i32.shl
- (i32.const 1)
- (get_local $13)
- )
- (i32.const -1)
- )
- )
- (set_local $27
- (i32.shr_u
- (i32.const 1000000000)
- (get_local $13)
- )
- )
- (set_local $11
- (i32.const 0)
- )
- (set_local $17
- (get_local $7)
- )
- (loop $while-in$81
- (block $while-out$80
- (set_local $6
- (i32.and
- (tee_local $5
- (i32.load
- (get_local $17)
- )
- )
- (get_local $70)
- )
- )
- (i32.store
- (get_local $17)
- (i32.add
- (i32.shr_u
- (get_local $5)
- (get_local $13)
- )
- (get_local $11)
- )
- )
- (set_local $11
- (i32.mul
- (get_local $6)
- (get_local $27)
- )
- )
- (br_if $while-out$80
- (i32.ge_u
- (tee_local $17
- (i32.add
- (get_local $17)
- (i32.const 4)
- )
- )
- (get_local $23)
- )
- )
- (br $while-in$81)
- )
- )
- (set_local $5
- (select
- (i32.add
- (get_local $7)
- (i32.const 4)
- )
- (get_local $7)
- (i32.eq
- (i32.load
- (get_local $7)
- )
- (i32.const 0)
- )
- )
- )
- (br_if $do-once$78
- (get_local $5)
- (i32.eq
- (get_local $11)
- (i32.const 0)
- )
- )
- (i32.store
- (get_local $23)
- (get_local $11)
- )
- (set_local $23
- (i32.add
- (get_local $23)
- (i32.const 4)
- )
- )
- (get_local $5)
- )
- (select
- (i32.add
- (get_local $7)
- (i32.const 4)
- )
- (get_local $7)
- (i32.eq
- (i32.load
- (get_local $7)
- )
- (i32.const 0)
- )
- )
- )
- )
- )
- (set_local $5
- (i32.gt_s
- (i32.shr_s
- (i32.sub
- (get_local $23)
- (tee_local $7
- (select
- (get_local $9)
- (get_local $11)
- (get_local $10)
- )
- )
- )
- (i32.const 2)
- )
- (get_local $8)
- )
- )
- (set_local $6
- (select
- (i32.add
- (get_local $7)
- (i32.shl
- (get_local $8)
- (i32.const 2)
- )
- )
- (get_local $23)
- (get_local $5)
- )
- )
- (i32.store
- (get_local $25)
- (tee_local $5
- (i32.add
- (i32.load
- (get_local $25)
- )
- (get_local $13)
- )
- )
- )
- (if
- (i32.lt_s
- (get_local $5)
- (i32.const 0)
- )
- (block
- (set_local $7
- (get_local $11)
- )
- (set_local $23
- (get_local $6)
- )
- )
- (block
- (set_local $7
- (get_local $11)
- )
- (set_local $27
- (get_local $6)
- )
- (br $while-out$76)
- )
- )
- (br $while-in$77)
- )
- )
- )
- (set_local $27
- (get_local $6)
- )
- )
- (block $do-once$82
- (if
- (i32.lt_u
+ (i32.add
(get_local $7)
- (get_local $27)
- )
- (block
- (set_local $6
- (i32.mul
- (i32.shr_s
- (i32.sub
- (get_local $62)
- (get_local $7)
- )
- (i32.const 2)
- )
- (i32.const 9)
- )
- )
- (if
- (i32.lt_u
- (tee_local $5
- (i32.load
- (get_local $7)
- )
- )
- (i32.const 10)
- )
- (block
- (set_local $13
- (get_local $6)
- )
- (br $do-once$82)
- )
- (set_local $8
- (i32.const 10)
- )
- )
- (loop $while-in$85
- (block $while-out$84
- (set_local $6
- (i32.add
- (get_local $6)
- (i32.const 1)
- )
- )
- (if
- (i32.lt_u
- (get_local $5)
- (tee_local $8
- (i32.mul
- (get_local $8)
- (i32.const 10)
- )
- )
- )
- (block
- (set_local $13
- (get_local $6)
- )
- (br $while-out$84)
- )
- )
- (br $while-in$85)
- )
- )
- )
- (set_local $13
- (i32.const 0)
+ (i32.const 4)
)
)
- )
- (set_local $7
- (if
- (i32.lt_s
- (tee_local $5
- (i32.add
- (i32.sub
- (get_local $1)
- (select
- (get_local $13)
- (i32.const 0)
- (i32.ne
- (get_local $15)
- (i32.const 102)
- )
- )
- )
- (i32.shr_s
- (i32.shl
- (i32.and
- (tee_local $70
- (i32.ne
- (get_local $1)
- (i32.const 0)
- )
- )
- (tee_local $8
- (i32.eq
- (get_local $15)
- (i32.const 103)
- )
- )
- )
- (i32.const 31)
- )
- (i32.const 31)
- )
- )
- )
- (i32.add
- (i32.mul
- (i32.shr_s
- (i32.sub
- (get_local $27)
- (get_local $62)
- )
- (i32.const 2)
- )
- (i32.const 9)
- )
- (i32.const -9)
- )
- )
- (block
- (set_local $6
- (i32.add
- (i32.add
- (get_local $9)
- (i32.const 4)
- )
- (i32.shl
- (i32.add
- (i32.and
- (call_import $i32s-div
- (tee_local $5
- (i32.add
- (get_local $5)
- (i32.const 9216)
- )
- )
- (i32.const 9)
- )
- (i32.const -1)
- )
- (i32.const -1024)
- )
- (i32.const 2)
- )
- )
- )
- (if
- (i32.lt_s
- (tee_local $11
- (i32.add
- (i32.and
- (call_import $i32s-rem
- (get_local $5)
- (i32.const 9)
- )
- (i32.const -1)
- )
- (i32.const 1)
- )
- )
- (i32.const 9)
- )
- (block
- (set_local $5
- (i32.const 10)
- )
- (loop $while-in$87
- (block $while-out$86
- (set_local $5
- (i32.mul
- (get_local $5)
- (i32.const 10)
- )
- )
- (if
- (i32.eq
- (tee_local $11
- (i32.add
- (get_local $11)
- (i32.const 1)
- )
- )
- (i32.const 9)
- )
- (block
- (set_local $17
- (get_local $5)
- )
- (br $while-out$86)
- )
- )
- (br $while-in$87)
- )
- )
- )
- (set_local $17
- (i32.const 10)
- )
- )
- (block $do-once$88
- (if
- (i32.eqz
- (i32.and
- (tee_local $11
- (i32.eq
- (i32.add
- (get_local $6)
- (i32.const 4)
- )
- (get_local $27)
- )
- )
- (i32.eq
- (tee_local $15
- (i32.and
- (call_import $i32u-rem
- (tee_local $5
- (i32.load
- (get_local $6)
- )
- )
- (get_local $17)
- )
- (i32.const -1)
- )
- )
- (i32.const 0)
- )
- )
- )
- (block
- (set_local $14
- (select
- (f64.const 9007199254740992)
- (f64.const 9007199254740994)
- (i32.eq
- (i32.and
- (i32.and
- (call_import $i32u-div
- (get_local $5)
- (get_local $17)
- )
- (i32.const -1)
- )
- (i32.const 1)
- )
- (i32.const 0)
- )
- )
- )
- (set_local $30
- (if
- (i32.lt_u
- (get_local $15)
- (tee_local $10
- (i32.and
- (call_import $i32s-div
- (get_local $17)
- (i32.const 2)
- )
- (i32.const -1)
- )
- )
- )
- (f64.const 0.5)
- (select
- (f64.const 1)
- (f64.const 1.5)
- (i32.and
- (get_local $11)
- (i32.eq
- (get_local $15)
- (get_local $10)
- )
- )
- )
- )
- )
- (set_local $14
- (block $do-once$90
- (if
- (i32.eq
- (get_local $51)
- (i32.const 0)
- )
- (get_local $14)
- (block
- (br_if $do-once$90
- (get_local $14)
- (i32.ne
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (get_local $39)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 45)
- )
- )
- (set_local $30
- (f64.neg
- (get_local $30)
- )
- )
- (f64.neg
- (get_local $14)
- )
- )
- )
- )
- )
- (i32.store
- (get_local $6)
- (tee_local $5
- (i32.sub
- (get_local $5)
- (get_local $15)
- )
- )
- )
- (br_if $do-once$88
- (f64.eq
- (f64.add
- (get_local $14)
- (get_local $30)
- )
- (get_local $14)
- )
- )
- (i32.store
- (get_local $6)
- (tee_local $5
- (i32.add
- (get_local $5)
- (get_local $17)
- )
- )
- )
- (if
- (i32.gt_u
- (get_local $5)
- (i32.const 999999999)
- )
- (loop $while-in$93
- (block $while-out$92
- (i32.store
- (get_local $6)
- (i32.const 0)
- )
- (set_local $7
- (if
- (i32.lt_u
- (tee_local $6
- (i32.add
- (get_local $6)
- (i32.const -4)
- )
- )
- (get_local $7)
- )
- (block
- (i32.store
- (tee_local $5
- (i32.add
- (get_local $7)
- (i32.const -4)
- )
- )
- (i32.const 0)
- )
- (get_local $5)
- )
- (get_local $7)
- )
- )
- (i32.store
- (get_local $6)
- (tee_local $5
- (i32.add
- (i32.load
- (get_local $6)
- )
- (i32.const 1)
- )
- )
- )
- (br_if $while-out$92
- (i32.le_u
- (get_local $5)
- (i32.const 999999999)
- )
- )
- (br $while-in$93)
- )
- )
- )
- (set_local $11
- (i32.mul
- (i32.shr_s
- (i32.sub
- (get_local $62)
- (get_local $7)
- )
- (i32.const 2)
- )
- (i32.const 9)
- )
- )
- (if
- (i32.lt_u
- (tee_local $5
- (i32.load
- (get_local $7)
- )
- )
- (i32.const 10)
- )
- (block
- (set_local $13
- (get_local $11)
- )
- (br $do-once$88)
- )
- (set_local $10
- (i32.const 10)
- )
- )
- (loop $while-in$95
- (block $while-out$94
- (set_local $11
- (i32.add
- (get_local $11)
- (i32.const 1)
- )
- )
- (if
- (i32.lt_u
- (get_local $5)
- (tee_local $10
- (i32.mul
- (get_local $10)
- (i32.const 10)
- )
- )
- )
- (block
- (set_local $13
- (get_local $11)
- )
- (br $while-out$94)
- )
- )
- (br $while-in$95)
- )
- )
- )
- )
- )
- (set_local $6
- (i32.gt_u
- (get_local $27)
- (tee_local $5
- (i32.add
- (get_local $6)
- (i32.const 4)
- )
- )
- )
- )
- (set_local $6
- (select
- (get_local $5)
- (get_local $27)
- (get_local $6)
- )
- )
- (get_local $7)
- )
- (block
- (set_local $6
- (get_local $27)
- )
- (get_local $7)
- )
- )
- )
- (set_local $27
- (i32.sub
- (i32.const 0)
- (get_local $13)
- )
- )
- (loop $while-in$97
- (block $while-out$96
- (if
- (i32.le_u
- (get_local $6)
- (get_local $7)
- )
- (block
- (set_local $11
- (i32.const 0)
- )
- (set_local $23
- (get_local $6)
- )
- (br $while-out$96)
- )
- )
- (if
- (i32.eq
- (i32.load
- (tee_local $5
- (i32.add
- (get_local $6)
- (i32.const -4)
- )
- )
- )
- (i32.const 0)
- )
- (set_local $6
- (get_local $5)
- )
- (block
- (set_local $11
- (i32.const 1)
- )
- (set_local $23
- (get_local $6)
- )
- (br $while-out$96)
- )
- )
- (br $while-in$97)
- )
- )
- (set_local $8
- (block $do-once$98
- (if
+ (br_if $while-in$132
+ (i32.gt_u
(get_local $8)
- (block
- (set_local $8
- (if
- (i32.and
- (i32.gt_s
- (tee_local $1
- (i32.add
- (i32.xor
- (i32.and
- (get_local $70)
- (i32.const 1)
- )
- (i32.const 1)
- )
- (get_local $1)
- )
- )
- (get_local $13)
- )
- (i32.gt_s
- (get_local $13)
- (i32.const -5)
- )
- )
- (block
- (set_local $10
- (i32.add
- (get_local $26)
- (i32.const -1)
- )
- )
- (i32.sub
- (i32.add
- (get_local $1)
- (i32.const -1)
- )
- (get_local $13)
- )
- )
- (block
- (set_local $10
- (i32.add
- (get_local $26)
- (i32.const -2)
- )
- )
- (i32.add
- (get_local $1)
- (i32.const -1)
- )
- )
- )
- )
- (if
- (i32.ne
- (tee_local $1
- (i32.and
- (get_local $18)
- (i32.const 8)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $15
- (get_local $8)
- )
- (set_local $26
- (get_local $10)
- )
- (br $do-once$98
- (get_local $1)
- )
- )
- )
- (block $do-once$100
- (if
- (get_local $11)
- (block
- (if
- (i32.eq
- (tee_local $1
- (i32.load
- (i32.add
- (get_local $23)
- (i32.const -4)
- )
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $6
- (i32.const 9)
- )
- (br $do-once$100)
- )
- )
- (if
- (i32.eq
- (i32.and
- (call_import $i32u-rem
- (get_local $1)
- (i32.const 10)
- )
- (i32.const -1)
- )
- (i32.const 0)
- )
- (block
- (set_local $5
- (i32.const 10)
- )
- (set_local $6
- (i32.const 0)
- )
- )
- (block
- (set_local $6
- (i32.const 0)
- )
- (br $do-once$100)
- )
- )
- (loop $while-in$103
- (block $while-out$102
- (set_local $6
- (i32.add
- (get_local $6)
- (i32.const 1)
- )
- )
- (br_if $while-out$102
- (i32.ne
- (i32.and
- (call_import $i32u-rem
- (get_local $1)
- (tee_local $5
- (i32.mul
- (get_local $5)
- (i32.const 10)
- )
- )
- )
- (i32.const -1)
- )
- (i32.const 0)
- )
- )
- (br $while-in$103)
- )
- )
- )
- (set_local $6
- (i32.const 9)
- )
- )
- )
- (set_local $1
- (i32.add
- (i32.mul
- (i32.shr_s
- (i32.sub
- (get_local $23)
- (get_local $62)
- )
- (i32.const 2)
- )
- (i32.const 9)
- )
- (i32.const -9)
- )
- )
- (if
- (i32.eq
- (i32.or
- (get_local $10)
- (i32.const 32)
- )
- (i32.const 102)
- )
- (block
- (set_local $1
- (i32.lt_s
- (tee_local $5
- (i32.sub
- (get_local $1)
- (get_local $6)
- )
- )
- (i32.const 0)
- )
- )
- (set_local $5
- (i32.lt_s
- (get_local $8)
- (tee_local $1
- (select
- (i32.const 0)
- (get_local $5)
- (get_local $1)
- )
- )
- )
- )
- (set_local $15
- (select
- (get_local $8)
- (get_local $1)
- (get_local $5)
- )
- )
- (set_local $26
- (get_local $10)
- )
- (i32.const 0)
- )
- (block
- (set_local $1
- (i32.lt_s
- (tee_local $5
- (i32.sub
- (i32.add
- (get_local $1)
- (get_local $13)
- )
- (get_local $6)
- )
- )
- (i32.const 0)
- )
- )
- (set_local $5
- (i32.lt_s
- (get_local $8)
- (tee_local $1
- (select
- (i32.const 0)
- (get_local $5)
- (get_local $1)
- )
- )
- )
- )
- (set_local $15
- (select
- (get_local $8)
- (get_local $1)
- (get_local $5)
- )
- )
- (set_local $26
- (get_local $10)
- )
- (i32.const 0)
- )
- )
- )
- (block
- (set_local $15
+ (tee_local $1
+ (i32.add
+ (get_local $6)
(get_local $1)
)
- (i32.and
- (get_local $18)
- (i32.const 8)
- )
)
)
)
)
- (set_local $17
- (i32.and
- (i32.ne
- (tee_local $1
- (i32.or
- (get_local $15)
- (get_local $8)
- )
- )
- (i32.const 0)
- )
- (i32.const 1)
- )
- )
- (set_local $13
- (if
- (tee_local $10
- (i32.eq
- (i32.or
- (get_local $26)
- (i32.const 32)
- )
- (i32.const 102)
- )
- )
- (block
- (set_local $6
- (select
- (get_local $13)
- (i32.const 0)
- (i32.gt_s
- (get_local $13)
- (i32.const 0)
- )
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $5
- (i32.shr_s
- (i32.shl
- (i32.lt_s
- (tee_local $6
- (select
- (get_local $27)
- (get_local $13)
- (i32.lt_s
- (get_local $13)
- (i32.const 0)
- )
- )
- )
- (i32.const 0)
- )
- (i32.const 31)
- )
- (i32.const 31)
- )
- )
- (if
- (i32.lt_s
- (i32.sub
- (get_local $40)
- (tee_local $5
- (call $_fmt_u
- (get_local $6)
- (get_local $5)
- (get_local $52)
- )
- )
- )
- (i32.const 2)
- )
- (loop $while-in$105
- (block $while-out$104
- (i32.store8
- (tee_local $5
- (i32.add
- (get_local $5)
- (i32.const -1)
- )
- )
- (i32.const 48)
- )
- (br_if $while-out$104
- (i32.ge_s
- (i32.sub
- (get_local $40)
- (get_local $5)
- )
- (i32.const 2)
- )
- )
- (br $while-in$105)
- )
- )
- )
- (i32.store8
- (i32.add
- (get_local $5)
- (i32.const -1)
- )
- (i32.and
- (i32.add
- (i32.and
- (i32.shr_s
- (get_local $13)
- (i32.const 31)
- )
- (i32.const 2)
- )
- (i32.const 43)
- )
- (i32.const 255)
- )
- )
- (i32.store8
- (tee_local $5
- (i32.add
- (get_local $5)
- (i32.const -2)
- )
- )
- (i32.and
- (get_local $26)
- (i32.const 255)
- )
- )
- (set_local $6
- (i32.sub
- (get_local $40)
- (get_local $5)
- )
- )
- (get_local $5)
- )
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (tee_local $6
- (i32.add
- (i32.add
- (i32.add
- (i32.add
- (get_local $51)
- (i32.const 1)
- )
- (get_local $15)
- )
- (get_local $17)
- )
- (get_local $6)
- )
- )
- (get_local $18)
- )
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (call $___fwritex
- (get_local $39)
- (get_local $51)
- (get_local $0)
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 48)
- (get_local $16)
- (get_local $6)
- (i32.xor
- (get_local $18)
- (i32.const 65536)
- )
- )
- (block $do-once$106
- (if
- (get_local $10)
- (block
- (set_local $7
- (tee_local $8
- (select
- (get_local $9)
- (get_local $7)
- (i32.gt_u
- (get_local $7)
- (get_local $9)
- )
- )
- )
- )
- (loop $while-in$109
- (block $while-out$108
- (set_local $5
- (call $_fmt_u
- (i32.load
- (get_local $7)
- )
- (i32.const 0)
- (get_local $45)
- )
- )
- (block $do-once$110
- (if
- (i32.eq
- (get_local $7)
- (get_local $8)
- )
- (block
- (br_if $do-once$110
- (i32.ne
- (get_local $5)
- (get_local $45)
- )
- )
- (i32.store8
- (get_local $53)
- (i32.const 48)
- )
- (set_local $5
- (get_local $53)
- )
- )
- (block
- (br_if $do-once$110
- (i32.le_u
- (get_local $5)
- (get_local $29)
- )
- )
- (loop $while-in$113
- (block $while-out$112
- (i32.store8
- (tee_local $5
- (i32.add
- (get_local $5)
- (i32.const -1)
- )
- )
- (i32.const 48)
- )
- (br_if $while-out$112
- (i32.le_u
- (get_local $5)
- (get_local $29)
- )
- )
- (br $while-in$113)
- )
- )
- )
- )
- )
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (drop
- (call $___fwritex
- (get_local $5)
- (i32.sub
- (get_local $75)
- (get_local $5)
- )
- (get_local $0)
- )
- )
- )
- (if
- (i32.gt_u
- (tee_local $7
- (i32.add
- (get_local $7)
- (i32.const 4)
- )
- )
- (get_local $9)
- )
- (block
- (set_local $5
- (get_local $7)
- )
- (br $while-out$108)
- )
- )
- (br $while-in$109)
- )
- )
- (block $do-once$114
- (if
- (i32.ne
- (get_local $1)
- (i32.const 0)
- )
- (block
- (br_if $do-once$114
- (i32.ne
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- )
- (drop
- (call $___fwritex
- (i32.const 4143)
- (i32.const 1)
- (get_local $0)
- )
- )
- )
- )
- )
- (if
- (i32.and
- (i32.gt_s
- (get_local $15)
- (i32.const 0)
- )
- (i32.lt_u
- (get_local $5)
- (get_local $23)
- )
- )
- (loop $while-in$117
- (block $while-out$116
- (if
- (i32.gt_u
- (tee_local $1
- (call $_fmt_u
- (i32.load
- (get_local $5)
- )
- (i32.const 0)
- (get_local $45)
- )
- )
- (get_local $29)
- )
- (loop $while-in$119
- (block $while-out$118
- (i32.store8
- (tee_local $1
- (i32.add
- (get_local $1)
- (i32.const -1)
- )
- )
- (i32.const 48)
- )
- (br_if $while-out$118
- (i32.le_u
- (get_local $1)
- (get_local $29)
- )
- )
- (br $while-in$119)
- )
- )
- )
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (drop
- (call $___fwritex
- (get_local $1)
- (select
- (i32.const 9)
- (get_local $15)
- (i32.gt_s
- (get_local $15)
- (i32.const 9)
- )
- )
- (get_local $0)
- )
- )
- )
- (set_local $1
- (i32.add
- (get_local $15)
- (i32.const -9)
- )
- )
- (if
- (i32.and
- (i32.gt_s
- (get_local $15)
- (i32.const 9)
- )
- (i32.lt_u
- (tee_local $5
- (i32.add
- (get_local $5)
- (i32.const 4)
- )
- )
- (get_local $23)
- )
- )
- (set_local $15
- (get_local $1)
- )
- (block
- (set_local $15
- (get_local $1)
- )
- (br $while-out$116)
- )
- )
- (br $while-in$117)
- )
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 48)
- (i32.add
- (get_local $15)
- (i32.const 9)
- )
- (i32.const 9)
- (i32.const 0)
- )
- )
- (block
- (set_local $11
- (select
- (get_local $23)
- (i32.add
- (get_local $7)
- (i32.const 4)
- )
- (get_local $11)
- )
- )
- (if
- (i32.gt_s
- (get_local $15)
- (i32.const -1)
- )
- (block
- (set_local $9
- (i32.eq
- (get_local $8)
- (i32.const 0)
- )
- )
- (set_local $5
- (get_local $7)
- )
- (loop $while-in$121
- (block $while-out$120
- (set_local $8
- (if
- (i32.eq
- (tee_local $1
- (call $_fmt_u
- (i32.load
- (get_local $5)
- )
- (i32.const 0)
- (get_local $45)
- )
- )
- (get_local $45)
- )
- (block
- (i32.store8
- (get_local $53)
- (i32.const 48)
- )
- (get_local $53)
- )
- (get_local $1)
- )
- )
- (block $do-once$122
- (if
- (i32.eq
- (get_local $5)
- (get_local $7)
- )
- (block
- (set_local $1
- (i32.add
- (get_local $8)
- (i32.const 1)
- )
- )
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (call $___fwritex
- (get_local $8)
- (i32.const 1)
- (get_local $0)
- )
- )
- (br_if $do-once$122
- (i32.and
- (get_local $9)
- (i32.lt_s
- (get_local $15)
- (i32.const 1)
- )
- )
- )
- (br_if $do-once$122
- (i32.ne
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- )
- (drop
- (call $___fwritex
- (i32.const 4143)
- (i32.const 1)
- (get_local $0)
- )
- )
- )
- (block
- (if
- (i32.gt_u
- (get_local $8)
- (get_local $29)
- )
- (set_local $1
- (get_local $8)
- )
- (block
- (set_local $1
- (get_local $8)
- )
- (br $do-once$122)
- )
- )
- (loop $while-in$125
- (block $while-out$124
- (i32.store8
- (tee_local $1
- (i32.add
- (get_local $1)
- (i32.const -1)
- )
- )
- (i32.const 48)
- )
- (br_if $while-out$124
- (i32.le_u
- (get_local $1)
- (get_local $29)
- )
- )
- (br $while-in$125)
- )
- )
- )
- )
- )
- (set_local $8
- (i32.sub
- (get_local $75)
- (get_local $1)
- )
- )
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (drop
- (call $___fwritex
- (get_local $1)
- (select
- (get_local $8)
- (get_local $15)
- (i32.gt_s
- (get_local $15)
- (get_local $8)
- )
- )
- (get_local $0)
- )
- )
- )
- (br_if $while-out$120
- (i32.eqz
- (i32.and
- (i32.lt_u
- (tee_local $5
- (i32.add
- (get_local $5)
- (i32.const 4)
- )
- )
- (get_local $11)
- )
- (i32.gt_s
- (tee_local $15
- (i32.sub
- (get_local $15)
- (get_local $8)
- )
- )
- (i32.const -1)
- )
- )
- )
- )
- (br $while-in$121)
- )
- )
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 48)
- (i32.add
- (get_local $15)
- (i32.const 18)
- )
- (i32.const 18)
- (i32.const 0)
- )
- (br_if $do-once$106
- (i32.ne
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- )
- (drop
- (call $___fwritex
- (get_local $13)
- (i32.sub
- (get_local $40)
- (get_local $13)
- )
- (get_local $0)
- )
- )
- )
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (get_local $6)
- (i32.xor
- (get_local $18)
- (i32.const 8192)
- )
- )
- (select
- (get_local $16)
- (get_local $6)
- (i32.lt_s
- (get_local $6)
- (get_local $16)
- )
- )
)
- (block
- (set_local $5
- (select
- (i32.const 4127)
- (i32.const 4131)
- (tee_local $8
- (i32.ne
- (i32.and
- (get_local $26)
- (i32.const 32)
- )
- (i32.const 0)
- )
- )
- )
+ (if
+ (i32.lt_s
+ (get_local $6)
+ (i32.const 0)
)
- (set_local $6
- (select
- (i32.const 0)
- (get_local $51)
- (tee_local $1
- (i32.or
- (f64.ne
- (get_local $14)
- (get_local $14)
- )
- (i32.const 0)
- )
- )
+ (block
+ (set_local $15
+ (i32.const -1)
)
- )
- (set_local $8
- (select
- (select
- (i32.const 4135)
- (i32.const 4139)
- (get_local $8)
- )
- (get_local $5)
- (get_local $1)
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (tee_local $5
- (i32.add
- (get_local $6)
- (i32.const 3)
- )
- )
- (get_local $7)
- )
- (if
- (i32.eq
- (i32.and
- (if
- (i32.eq
- (i32.and
- (tee_local $1
- (i32.load
- (get_local $0)
- )
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (block
- (drop
- (call $___fwritex
- (get_local $39)
- (get_local $6)
- (get_local $0)
- )
- )
- (i32.load
- (get_local $0)
- )
- )
- (get_local $1)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (call $___fwritex
- (get_local $8)
- (i32.const 3)
- (get_local $0)
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (get_local $5)
- (i32.xor
- (get_local $18)
- (i32.const 8192)
- )
- )
- (select
- (get_local $16)
- (get_local $5)
- (i32.lt_s
- (get_local $5)
- (get_local $16)
- )
+ (br $label$break$L1)
)
)
- )
- )
- )
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
- )
- (set_local $47
- (get_local $20)
- )
- (set_local $37
- (get_local $18)
- )
- (set_local $42
- (get_local $10)
- )
- (set_local $43
- (i32.const 0)
- )
- (set_local $48
- (i32.const 4091)
- )
- (set_local $49
- (get_local $28)
- )
- )
- (block $label$break$L308
- (if
- (i32.eq
- (get_local $12)
- (i32.const 64)
- )
- (block
- (set_local $7
- (i32.and
- (get_local $68)
- (i32.const 32)
- )
- )
- (set_local $58
- (if
- (i32.and
- (i32.eq
- (tee_local $5
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $17)
+ (get_local $1)
+ (get_local $10)
+ )
+ (if
+ (get_local $1)
+ (block
+ (set_local $6
+ (i32.const 0)
+ )
+ (set_local $7
(i32.load
- (tee_local $1
- (get_local $19)
- )
+ (get_local $18)
)
)
- (i32.const 0)
- )
- (i32.eq
- (tee_local $1
- (i32.load offset=4
- (get_local $1)
- )
- )
- (i32.const 0)
- )
- )
- (block
- (set_local $34
- (get_local $46)
- )
- (set_local $32
- (get_local $57)
- )
- (set_local $35
- (i32.const 0)
- )
- (set_local $36
- (i32.const 4091)
- )
- (set_local $12
- (i32.const 77)
- )
- (get_local $28)
- )
- (block
- (set_local $6
- (get_local $28)
- )
- (loop $while-in$130
- (block $while-out$129
- (i32.store8
- (tee_local $6
- (i32.add
- (get_local $6)
- (i32.const -1)
- )
- )
- (i32.and
- (i32.or
- (i32.and
- (i32.load8_s
- (i32.add
- (i32.and
- (get_local $5)
- (i32.const 15)
- )
- (i32.const 4075)
- )
- )
- (i32.const 255)
- )
- (get_local $7)
- )
- (i32.const 255)
- )
- )
- (br_if $while-out$129
- (i32.and
- (i32.eq
- (tee_local $5
- (call $_bitshift64Lshr
- (get_local $5)
- (get_local $1)
- (i32.const 4)
- )
- )
- (i32.const 0)
- )
- (i32.eq
- (tee_local $1
- (get_global $tempRet0)
- )
- (i32.const 0)
- )
- )
- )
- (br $while-in$130)
- )
- )
- (if
- (i32.or
- (i32.eq
- (i32.and
- (get_local $46)
- (i32.const 8)
- )
- (i32.const 0)
- )
- (i32.and
- (i32.eq
- (i32.load
- (tee_local $1
- (get_local $19)
- )
- )
- (i32.const 0)
- )
- (i32.eq
- (i32.load offset=4
- (get_local $1)
- )
- (i32.const 0)
- )
- )
- )
- (block
- (set_local $34
- (get_local $46)
- )
- (set_local $32
- (get_local $57)
- )
- (set_local $35
- (i32.const 0)
- )
- (set_local $36
- (i32.const 4091)
- )
- (set_local $12
- (i32.const 77)
- )
- (get_local $6)
- )
- (block
- (set_local $34
- (get_local $46)
- )
- (set_local $32
- (get_local $57)
- )
- (set_local $35
- (i32.const 2)
- )
- (set_local $36
- (i32.add
- (i32.const 4091)
- (i32.shr_s
- (get_local $68)
- (i32.const 4)
- )
- )
- )
- (set_local $12
- (i32.const 77)
- )
- (get_local $6)
- )
- )
- )
- )
- )
- )
- (if
- (i32.eq
- (get_local $12)
- (i32.const 76)
- )
- (block
- (set_local $58
- (call $_fmt_u
- (get_local $33)
- (get_local $59)
- (get_local $28)
- )
- )
- (set_local $34
- (get_local $18)
- )
- (set_local $32
- (get_local $10)
- )
- (set_local $35
- (get_local $60)
- )
- (set_local $36
- (get_local $61)
- )
- (set_local $12
- (i32.const 77)
- )
- )
- (if
- (i32.eq
- (get_local $12)
- (i32.const 82)
- )
- (block
- (set_local $12
- (i32.const 0)
- )
- (set_local $5
- (i32.eq
- (tee_local $1
- (call $_memchr
- (get_local $50)
- (i32.const 0)
- (get_local $10)
- )
- )
- (i32.const 0)
- )
- )
- (set_local $47
- (get_local $50)
- )
- (set_local $37
- (get_local $7)
- )
- (set_local $42
- (select
- (get_local $10)
- (i32.sub
- (get_local $1)
- (get_local $50)
- )
- (get_local $5)
- )
- )
- (set_local $43
- (i32.const 0)
- )
- (set_local $48
- (i32.const 4091)
- )
- (set_local $49
- (select
- (i32.add
- (get_local $50)
- (get_local $10)
- )
- (get_local $1)
- (get_local $5)
- )
- )
- )
- (if
- (i32.eq
- (get_local $12)
- (i32.const 86)
- )
- (block
- (set_local $12
- (i32.const 0)
- )
- (set_local $7
- (i32.const 0)
- )
- (set_local $5
- (i32.const 0)
- )
- (set_local $6
- (i32.load
- (get_local $19)
- )
- )
- (loop $while-in$132
- (block $while-out$131
- (br_if $while-out$131
- (i32.eq
- (tee_local $1
+ (loop $while-in$134
+ (if
+ (i32.eqz
+ (tee_local $8
(i32.load
- (get_local $6)
- )
- )
- (i32.const 0)
- )
- )
- (br_if $while-out$131
- (i32.or
- (i32.lt_s
- (tee_local $5
- (call $_wctomb
- (get_local $63)
- (get_local $1)
- )
- )
- (i32.const 0)
- )
- (i32.gt_u
- (get_local $5)
- (i32.sub
- (get_local $69)
(get_local $7)
)
)
)
+ (block
+ (set_local $6
+ (get_local $1)
+ )
+ (br $jumpthreading$inner$6)
+ )
)
- (set_local $6
+ (set_local $7
(i32.add
- (get_local $6)
+ (get_local $7)
(i32.const 4)
)
)
(if
- (i32.gt_u
- (get_local $69)
- (tee_local $1
+ (i32.gt_s
+ (tee_local $6
(i32.add
- (get_local $5)
- (get_local $7)
- )
- )
- )
- (set_local $7
- (get_local $1)
- )
- (block
- (set_local $7
- (get_local $1)
- )
- (br $while-out$131)
- )
- )
- (br $while-in$132)
- )
- )
- (if
- (i32.lt_s
- (get_local $5)
- (i32.const 0)
- )
- (block
- (set_local $24
- (i32.const -1)
- )
- (br $label$break$L1)
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (get_local $7)
- (get_local $18)
- )
- (if
- (i32.eq
- (get_local $7)
- (i32.const 0)
- )
- (block
- (set_local $38
- (i32.const 0)
- )
- (set_local $12
- (i32.const 98)
- )
- )
- (block
- (set_local $6
- (i32.const 0)
- )
- (set_local $8
- (i32.load
- (get_local $19)
- )
- )
- (loop $while-in$134
- (block $while-out$133
- (if
- (i32.eq
- (tee_local $1
- (i32.load
+ (tee_local $8
+ (call $_wctomb
+ (get_local $41)
(get_local $8)
)
)
- (i32.const 0)
- )
- (block
- (set_local $38
- (get_local $7)
- )
- (set_local $12
- (i32.const 98)
- )
- (br $label$break$L308)
+ (get_local $6)
)
)
- (set_local $8
- (i32.add
- (get_local $8)
- (i32.const 4)
- )
+ (get_local $1)
+ )
+ (block
+ (set_local $6
+ (get_local $1)
)
- (if
- (i32.gt_s
- (tee_local $1
- (i32.add
- (tee_local $5
- (call $_wctomb
- (get_local $63)
- (get_local $1)
- )
- )
- (get_local $6)
- )
- )
- (get_local $7)
- )
- (block
- (set_local $38
- (get_local $7)
- )
- (set_local $12
- (i32.const 98)
- )
- (br $label$break$L308)
- )
- )
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (call $___fwritex
- (get_local $63)
- (get_local $5)
+ (br $jumpthreading$inner$6)
+ )
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
(get_local $0)
)
+ (i32.const 32)
)
- (if
- (i32.lt_u
- (get_local $1)
- (get_local $7)
- )
- (set_local $6
- (get_local $1)
- )
- (block
- (set_local $38
- (get_local $7)
- )
- (set_local $12
- (i32.const 98)
- )
- (br $while-out$133)
- )
- )
- (br $while-in$134)
)
+ (drop
+ (call $___fwritex
+ (get_local $41)
+ (get_local $8)
+ (get_local $0)
+ )
+ )
+ )
+ (br_if $while-in$134
+ (i32.lt_u
+ (get_local $6)
+ (get_local $1)
+ )
+ )
+ (block
+ (set_local $6
+ (get_local $1)
+ )
+ (br $jumpthreading$inner$6)
+ )
+ )
+ )
+ (block
+ (set_local $6
+ (i32.const 0)
+ )
+ (br $jumpthreading$inner$6)
+ )
+ )
+ (br $jumpthreading$outer$7)
+ )
+ (set_local $28
+ (i32.const 0)
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $17)
+ (get_local $6)
+ (i32.xor
+ (get_local $10)
+ (i32.const 8192)
+ )
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (set_local $5
+ (select
+ (get_local $17)
+ (get_local $6)
+ (i32.gt_s
+ (get_local $17)
+ (get_local $6)
+ )
+ )
+ )
+ (br $label$continue$L1)
+ )
+ (set_local $28
+ (i32.const 0)
+ )
+ (set_local $10
+ (select
+ (i32.and
+ (get_local $1)
+ (i32.const -65537)
+ )
+ (get_local $1)
+ (i32.gt_s
+ (get_local $7)
+ (i32.const -1)
+ )
+ )
+ )
+ (set_local $6
+ (if
+ (i32.or
+ (i32.ne
+ (get_local $7)
+ (i32.const 0)
+ )
+ (tee_local $1
+ (i32.or
+ (i32.ne
+ (i32.load
+ (tee_local $1
+ (get_local $18)
+ )
+ )
+ (i32.const 0)
+ )
+ (i32.ne
+ (i32.load offset=4
+ (get_local $1)
+ )
+ (i32.const 0)
)
)
)
)
+ (block
+ (set_local $11
+ (select
+ (get_local $7)
+ (tee_local $1
+ (i32.add
+ (i32.xor
+ (i32.and
+ (get_local $1)
+ (i32.const 1)
+ )
+ (i32.const 1)
+ )
+ (i32.sub
+ (get_local $45)
+ (get_local $6)
+ )
+ )
+ )
+ (i32.gt_s
+ (get_local $7)
+ (get_local $1)
+ )
+ )
+ )
+ (set_local $1
+ (get_local $23)
+ )
+ (get_local $6)
+ )
+ (block
+ (set_local $11
+ (i32.const 0)
+ )
+ (set_local $1
+ (get_local $23)
+ )
+ (get_local $23)
+ )
)
)
)
- )
- )
- (if
- (i32.eq
- (get_local $12)
- (i32.const 98)
- )
- (block
- (set_local $12
- (i32.const 0)
- )
(call $_pad
(get_local $0)
(i32.const 32)
- (get_local $16)
- (get_local $38)
- (i32.xor
- (get_local $18)
- (i32.const 8192)
- )
- )
- (set_local $20
- (get_local $9)
- )
- (set_local $1
- (select
- (get_local $16)
- (get_local $38)
- (i32.gt_s
- (get_local $16)
- (get_local $38)
- )
- )
- )
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
- )
- )
- (if
- (i32.eq
- (get_local $12)
- (i32.const 77)
- )
- (block
- (set_local $12
- (i32.const 0)
- )
- (set_local $5
- (select
- (i32.and
- (get_local $34)
- (i32.const -65537)
- )
- (get_local $34)
- (i32.gt_s
- (get_local $32)
- (i32.const -1)
- )
- )
- )
- (set_local $47
- (if
- (i32.or
- (i32.ne
- (get_local $32)
- (i32.const 0)
- )
+ (tee_local $7
+ (select
(tee_local $1
- (i32.or
- (i32.ne
- (i32.load
- (tee_local $1
- (get_local $19)
- )
- )
- (i32.const 0)
- )
- (i32.ne
- (i32.load offset=4
- (get_local $1)
- )
- (i32.const 0)
- )
- )
- )
- )
- (block
- (set_local $7
- (i32.gt_s
- (get_local $32)
- (tee_local $1
- (i32.add
- (i32.xor
- (i32.and
+ (i32.add
+ (get_local $8)
+ (tee_local $11
+ (select
+ (tee_local $12
+ (i32.sub
(get_local $1)
- (i32.const 1)
+ (get_local $6)
)
- (i32.const 1)
)
- (i32.sub
- (get_local $71)
- (get_local $58)
+ (get_local $11)
+ (i32.lt_s
+ (get_local $11)
+ (get_local $12)
)
)
)
)
)
- (set_local $37
- (get_local $5)
- )
- (set_local $42
- (select
- (get_local $32)
- (get_local $1)
- (get_local $7)
- )
- )
- (set_local $43
- (get_local $35)
- )
- (set_local $48
- (get_local $36)
- )
- (set_local $49
- (get_local $28)
- )
- (get_local $58)
- )
- (block
- (set_local $37
- (get_local $5)
- )
- (set_local $42
- (i32.const 0)
- )
- (set_local $43
- (get_local $35)
- )
- (set_local $48
- (get_local $36)
- )
- (set_local $49
- (get_local $28)
- )
- (get_local $28)
- )
- )
- )
- )
- )
- (set_local $1
- (i32.lt_s
- (get_local $42)
- (tee_local $7
- (i32.sub
- (get_local $49)
- (get_local $47)
- )
- )
- )
- )
- (set_local $5
- (i32.lt_s
- (get_local $16)
- (tee_local $1
- (i32.add
- (get_local $43)
- (tee_local $6
- (select
- (get_local $7)
- (get_local $42)
+ (get_local $17)
+ (i32.lt_s
+ (get_local $17)
(get_local $1)
)
)
)
- )
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (tee_local $5
- (select
(get_local $1)
- (get_local $16)
+ (get_local $10)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $9)
+ (get_local $8)
+ (get_local $0)
+ )
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 48)
+ (get_local $7)
+ (get_local $1)
+ (i32.xor
+ (get_local $10)
+ (i32.const 65536)
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 48)
+ (get_local $11)
+ (get_local $12)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $6)
+ (get_local $12)
+ (get_local $0)
+ )
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $7)
+ (get_local $1)
+ (i32.xor
+ (get_local $10)
+ (i32.const 8192)
+ )
+ )
+ (set_local $1
(get_local $5)
)
- )
- (get_local $1)
- (get_local $37)
- )
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
+ (set_local $5
+ (get_local $7)
)
- (i32.const 0)
- )
- (call $___fwritex
- (get_local $48)
- (get_local $43)
- (get_local $0)
+ (br $label$continue$L1)
)
)
- (call $_pad
- (get_local $0)
- (i32.const 48)
- (get_local $5)
- (get_local $1)
- (i32.xor
- (get_local $37)
- (i32.const 65536)
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 48)
- (get_local $6)
- (get_local $7)
- (i32.const 0)
- )
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (call $___fwritex
- (get_local $47)
- (get_local $7)
- (get_local $0)
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $5)
- (get_local $1)
- (i32.xor
- (get_local $37)
- (i32.const 8192)
- )
- )
- (set_local $20
- (get_local $9)
- )
- (set_local $1
- (get_local $5)
- )
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
+ (br $label$break$L343)
)
- )
- (block $label$break$L343
(if
- (i32.eq
- (get_local $12)
- (i32.const 242)
+ (i32.eqz
+ (get_local $0)
)
(if
- (i32.eq
- (get_local $0)
- (i32.const 0)
- )
- (if
- (i32.eq
- (get_local $83)
- (i32.const 0)
+ (get_local $13)
+ (block
+ (set_local $0
+ (i32.const 1)
)
- (set_local $24
- (i32.const 0)
- )
- (block
- (set_local $1
- (i32.const 1)
- )
- (loop $while-in$137
- (block $while-out$136
- (br_if $while-out$136
- (i32.eq
- (tee_local $0
- (i32.load
- (i32.add
- (get_local $4)
- (i32.shl
- (get_local $1)
- (i32.const 2)
- )
- )
- )
- )
- (i32.const 0)
- )
- )
- (call $_pop_arg_336
- (i32.add
- (get_local $3)
- (i32.shl
- (get_local $1)
- (i32.const 3)
- )
- )
- (get_local $0)
- (get_local $2)
- )
- (if
- (i32.ge_s
- (tee_local $1
+ (loop $while-in$137
+ (block $while-out$136
+ (br_if $while-out$136
+ (i32.eqz
+ (tee_local $1
+ (i32.load
(i32.add
- (get_local $1)
- (i32.const 1)
- )
- )
- (i32.const 10)
- )
- (block
- (set_local $24
- (i32.const 1)
- )
- (br $label$break$L343)
- )
- )
- (br $while-in$137)
- )
- )
- (if
- (i32.lt_s
- (get_local $1)
- (i32.const 10)
- )
- (loop $while-in$139
- (block $while-out$138
- (set_local $0
- (i32.add
- (get_local $1)
- (i32.const 1)
- )
- )
- (if
- (i32.ne
- (i32.load
- (i32.add
- (get_local $4)
- (i32.shl
- (get_local $1)
- (i32.const 2)
- )
+ (get_local $4)
+ (i32.shl
+ (get_local $0)
+ (i32.const 2)
)
)
- (i32.const 0)
- )
- (block
- (set_local $24
- (i32.const -1)
- )
- (br $label$break$L343)
)
)
- (if
- (i32.lt_s
+ )
+ )
+ (call $_pop_arg_336
+ (i32.add
+ (get_local $3)
+ (i32.shl
+ (get_local $0)
+ (i32.const 3)
+ )
+ )
+ (get_local $1)
+ (get_local $2)
+ )
+ (br_if $while-in$137
+ (i32.lt_s
+ (tee_local $0
+ (i32.add
(get_local $0)
- (i32.const 10)
+ (i32.const 1)
)
- (set_local $1
+ )
+ (i32.const 10)
+ )
+ )
+ (block
+ (set_local $15
+ (i32.const 1)
+ )
+ (br $label$break$L343)
+ )
+ )
+ )
+ (if
+ (i32.lt_s
+ (get_local $0)
+ (i32.const 10)
+ )
+ (loop $while-in$139
+ (set_local $1
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ (if
+ (i32.load
+ (i32.add
+ (get_local $4)
+ (i32.shl
(get_local $0)
+ (i32.const 2)
)
- (block
- (set_local $24
- (i32.const 1)
- )
- (br $while-out$138)
- )
+ )
+ )
+ (block
+ (set_local $15
+ (i32.const -1)
+ )
+ (br $label$break$L343)
+ )
+ )
+ (if
+ (i32.lt_s
+ (get_local $1)
+ (i32.const 10)
+ )
+ (block
+ (set_local $0
+ (get_local $1)
)
(br $while-in$139)
)
+ (set_local $15
+ (i32.const 1)
+ )
)
- (set_local $24
- (i32.const 1)
- )
+ )
+ (set_local $15
+ (i32.const 1)
)
)
)
- (set_local $24
- (get_local $82)
+ (set_local $15
+ (i32.const 0)
)
)
)
)
(set_global $STACKTOP
- (get_local $31)
+ (get_local $27)
)
- (get_local $24)
+ (get_local $15)
)
(func $_pop_arg_336 (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
@@ -8760,22 +7708,27 @@
(i32.const 4)
)
)
- (set_local $2
+ (i32.store
+ (get_local $0)
+ (tee_local $1
+ (i32.shr_s
+ (i32.shl
+ (i32.and
+ (get_local $3)
+ (i32.const 65535)
+ )
+ (i32.const 16)
+ )
+ (i32.const 16)
+ )
+ )
+ )
+ (i32.store offset=4
+ (get_local $0)
(i32.shr_s
(i32.shl
(i32.lt_s
- (tee_local $1
- (i32.shr_s
- (i32.shl
- (i32.and
- (get_local $3)
- (i32.const 65535)
- )
- (i32.const 16)
- )
- (i32.const 16)
- )
- )
+ (get_local $1)
(i32.const 0)
)
(i32.const 31)
@@ -8783,14 +7736,6 @@
(i32.const 31)
)
)
- (i32.store
- (get_local $0)
- (get_local $1)
- )
- (i32.store offset=4
- (get_local $0)
- (get_local $2)
- )
(br $label$break$L1)
)
(set_local $3
@@ -8850,22 +7795,27 @@
(i32.const 4)
)
)
- (set_local $2
+ (i32.store
+ (get_local $0)
+ (tee_local $1
+ (i32.shr_s
+ (i32.shl
+ (i32.and
+ (get_local $3)
+ (i32.const 255)
+ )
+ (i32.const 24)
+ )
+ (i32.const 24)
+ )
+ )
+ )
+ (i32.store offset=4
+ (get_local $0)
(i32.shr_s
(i32.shl
(i32.lt_s
- (tee_local $1
- (i32.shr_s
- (i32.shl
- (i32.and
- (get_local $3)
- (i32.const 255)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- )
+ (get_local $1)
(i32.const 0)
)
(i32.const 31)
@@ -8873,14 +7823,6 @@
(i32.const 31)
)
)
- (i32.store
- (get_local $0)
- (get_local $1)
- )
- (i32.store offset=4
- (get_local $0)
- (get_local $2)
- )
(br $label$break$L1)
)
(set_local $3
@@ -8979,7 +7921,7 @@
(func $_fmt_u (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
- (set_local $0
+ (set_local $1
(if
(i32.or
(i32.gt_u
@@ -8987,9 +7929,8 @@
(i32.const 0)
)
(i32.and
- (i32.eq
+ (i32.eqz
(get_local $1)
- (i32.const 0)
)
(i32.gt_u
(get_local $0)
@@ -8998,151 +7939,129 @@
)
)
(block
- (set_local $3
- (get_local $0)
- )
- (set_local $4
- (get_local $1)
- )
(loop $while-in$1
- (block $while-out$0
- (set_local $0
- (call $___uremdi3
- (get_local $3)
- (get_local $4)
- (i32.const 10)
- (i32.const 0)
- )
+ (set_local $3
+ (call $___uremdi3
+ (get_local $0)
+ (get_local $1)
+ (i32.const 10)
+ (i32.const 0)
)
- (i32.store8
- (tee_local $2
- (i32.add
- (get_local $2)
- (i32.const -1)
- )
- )
- (i32.and
- (i32.or
- (get_local $0)
- (i32.const 48)
- )
- (i32.const 255)
- )
- )
- (set_local $0
- (call $___udivdi3
- (get_local $3)
- (get_local $4)
- (i32.const 10)
- (i32.const 0)
- )
- )
- (set_local $1
- (get_global $tempRet0)
- )
- (if
- (i32.or
- (i32.gt_u
- (get_local $4)
- (i32.const 9)
- )
- (i32.and
- (i32.eq
- (get_local $4)
- (i32.const 9)
- )
- (i32.gt_u
- (get_local $3)
- (i32.const -1)
- )
- )
- )
- (block
- (set_local $3
- (get_local $0)
- )
- (set_local $4
- (get_local $1)
- )
- )
- (br $while-out$0)
- )
- (br $while-in$1)
)
- )
- (set_local $3
- (get_local $0)
- )
- (get_local $2)
- )
- (block
- (set_local $3
- (get_local $0)
- )
- (get_local $2)
- )
- )
- )
- (if
- (i32.ne
- (get_local $3)
- (i32.const 0)
- )
- (block
- (set_local $1
- (get_local $0)
- )
- (loop $while-in$3
- (block $while-out$2
(i32.store8
- (tee_local $1
+ (tee_local $2
(i32.add
- (get_local $1)
+ (get_local $2)
(i32.const -1)
)
)
(i32.and
(i32.or
- (i32.and
- (call_import $i32u-rem
- (get_local $3)
- (i32.const 10)
- )
- (i32.const -1)
- )
+ (get_local $3)
(i32.const 48)
)
(i32.const 255)
)
)
- (set_local $0
- (i32.and
- (call_import $i32u-div
+ (set_local $3
+ (call $___udivdi3
+ (get_local $0)
+ (get_local $1)
+ (i32.const 10)
+ (i32.const 0)
+ )
+ )
+ (set_local $4
+ (get_global $tempRet0)
+ )
+ (if
+ (i32.or
+ (i32.gt_u
+ (get_local $1)
+ (i32.const 9)
+ )
+ (i32.and
+ (i32.eq
+ (get_local $1)
+ (i32.const 9)
+ )
+ (i32.gt_u
+ (get_local $0)
+ (i32.const -1)
+ )
+ )
+ )
+ (block
+ (set_local $0
(get_local $3)
+ )
+ (set_local $1
+ (get_local $4)
+ )
+ (br $while-in$1)
+ )
+ (set_local $0
+ (get_local $3)
+ )
+ )
+ )
+ (get_local $2)
+ )
+ (get_local $2)
+ )
+ )
+ (if
+ (get_local $0)
+ (loop $while-in$3
+ (i32.store8
+ (tee_local $1
+ (i32.add
+ (get_local $1)
+ (i32.const -1)
+ )
+ )
+ (i32.and
+ (i32.or
+ (i32.and
+ (call_import $i32u-rem
+ (get_local $0)
(i32.const 10)
)
(i32.const -1)
)
+ (i32.const 48)
)
- (if
- (i32.lt_u
- (get_local $3)
- (i32.const 10)
- )
- (block
- (set_local $0
- (get_local $1)
- )
- (br $while-out$2)
- )
- (set_local $3
- (get_local $0)
- )
+ (i32.const 255)
+ )
+ )
+ (set_local $2
+ (i32.and
+ (call_import $i32u-div
+ (get_local $0)
+ (i32.const 10)
+ )
+ (i32.const -1)
+ )
+ )
+ (if
+ (i32.lt_u
+ (get_local $0)
+ (i32.const 10)
+ )
+ (set_local $0
+ (get_local $1)
+ )
+ (block
+ (set_local $0
+ (get_local $2)
)
(br $while-in$3)
)
)
)
+ (set_local $0
+ (get_local $1)
+ )
)
(get_local $0)
)
@@ -9150,7 +8069,8 @@
(local $5 i32)
(local $6 i32)
(local $7 i32)
- (set_local $7
+ (local $8 i32)
+ (set_local $6
(get_global $STACKTOP)
)
(set_global $STACKTOP
@@ -9166,8 +8086,8 @@
)
(call_import $abort)
)
- (set_local $6
- (get_local $7)
+ (set_local $5
+ (get_local $6)
)
(block $do-once$0
(if
@@ -9176,39 +8096,35 @@
(get_local $2)
(get_local $3)
)
- (i32.eq
+ (i32.eqz
(i32.and
(get_local $4)
(i32.const 73728)
)
- (i32.const 0)
)
)
(block
- (set_local $4
- (i32.gt_u
- (tee_local $5
- (i32.sub
- (get_local $2)
- (get_local $3)
- )
- )
- (i32.const 256)
- )
- )
(drop
(call $_memset
- (get_local $6)
+ (get_local $5)
(get_local $1)
(select
(i32.const 256)
- (get_local $5)
- (get_local $4)
+ (tee_local $4
+ (i32.sub
+ (get_local $2)
+ (get_local $3)
+ )
+ )
+ (i32.gt_u
+ (get_local $4)
+ (i32.const 256)
+ )
)
)
)
- (set_local $4
- (i32.eq
+ (set_local $7
+ (i32.eqz
(i32.and
(tee_local $1
(i32.load
@@ -9217,89 +8133,87 @@
)
(i32.const 32)
)
- (i32.const 0)
)
)
(if
(i32.gt_u
- (get_local $5)
+ (get_local $4)
(i32.const 255)
)
(block
- (set_local $2
+ (set_local $8
(i32.sub
(get_local $2)
(get_local $3)
)
)
+ (set_local $2
+ (get_local $4)
+ )
(set_local $3
- (get_local $5)
+ (get_local $7)
)
(loop $while-in$3
- (block $while-out$2
- (set_local $4
- (i32.eq
- (i32.and
- (tee_local $1
- (if
- (get_local $4)
- (block
- (drop
- (call $___fwritex
- (get_local $6)
- (i32.const 256)
- (get_local $0)
- )
- )
- (i32.load
+ (set_local $3
+ (i32.eqz
+ (i32.and
+ (tee_local $1
+ (if
+ (get_local $3)
+ (block
+ (drop
+ (call $___fwritex
+ (get_local $5)
+ (i32.const 256)
(get_local $0)
)
)
- (get_local $1)
+ (i32.load
+ (get_local $0)
+ )
)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- )
- (br_if $while-out$2
- (i32.le_u
- (tee_local $3
- (i32.add
- (get_local $3)
- (i32.const -256)
+ (get_local $1)
)
)
- (i32.const 255)
+ (i32.const 32)
)
)
- (br $while-in$3)
+ )
+ (br_if $while-in$3
+ (i32.gt_u
+ (tee_local $2
+ (i32.add
+ (get_local $2)
+ (i32.const -256)
+ )
+ )
+ (i32.const 255)
+ )
)
)
(set_local $1
(i32.and
- (get_local $2)
+ (get_local $8)
(i32.const 255)
)
)
(br_if $do-once$0
(i32.eqz
- (get_local $4)
+ (get_local $3)
)
)
)
(if
- (get_local $4)
+ (get_local $7)
(set_local $1
- (get_local $5)
+ (get_local $4)
)
(br $do-once$0)
)
)
(drop
(call $___fwritex
- (get_local $6)
+ (get_local $5)
(get_local $1)
(get_local $0)
)
@@ -9308,7 +8222,7 @@
)
)
(set_global $STACKTOP
- (get_local $7)
+ (get_local $6)
)
)
(func $_malloc (param $0 i32) (result i32)
@@ -9336,28 +8250,6 @@
(local $22 i32)
(local $23 i32)
(local $24 i32)
- (local $25 i32)
- (local $26 i32)
- (local $27 i32)
- (local $28 i32)
- (local $29 i32)
- (local $30 i32)
- (local $31 i32)
- (local $32 i32)
- (local $33 i32)
- (local $34 i32)
- (local $35 i32)
- (local $36 i32)
- (local $37 i32)
- (local $38 i32)
- (local $39 i32)
- (local $40 i32)
- (local $41 i32)
- (local $42 i32)
- (local $43 i32)
- (local $44 i32)
- (local $45 i32)
- (local $46 i32)
(block $do-once$0
(if
(i32.lt_u
@@ -9366,66 +8258,63 @@
)
(block
(if
- (i32.ne
- (i32.and
- (tee_local $25
- (i32.shr_u
- (tee_local $4
- (i32.load
- (i32.const 176)
- )
+ (i32.and
+ (tee_local $1
+ (i32.shr_u
+ (tee_local $10
+ (i32.load
+ (i32.const 176)
)
- (tee_local $22
- (i32.shr_u
- (tee_local $6
- (select
- (i32.const 16)
- (i32.and
- (i32.add
- (get_local $0)
- (i32.const 11)
- )
- (i32.const -8)
- )
- (i32.lt_u
+ )
+ (tee_local $4
+ (i32.shr_u
+ (tee_local $3
+ (select
+ (i32.const 16)
+ (i32.and
+ (i32.add
(get_local $0)
(i32.const 11)
)
+ (i32.const -8)
+ )
+ (i32.lt_u
+ (get_local $0)
+ (i32.const 11)
)
)
- (i32.const 3)
)
+ (i32.const 3)
)
)
)
- (i32.const 3)
)
- (i32.const 0)
+ (i32.const 3)
)
(block
- (set_local $2
+ (set_local $4
(i32.load
- (tee_local $3
+ (tee_local $1
(i32.add
- (tee_local $1
+ (tee_local $5
(i32.load
- (tee_local $0
+ (tee_local $9
(i32.add
- (tee_local $9
+ (tee_local $2
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (tee_local $8
+ (tee_local $3
(i32.add
(i32.xor
(i32.and
- (get_local $25)
+ (get_local $1)
(i32.const 1)
)
(i32.const 1)
)
- (get_local $22)
+ (get_local $4)
)
)
(i32.const 1)
@@ -9446,17 +8335,17 @@
)
(if
(i32.eq
- (get_local $9)
(get_local $2)
+ (get_local $4)
)
(i32.store
(i32.const 176)
(i32.and
- (get_local $4)
+ (get_local $10)
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $8)
+ (get_local $3)
)
(i32.const -1)
)
@@ -9465,7 +8354,7 @@
(block
(if
(i32.lt_u
- (get_local $2)
+ (get_local $4)
(i32.load
(i32.const 192)
)
@@ -9475,70 +8364,67 @@
(if
(i32.eq
(i32.load
- (tee_local $4
+ (tee_local $0
(i32.add
- (get_local $2)
+ (get_local $4)
(i32.const 12)
)
)
)
- (get_local $1)
+ (get_local $5)
)
(block
(i32.store
- (get_local $4)
- (get_local $9)
- )
- (i32.store
(get_local $0)
(get_local $2)
)
+ (i32.store
+ (get_local $9)
+ (get_local $4)
+ )
)
(call_import $_abort)
)
)
)
(i32.store offset=4
- (get_local $1)
+ (get_local $5)
(i32.or
(tee_local $0
(i32.shl
- (get_local $8)
+ (get_local $3)
(i32.const 3)
)
)
(i32.const 3)
)
)
- (set_local $1
+ (i32.store
+ (tee_local $0
+ (i32.add
+ (i32.add
+ (get_local $5)
+ (get_local $0)
+ )
+ (i32.const 4)
+ )
+ )
(i32.or
(i32.load
- (tee_local $0
- (i32.add
- (i32.add
- (get_local $1)
- (get_local $0)
- )
- (i32.const 4)
- )
- )
+ (get_local $0)
)
(i32.const 1)
)
)
- (i32.store
- (get_local $0)
- (get_local $1)
- )
(return
- (get_local $3)
+ (get_local $1)
)
)
)
(if
(i32.gt_u
- (get_local $6)
- (tee_local $10
+ (get_local $3)
+ (tee_local $0
(i32.load
(i32.const 184)
)
@@ -9546,47 +8432,38 @@
)
(block
(if
- (i32.ne
- (get_local $25)
- (i32.const 0)
- )
+ (get_local $1)
(block
- (set_local $1
- (i32.sub
- (i32.const 0)
- (tee_local $0
- (i32.shl
- (i32.const 2)
- (get_local $22)
- )
- )
- )
- )
- (set_local $1
- (i32.sub
- (i32.const 0)
- (tee_local $0
- (i32.and
- (i32.shl
- (get_local $25)
- (get_local $22)
- )
- (i32.or
- (get_local $0)
- (get_local $1)
- )
- )
- )
- )
- )
- (set_local $0
+ (set_local $5
(i32.and
(i32.shr_u
(tee_local $1
(i32.add
(i32.and
- (get_local $0)
- (get_local $1)
+ (tee_local $1
+ (i32.and
+ (i32.shl
+ (get_local $1)
+ (get_local $4)
+ )
+ (i32.or
+ (tee_local $1
+ (i32.shl
+ (i32.const 2)
+ (get_local $4)
+ )
+ )
+ (i32.sub
+ (i32.const 0)
+ (get_local $1)
+ )
+ )
+ )
+ )
+ (i32.sub
+ (i32.const 0)
+ (get_local $1)
+ )
)
(i32.const -1)
)
@@ -9596,32 +8473,32 @@
(i32.const 16)
)
)
- (set_local $0
+ (set_local $7
(i32.load
- (tee_local $3
+ (tee_local $5
(i32.add
- (tee_local $2
+ (tee_local $9
(i32.load
- (tee_local $1
+ (tee_local $6
(i32.add
- (tee_local $9
+ (tee_local $1
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (tee_local $8
+ (tee_local $4
(i32.add
(i32.or
(i32.or
(i32.or
(i32.or
- (tee_local $1
+ (tee_local $4
(i32.and
(i32.shr_u
- (tee_local $2
+ (tee_local $1
(i32.shr_u
(get_local $1)
- (get_local $0)
+ (get_local $5)
)
)
(i32.const 5)
@@ -9629,15 +8506,15 @@
(i32.const 8)
)
)
- (get_local $0)
+ (get_local $5)
)
- (tee_local $0
+ (tee_local $4
(i32.and
(i32.shr_u
(tee_local $1
(i32.shr_u
- (get_local $2)
(get_local $1)
+ (get_local $4)
)
)
(i32.const 2)
@@ -9646,13 +8523,13 @@
)
)
)
- (tee_local $0
+ (tee_local $4
(i32.and
(i32.shr_u
(tee_local $1
(i32.shr_u
(get_local $1)
- (get_local $0)
+ (get_local $4)
)
)
(i32.const 1)
@@ -9661,13 +8538,13 @@
)
)
)
- (tee_local $0
+ (tee_local $4
(i32.and
(i32.shr_u
(tee_local $1
(i32.shr_u
(get_local $1)
- (get_local $0)
+ (get_local $4)
)
)
(i32.const 1)
@@ -9678,7 +8555,7 @@
)
(i32.shr_u
(get_local $1)
- (get_local $0)
+ (get_local $4)
)
)
)
@@ -9700,31 +8577,31 @@
)
(if
(i32.eq
- (get_local $9)
- (get_local $0)
+ (get_local $1)
+ (get_local $7)
)
(block
(i32.store
(i32.const 176)
(i32.and
- (get_local $4)
+ (get_local $10)
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $8)
+ (get_local $4)
)
(i32.const -1)
)
)
)
- (set_local $7
- (get_local $10)
+ (set_local $8
+ (get_local $0)
)
)
(block
(if
(i32.lt_u
- (get_local $0)
+ (get_local $7)
(i32.load
(i32.const 192)
)
@@ -9734,25 +8611,25 @@
(if
(i32.eq
(i32.load
- (tee_local $4
+ (tee_local $0
(i32.add
- (get_local $0)
+ (get_local $7)
(i32.const 12)
)
)
)
- (get_local $2)
+ (get_local $9)
)
(block
(i32.store
- (get_local $4)
- (get_local $9)
+ (get_local $0)
+ (get_local $1)
)
(i32.store
- (get_local $1)
- (get_local $0)
+ (get_local $6)
+ (get_local $7)
)
- (set_local $7
+ (set_local $8
(i32.load
(i32.const 184)
)
@@ -9763,27 +8640,27 @@
)
)
(i32.store offset=4
- (get_local $2)
+ (get_local $9)
(i32.or
- (get_local $6)
+ (get_local $3)
(i32.const 3)
)
)
(i32.store offset=4
- (tee_local $4
+ (tee_local $9
(i32.add
- (get_local $2)
- (get_local $6)
+ (get_local $9)
+ (get_local $3)
)
)
(i32.or
- (tee_local $9
+ (tee_local $4
(i32.sub
(i32.shl
- (get_local $8)
+ (get_local $4)
(i32.const 3)
)
- (get_local $6)
+ (get_local $3)
)
)
(i32.const 1)
@@ -9791,30 +8668,27 @@
)
(i32.store
(i32.add
- (get_local $4)
(get_local $9)
+ (get_local $4)
)
- (get_local $9)
+ (get_local $4)
)
(if
- (i32.ne
- (get_local $7)
- (i32.const 0)
- )
+ (get_local $8)
(block
- (set_local $0
+ (set_local $6
(i32.load
(i32.const 196)
)
)
- (set_local $8
+ (set_local $0
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (tee_local $2
+ (tee_local $1
(i32.shr_u
- (get_local $7)
+ (get_local $8)
(i32.const 3)
)
)
@@ -9825,47 +8699,26 @@
)
)
(if
- (i32.eq
- (i32.and
- (tee_local $1
- (i32.load
- (i32.const 176)
- )
- )
- (tee_local $2
- (i32.shl
- (i32.const 1)
- (get_local $2)
- )
+ (i32.and
+ (tee_local $3
+ (i32.load
+ (i32.const 176)
)
)
- (i32.const 0)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
+ (tee_local $1
+ (i32.shl
+ (i32.const 1)
(get_local $1)
- (get_local $2)
)
)
- (set_local $5
- (i32.add
- (get_local $8)
- (i32.const 8)
- )
- )
- (set_local $12
- (get_local $8)
- )
)
(if
(i32.lt_u
- (tee_local $2
+ (tee_local $1
(i32.load
- (tee_local $1
+ (tee_local $3
(i32.add
- (get_local $8)
+ (get_local $0)
(i32.const 8)
)
)
@@ -9877,60 +8730,75 @@
)
(call_import $_abort)
(block
- (set_local $5
+ (set_local $12
+ (get_local $3)
+ )
+ (set_local $2
(get_local $1)
)
- (set_local $12
- (get_local $2)
+ )
+ )
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (get_local $3)
+ (get_local $1)
)
)
+ (set_local $12
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ )
+ (set_local $2
+ (get_local $0)
+ )
)
)
(i32.store
- (get_local $5)
- (get_local $0)
+ (get_local $12)
+ (get_local $6)
)
(i32.store offset=12
- (get_local $12)
- (get_local $0)
+ (get_local $2)
+ (get_local $6)
)
(i32.store offset=8
- (get_local $0)
- (get_local $12)
+ (get_local $6)
+ (get_local $2)
)
(i32.store offset=12
+ (get_local $6)
(get_local $0)
- (get_local $8)
)
)
)
(i32.store
(i32.const 184)
- (get_local $9)
+ (get_local $4)
)
(i32.store
(i32.const 196)
- (get_local $4)
+ (get_local $9)
)
(return
- (get_local $3)
+ (get_local $5)
)
)
)
(if
- (i32.ne
- (tee_local $0
- (i32.load
- (i32.const 180)
- )
+ (tee_local $0
+ (i32.load
+ (i32.const 180)
)
- (i32.const 0)
)
(block
- (set_local $0
+ (set_local $2
(i32.and
(i32.shr_u
- (tee_local $1
+ (tee_local $0
(i32.add
(i32.and
(get_local $0)
@@ -9947,11 +8815,11 @@
(i32.const 16)
)
)
- (set_local $2
+ (set_local $4
(i32.sub
(i32.and
(i32.load offset=4
- (tee_local $0
+ (tee_local $1
(i32.load offset=480
(i32.shl
(i32.add
@@ -9962,10 +8830,10 @@
(tee_local $1
(i32.and
(i32.shr_u
- (tee_local $2
+ (tee_local $0
(i32.shr_u
- (get_local $1)
(get_local $0)
+ (get_local $2)
)
)
(i32.const 5)
@@ -9973,14 +8841,14 @@
(i32.const 8)
)
)
- (get_local $0)
+ (get_local $2)
)
- (tee_local $0
+ (tee_local $1
(i32.and
(i32.shr_u
- (tee_local $1
+ (tee_local $0
(i32.shr_u
- (get_local $2)
+ (get_local $0)
(get_local $1)
)
)
@@ -9990,13 +8858,13 @@
)
)
)
- (tee_local $0
+ (tee_local $1
(i32.and
(i32.shr_u
- (tee_local $1
+ (tee_local $0
(i32.shr_u
- (get_local $1)
(get_local $0)
+ (get_local $1)
)
)
(i32.const 1)
@@ -10005,13 +8873,13 @@
)
)
)
- (tee_local $0
+ (tee_local $1
(i32.and
(i32.shr_u
- (tee_local $1
+ (tee_local $0
(i32.shr_u
- (get_local $1)
(get_local $0)
+ (get_local $1)
)
)
(i32.const 1)
@@ -10021,8 +8889,8 @@
)
)
(i32.shr_u
- (get_local $1)
(get_local $0)
+ (get_local $1)
)
)
(i32.const 2)
@@ -10032,83 +8900,69 @@
)
(i32.const -8)
)
- (get_local $6)
+ (get_local $3)
)
)
- (set_local $4
- (get_local $0)
- )
- (set_local $8
- (get_local $0)
+ (set_local $2
+ (get_local $1)
)
(loop $while-in$7
(block $while-out$6
(if
- (i32.eq
+ (i32.eqz
(tee_local $0
(i32.load offset=16
- (get_local $4)
- )
- )
- (i32.const 0)
- )
- (if
- (i32.eq
- (tee_local $0
- (i32.load offset=20
- (get_local $4)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $7
(get_local $2)
)
- (set_local $10
- (get_local $8)
+ )
+ )
+ (if
+ (i32.eqz
+ (tee_local $0
+ (i32.load offset=20
+ (get_local $2)
+ )
+ )
+ )
+ (block
+ (set_local $2
+ (get_local $1)
)
(br $while-out$6)
)
- (set_local $1
- (get_local $0)
- )
- )
- (set_local $1
- (get_local $0)
)
)
- (set_local $0
+ (set_local $6
(i32.lt_u
- (tee_local $4
+ (tee_local $2
(i32.sub
(i32.and
(i32.load offset=4
- (get_local $1)
+ (get_local $0)
)
(i32.const -8)
)
- (get_local $6)
+ (get_local $3)
)
)
- (get_local $2)
- )
- )
- (set_local $2
- (select
(get_local $4)
- (get_local $2)
- (get_local $0)
)
)
(set_local $4
- (get_local $1)
- )
- (set_local $8
(select
- (get_local $1)
- (get_local $8)
+ (get_local $2)
+ (get_local $4)
+ (get_local $6)
+ )
+ )
+ (set_local $2
+ (get_local $0)
+ )
+ (set_local $1
+ (select
(get_local $0)
+ (get_local $1)
+ (get_local $6)
)
)
(br $while-in$7)
@@ -10116,8 +8970,8 @@
)
(if
(i32.lt_u
- (get_local $10)
- (tee_local $0
+ (get_local $2)
+ (tee_local $10
(i32.load
(i32.const 192)
)
@@ -10127,140 +8981,123 @@
)
(if
(i32.ge_u
- (get_local $10)
- (tee_local $9
+ (get_local $2)
+ (tee_local $7
(i32.add
- (get_local $10)
- (get_local $6)
+ (get_local $2)
+ (get_local $3)
)
)
)
(call_import $_abort)
)
- (set_local $1
+ (set_local $11
(i32.load offset=24
- (get_local $10)
+ (get_local $2)
)
)
(block $do-once$8
(if
(i32.eq
- (tee_local $2
+ (tee_local $0
(i32.load offset=12
- (get_local $10)
+ (get_local $2)
)
)
- (get_local $10)
+ (get_local $2)
)
(block
(if
- (i32.eq
- (tee_local $2
+ (i32.eqz
+ (tee_local $1
(i32.load
- (tee_local $8
+ (tee_local $0
(i32.add
- (get_local $10)
+ (get_local $2)
(i32.const 20)
)
)
)
)
- (i32.const 0)
)
(if
- (i32.eq
- (tee_local $2
+ (i32.eqz
+ (tee_local $1
(i32.load
- (tee_local $8
+ (tee_local $0
(i32.add
- (get_local $10)
+ (get_local $2)
(i32.const 16)
)
)
)
)
- (i32.const 0)
)
(block
- (set_local $15
+ (set_local $5
(i32.const 0)
)
(br $do-once$8)
)
- (set_local $4
- (get_local $2)
- )
- )
- (set_local $4
- (get_local $2)
)
)
(loop $while-in$11
- (block $while-out$10
- (if
- (i32.ne
- (tee_local $2
- (i32.load
- (tee_local $5
- (i32.add
- (get_local $4)
- (i32.const 20)
- )
- )
+ (if
+ (tee_local $8
+ (i32.load
+ (tee_local $6
+ (i32.add
+ (get_local $1)
+ (i32.const 20)
)
)
- (i32.const 0)
- )
- (block
- (set_local $4
- (get_local $2)
- )
- (set_local $8
- (get_local $5)
- )
- (br $while-in$11)
- )
- )
- (if
- (i32.eq
- (tee_local $2
- (i32.load
- (tee_local $5
- (i32.add
- (get_local $4)
- (i32.const 16)
- )
- )
- )
- )
- (i32.const 0)
- )
- (br $while-out$10)
- (block
- (set_local $4
- (get_local $2)
- )
- (set_local $8
- (get_local $5)
- )
)
)
- (br $while-in$11)
+ (block
+ (set_local $1
+ (get_local $8)
+ )
+ (set_local $0
+ (get_local $6)
+ )
+ (br $while-in$11)
+ )
+ )
+ (if
+ (tee_local $8
+ (i32.load
+ (tee_local $6
+ (i32.add
+ (get_local $1)
+ (i32.const 16)
+ )
+ )
+ )
+ )
+ (block
+ (set_local $1
+ (get_local $8)
+ )
+ (set_local $0
+ (get_local $6)
+ )
+ (br $while-in$11)
+ )
)
)
(if
(i32.lt_u
- (get_local $8)
(get_local $0)
+ (get_local $10)
)
(call_import $_abort)
(block
(i32.store
- (get_local $8)
+ (get_local $0)
(i32.const 0)
)
- (set_local $15
- (get_local $4)
+ (set_local $5
+ (get_local $1)
)
)
)
@@ -10268,52 +9105,52 @@
(block
(if
(i32.lt_u
- (tee_local $4
+ (tee_local $8
(i32.load offset=8
- (get_local $10)
+ (get_local $2)
)
)
- (get_local $0)
+ (get_local $10)
)
(call_import $_abort)
)
(if
(i32.ne
(i32.load
- (tee_local $0
+ (tee_local $6
(i32.add
- (get_local $4)
+ (get_local $8)
(i32.const 12)
)
)
)
- (get_local $10)
+ (get_local $2)
)
(call_import $_abort)
)
(if
(i32.eq
(i32.load
- (tee_local $8
+ (tee_local $1
(i32.add
- (get_local $2)
+ (get_local $0)
(i32.const 8)
)
)
)
- (get_local $10)
+ (get_local $2)
)
(block
(i32.store
+ (get_local $6)
(get_local $0)
- (get_local $2)
)
(i32.store
+ (get_local $1)
(get_local $8)
- (get_local $4)
)
- (set_local $15
- (get_local $2)
+ (set_local $5
+ (get_local $0)
)
)
(call_import $_abort)
@@ -10323,22 +9160,19 @@
)
(block $do-once$12
(if
- (i32.ne
- (get_local $1)
- (i32.const 0)
- )
+ (get_local $11)
(block
(if
(i32.eq
- (get_local $10)
+ (get_local $2)
(i32.load
- (tee_local $2
+ (tee_local $0
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $0
+ (tee_local $1
(i32.load offset=28
- (get_local $10)
+ (get_local $2)
)
)
(i32.const 2)
@@ -10349,13 +9183,12 @@
)
(block
(i32.store
- (get_local $2)
- (get_local $15)
+ (get_local $0)
+ (get_local $5)
)
(if
- (i32.eq
- (get_local $15)
- (i32.const 0)
+ (i32.eqz
+ (get_local $5)
)
(block
(i32.store
@@ -10367,7 +9200,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $0)
+ (get_local $1)
)
(i32.const -1)
)
@@ -10380,7 +9213,7 @@
(block
(if
(i32.lt_u
- (get_local $1)
+ (get_local $11)
(i32.load
(i32.const 192)
)
@@ -10392,34 +9225,33 @@
(i32.load
(tee_local $0
(i32.add
- (get_local $1)
+ (get_local $11)
(i32.const 16)
)
)
)
- (get_local $10)
+ (get_local $2)
)
(i32.store
(get_local $0)
- (get_local $15)
+ (get_local $5)
)
(i32.store offset=20
- (get_local $1)
- (get_local $15)
+ (get_local $11)
+ (get_local $5)
)
)
(br_if $do-once$12
- (i32.eq
- (get_local $15)
- (i32.const 0)
+ (i32.eqz
+ (get_local $5)
)
)
)
)
(if
(i32.lt_u
- (get_local $15)
- (tee_local $0
+ (get_local $5)
+ (tee_local $1
(i32.load
(i32.const 192)
)
@@ -10428,44 +9260,38 @@
(call_import $_abort)
)
(i32.store offset=24
- (get_local $15)
- (get_local $1)
+ (get_local $5)
+ (get_local $11)
)
(if
- (i32.ne
- (tee_local $1
- (i32.load offset=16
- (get_local $10)
- )
+ (tee_local $0
+ (i32.load offset=16
+ (get_local $2)
)
- (i32.const 0)
)
(if
(i32.lt_u
- (get_local $1)
(get_local $0)
+ (get_local $1)
)
(call_import $_abort)
(block
(i32.store offset=16
- (get_local $15)
- (get_local $1)
+ (get_local $5)
+ (get_local $0)
)
(i32.store offset=24
- (get_local $1)
- (get_local $15)
+ (get_local $0)
+ (get_local $5)
)
)
)
)
(if
- (i32.ne
- (tee_local $0
- (i32.load offset=20
- (get_local $10)
- )
+ (tee_local $0
+ (i32.load offset=20
+ (get_local $2)
)
- (i32.const 0)
)
(if
(i32.lt_u
@@ -10477,12 +9303,12 @@
(call_import $_abort)
(block
(i32.store offset=20
- (get_local $15)
+ (get_local $5)
(get_local $0)
)
(i32.store offset=24
(get_local $0)
- (get_local $15)
+ (get_local $5)
)
)
)
@@ -10492,86 +9318,80 @@
)
(if
(i32.lt_u
- (get_local $7)
+ (get_local $4)
(i32.const 16)
)
(block
(i32.store offset=4
- (get_local $10)
+ (get_local $2)
(i32.or
(tee_local $0
(i32.add
- (get_local $7)
- (get_local $6)
+ (get_local $4)
+ (get_local $3)
)
)
(i32.const 3)
)
)
- (set_local $1
+ (i32.store
+ (tee_local $0
+ (i32.add
+ (i32.add
+ (get_local $2)
+ (get_local $0)
+ )
+ (i32.const 4)
+ )
+ )
(i32.or
(i32.load
- (tee_local $0
- (i32.add
- (i32.add
- (get_local $10)
- (get_local $0)
- )
- (i32.const 4)
- )
- )
+ (get_local $0)
)
(i32.const 1)
)
)
- (i32.store
- (get_local $0)
- (get_local $1)
- )
)
(block
(i32.store offset=4
- (get_local $10)
+ (get_local $2)
(i32.or
- (get_local $6)
+ (get_local $3)
(i32.const 3)
)
)
(i32.store offset=4
- (get_local $9)
+ (get_local $7)
(i32.or
- (get_local $7)
+ (get_local $4)
(i32.const 1)
)
)
(i32.store
(i32.add
- (get_local $9)
(get_local $7)
+ (get_local $4)
)
- (get_local $7)
+ (get_local $4)
)
(if
- (i32.ne
- (tee_local $0
- (i32.load
- (i32.const 184)
- )
+ (tee_local $0
+ (i32.load
+ (i32.const 184)
)
- (i32.const 0)
)
(block
- (set_local $1
+ (set_local $5
(i32.load
(i32.const 196)
)
)
- (set_local $4
+ (set_local $0
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (tee_local $2
+ (tee_local $1
(i32.shr_u
(get_local $0)
(i32.const 3)
@@ -10584,47 +9404,26 @@
)
)
(if
- (i32.eq
- (i32.and
- (tee_local $0
- (i32.load
- (i32.const 176)
- )
- )
- (tee_local $2
- (i32.shl
- (i32.const 1)
- (get_local $2)
- )
+ (i32.and
+ (tee_local $3
+ (i32.load
+ (i32.const 176)
)
)
- (i32.const 0)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (get_local $0)
- (get_local $2)
+ (tee_local $1
+ (i32.shl
+ (i32.const 1)
+ (get_local $1)
)
)
- (set_local $3
- (i32.add
- (get_local $4)
- (i32.const 8)
- )
- )
- (set_local $16
- (get_local $4)
- )
)
(if
(i32.lt_u
- (tee_local $2
+ (tee_local $1
(i32.load
- (tee_local $0
+ (tee_local $3
(i32.add
- (get_local $4)
+ (get_local $0)
(i32.const 8)
)
)
@@ -10636,52 +9435,76 @@
)
(call_import $_abort)
(block
- (set_local $3
+ (set_local $13
+ (get_local $3)
+ )
+ (set_local $9
+ (get_local $1)
+ )
+ )
+ )
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (get_local $3)
+ (get_local $1)
+ )
+ )
+ (set_local $13
+ (i32.add
(get_local $0)
+ (i32.const 8)
)
- (set_local $16
- (get_local $2)
- )
+ )
+ (set_local $9
+ (get_local $0)
)
)
)
(i32.store
- (get_local $3)
- (get_local $1)
+ (get_local $13)
+ (get_local $5)
)
(i32.store offset=12
- (get_local $16)
- (get_local $1)
+ (get_local $9)
+ (get_local $5)
)
(i32.store offset=8
- (get_local $1)
- (get_local $16)
+ (get_local $5)
+ (get_local $9)
)
(i32.store offset=12
- (get_local $1)
- (get_local $4)
+ (get_local $5)
+ (get_local $0)
)
)
)
(i32.store
(i32.const 184)
- (get_local $7)
+ (get_local $4)
)
(i32.store
(i32.const 196)
- (get_local $9)
+ (get_local $7)
)
)
)
(return
(i32.add
- (get_local $10)
+ (get_local $2)
(i32.const 8)
)
)
)
+ (set_local $0
+ (get_local $3)
+ )
)
)
+ (set_local $0
+ (get_local $3)
+ )
)
)
(if
@@ -10689,13 +9512,13 @@
(get_local $0)
(i32.const -65)
)
- (set_local $6
+ (set_local $0
(i32.const -1)
)
(block
- (set_local $5
+ (set_local $9
(i32.and
- (tee_local $3
+ (tee_local $2
(i32.add
(get_local $0)
(i32.const 11)
@@ -10705,262 +9528,229 @@
)
)
(if
- (i32.eq
- (tee_local $0
- (i32.load
- (i32.const 180)
- )
+ (tee_local $24
+ (i32.load
+ (i32.const 180)
)
- (i32.const 0)
- )
- (set_local $6
- (get_local $5)
)
(block
- (set_local $16
+ (set_local $0
(i32.sub
(i32.const 0)
- (get_local $5)
+ (get_local $9)
)
)
- (block $label$break$L123
- (if
- (i32.eq
- (tee_local $3
+ (block $jumpthreading$outer$2
+ (block $jumpthreading$inner$2
+ (if
+ (tee_local $2
(i32.load offset=480
(i32.shl
- (tee_local $12
+ (tee_local $15
(if
- (i32.eq
- (tee_local $3
- (i32.shr_u
- (get_local $3)
- (i32.const 8)
- )
+ (tee_local $2
+ (i32.shr_u
+ (get_local $2)
+ (i32.const 8)
)
- (i32.const 0)
)
- (i32.const 0)
(if
(i32.gt_u
- (get_local $5)
+ (get_local $9)
(i32.const 16777215)
)
(i32.const 31)
- (block
- (set_local $7
- (i32.shl
- (tee_local $3
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (get_local $9)
+ (i32.add
+ (tee_local $2
+ (i32.add
+ (i32.sub
+ (i32.const 14)
(i32.or
- (tee_local $7
- (i32.and
- (i32.shr_u
- (i32.add
- (tee_local $12
- (i32.shl
- (get_local $3)
- (tee_local $3
- (i32.and
- (i32.shr_u
- (i32.add
- (get_local $3)
- (i32.const 1048320)
+ (i32.or
+ (tee_local $5
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (tee_local $2
+ (i32.shl
+ (get_local $2)
+ (tee_local $8
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (get_local $2)
+ (i32.const 1048320)
+ )
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 8)
)
- (i32.const 8)
)
)
)
+ (i32.const 520192)
)
- (i32.const 520192)
+ (i32.const 16)
+ )
+ (i32.const 4)
+ )
+ )
+ (get_local $8)
+ )
+ (tee_local $5
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (tee_local $2
+ (i32.shl
+ (get_local $2)
+ (get_local $5)
+ )
+ )
+ (i32.const 245760)
)
(i32.const 16)
)
- (i32.const 4)
+ (i32.const 2)
)
)
- (get_local $3)
- )
- (tee_local $3
- (i32.and
- (i32.shr_u
- (i32.add
- (tee_local $7
- (i32.shl
- (get_local $12)
- (get_local $7)
- )
- )
- (i32.const 245760)
- )
- (i32.const 16)
- )
- (i32.const 2)
- )
)
)
- )
- (i32.shr_u
- (i32.shl
- (get_local $7)
- (get_local $3)
+ (i32.shr_u
+ (i32.shl
+ (get_local $2)
+ (get_local $5)
+ )
+ (i32.const 15)
)
- (i32.const 15)
)
)
+ (i32.const 7)
)
- (i32.const 1)
)
+ (i32.const 1)
)
- (i32.or
- (i32.and
- (i32.shr_u
- (get_local $5)
- (i32.add
- (get_local $3)
- (i32.const 7)
- )
- )
- (i32.const 1)
- )
- (get_local $7)
+ (i32.shl
+ (get_local $2)
+ (i32.const 1)
)
)
)
+ (i32.const 0)
)
)
(i32.const 2)
)
)
)
- (i32.const 0)
- )
- (block
- (set_local $31
- (get_local $16)
- )
- (set_local $32
- (i32.const 0)
- )
- (set_local $28
- (i32.const 0)
- )
- (set_local $11
- (i32.const 86)
- )
- )
- (block
- (set_local $7
- (get_local $16)
- )
- (set_local $15
- (i32.const 0)
- )
- (set_local $11
- (i32.shl
- (get_local $5)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
- (get_local $12)
- (i32.const 1)
+ (block
+ (set_local $5
+ (get_local $0)
+ )
+ (set_local $13
+ (i32.const 0)
+ )
+ (set_local $12
+ (i32.shl
+ (get_local $9)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (get_local $15)
+ (i32.const 1)
+ )
)
- )
- (i32.eq
- (get_local $12)
- (i32.const 31)
+ (i32.eq
+ (get_local $15)
+ (i32.const 31)
+ )
)
)
)
- )
- (set_local $23
- (get_local $3)
- )
- (set_local $36
- (i32.const 0)
- )
- (loop $while-in$18
- (block $while-out$17
+ (set_local $0
+ (get_local $2)
+ )
+ (set_local $2
+ (i32.const 0)
+ )
+ (loop $while-in$18
(if
(i32.lt_u
- (tee_local $16
+ (tee_local $8
(i32.sub
- (tee_local $3
+ (tee_local $14
(i32.and
(i32.load offset=4
- (get_local $23)
+ (get_local $0)
)
(i32.const -8)
)
)
- (get_local $5)
+ (get_local $9)
)
)
- (get_local $7)
+ (get_local $5)
)
(if
(i32.eq
- (get_local $3)
- (get_local $5)
+ (get_local $14)
+ (get_local $9)
)
(block
- (set_local $26
- (get_local $16)
+ (set_local $4
+ (get_local $8)
)
- (set_local $24
- (get_local $23)
+ (set_local $3
+ (get_local $0)
)
- (set_local $29
- (get_local $23)
+ (set_local $1
+ (get_local $0)
)
- (set_local $11
+ (set_local $19
(i32.const 90)
)
- (br $label$break$L123)
+ (br $jumpthreading$outer$2)
)
- (set_local $36
- (get_local $23)
- )
- )
- (set_local $16
- (get_local $7)
- )
- )
- (set_local $7
- (i32.eq
- (tee_local $3
- (i32.load offset=20
- (get_local $23)
+ (block
+ (set_local $5
+ (get_local $8)
+ )
+ (set_local $2
+ (get_local $0)
)
)
- (i32.const 0)
)
)
- (set_local $15
+ (set_local $8
(select
- (get_local $15)
- (get_local $3)
+ (get_local $13)
+ (tee_local $8
+ (i32.load offset=20
+ (get_local $0)
+ )
+ )
(i32.or
- (get_local $7)
+ (i32.eqz
+ (get_local $8)
+ )
(i32.eq
- (get_local $3)
- (tee_local $3
+ (get_local $8)
+ (tee_local $14
(i32.load
(i32.add
(i32.add
- (get_local $23)
+ (get_local $0)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (get_local $11)
+ (get_local $12)
(i32.const 31)
)
(i32.const 2)
@@ -10972,15 +9762,14 @@
)
)
)
- (set_local $11
+ (set_local $0
(i32.shl
- (get_local $11)
+ (get_local $12)
(i32.xor
(i32.and
- (tee_local $7
- (i32.eq
- (get_local $3)
- (i32.const 0)
+ (tee_local $12
+ (i32.eqz
+ (get_local $14)
)
)
(i32.const 1)
@@ -10990,330 +9779,286 @@
)
)
(if
- (get_local $7)
+ (get_local $12)
(block
- (set_local $31
- (get_local $16)
+ (set_local $0
+ (get_local $5)
)
- (set_local $32
- (get_local $15)
- )
- (set_local $28
- (get_local $36)
- )
- (set_local $11
- (i32.const 86)
- )
- (br $while-out$17)
+ (br $jumpthreading$inner$2)
)
(block
- (set_local $7
- (get_local $16)
+ (set_local $13
+ (get_local $8)
)
- (set_local $23
- (get_local $3)
+ (set_local $12
+ (get_local $0)
)
+ (set_local $0
+ (get_local $14)
+ )
+ (br $while-in$18)
)
)
- (br $while-in$18)
)
)
+ (block
+ (set_local $8
+ (i32.const 0)
+ )
+ (set_local $2
+ (i32.const 0)
+ )
+ (br $jumpthreading$inner$2)
+ )
)
- )
- )
- (if
- (i32.eq
- (get_local $11)
- (i32.const 86)
+ (br $jumpthreading$outer$2)
)
(if
- (i32.eq
- (tee_local $0
- (if
- (i32.and
- (i32.eq
- (get_local $32)
- (i32.const 0)
+ (tee_local $5
+ (if
+ (i32.and
+ (i32.eqz
+ (get_local $8)
+ )
+ (i32.eqz
+ (get_local $2)
+ )
+ )
+ (block
+ (if
+ (i32.eqz
+ (tee_local $5
+ (i32.and
+ (get_local $24)
+ (i32.or
+ (tee_local $5
+ (i32.shl
+ (i32.const 2)
+ (get_local $15)
+ )
+ )
+ (i32.sub
+ (i32.const 0)
+ (get_local $5)
+ )
+ )
+ )
+ )
)
- (i32.eq
- (get_local $28)
- (i32.const 0)
+ (block
+ (set_local $0
+ (get_local $9)
+ )
+ (br $do-once$0)
)
)
- (block
- (set_local $7
- (i32.sub
- (i32.const 0)
- (tee_local $3
- (i32.shl
- (i32.const 2)
- (get_local $12)
- )
- )
- )
- )
- (if
- (i32.eq
- (tee_local $0
- (i32.and
- (get_local $0)
- (i32.or
- (get_local $3)
- (get_local $7)
- )
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $6
- (get_local $5)
- )
- (br $do-once$0)
- )
- )
- (set_local $0
- (i32.and
- (i32.shr_u
- (tee_local $3
- (i32.add
- (i32.and
- (get_local $0)
- (i32.sub
- (i32.const 0)
- (get_local $0)
- )
+ (set_local $12
+ (i32.and
+ (i32.shr_u
+ (tee_local $5
+ (i32.add
+ (i32.and
+ (get_local $5)
+ (i32.sub
+ (i32.const 0)
+ (get_local $5)
)
- (i32.const -1)
)
+ (i32.const -1)
)
- (i32.const 12)
)
- (i32.const 16)
+ (i32.const 12)
)
+ (i32.const 16)
)
- (i32.load offset=480
- (i32.shl
- (i32.add
+ )
+ (i32.load offset=480
+ (i32.shl
+ (i32.add
+ (i32.or
(i32.or
(i32.or
(i32.or
- (i32.or
- (tee_local $3
- (i32.and
- (i32.shr_u
- (tee_local $7
- (i32.shr_u
- (get_local $3)
- (get_local $0)
- )
- )
- (i32.const 5)
- )
- (i32.const 8)
- )
- )
- (get_local $0)
- )
- (tee_local $0
+ (tee_local $8
(i32.and
(i32.shr_u
- (tee_local $3
+ (tee_local $5
(i32.shr_u
- (get_local $7)
- (get_local $3)
+ (get_local $5)
+ (get_local $12)
)
)
- (i32.const 2)
+ (i32.const 5)
)
- (i32.const 4)
+ (i32.const 8)
)
)
+ (get_local $12)
)
- (tee_local $0
+ (tee_local $8
(i32.and
(i32.shr_u
- (tee_local $3
+ (tee_local $5
(i32.shr_u
- (get_local $3)
- (get_local $0)
+ (get_local $5)
+ (get_local $8)
)
)
- (i32.const 1)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 4)
)
)
)
- (tee_local $0
+ (tee_local $8
(i32.and
(i32.shr_u
- (tee_local $3
+ (tee_local $5
(i32.shr_u
- (get_local $3)
- (get_local $0)
+ (get_local $5)
+ (get_local $8)
)
)
(i32.const 1)
)
- (i32.const 1)
+ (i32.const 2)
)
)
)
- (i32.shr_u
- (get_local $3)
- (get_local $0)
+ (tee_local $8
+ (i32.and
+ (i32.shr_u
+ (tee_local $5
+ (i32.shr_u
+ (get_local $5)
+ (get_local $8)
+ )
+ )
+ (i32.const 1)
+ )
+ (i32.const 1)
+ )
)
)
- (i32.const 2)
+ (i32.shr_u
+ (get_local $5)
+ (get_local $8)
+ )
)
+ (i32.const 2)
)
)
- (get_local $32)
)
- )
- (i32.const 0)
- )
- (block
- (set_local $17
- (get_local $31)
- )
- (set_local $13
- (get_local $28)
+ (get_local $8)
)
)
(block
- (set_local $26
- (get_local $31)
- )
- (set_local $24
+ (set_local $4
(get_local $0)
)
- (set_local $29
- (get_local $28)
+ (set_local $3
+ (get_local $5)
)
- (set_local $11
+ (set_local $1
+ (get_local $2)
+ )
+ (set_local $19
(i32.const 90)
)
)
- )
- )
- (if
- (i32.eq
- (get_local $11)
- (i32.const 90)
- )
- (loop $while-in$20
- (block $while-out$19
- (set_local $11
- (i32.const 0)
+ (block
+ (set_local $7
+ (get_local $0)
)
- (set_local $0
- (i32.lt_u
- (tee_local $3
- (i32.sub
- (i32.and
- (i32.load offset=4
- (get_local $24)
- )
- (i32.const -8)
- )
- (get_local $5)
- )
- )
- (get_local $26)
- )
+ (set_local $6
+ (get_local $2)
)
- (set_local $17
- (select
- (get_local $3)
- (get_local $26)
- (get_local $0)
- )
- )
- (set_local $3
- (select
- (get_local $24)
- (get_local $29)
- (get_local $0)
- )
- )
- (if
- (i32.ne
- (tee_local $0
- (i32.load offset=16
- (get_local $24)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $26
- (get_local $17)
- )
- (set_local $24
- (get_local $0)
- )
- (set_local $29
- (get_local $3)
- )
- (br $while-in$20)
- )
- )
- (if
- (i32.eq
- (tee_local $0
- (i32.load offset=20
- (get_local $24)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $13
- (get_local $3)
- )
- (br $while-out$19)
- )
- (block
- (set_local $26
- (get_local $17)
- )
- (set_local $24
- (get_local $0)
- )
- (set_local $29
- (get_local $3)
- )
- )
- )
- (br $while-in$20)
)
)
)
(if
(i32.eq
- (get_local $13)
- (i32.const 0)
+ (get_local $19)
+ (i32.const 90)
)
- (set_local $6
- (get_local $5)
+ (loop $while-in$20
+ (set_local $2
+ (i32.lt_u
+ (tee_local $0
+ (i32.sub
+ (i32.and
+ (i32.load offset=4
+ (get_local $3)
+ )
+ (i32.const -8)
+ )
+ (get_local $9)
+ )
+ )
+ (get_local $4)
+ )
+ )
+ (set_local $4
+ (select
+ (get_local $0)
+ (get_local $4)
+ (get_local $2)
+ )
+ )
+ (set_local $1
+ (select
+ (get_local $3)
+ (get_local $1)
+ (get_local $2)
+ )
+ )
+ (if
+ (tee_local $0
+ (i32.load offset=16
+ (get_local $3)
+ )
+ )
+ (block
+ (set_local $3
+ (get_local $0)
+ )
+ (br $while-in$20)
+ )
+ )
+ (br_if $while-in$20
+ (tee_local $3
+ (i32.load offset=20
+ (get_local $3)
+ )
+ )
+ )
+ (block
+ (set_local $7
+ (get_local $4)
+ )
+ (set_local $6
+ (get_local $1)
+ )
+ )
)
+ )
+ (if
+ (get_local $6)
(if
(i32.lt_u
- (get_local $17)
+ (get_local $7)
(i32.sub
(i32.load
(i32.const 184)
)
- (get_local $5)
+ (get_local $9)
)
)
(block
(if
(i32.lt_u
- (get_local $13)
- (tee_local $0
+ (get_local $6)
+ (tee_local $8
(i32.load
(i32.const 192)
)
@@ -11323,140 +10068,123 @@
)
(if
(i32.ge_u
- (get_local $13)
- (tee_local $3
+ (get_local $6)
+ (tee_local $4
(i32.add
- (get_local $13)
- (get_local $5)
+ (get_local $6)
+ (get_local $9)
)
)
)
(call_import $_abort)
)
- (set_local $1
+ (set_local $5
(i32.load offset=24
- (get_local $13)
+ (get_local $6)
)
)
(block $do-once$21
(if
(i32.eq
- (tee_local $2
+ (tee_local $0
(i32.load offset=12
- (get_local $13)
+ (get_local $6)
)
)
- (get_local $13)
+ (get_local $6)
)
(block
(if
- (i32.eq
- (tee_local $2
+ (i32.eqz
+ (tee_local $1
(i32.load
- (tee_local $9
+ (tee_local $0
(i32.add
- (get_local $13)
+ (get_local $6)
(i32.const 20)
)
)
)
)
- (i32.const 0)
)
(if
- (i32.eq
- (tee_local $2
+ (i32.eqz
+ (tee_local $1
(i32.load
- (tee_local $9
+ (tee_local $0
(i32.add
- (get_local $13)
+ (get_local $6)
(i32.const 16)
)
)
)
)
- (i32.const 0)
)
(block
- (set_local $6
+ (set_local $10
(i32.const 0)
)
(br $do-once$21)
)
- (set_local $8
- (get_local $2)
- )
- )
- (set_local $8
- (get_local $2)
)
)
(loop $while-in$24
- (block $while-out$23
- (if
- (i32.ne
+ (if
+ (tee_local $3
+ (i32.load
(tee_local $2
- (i32.load
- (tee_local $7
- (i32.add
- (get_local $8)
- (i32.const 20)
- )
- )
+ (i32.add
+ (get_local $1)
+ (i32.const 20)
)
)
- (i32.const 0)
- )
- (block
- (set_local $8
- (get_local $2)
- )
- (set_local $9
- (get_local $7)
- )
- (br $while-in$24)
- )
- )
- (if
- (i32.eq
- (tee_local $2
- (i32.load
- (tee_local $7
- (i32.add
- (get_local $8)
- (i32.const 16)
- )
- )
- )
- )
- (i32.const 0)
- )
- (br $while-out$23)
- (block
- (set_local $8
- (get_local $2)
- )
- (set_local $9
- (get_local $7)
- )
)
)
- (br $while-in$24)
+ (block
+ (set_local $1
+ (get_local $3)
+ )
+ (set_local $0
+ (get_local $2)
+ )
+ (br $while-in$24)
+ )
+ )
+ (if
+ (tee_local $3
+ (i32.load
+ (tee_local $2
+ (i32.add
+ (get_local $1)
+ (i32.const 16)
+ )
+ )
+ )
+ )
+ (block
+ (set_local $1
+ (get_local $3)
+ )
+ (set_local $0
+ (get_local $2)
+ )
+ (br $while-in$24)
+ )
)
)
(if
(i32.lt_u
- (get_local $9)
(get_local $0)
+ (get_local $8)
)
(call_import $_abort)
(block
(i32.store
- (get_local $9)
+ (get_local $0)
(i32.const 0)
)
- (set_local $6
- (get_local $8)
+ (set_local $10
+ (get_local $1)
)
)
)
@@ -11464,52 +10192,52 @@
(block
(if
(i32.lt_u
- (tee_local $8
+ (tee_local $3
(i32.load offset=8
- (get_local $13)
+ (get_local $6)
)
)
- (get_local $0)
+ (get_local $8)
)
(call_import $_abort)
)
(if
(i32.ne
(i32.load
- (tee_local $0
+ (tee_local $2
(i32.add
- (get_local $8)
+ (get_local $3)
(i32.const 12)
)
)
)
- (get_local $13)
+ (get_local $6)
)
(call_import $_abort)
)
(if
(i32.eq
(i32.load
- (tee_local $9
+ (tee_local $1
(i32.add
- (get_local $2)
+ (get_local $0)
(i32.const 8)
)
)
)
- (get_local $13)
+ (get_local $6)
)
(block
(i32.store
- (get_local $0)
(get_local $2)
+ (get_local $0)
)
(i32.store
- (get_local $9)
- (get_local $8)
+ (get_local $1)
+ (get_local $3)
)
- (set_local $6
- (get_local $2)
+ (set_local $10
+ (get_local $0)
)
)
(call_import $_abort)
@@ -11519,22 +10247,19 @@
)
(block $do-once$25
(if
- (i32.ne
- (get_local $1)
- (i32.const 0)
- )
+ (get_local $5)
(block
(if
(i32.eq
- (get_local $13)
+ (get_local $6)
(i32.load
- (tee_local $2
+ (tee_local $0
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $0
+ (tee_local $1
(i32.load offset=28
- (get_local $13)
+ (get_local $6)
)
)
(i32.const 2)
@@ -11545,13 +10270,12 @@
)
(block
(i32.store
- (get_local $2)
- (get_local $6)
+ (get_local $0)
+ (get_local $10)
)
(if
- (i32.eq
- (get_local $6)
- (i32.const 0)
+ (i32.eqz
+ (get_local $10)
)
(block
(i32.store
@@ -11563,7 +10287,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $0)
+ (get_local $1)
)
(i32.const -1)
)
@@ -11576,7 +10300,7 @@
(block
(if
(i32.lt_u
- (get_local $1)
+ (get_local $5)
(i32.load
(i32.const 192)
)
@@ -11588,34 +10312,33 @@
(i32.load
(tee_local $0
(i32.add
- (get_local $1)
+ (get_local $5)
(i32.const 16)
)
)
)
- (get_local $13)
+ (get_local $6)
)
(i32.store
(get_local $0)
- (get_local $6)
+ (get_local $10)
)
(i32.store offset=20
- (get_local $1)
- (get_local $6)
+ (get_local $5)
+ (get_local $10)
)
)
(br_if $do-once$25
- (i32.eq
- (get_local $6)
- (i32.const 0)
+ (i32.eqz
+ (get_local $10)
)
)
)
)
(if
(i32.lt_u
- (get_local $6)
- (tee_local $0
+ (get_local $10)
+ (tee_local $1
(i32.load
(i32.const 192)
)
@@ -11624,44 +10347,38 @@
(call_import $_abort)
)
(i32.store offset=24
- (get_local $6)
- (get_local $1)
+ (get_local $10)
+ (get_local $5)
)
(if
- (i32.ne
- (tee_local $1
- (i32.load offset=16
- (get_local $13)
- )
+ (tee_local $0
+ (i32.load offset=16
+ (get_local $6)
)
- (i32.const 0)
)
(if
(i32.lt_u
- (get_local $1)
(get_local $0)
+ (get_local $1)
)
(call_import $_abort)
(block
(i32.store offset=16
- (get_local $6)
- (get_local $1)
+ (get_local $10)
+ (get_local $0)
)
(i32.store offset=24
- (get_local $1)
- (get_local $6)
+ (get_local $0)
+ (get_local $10)
)
)
)
)
(if
- (i32.ne
- (tee_local $0
- (i32.load offset=20
- (get_local $13)
- )
+ (tee_local $0
+ (i32.load offset=20
+ (get_local $6)
)
- (i32.const 0)
)
(if
(i32.lt_u
@@ -11673,12 +10390,12 @@
(call_import $_abort)
(block
(i32.store offset=20
- (get_local $6)
+ (get_local $10)
(get_local $0)
)
(i32.store offset=24
(get_local $0)
- (get_local $6)
+ (get_local $10)
)
)
)
@@ -11689,78 +10406,75 @@
(block $do-once$29
(if
(i32.lt_u
- (get_local $17)
+ (get_local $7)
(i32.const 16)
)
(block
(i32.store offset=4
- (get_local $13)
+ (get_local $6)
(i32.or
(tee_local $0
(i32.add
- (get_local $17)
- (get_local $5)
+ (get_local $7)
+ (get_local $9)
)
)
(i32.const 3)
)
)
- (set_local $1
+ (i32.store
+ (tee_local $0
+ (i32.add
+ (i32.add
+ (get_local $6)
+ (get_local $0)
+ )
+ (i32.const 4)
+ )
+ )
(i32.or
(i32.load
- (tee_local $0
- (i32.add
- (i32.add
- (get_local $13)
- (get_local $0)
- )
- (i32.const 4)
- )
- )
+ (get_local $0)
)
(i32.const 1)
)
)
- (i32.store
- (get_local $0)
- (get_local $1)
- )
)
(block
(i32.store offset=4
- (get_local $13)
+ (get_local $6)
(i32.or
- (get_local $5)
+ (get_local $9)
(i32.const 3)
)
)
(i32.store offset=4
- (get_local $3)
+ (get_local $4)
(i32.or
- (get_local $17)
+ (get_local $7)
(i32.const 1)
)
)
(i32.store
(i32.add
- (get_local $3)
- (get_local $17)
+ (get_local $4)
+ (get_local $7)
)
- (get_local $17)
+ (get_local $7)
)
(set_local $1
(i32.shr_u
- (get_local $17)
+ (get_local $7)
(i32.const 3)
)
)
(if
(i32.lt_u
- (get_local $17)
+ (get_local $7)
(i32.const 256)
)
(block
- (set_local $2
+ (set_local $0
(i32.add
(i32.const 216)
(i32.shl
@@ -11773,47 +10487,26 @@
)
)
(if
- (i32.eq
- (i32.and
- (tee_local $0
- (i32.load
- (i32.const 176)
- )
- )
- (tee_local $1
- (i32.shl
- (i32.const 1)
- (get_local $1)
- )
+ (i32.and
+ (tee_local $2
+ (i32.load
+ (i32.const 176)
)
)
- (i32.const 0)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (get_local $0)
+ (tee_local $1
+ (i32.shl
+ (i32.const 1)
(get_local $1)
)
)
- (set_local $4
- (i32.add
- (get_local $2)
- (i32.const 8)
- )
- )
- (set_local $10
- (get_local $2)
- )
)
(if
(i32.lt_u
(tee_local $1
(i32.load
- (tee_local $0
+ (tee_local $2
(i32.add
- (get_local $2)
+ (get_local $0)
(i32.const 8)
)
)
@@ -11825,141 +10518,151 @@
)
(call_import $_abort)
(block
- (set_local $4
- (get_local $0)
+ (set_local $20
+ (get_local $2)
)
- (set_local $10
+ (set_local $16
(get_local $1)
)
)
)
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (get_local $2)
+ (get_local $1)
+ )
+ )
+ (set_local $20
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ )
+ (set_local $16
+ (get_local $0)
+ )
+ )
)
(i32.store
+ (get_local $20)
(get_local $4)
- (get_local $3)
)
(i32.store offset=12
- (get_local $10)
- (get_local $3)
+ (get_local $16)
+ (get_local $4)
)
(i32.store offset=8
- (get_local $3)
- (get_local $10)
+ (get_local $4)
+ (get_local $16)
)
(i32.store offset=12
- (get_local $3)
- (get_local $2)
+ (get_local $4)
+ (get_local $0)
)
(br $do-once$29)
)
)
- (set_local $2
+ (set_local $1
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $1
+ (tee_local $2
(if
- (i32.eq
- (tee_local $0
- (i32.shr_u
- (get_local $17)
- (i32.const 8)
- )
+ (tee_local $0
+ (i32.shr_u
+ (get_local $7)
+ (i32.const 8)
)
- (i32.const 0)
)
- (i32.const 0)
(if
(i32.gt_u
- (get_local $17)
+ (get_local $7)
(i32.const 16777215)
)
(i32.const 31)
- (block
- (set_local $1
- (i32.shl
- (tee_local $0
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (get_local $7)
+ (i32.add
+ (tee_local $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
(i32.or
+ (i32.or
+ (tee_local $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (tee_local $0
+ (i32.shl
+ (get_local $0)
+ (tee_local $2
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (get_local $0)
+ (i32.const 1048320)
+ )
+ (i32.const 16)
+ )
+ (i32.const 8)
+ )
+ )
+ )
+ )
+ (i32.const 520192)
+ )
+ (i32.const 16)
+ )
+ (i32.const 4)
+ )
+ )
+ (get_local $2)
+ )
(tee_local $1
(i32.and
(i32.shr_u
(i32.add
- (tee_local $2
+ (tee_local $0
(i32.shl
(get_local $0)
- (tee_local $0
- (i32.and
- (i32.shr_u
- (i32.add
- (get_local $0)
- (i32.const 1048320)
- )
- (i32.const 16)
- )
- (i32.const 8)
- )
- )
+ (get_local $1)
)
)
- (i32.const 520192)
+ (i32.const 245760)
)
(i32.const 16)
)
- (i32.const 4)
+ (i32.const 2)
)
)
+ )
+ )
+ (i32.shr_u
+ (i32.shl
(get_local $0)
+ (get_local $1)
)
- (tee_local $0
- (i32.and
- (i32.shr_u
- (i32.add
- (tee_local $1
- (i32.shl
- (get_local $2)
- (get_local $1)
- )
- )
- (i32.const 245760)
- )
- (i32.const 16)
- )
- (i32.const 2)
- )
- )
+ (i32.const 15)
)
)
- (i32.shr_u
- (i32.shl
- (get_local $1)
- (get_local $0)
- )
- (i32.const 15)
- )
)
+ (i32.const 7)
)
- (i32.const 1)
)
+ (i32.const 1)
)
- (i32.or
- (i32.and
- (i32.shr_u
- (get_local $17)
- (i32.add
- (get_local $0)
- (i32.const 7)
- )
- )
- (i32.const 1)
- )
- (get_local $1)
+ (i32.shl
+ (get_local $0)
+ (i32.const 1)
)
)
)
+ (i32.const 0)
)
)
(i32.const 2)
@@ -11967,13 +10670,13 @@
)
)
(i32.store offset=28
- (get_local $3)
- (get_local $1)
+ (get_local $4)
+ (get_local $2)
)
(i32.store offset=4
(tee_local $0
(i32.add
- (get_local $3)
+ (get_local $4)
(i32.const 16)
)
)
@@ -11984,233 +10687,211 @@
(i32.const 0)
)
(if
- (i32.eq
+ (i32.eqz
(i32.and
- (tee_local $0
+ (tee_local $3
(i32.load
(i32.const 180)
)
)
- (tee_local $4
+ (tee_local $0
(i32.shl
(i32.const 1)
- (get_local $1)
+ (get_local $2)
)
)
)
- (i32.const 0)
)
(block
(i32.store
(i32.const 180)
(i32.or
+ (get_local $3)
(get_local $0)
- (get_local $4)
)
)
(i32.store
- (get_local $2)
- (get_local $3)
+ (get_local $1)
+ (get_local $4)
)
(i32.store offset=24
- (get_local $3)
- (get_local $2)
+ (get_local $4)
+ (get_local $1)
)
(i32.store offset=12
- (get_local $3)
- (get_local $3)
+ (get_local $4)
+ (get_local $4)
)
(i32.store offset=8
- (get_local $3)
- (get_local $3)
+ (get_local $4)
+ (get_local $4)
)
(br $do-once$29)
)
)
- (set_local $1
+ (set_local $2
(i32.shl
- (get_local $17)
+ (get_local $7)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (get_local $1)
+ (get_local $2)
(i32.const 1)
)
)
(i32.eq
- (get_local $1)
+ (get_local $2)
(i32.const 31)
)
)
)
)
- (set_local $2
+ (set_local $0
(i32.load
- (get_local $2)
+ (get_local $1)
)
)
- (loop $while-in$32
- (block $while-out$31
- (if
- (i32.eq
- (i32.and
- (i32.load offset=4
- (get_local $2)
- )
- (i32.const -8)
- )
- (get_local $17)
- )
- (block
- (set_local $22
- (get_local $2)
- )
- (set_local $11
- (i32.const 148)
- )
- (br $while-out$31)
- )
- )
- (set_local $4
- (i32.shl
- (get_local $1)
- (i32.const 1)
- )
- )
- (if
- (i32.eq
- (tee_local $0
- (i32.load
- (tee_local $1
- (i32.add
- (i32.add
- (get_local $2)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (get_local $1)
- (i32.const 31)
- )
- (i32.const 2)
- )
+ (block $jumpthreading$outer$1
+ (block $jumpthreading$inner$1
+ (block $jumpthreading$inner$0
+ (loop $while-in$32
+ (br_if $jumpthreading$inner$1
+ (i32.eq
+ (i32.and
+ (i32.load offset=4
+ (get_local $0)
)
+ (i32.const -8)
)
+ (get_local $7)
)
)
- (i32.const 0)
- )
- (block
- (set_local $25
- (get_local $2)
- )
- (set_local $37
- (get_local $1)
- )
- (set_local $11
- (i32.const 145)
- )
- (br $while-out$31)
- )
- (block
(set_local $1
- (get_local $4)
+ (i32.shl
+ (get_local $2)
+ (i32.const 1)
+ )
)
- (set_local $2
- (get_local $0)
- )
- )
- )
- (br $while-in$32)
- )
- )
- (if
- (i32.eq
- (get_local $11)
- (i32.const 145)
- )
- (if
- (i32.lt_u
- (get_local $37)
- (i32.load
- (i32.const 192)
- )
- )
- (call_import $_abort)
- (block
- (i32.store
- (get_local $37)
- (get_local $3)
- )
- (i32.store offset=24
- (get_local $3)
- (get_local $25)
- )
- (i32.store offset=12
- (get_local $3)
- (get_local $3)
- )
- (i32.store offset=8
- (get_local $3)
- (get_local $3)
- )
- )
- )
- (if
- (i32.eq
- (get_local $11)
- (i32.const 148)
- )
- (if
- (i32.and
- (i32.ge_u
- (tee_local $0
+ (if
+ (tee_local $3
(i32.load
(tee_local $2
(i32.add
- (get_local $22)
- (i32.const 8)
+ (i32.add
+ (get_local $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (get_local $2)
+ (i32.const 31)
+ )
+ (i32.const 2)
+ )
)
)
)
)
- (tee_local $1
- (i32.load
- (i32.const 192)
+ (block
+ (set_local $2
+ (get_local $1)
)
+ (set_local $0
+ (get_local $3)
+ )
+ (br $while-in$32)
+ )
+ (block
+ (set_local $1
+ (get_local $0)
+ )
+ (set_local $0
+ (get_local $2)
+ )
+ (br $jumpthreading$inner$0)
)
)
- (i32.ge_u
- (get_local $22)
- (get_local $1)
- )
)
- (block
- (i32.store offset=12
- (get_local $0)
- (get_local $3)
- )
- (i32.store
- (get_local $2)
- (get_local $3)
- )
- (i32.store offset=8
- (get_local $3)
- (get_local $0)
- )
- (i32.store offset=12
- (get_local $3)
- (get_local $22)
- )
- (i32.store offset=24
- (get_local $3)
- (i32.const 0)
+ )
+ (if
+ (i32.lt_u
+ (get_local $0)
+ (i32.load
+ (i32.const 192)
)
)
(call_import $_abort)
+ (block
+ (i32.store
+ (get_local $0)
+ (get_local $4)
+ )
+ (i32.store offset=24
+ (get_local $4)
+ (get_local $1)
+ )
+ (i32.store offset=12
+ (get_local $4)
+ (get_local $4)
+ )
+ (i32.store offset=8
+ (get_local $4)
+ (get_local $4)
+ )
+ (br $do-once$29)
+ )
)
+ (br $jumpthreading$outer$1)
+ )
+ (if
+ (i32.and
+ (i32.ge_u
+ (tee_local $3
+ (i32.load
+ (tee_local $1
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ )
+ )
+ )
+ (tee_local $2
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ )
+ (i32.ge_u
+ (get_local $0)
+ (get_local $2)
+ )
+ )
+ (block
+ (i32.store offset=12
+ (get_local $3)
+ (get_local $4)
+ )
+ (i32.store
+ (get_local $1)
+ (get_local $4)
+ )
+ (i32.store offset=8
+ (get_local $4)
+ (get_local $3)
+ )
+ (i32.store offset=12
+ (get_local $4)
+ (get_local $0)
+ )
+ (i32.store offset=24
+ (get_local $4)
+ (i32.const 0)
+ )
+ )
+ (call_import $_abort)
)
)
)
@@ -12218,17 +10899,23 @@
)
(return
(i32.add
- (get_local $13)
+ (get_local $6)
(i32.const 8)
)
)
)
- (set_local $6
- (get_local $5)
+ (set_local $0
+ (get_local $9)
)
)
+ (set_local $0
+ (get_local $9)
+ )
)
)
+ (set_local $0
+ (get_local $9)
+ )
)
)
)
@@ -12236,25 +10923,25 @@
)
(if
(i32.ge_u
- (tee_local $0
+ (tee_local $2
(i32.load
(i32.const 184)
)
)
- (get_local $6)
+ (get_local $0)
)
(block
- (set_local $1
+ (set_local $3
(i32.load
(i32.const 196)
)
)
(if
(i32.gt_u
- (tee_local $2
+ (tee_local $1
(i32.sub
+ (get_local $2)
(get_local $0)
- (get_local $6)
)
)
(i32.const 15)
@@ -12262,35 +10949,35 @@
(block
(i32.store
(i32.const 196)
- (tee_local $0
+ (tee_local $2
(i32.add
- (get_local $1)
- (get_local $6)
+ (get_local $3)
+ (get_local $0)
)
)
)
(i32.store
(i32.const 184)
- (get_local $2)
+ (get_local $1)
)
(i32.store offset=4
- (get_local $0)
+ (get_local $2)
(i32.or
- (get_local $2)
+ (get_local $1)
(i32.const 1)
)
)
(i32.store
(i32.add
- (get_local $0)
(get_local $2)
+ (get_local $1)
)
- (get_local $2)
+ (get_local $1)
)
(i32.store offset=4
- (get_local $1)
+ (get_local $3)
(i32.or
- (get_local $6)
+ (get_local $0)
(i32.const 3)
)
)
@@ -12305,37 +10992,34 @@
(i32.const 0)
)
(i32.store offset=4
- (get_local $1)
+ (get_local $3)
(i32.or
- (get_local $0)
+ (get_local $2)
(i32.const 3)
)
)
- (set_local $2
+ (i32.store
+ (tee_local $0
+ (i32.add
+ (i32.add
+ (get_local $3)
+ (get_local $2)
+ )
+ (i32.const 4)
+ )
+ )
(i32.or
(i32.load
- (tee_local $0
- (i32.add
- (i32.add
- (get_local $1)
- (get_local $0)
- )
- (i32.const 4)
- )
- )
+ (get_local $0)
)
(i32.const 1)
)
)
- (i32.store
- (get_local $0)
- (get_local $2)
- )
)
)
(return
(i32.add
- (get_local $1)
+ (get_local $3)
(i32.const 8)
)
)
@@ -12343,88 +11027,85 @@
)
(if
(i32.gt_u
- (tee_local $0
+ (tee_local $1
(i32.load
(i32.const 188)
)
)
- (get_local $6)
+ (get_local $0)
)
(block
(i32.store
(i32.const 188)
- (tee_local $2
+ (tee_local $1
(i32.sub
+ (get_local $1)
(get_local $0)
- (get_local $6)
)
)
)
(i32.store
(i32.const 200)
- (tee_local $1
+ (tee_local $2
(i32.add
- (tee_local $0
+ (tee_local $3
(i32.load
(i32.const 200)
)
)
- (get_local $6)
+ (get_local $0)
)
)
)
(i32.store offset=4
- (get_local $1)
+ (get_local $2)
(i32.or
- (get_local $2)
+ (get_local $1)
(i32.const 1)
)
)
(i32.store offset=4
- (get_local $0)
+ (get_local $3)
(i32.or
- (get_local $6)
+ (get_local $0)
(i32.const 3)
)
)
(return
(i32.add
- (get_local $0)
+ (get_local $3)
(i32.const 8)
)
)
)
)
(if
- (i32.eq
+ (i32.eqz
(i32.load
(i32.const 648)
)
- (i32.const 0)
)
(if
- (i32.eq
- (i32.and
- (i32.add
- (tee_local $0
- (call_import $_sysconf
- (i32.const 30)
- )
+ (i32.and
+ (i32.add
+ (tee_local $1
+ (call_import $_sysconf
+ (i32.const 30)
)
- (i32.const -1)
)
- (get_local $0)
+ (i32.const -1)
)
- (i32.const 0)
+ (get_local $1)
)
+ (call_import $_abort)
(block
(i32.store
(i32.const 656)
- (get_local $0)
+ (get_local $1)
)
(i32.store
(i32.const 652)
- (get_local $0)
+ (get_local $1)
)
(i32.store
(i32.const 660)
@@ -12455,75 +11136,71 @@
)
)
)
- (call_import $_abort)
)
)
- (set_local $5
+ (set_local $8
(i32.add
- (get_local $6)
+ (get_local $0)
(i32.const 48)
)
)
(if
(i32.le_u
- (tee_local $10
+ (tee_local $9
(i32.and
- (tee_local $7
+ (tee_local $6
(i32.add
- (tee_local $0
+ (tee_local $1
(i32.load
(i32.const 656)
)
)
- (tee_local $15
+ (tee_local $5
(i32.add
- (get_local $6)
+ (get_local $0)
(i32.const 47)
)
)
)
)
- (tee_local $12
+ (tee_local $2
(i32.sub
(i32.const 0)
- (get_local $0)
+ (get_local $1)
)
)
)
)
- (get_local $6)
+ (get_local $0)
)
(return
(i32.const 0)
)
)
(if
- (i32.ne
- (tee_local $0
- (i32.load
- (i32.const 616)
- )
+ (tee_local $4
+ (i32.load
+ (i32.const 616)
)
- (i32.const 0)
)
(if
(i32.or
(i32.le_u
- (tee_local $3
+ (tee_local $1
(i32.add
- (tee_local $4
+ (tee_local $3
(i32.load
(i32.const 608)
)
)
- (get_local $10)
+ (get_local $9)
)
)
- (get_local $4)
+ (get_local $3)
)
(i32.gt_u
- (get_local $3)
- (get_local $0)
+ (get_local $1)
+ (get_local $4)
)
)
(return
@@ -12531,679 +11208,414 @@
)
)
)
- (if
- (i32.eq
- (tee_local $11
- (block $label$break$L257
- (if
- (i32.eq
- (i32.and
- (i32.load
- (i32.const 620)
- )
- (i32.const 4)
- )
- (i32.const 0)
+ (block $jumpthreading$outer$12
+ (block $jumpthreading$inner$12
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (i32.const 620)
)
- (block
- (block $label$break$L259
- (if
- (i32.eq
- (tee_local $0
+ (i32.const 4)
+ )
+ )
+ (block
+ (block $label$break$L279
+ (block $jumpthreading$inner$4
+ (block $jumpthreading$inner$3
+ (br_if $jumpthreading$inner$3
+ (i32.eqz
+ (tee_local $4
(i32.load
(i32.const 200)
)
)
- (i32.const 0)
)
- (set_local $11
- (i32.const 173)
- )
- (block
- (set_local $16
- (i32.const 624)
- )
- (loop $while-in$38
- (block $while-out$37
- (if
- (i32.le_u
- (tee_local $4
- (i32.load
- (get_local $16)
- )
- )
- (get_local $0)
- )
- (if
- (i32.gt_u
- (i32.add
- (get_local $4)
- (i32.load
- (tee_local $3
- (i32.add
- (get_local $16)
- (i32.const 4)
- )
- )
- )
- )
- (get_local $0)
- )
- (block
- (set_local $4
- (get_local $16)
- )
- (set_local $16
- (get_local $3)
- )
- (br $while-out$37)
- )
- )
- )
- (if
- (i32.eq
- (tee_local $4
- (i32.load offset=8
- (get_local $16)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $11
- (i32.const 173)
- )
- (br $label$break$L259)
- )
- (set_local $16
- (get_local $4)
- )
- )
- (br $while-in$38)
- )
- )
+ )
+ (set_local $1
+ (i32.const 624)
+ )
+ (loop $while-in$38
+ (block $while-out$37
(if
- (i32.lt_u
- (tee_local $0
- (i32.and
- (i32.sub
- (get_local $7)
- (i32.load
- (i32.const 188)
- )
- )
- (get_local $12)
+ (i32.le_u
+ (tee_local $3
+ (i32.load
+ (get_local $1)
)
)
- (i32.const 2147483647)
+ (get_local $4)
)
(if
- (i32.eq
- (tee_local $3
- (call_import $_sbrk
- (get_local $0)
+ (i32.gt_u
+ (i32.add
+ (get_local $3)
+ (i32.load
+ (tee_local $3
+ (i32.add
+ (get_local $1)
+ (i32.const 4)
+ )
+ )
+ )
+ )
+ (get_local $4)
+ )
+ (block
+ (set_local $4
+ (get_local $1)
+ )
+ (br $while-out$37)
+ )
+ )
+ )
+ (br_if $while-in$38
+ (tee_local $1
+ (i32.load offset=8
+ (get_local $1)
+ )
+ )
+ )
+ (br $jumpthreading$inner$3)
+ )
+ )
+ (if
+ (i32.lt_u
+ (tee_local $1
+ (i32.and
+ (i32.sub
+ (get_local $6)
+ (i32.load
+ (i32.const 188)
+ )
+ )
+ (get_local $2)
+ )
+ )
+ (i32.const 2147483647)
+ )
+ (if
+ (i32.eq
+ (tee_local $2
+ (call_import $_sbrk
+ (get_local $1)
+ )
+ )
+ (i32.add
+ (i32.load
+ (get_local $4)
+ )
+ (i32.load
+ (get_local $3)
+ )
+ )
+ )
+ (br_if $jumpthreading$inner$12
+ (i32.ne
+ (get_local $2)
+ (i32.const -1)
+ )
+ )
+ (br $jumpthreading$inner$4)
+ )
+ )
+ (br $label$break$L279)
+ )
+ (if
+ (i32.ne
+ (tee_local $2
+ (call_import $_sbrk
+ (i32.const 0)
+ )
+ )
+ (i32.const -1)
+ )
+ (block
+ (set_local $3
+ (i32.add
+ (tee_local $6
+ (i32.load
+ (i32.const 608)
+ )
+ )
+ (tee_local $1
+ (if
+ (i32.and
+ (tee_local $3
+ (i32.add
+ (tee_local $4
+ (i32.load
+ (i32.const 652)
+ )
+ )
+ (i32.const -1)
+ )
+ )
+ (tee_local $1
+ (get_local $2)
)
)
(i32.add
- (i32.load
- (get_local $4)
+ (i32.sub
+ (get_local $9)
+ (get_local $1)
)
- (i32.load
- (get_local $16)
- )
- )
- )
- (if
- (i32.ne
- (get_local $3)
- (i32.const -1)
- )
- (block
- (set_local $14
- (get_local $3)
- )
- (set_local $19
- (get_local $0)
- )
- (br $label$break$L257
- (i32.const 193)
- )
- )
- )
- (block
- (set_local $30
- (get_local $3)
- )
- (set_local $21
- (get_local $0)
- )
- (set_local $11
- (i32.const 183)
- )
- )
- )
- )
- )
- )
- )
- (block $do-once$39
- (if
- (i32.eq
- (get_local $11)
- (i32.const 173)
- )
- (if
- (i32.ne
- (tee_local $7
- (call_import $_sbrk
- (i32.const 0)
- )
- )
- (i32.const -1)
- )
- (block
- (set_local $4
- (i32.add
- (tee_local $3
- (i32.load
- (i32.const 608)
- )
- )
- (tee_local $12
- (if
- (i32.eq
- (i32.and
- (tee_local $12
- (i32.add
- (tee_local $4
- (i32.load
- (i32.const 652)
- )
- )
- (i32.const -1)
- )
- )
- (tee_local $0
- (get_local $7)
- )
- )
- (i32.const 0)
- )
- (get_local $10)
- (i32.add
- (i32.sub
- (get_local $10)
- (get_local $0)
- )
- (i32.and
- (i32.add
- (get_local $12)
- (get_local $0)
- )
- (i32.sub
- (i32.const 0)
- (get_local $4)
- )
- )
- )
- )
- )
- )
- )
- (if
- (i32.and
- (i32.gt_u
- (get_local $12)
- (get_local $6)
- )
- (i32.lt_u
- (get_local $12)
- (i32.const 2147483647)
- )
- )
- (block
- (if
- (i32.ne
- (tee_local $0
- (i32.load
- (i32.const 616)
- )
- )
- (i32.const 0)
- )
- (br_if $do-once$39
- (i32.or
- (i32.le_u
- (get_local $4)
- (get_local $3)
- )
- (i32.gt_u
- (get_local $4)
- (get_local $0)
- )
- )
- )
- )
- (if
- (i32.eq
- (tee_local $30
- (call_import $_sbrk
- (get_local $12)
- )
- )
- (get_local $7)
- )
- (block
- (set_local $14
- (get_local $7)
- )
- (set_local $19
- (get_local $12)
- )
- (br $label$break$L257
- (i32.const 193)
- )
- )
- (block
- (set_local $21
- (get_local $12)
- )
- (set_local $11
- (i32.const 183)
- )
- )
- )
- )
- )
- )
- )
- )
- )
- (block $label$break$L279
- (if
- (i32.eq
- (get_local $11)
- (i32.const 183)
- )
- (block
- (set_local $4
- (i32.sub
- (i32.const 0)
- (get_local $21)
- )
- )
- (if
- (i32.and
- (i32.gt_u
- (get_local $5)
- (get_local $21)
- )
- (i32.and
- (i32.lt_u
- (get_local $21)
- (i32.const 2147483647)
- )
- (i32.ne
- (get_local $30)
- (i32.const -1)
- )
- )
- )
- (if
- (i32.lt_u
- (tee_local $0
(i32.and
(i32.add
- (i32.sub
- (get_local $15)
- (get_local $21)
- )
- (tee_local $0
- (i32.load
- (i32.const 656)
- )
- )
+ (get_local $3)
+ (get_local $1)
)
(i32.sub
(i32.const 0)
- (get_local $0)
- )
- )
- )
- (i32.const 2147483647)
- )
- (if
- (i32.eq
- (call_import $_sbrk
- (get_local $0)
- )
- (i32.const -1)
- )
- (block
- (drop
- (call_import $_sbrk
(get_local $4)
)
)
- (br $label$break$L279)
)
- (set_local $21
- (i32.add
- (get_local $0)
- (get_local $21)
+ (get_local $9)
+ )
+ )
+ )
+ )
+ (if
+ (i32.and
+ (i32.gt_u
+ (get_local $1)
+ (get_local $0)
+ )
+ (i32.lt_u
+ (get_local $1)
+ (i32.const 2147483647)
+ )
+ )
+ (block
+ (if
+ (tee_local $4
+ (i32.load
+ (i32.const 616)
+ )
+ )
+ (br_if $label$break$L279
+ (i32.or
+ (i32.le_u
+ (get_local $3)
+ (get_local $6)
+ )
+ (i32.gt_u
+ (get_local $3)
+ (get_local $4)
)
)
)
)
- )
- (if
- (i32.ne
- (get_local $30)
- (i32.const -1)
+ (br_if $jumpthreading$inner$12
+ (i32.eq
+ (tee_local $3
+ (call_import $_sbrk
+ (get_local $1)
+ )
+ )
+ (get_local $2)
+ )
)
(block
- (set_local $14
- (get_local $30)
+ (set_local $2
+ (get_local $3)
)
- (set_local $19
- (get_local $21)
- )
- (br $label$break$L257
- (i32.const 193)
- )
+ (br $jumpthreading$inner$4)
)
)
)
)
)
- (i32.store
- (i32.const 620)
- (i32.or
- (i32.load
- (i32.const 620)
- )
- (i32.const 4)
- )
- )
- (i32.const 190)
+ (br $label$break$L279)
)
- (i32.const 190)
- )
- )
- )
- (i32.const 190)
- )
- (if
- (i32.lt_u
- (get_local $10)
- (i32.const 2147483647)
- )
- (block
- (set_local $3
- (i32.and
- (i32.ne
- (tee_local $0
- (call_import $_sbrk
- (get_local $10)
- )
- )
- (i32.const -1)
- )
- (i32.ne
- (tee_local $4
- (call_import $_sbrk
- (i32.const 0)
- )
- )
- (i32.const -1)
- )
- )
- )
- (if
- (i32.and
- (i32.lt_u
- (get_local $0)
- (get_local $4)
- )
- (get_local $3)
- )
- (if
- (i32.gt_u
- (tee_local $4
- (i32.sub
- (get_local $4)
- (get_local $0)
- )
- )
- (i32.add
- (get_local $6)
- (i32.const 40)
- )
- )
- (block
- (set_local $14
- (get_local $0)
- )
- (set_local $19
- (get_local $4)
- )
- (set_local $11
- (i32.const 193)
- )
- )
- )
- )
- )
- )
- )
- (if
- (i32.eq
- (get_local $11)
- (i32.const 193)
- )
- (block
- (i32.store
- (i32.const 608)
- (tee_local $0
- (i32.add
- (i32.load
- (i32.const 608)
- )
- (get_local $19)
- )
- )
- )
- (if
- (i32.gt_u
- (get_local $0)
- (i32.load
- (i32.const 612)
- )
- )
- (i32.store
- (i32.const 612)
- (get_local $0)
- )
- )
- (block $do-once$44
- (if
- (i32.eq
- (tee_local $0
- (i32.load
- (i32.const 200)
- )
- )
- (i32.const 0)
- )
- (block
- (if
- (i32.or
- (i32.eq
- (tee_local $0
- (i32.load
- (i32.const 192)
- )
- )
- (i32.const 0)
- )
- (i32.lt_u
- (get_local $14)
- (get_local $0)
- )
- )
- (i32.store
- (i32.const 192)
- (get_local $14)
- )
- )
- (i32.store
- (i32.const 624)
- (get_local $14)
- )
- (i32.store
- (i32.const 628)
- (get_local $19)
- )
- (i32.store
- (i32.const 636)
- (i32.const 0)
- )
- (i32.store
- (i32.const 212)
- (i32.load
- (i32.const 648)
- )
- )
- (i32.store
- (i32.const 208)
- (i32.const -1)
- )
- (set_local $1
- (i32.const 0)
- )
- (loop $while-in$47
- (block $while-out$46
- (i32.store offset=12
- (tee_local $0
- (i32.add
- (i32.const 216)
- (i32.shl
- (i32.shl
- (get_local $1)
- (i32.const 1)
- )
- (i32.const 2)
- )
- )
- )
- (get_local $0)
- )
- (i32.store offset=8
- (get_local $0)
- (get_local $0)
- )
- (br_if $while-out$46
- (i32.eq
- (tee_local $1
- (i32.add
- (get_local $1)
- (i32.const 1)
- )
- )
- (i32.const 32)
- )
- )
- (br $while-in$47)
- )
- )
- (set_local $1
- (i32.eq
- (i32.and
- (tee_local $0
- (i32.add
- (get_local $14)
- (i32.const 8)
- )
- )
- (i32.const 7)
- )
+ (set_local $3
+ (i32.sub
(i32.const 0)
+ (get_local $1)
)
)
- (i32.store
- (i32.const 200)
- (tee_local $0
- (i32.add
- (get_local $14)
- (tee_local $1
- (select
- (i32.const 0)
- (i32.and
+ (if
+ (i32.and
+ (i32.gt_u
+ (get_local $8)
+ (get_local $1)
+ )
+ (i32.and
+ (i32.lt_u
+ (get_local $1)
+ (i32.const 2147483647)
+ )
+ (i32.ne
+ (get_local $2)
+ (i32.const -1)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (tee_local $4
+ (i32.and
+ (i32.add
(i32.sub
- (i32.const 0)
- (get_local $0)
+ (get_local $5)
+ (get_local $1)
)
- (i32.const 7)
+ (tee_local $4
+ (i32.load
+ (i32.const 656)
+ )
+ )
)
+ (i32.sub
+ (i32.const 0)
+ (get_local $4)
+ )
+ )
+ )
+ (i32.const 2147483647)
+ )
+ (if
+ (i32.eq
+ (call_import $_sbrk
+ (get_local $4)
+ )
+ (i32.const -1)
+ )
+ (block
+ (drop
+ (call_import $_sbrk
+ (get_local $3)
+ )
+ )
+ (br $label$break$L279)
+ )
+ (set_local $1
+ (i32.add
+ (get_local $4)
(get_local $1)
)
)
)
)
)
- (i32.store
- (i32.const 188)
- (tee_local $1
- (i32.sub
- (i32.add
- (get_local $19)
- (i32.const -40)
- )
- (get_local $1)
- )
- )
- )
- (i32.store offset=4
- (get_local $0)
- (i32.or
- (get_local $1)
- (i32.const 1)
- )
- )
- (i32.store offset=4
- (i32.add
- (get_local $0)
- (get_local $1)
- )
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
+ (br_if $jumpthreading$inner$12
+ (i32.ne
+ (get_local $2)
+ (i32.const -1)
)
)
)
- (block
- (set_local $7
- (i32.const 624)
+ (i32.store
+ (i32.const 620)
+ (i32.or
+ (i32.load
+ (i32.const 620)
+ )
+ (i32.const 4)
)
- (loop $while-in$49
- (block $while-out$48
- (if
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (get_local $9)
+ (i32.const 2147483647)
+ )
+ (if
+ (i32.and
+ (i32.lt_u
+ (tee_local $2
+ (call_import $_sbrk
+ (get_local $9)
+ )
+ )
+ (tee_local $1
+ (call_import $_sbrk
+ (i32.const 0)
+ )
+ )
+ )
+ (i32.and
+ (i32.ne
+ (get_local $2)
+ (i32.const -1)
+ )
+ (i32.ne
+ (get_local $1)
+ (i32.const -1)
+ )
+ )
+ )
+ (br_if $jumpthreading$inner$12
+ (i32.gt_u
+ (tee_local $1
+ (i32.sub
+ (get_local $1)
+ (get_local $2)
+ )
+ )
+ (i32.add
+ (get_local $0)
+ (i32.const 40)
+ )
+ )
+ )
+ )
+ )
+ (br $jumpthreading$outer$12)
+ )
+ (i32.store
+ (i32.const 608)
+ (tee_local $3
+ (i32.add
+ (i32.load
+ (i32.const 608)
+ )
+ (get_local $1)
+ )
+ )
+ )
+ (if
+ (i32.gt_u
+ (get_local $3)
+ (i32.load
+ (i32.const 612)
+ )
+ )
+ (i32.store
+ (i32.const 612)
+ (get_local $3)
+ )
+ )
+ (block $do-once$44
+ (if
+ (tee_local $7
+ (i32.load
+ (i32.const 200)
+ )
+ )
+ (block
+ (set_local $3
+ (i32.const 624)
+ )
+ (block $jumpthreading$outer$9
+ (block $jumpthreading$inner$9
+ (loop $while-in$49
+ (br_if $jumpthreading$inner$9
(i32.eq
- (get_local $14)
+ (get_local $2)
(i32.add
- (tee_local $4
+ (tee_local $9
(i32.load
- (get_local $7)
+ (get_local $3)
)
)
- (tee_local $3
+ (tee_local $5
(i32.load
- (tee_local $5
+ (tee_local $4
(i32.add
- (get_local $7)
+ (get_local $3)
(i32.const 4)
)
)
@@ -13211,1329 +11623,1202 @@
)
)
)
- (block
- (set_local $1
- (get_local $4)
- )
- (set_local $2
+ )
+ (br_if $while-in$49
+ (tee_local $3
+ (i32.load offset=8
(get_local $3)
)
- (set_local $42
- (get_local $5)
- )
- (set_local $43
- (get_local $7)
- )
- (set_local $11
- (i32.const 203)
- )
- (br $while-out$48)
)
)
- (if
- (i32.eq
- (tee_local $4
- (i32.load offset=8
- (get_local $7)
- )
- )
- (i32.const 0)
- )
- (br $while-out$48)
- (set_local $7
- (get_local $4)
- )
- )
- (br $while-in$49)
)
+ (br $jumpthreading$outer$9)
)
(if
- (i32.eq
- (get_local $11)
- (i32.const 203)
+ (i32.eqz
+ (i32.and
+ (i32.load offset=12
+ (get_local $3)
+ )
+ (i32.const 8)
+ )
)
(if
- (i32.eq
- (i32.and
- (i32.load offset=12
- (get_local $43)
- )
- (i32.const 8)
+ (i32.and
+ (i32.lt_u
+ (get_local $7)
+ (get_local $2)
)
- (i32.const 0)
+ (i32.ge_u
+ (get_local $7)
+ (get_local $9)
+ )
)
- (if
- (i32.and
- (i32.lt_u
- (get_local $0)
- (get_local $14)
- )
- (i32.ge_u
- (get_local $0)
+ (block
+ (i32.store
+ (get_local $4)
+ (i32.add
+ (get_local $5)
(get_local $1)
)
)
+ (set_local $3
+ (i32.add
+ (get_local $7)
+ (tee_local $2
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (tee_local $2
+ (i32.add
+ (get_local $7)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (get_local $2)
+ (i32.const 7)
+ )
+ )
+ )
+ )
+ )
+ (set_local $1
+ (i32.add
+ (i32.sub
+ (get_local $1)
+ (get_local $2)
+ )
+ (i32.load
+ (i32.const 188)
+ )
+ )
+ )
+ (i32.store
+ (i32.const 200)
+ (get_local $3)
+ )
+ (i32.store
+ (i32.const 188)
+ (get_local $1)
+ )
+ (i32.store offset=4
+ (get_local $3)
+ (i32.or
+ (get_local $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4
+ (i32.add
+ (get_local $3)
+ (get_local $1)
+ )
+ (i32.const 40)
+ )
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
+ )
+ )
+ (br $do-once$44)
+ )
+ )
+ )
+ )
+ (set_local $10
+ (if
+ (i32.lt_u
+ (get_local $2)
+ (tee_local $3
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ )
+ (block
+ (i32.store
+ (i32.const 192)
+ (get_local $2)
+ )
+ (get_local $2)
+ )
+ (get_local $3)
+ )
+ )
+ (set_local $5
+ (i32.add
+ (get_local $2)
+ (get_local $1)
+ )
+ )
+ (set_local $3
+ (i32.const 624)
+ )
+ (block $jumpthreading$outer$10
+ (block $jumpthreading$inner$10
+ (loop $while-in$51
+ (if
+ (i32.eq
+ (i32.load
+ (get_local $3)
+ )
+ (get_local $5)
+ )
(block
- (i32.store
- (get_local $42)
+ (set_local $4
+ (get_local $3)
+ )
+ (br $jumpthreading$inner$10)
+ )
+ )
+ (br_if $while-in$51
+ (tee_local $3
+ (i32.load offset=8
+ (get_local $3)
+ )
+ )
+ )
+ (set_local $4
+ (i32.const 624)
+ )
+ )
+ (br $jumpthreading$outer$10)
+ )
+ (if
+ (i32.and
+ (i32.load offset=12
+ (get_local $3)
+ )
+ (i32.const 8)
+ )
+ (set_local $4
+ (i32.const 624)
+ )
+ (block
+ (i32.store
+ (get_local $4)
+ (get_local $2)
+ )
+ (i32.store
+ (tee_local $3
+ (i32.add
+ (get_local $3)
+ (i32.const 4)
+ )
+ )
+ (i32.add
+ (i32.load
+ (get_local $3)
+ )
+ (get_local $1)
+ )
+ )
+ (set_local $6
+ (i32.add
+ (tee_local $9
(i32.add
(get_local $2)
- (get_local $19)
- )
- )
- (set_local $2
- (i32.eq
- (i32.and
- (tee_local $1
- (i32.add
- (get_local $0)
- (i32.const 8)
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (tee_local $1
+ (i32.add
+ (get_local $2)
+ (i32.const 8)
+ )
+ )
)
+ (i32.const 7)
)
- (i32.const 7)
+ (i32.const 0)
+ (i32.and
+ (get_local $1)
+ (i32.const 7)
+ )
)
- (i32.const 0)
)
)
- (set_local $0
- (i32.add
- (get_local $0)
- (tee_local $1
+ (get_local $0)
+ )
+ )
+ (set_local $2
+ (i32.sub
+ (i32.sub
+ (tee_local $8
+ (i32.add
+ (get_local $5)
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
- (get_local $1)
+ (tee_local $1
+ (i32.add
+ (get_local $5)
+ (i32.const 8)
+ )
+ )
)
(i32.const 7)
)
+ (i32.const 0)
+ (i32.and
+ (get_local $1)
+ (i32.const 7)
+ )
+ )
+ )
+ )
+ (get_local $9)
+ )
+ (get_local $0)
+ )
+ )
+ (i32.store offset=4
+ (get_local $9)
+ (i32.or
+ (get_local $0)
+ (i32.const 3)
+ )
+ )
+ (block $do-once$52
+ (if
+ (i32.eq
+ (get_local $8)
+ (get_local $7)
+ )
+ (block
+ (i32.store
+ (i32.const 188)
+ (tee_local $0
+ (i32.add
+ (i32.load
+ (i32.const 188)
+ )
(get_local $2)
)
)
)
- )
- (set_local $1
- (i32.add
- (i32.sub
- (get_local $19)
- (get_local $1)
- )
- (i32.load
- (i32.const 188)
+ (i32.store
+ (i32.const 200)
+ (get_local $6)
+ )
+ (i32.store offset=4
+ (get_local $6)
+ (i32.or
+ (get_local $0)
+ (i32.const 1)
)
)
)
- (i32.store
- (i32.const 200)
- (get_local $0)
- )
- (i32.store
- (i32.const 188)
- (get_local $1)
- )
- (i32.store offset=4
- (get_local $0)
- (i32.or
- (get_local $1)
- (i32.const 1)
+ (block
+ (if
+ (i32.eq
+ (get_local $8)
+ (i32.load
+ (i32.const 196)
+ )
+ )
+ (block
+ (i32.store
+ (i32.const 184)
+ (tee_local $0
+ (i32.add
+ (i32.load
+ (i32.const 184)
+ )
+ (get_local $2)
+ )
+ )
+ )
+ (i32.store
+ (i32.const 196)
+ (get_local $6)
+ )
+ (i32.store offset=4
+ (get_local $6)
+ (i32.or
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (get_local $6)
+ (get_local $0)
+ )
+ (get_local $0)
+ )
+ (br $do-once$52)
+ )
)
- )
- (i32.store offset=4
- (i32.add
- (get_local $0)
- (get_local $1)
- )
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
- )
- )
- (br $do-once$44)
- )
- )
- )
- )
- (set_local $4
- (if
- (i32.lt_u
- (get_local $14)
- (tee_local $1
- (i32.load
- (i32.const 192)
- )
- )
- )
- (block
- (i32.store
- (i32.const 192)
- (get_local $14)
- )
- (get_local $14)
- )
- (get_local $1)
- )
- )
- (set_local $3
- (i32.add
- (get_local $14)
- (get_local $19)
- )
- )
- (set_local $1
- (i32.const 624)
- )
- (loop $while-in$51
- (block $while-out$50
- (if
- (i32.eq
- (i32.load
- (get_local $1)
- )
- (get_local $3)
- )
- (block
- (set_local $44
- (get_local $1)
- )
- (set_local $38
- (get_local $1)
- )
- (set_local $11
- (i32.const 211)
- )
- (br $while-out$50)
- )
- )
- (if
- (i32.eq
- (tee_local $1
- (i32.load offset=8
- (get_local $1)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $27
- (i32.const 624)
- )
- (br $while-out$50)
- )
- )
- (br $while-in$51)
- )
- )
- (if
- (i32.eq
- (get_local $11)
- (i32.const 211)
- )
- (if
- (i32.eq
- (i32.and
- (i32.load offset=12
- (get_local $38)
- )
- (i32.const 8)
- )
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $44)
- (get_local $14)
- )
- (set_local $1
- (i32.add
- (i32.load
- (tee_local $2
+ (i32.store
+ (tee_local $0
(i32.add
- (get_local $38)
+ (if
+ (i32.eq
+ (i32.and
+ (tee_local $1
+ (i32.load offset=4
+ (get_local $8)
+ )
+ )
+ (i32.const 3)
+ )
+ (i32.const 1)
+ )
+ (block
+ (set_local $5
+ (i32.and
+ (get_local $1)
+ (i32.const -8)
+ )
+ )
+ (set_local $0
+ (i32.shr_u
+ (get_local $1)
+ (i32.const 3)
+ )
+ )
+ (block $label$break$L331
+ (if
+ (i32.lt_u
+ (get_local $1)
+ (i32.const 256)
+ )
+ (block
+ (set_local $3
+ (i32.load offset=12
+ (get_local $8)
+ )
+ )
+ (block $do-once$55
+ (if
+ (i32.ne
+ (tee_local $4
+ (i32.load offset=8
+ (get_local $8)
+ )
+ )
+ (tee_local $1
+ (i32.add
+ (i32.const 216)
+ (i32.shl
+ (i32.shl
+ (get_local $0)
+ (i32.const 1)
+ )
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (get_local $4)
+ (get_local $10)
+ )
+ (call_import $_abort)
+ )
+ (br_if $do-once$55
+ (i32.eq
+ (i32.load offset=12
+ (get_local $4)
+ )
+ (get_local $8)
+ )
+ )
+ (call_import $_abort)
+ )
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $3)
+ (get_local $4)
+ )
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.and
+ (i32.load
+ (i32.const 176)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (get_local $0)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (br $label$break$L331)
+ )
+ )
+ (block $do-once$57
+ (if
+ (i32.eq
+ (get_local $3)
+ (get_local $1)
+ )
+ (set_local $21
+ (i32.add
+ (get_local $3)
+ (i32.const 8)
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (get_local $3)
+ (get_local $10)
+ )
+ (call_import $_abort)
+ )
+ (if
+ (i32.eq
+ (i32.load
+ (tee_local $0
+ (i32.add
+ (get_local $3)
+ (i32.const 8)
+ )
+ )
+ )
+ (get_local $8)
+ )
+ (block
+ (set_local $21
+ (get_local $0)
+ )
+ (br $do-once$57)
+ )
+ )
+ (call_import $_abort)
+ )
+ )
+ )
+ (i32.store offset=12
+ (get_local $4)
+ (get_local $3)
+ )
+ (i32.store
+ (get_local $21)
+ (get_local $4)
+ )
+ )
+ (block
+ (set_local $7
+ (i32.load offset=24
+ (get_local $8)
+ )
+ )
+ (block $do-once$59
+ (if
+ (i32.eq
+ (tee_local $0
+ (i32.load offset=12
+ (get_local $8)
+ )
+ )
+ (get_local $8)
+ )
+ (block
+ (if
+ (tee_local $1
+ (i32.load
+ (tee_local $3
+ (i32.add
+ (tee_local $0
+ (i32.add
+ (get_local $8)
+ (i32.const 16)
+ )
+ )
+ (i32.const 4)
+ )
+ )
+ )
+ )
+ (set_local $0
+ (get_local $3)
+ )
+ (if
+ (i32.eqz
+ (tee_local $1
+ (i32.load
+ (get_local $0)
+ )
+ )
+ )
+ (block
+ (set_local $11
+ (i32.const 0)
+ )
+ (br $do-once$59)
+ )
+ )
+ )
+ (loop $while-in$62
+ (if
+ (tee_local $4
+ (i32.load
+ (tee_local $3
+ (i32.add
+ (get_local $1)
+ (i32.const 20)
+ )
+ )
+ )
+ )
+ (block
+ (set_local $1
+ (get_local $4)
+ )
+ (set_local $0
+ (get_local $3)
+ )
+ (br $while-in$62)
+ )
+ )
+ (if
+ (tee_local $4
+ (i32.load
+ (tee_local $3
+ (i32.add
+ (get_local $1)
+ (i32.const 16)
+ )
+ )
+ )
+ )
+ (block
+ (set_local $1
+ (get_local $4)
+ )
+ (set_local $0
+ (get_local $3)
+ )
+ (br $while-in$62)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (get_local $0)
+ (get_local $10)
+ )
+ (call_import $_abort)
+ (block
+ (i32.store
+ (get_local $0)
+ (i32.const 0)
+ )
+ (set_local $11
+ (get_local $1)
+ )
+ )
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (tee_local $4
+ (i32.load offset=8
+ (get_local $8)
+ )
+ )
+ (get_local $10)
+ )
+ (call_import $_abort)
+ )
+ (if
+ (i32.ne
+ (i32.load
+ (tee_local $3
+ (i32.add
+ (get_local $4)
+ (i32.const 12)
+ )
+ )
+ )
+ (get_local $8)
+ )
+ (call_import $_abort)
+ )
+ (if
+ (i32.eq
+ (i32.load
+ (tee_local $1
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ )
+ )
+ (get_local $8)
+ )
+ (block
+ (i32.store
+ (get_local $3)
+ (get_local $0)
+ )
+ (i32.store
+ (get_local $1)
+ (get_local $4)
+ )
+ (set_local $11
+ (get_local $0)
+ )
+ )
+ (call_import $_abort)
+ )
+ )
+ )
+ )
+ (br_if $label$break$L331
+ (i32.eqz
+ (get_local $7)
+ )
+ )
+ (block $do-once$63
+ (if
+ (i32.eq
+ (get_local $8)
+ (i32.load
+ (tee_local $0
+ (i32.add
+ (i32.const 480)
+ (i32.shl
+ (tee_local $1
+ (i32.load offset=28
+ (get_local $8)
+ )
+ )
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ )
+ (block
+ (i32.store
+ (get_local $0)
+ (get_local $11)
+ )
+ (br_if $do-once$63
+ (get_local $11)
+ )
+ (i32.store
+ (i32.const 180)
+ (i32.and
+ (i32.load
+ (i32.const 180)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (get_local $1)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (br $label$break$L331)
+ )
+ (block
+ (if
+ (i32.lt_u
+ (get_local $7)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call_import $_abort)
+ )
+ (if
+ (i32.eq
+ (i32.load
+ (tee_local $0
+ (i32.add
+ (get_local $7)
+ (i32.const 16)
+ )
+ )
+ )
+ (get_local $8)
+ )
+ (i32.store
+ (get_local $0)
+ (get_local $11)
+ )
+ (i32.store offset=20
+ (get_local $7)
+ (get_local $11)
+ )
+ )
+ (br_if $label$break$L331
+ (i32.eqz
+ (get_local $11)
+ )
+ )
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (get_local $11)
+ (tee_local $3
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ )
+ (call_import $_abort)
+ )
+ (i32.store offset=24
+ (get_local $11)
+ (get_local $7)
+ )
+ (if
+ (tee_local $1
+ (i32.load
+ (tee_local $0
+ (i32.add
+ (get_local $8)
+ (i32.const 16)
+ )
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (get_local $1)
+ (get_local $3)
+ )
+ (call_import $_abort)
+ (block
+ (i32.store offset=16
+ (get_local $11)
+ (get_local $1)
+ )
+ (i32.store offset=24
+ (get_local $1)
+ (get_local $11)
+ )
+ )
+ )
+ )
+ (br_if $label$break$L331
+ (i32.eqz
+ (tee_local $0
+ (i32.load offset=4
+ (get_local $0)
+ )
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (get_local $0)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call_import $_abort)
+ (block
+ (i32.store offset=20
+ (get_local $11)
+ (get_local $0)
+ )
+ (i32.store offset=24
+ (get_local $0)
+ (get_local $11)
+ )
+ )
+ )
+ )
+ )
+ )
+ (set_local $2
+ (i32.add
+ (get_local $5)
+ (get_local $2)
+ )
+ )
+ (i32.add
+ (get_local $8)
+ (get_local $5)
+ )
+ )
+ (get_local $8)
+ )
(i32.const 4)
)
)
- )
- (get_local $19)
- )
- )
- (i32.store
- (get_local $2)
- (get_local $1)
- )
- (set_local $9
- (i32.eq
- (i32.and
- (tee_local $1
- (i32.add
- (get_local $14)
- (i32.const 8)
- )
- )
- (i32.const 7)
- )
- (i32.const 0)
- )
- )
- (set_local $5
- (i32.eq
- (i32.and
- (tee_local $2
- (i32.add
- (get_local $3)
- (i32.const 8)
- )
- )
- (i32.const 7)
- )
- (i32.const 0)
- )
- )
- (set_local $1
- (i32.sub
- (tee_local $3
- (i32.add
- (get_local $3)
- (select
- (i32.const 0)
- (i32.and
- (i32.sub
- (i32.const 0)
- (get_local $2)
- )
- (i32.const 7)
- )
- (get_local $5)
- )
- )
- )
- (tee_local $7
- (i32.add
- (get_local $14)
- (select
- (i32.const 0)
- (i32.and
- (i32.sub
- (i32.const 0)
- (get_local $1)
- )
- (i32.const 7)
- )
- (get_local $9)
- )
- )
- )
- )
- )
- (set_local $5
- (i32.add
- (get_local $7)
- (get_local $6)
- )
- )
- (set_local $12
- (i32.sub
- (get_local $1)
- (get_local $6)
- )
- )
- (i32.store offset=4
- (get_local $7)
- (i32.or
- (get_local $6)
- (i32.const 3)
- )
- )
- (block $do-once$52
- (if
- (i32.eq
- (get_local $3)
- (get_local $0)
- )
- (block
- (i32.store
- (i32.const 188)
- (tee_local $0
- (i32.add
- (i32.load
- (i32.const 188)
- )
- (get_local $12)
- )
- )
- )
- (i32.store
- (i32.const 200)
- (get_local $5)
- )
- (i32.store offset=4
- (get_local $5)
- (i32.or
+ (i32.and
+ (i32.load
(get_local $0)
- (i32.const 1)
)
+ (i32.const -2)
)
)
- (block
- (if
- (i32.eq
- (get_local $3)
- (i32.load
- (i32.const 196)
+ (i32.store offset=4
+ (get_local $6)
+ (i32.or
+ (get_local $2)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (get_local $6)
+ (get_local $2)
+ )
+ (get_local $2)
+ )
+ (set_local $1
+ (i32.shr_u
+ (get_local $2)
+ (i32.const 3)
+ )
+ )
+ (if
+ (i32.lt_u
+ (get_local $2)
+ (i32.const 256)
+ )
+ (block
+ (set_local $0
+ (i32.add
+ (i32.const 216)
+ (i32.shl
+ (i32.shl
+ (get_local $1)
+ (i32.const 1)
+ )
+ (i32.const 2)
+ )
)
)
- (block
- (i32.store
- (i32.const 184)
- (tee_local $0
- (i32.add
+ (block $do-once$67
+ (if
+ (i32.and
+ (tee_local $2
(i32.load
- (i32.const 184)
+ (i32.const 176)
)
- (get_local $12)
+ )
+ (tee_local $1
+ (i32.shl
+ (i32.const 1)
+ (get_local $1)
+ )
+ )
+ )
+ (block
+ (if
+ (i32.ge_u
+ (tee_local $1
+ (i32.load
+ (tee_local $2
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ )
+ )
+ )
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (block
+ (set_local $22
+ (get_local $2)
+ )
+ (set_local $17
+ (get_local $1)
+ )
+ (br $do-once$67)
+ )
+ )
+ (call_import $_abort)
+ )
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (get_local $2)
+ (get_local $1)
+ )
+ )
+ (set_local $22
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ )
+ (set_local $17
+ (get_local $0)
)
)
)
- (i32.store
- (i32.const 196)
- (get_local $5)
- )
- (i32.store offset=4
- (get_local $5)
- (i32.or
- (get_local $0)
- (i32.const 1)
- )
- )
- (i32.store
- (i32.add
- (get_local $5)
- (get_local $0)
- )
- (get_local $0)
- )
- (br $do-once$52)
)
+ (i32.store
+ (get_local $22)
+ (get_local $6)
+ )
+ (i32.store offset=12
+ (get_local $17)
+ (get_local $6)
+ )
+ (i32.store offset=8
+ (get_local $6)
+ (get_local $17)
+ )
+ (i32.store offset=12
+ (get_local $6)
+ (get_local $0)
+ )
+ (br $do-once$52)
)
- (set_local $0
- (i32.and
- (i32.load
- (tee_local $1
- (i32.add
- (if
- (i32.eq
- (i32.and
- (tee_local $0
- (i32.load offset=4
- (get_local $3)
- )
- )
- (i32.const 3)
- )
- (i32.const 1)
+ )
+ (set_local $1
+ (i32.add
+ (i32.const 480)
+ (i32.shl
+ (tee_local $3
+ (block $do-once$69
+ (if
+ (tee_local $0
+ (i32.shr_u
+ (get_local $2)
+ (i32.const 8)
)
- (block
- (set_local $10
- (i32.and
- (get_local $0)
- (i32.const -8)
- )
+ )
+ (block
+ (br_if $do-once$69
+ (i32.const 31)
+ (i32.gt_u
+ (get_local $2)
+ (i32.const 16777215)
)
- (set_local $9
+ )
+ (i32.or
+ (i32.and
(i32.shr_u
- (get_local $0)
- (i32.const 3)
- )
- )
- (block $label$break$L331
- (if
- (i32.lt_u
- (get_local $0)
- (i32.const 256)
- )
- (block
- (set_local $1
- (i32.load offset=12
- (get_local $3)
- )
- )
- (block $do-once$55
- (if
- (i32.ne
- (tee_local $0
- (i32.load offset=8
+ (get_local $2)
+ (i32.add
+ (tee_local $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
+ (i32.or
+ (i32.or
+ (tee_local $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (tee_local $0
+ (i32.shl
+ (get_local $0)
+ (tee_local $3
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (get_local $0)
+ (i32.const 1048320)
+ )
+ (i32.const 16)
+ )
+ (i32.const 8)
+ )
+ )
+ )
+ )
+ (i32.const 520192)
+ )
+ (i32.const 16)
+ )
+ (i32.const 4)
+ )
+ )
(get_local $3)
)
- )
- (tee_local $2
- (i32.add
- (i32.const 216)
- (i32.shl
- (i32.shl
- (get_local $9)
- (i32.const 1)
+ (tee_local $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (tee_local $0
+ (i32.shl
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (i32.const 245760)
+ )
+ (i32.const 16)
)
(i32.const 2)
)
)
)
)
- (block
- (if
- (i32.lt_u
- (get_local $0)
- (get_local $4)
- )
- (call_import $_abort)
- )
- (br_if $do-once$55
- (i32.eq
- (i32.load offset=12
- (get_local $0)
- )
- (get_local $3)
- )
- )
- (call_import $_abort)
- )
- )
- )
- (if
- (i32.eq
- (get_local $1)
- (get_local $0)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.and
- (i32.load
- (i32.const 176)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (get_local $9)
- )
- (i32.const -1)
- )
- )
- )
- (br $label$break$L331)
- )
- )
- (block $do-once$57
- (if
- (i32.eq
- (get_local $1)
- (get_local $2)
- )
- (set_local $39
- (i32.add
+ (i32.shr_u
+ (i32.shl
+ (get_local $0)
(get_local $1)
- (i32.const 8)
)
- )
- (block
- (if
- (i32.lt_u
- (get_local $1)
- (get_local $4)
- )
- (call_import $_abort)
- )
- (if
- (i32.eq
- (i32.load
- (tee_local $2
- (i32.add
- (get_local $1)
- (i32.const 8)
- )
- )
- )
- (get_local $3)
- )
- (block
- (set_local $39
- (get_local $2)
- )
- (br $do-once$57)
- )
- )
- (call_import $_abort)
+ (i32.const 15)
)
)
)
- (i32.store offset=12
- (get_local $0)
- (get_local $1)
- )
- (i32.store
- (get_local $39)
- (get_local $0)
- )
- )
- (block
- (set_local $0
- (i32.load offset=24
- (get_local $3)
- )
- )
- (block $do-once$59
- (if
- (i32.eq
- (tee_local $1
- (i32.load offset=12
- (get_local $3)
- )
- )
- (get_local $3)
- )
- (block
- (if
- (i32.eq
- (tee_local $1
- (i32.load
- (tee_local $9
- (i32.add
- (tee_local $20
- (i32.add
- (get_local $3)
- (i32.const 16)
- )
- )
- (i32.const 4)
- )
- )
- )
- )
- (i32.const 0)
- )
- (if
- (i32.eq
- (tee_local $1
- (i32.load
- (get_local $20)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $18
- (i32.const 0)
- )
- (br $do-once$59)
- )
- (block
- (set_local $2
- (get_local $1)
- )
- (set_local $9
- (get_local $20)
- )
- )
- )
- (set_local $2
- (get_local $1)
- )
- )
- (loop $while-in$62
- (block $while-out$61
- (if
- (i32.ne
- (tee_local $1
- (i32.load
- (tee_local $20
- (i32.add
- (get_local $2)
- (i32.const 20)
- )
- )
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $2
- (get_local $1)
- )
- (set_local $9
- (get_local $20)
- )
- (br $while-in$62)
- )
- )
- (if
- (i32.eq
- (tee_local $1
- (i32.load
- (tee_local $20
- (i32.add
- (get_local $2)
- (i32.const 16)
- )
- )
- )
- )
- (i32.const 0)
- )
- (br $while-out$61)
- (block
- (set_local $2
- (get_local $1)
- )
- (set_local $9
- (get_local $20)
- )
- )
- )
- (br $while-in$62)
- )
- )
- (if
- (i32.lt_u
- (get_local $9)
- (get_local $4)
- )
- (call_import $_abort)
- (block
- (i32.store
- (get_local $9)
- (i32.const 0)
- )
- (set_local $18
- (get_local $2)
- )
- )
- )
- )
- (block
- (if
- (i32.lt_u
- (tee_local $2
- (i32.load offset=8
- (get_local $3)
- )
- )
- (get_local $4)
- )
- (call_import $_abort)
- )
- (if
- (i32.ne
- (i32.load
- (tee_local $4
- (i32.add
- (get_local $2)
- (i32.const 12)
- )
- )
- )
- (get_local $3)
- )
- (call_import $_abort)
- )
- (if
- (i32.eq
- (i32.load
- (tee_local $9
- (i32.add
- (get_local $1)
- (i32.const 8)
- )
- )
- )
- (get_local $3)
- )
- (block
- (i32.store
- (get_local $4)
- (get_local $1)
- )
- (i32.store
- (get_local $9)
- (get_local $2)
- )
- (set_local $18
- (get_local $1)
- )
- )
- (call_import $_abort)
- )
- )
- )
- )
- (br_if $label$break$L331
- (i32.eq
- (get_local $0)
- (i32.const 0)
- )
- )
- (block $do-once$63
- (if
- (i32.eq
- (get_local $3)
- (i32.load
- (tee_local $2
- (i32.add
- (i32.const 480)
- (i32.shl
- (tee_local $1
- (i32.load offset=28
- (get_local $3)
- )
- )
- (i32.const 2)
- )
- )
- )
- )
- )
- (block
- (i32.store
- (get_local $2)
- (get_local $18)
- )
- (br_if $do-once$63
- (i32.ne
- (get_local $18)
- (i32.const 0)
- )
- )
- (i32.store
- (i32.const 180)
- (i32.and
- (i32.load
- (i32.const 180)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (get_local $1)
- )
- (i32.const -1)
- )
- )
- )
- (br $label$break$L331)
- )
- (block
- (if
- (i32.lt_u
- (get_local $0)
- (i32.load
- (i32.const 192)
- )
- )
- (call_import $_abort)
- )
- (if
- (i32.eq
- (i32.load
- (tee_local $1
- (i32.add
- (get_local $0)
- (i32.const 16)
- )
- )
- )
- (get_local $3)
- )
- (i32.store
- (get_local $1)
- (get_local $18)
- )
- (i32.store offset=20
- (get_local $0)
- (get_local $18)
- )
- )
- (br_if $label$break$L331
- (i32.eq
- (get_local $18)
- (i32.const 0)
- )
- )
- )
- )
- )
- (if
- (i32.lt_u
- (get_local $18)
- (tee_local $1
- (i32.load
- (i32.const 192)
- )
- )
- )
- (call_import $_abort)
- )
- (i32.store offset=24
- (get_local $18)
- (get_local $0)
- )
- (if
- (i32.ne
- (tee_local $0
- (i32.load
- (tee_local $2
- (i32.add
- (get_local $3)
- (i32.const 16)
- )
- )
- )
- )
- (i32.const 0)
- )
- (if
- (i32.lt_u
- (get_local $0)
- (get_local $1)
- )
- (call_import $_abort)
- (block
- (i32.store offset=16
- (get_local $18)
- (get_local $0)
- )
- (i32.store offset=24
- (get_local $0)
- (get_local $18)
- )
- )
- )
- )
- (br_if $label$break$L331
- (i32.eq
- (tee_local $0
- (i32.load offset=4
- (get_local $2)
- )
- )
- (i32.const 0)
- )
- )
- (if
- (i32.lt_u
- (get_local $0)
- (i32.load
- (i32.const 192)
- )
- )
- (call_import $_abort)
- (block
- (i32.store offset=20
- (get_local $18)
- (get_local $0)
- )
- (i32.store offset=24
- (get_local $0)
- (get_local $18)
- )
- )
- )
+ (i32.const 7)
)
)
- )
- (set_local $4
- (i32.add
- (get_local $10)
- (get_local $12)
- )
- )
- (i32.add
- (get_local $3)
- (get_local $10)
- )
- )
- (block
- (set_local $4
- (get_local $12)
- )
- (get_local $3)
- )
- )
- (i32.const 4)
- )
- )
- )
- (i32.const -2)
- )
- )
- (i32.store
- (get_local $1)
- (get_local $0)
- )
- (i32.store offset=4
- (get_local $5)
- (i32.or
- (get_local $4)
- (i32.const 1)
- )
- )
- (i32.store
- (i32.add
- (get_local $5)
- (get_local $4)
- )
- (get_local $4)
- )
- (set_local $1
- (i32.shr_u
- (get_local $4)
- (i32.const 3)
- )
- )
- (if
- (i32.lt_u
- (get_local $4)
- (i32.const 256)
- )
- (block
- (set_local $2
- (i32.add
- (i32.const 216)
- (i32.shl
- (i32.shl
- (get_local $1)
- (i32.const 1)
- )
- (i32.const 2)
- )
- )
- )
- (block $do-once$67
- (if
- (i32.eq
- (i32.and
- (tee_local $0
- (i32.load
- (i32.const 176)
- )
- )
- (tee_local $1
- (i32.shl
(i32.const 1)
- (get_local $1)
+ )
+ (i32.shl
+ (get_local $0)
+ (i32.const 1)
)
)
)
(i32.const 0)
)
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (get_local $0)
- (get_local $1)
- )
- )
- (set_local $8
- (i32.add
- (get_local $2)
- (i32.const 8)
- )
- )
- (set_local $33
- (get_local $2)
- )
- )
- (block
- (if
- (i32.ge_u
- (tee_local $1
- (i32.load
- (tee_local $0
- (i32.add
- (get_local $2)
- (i32.const 8)
- )
- )
- )
- )
- (i32.load
- (i32.const 192)
- )
- )
- (block
- (set_local $8
- (get_local $0)
- )
- (set_local $33
- (get_local $1)
- )
- (br $do-once$67)
- )
- )
- (call_import $_abort)
- )
)
)
- (i32.store
- (get_local $8)
- (get_local $5)
- )
- (i32.store offset=12
- (get_local $33)
- (get_local $5)
- )
- (i32.store offset=8
- (get_local $5)
- (get_local $33)
- )
- (i32.store offset=12
- (get_local $5)
- (get_local $2)
- )
- (br $do-once$52)
+ (i32.const 2)
)
)
- (set_local $2
+ )
+ (i32.store offset=28
+ (get_local $6)
+ (get_local $3)
+ )
+ (i32.store offset=4
+ (tee_local $0
(i32.add
- (i32.const 480)
- (i32.shl
- (tee_local $1
- (block $do-once$69
- (if
- (i32.eq
- (tee_local $0
- (i32.shr_u
- (get_local $4)
- (i32.const 8)
- )
- )
- (i32.const 0)
- )
- (i32.const 0)
- (block
- (br_if $do-once$69
- (i32.const 31)
- (i32.gt_u
- (get_local $4)
- (i32.const 16777215)
- )
- )
- (set_local $1
- (i32.shl
- (tee_local $0
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
- (i32.or
- (tee_local $1
- (i32.and
- (i32.shr_u
- (i32.add
- (tee_local $2
- (i32.shl
- (get_local $0)
- (tee_local $0
- (i32.and
- (i32.shr_u
- (i32.add
- (get_local $0)
- (i32.const 1048320)
- )
- (i32.const 16)
- )
- (i32.const 8)
- )
- )
- )
- )
- (i32.const 520192)
- )
- (i32.const 16)
- )
- (i32.const 4)
- )
- )
- (get_local $0)
- )
- (tee_local $0
- (i32.and
- (i32.shr_u
- (i32.add
- (tee_local $1
- (i32.shl
- (get_local $2)
- (get_local $1)
- )
- )
- (i32.const 245760)
- )
- (i32.const 16)
- )
- (i32.const 2)
- )
- )
- )
- )
- (i32.shr_u
- (i32.shl
- (get_local $1)
- (get_local $0)
- )
- (i32.const 15)
- )
- )
- )
- (i32.const 1)
- )
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (get_local $4)
- (i32.add
- (get_local $0)
- (i32.const 7)
- )
- )
- (i32.const 1)
- )
- (get_local $1)
- )
- )
- )
- )
- )
- (i32.const 2)
- )
+ (get_local $6)
+ (i32.const 16)
)
)
- (i32.store offset=28
- (get_local $5)
- (get_local $1)
- )
- (i32.store offset=4
- (tee_local $0
- (i32.add
- (get_local $5)
- (i32.const 16)
- )
- )
- (i32.const 0)
- )
- (i32.store
- (get_local $0)
- (i32.const 0)
- )
- (if
- (i32.eq
- (i32.and
- (tee_local $0
- (i32.load
- (i32.const 180)
- )
- )
- (tee_local $8
- (i32.shl
- (i32.const 1)
- (get_local $1)
- )
+ (i32.const 0)
+ )
+ (i32.store
+ (get_local $0)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (tee_local $4
+ (i32.load
+ (i32.const 180)
)
)
- (i32.const 0)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.or
- (get_local $0)
- (get_local $8)
- )
- )
- (i32.store
- (get_local $2)
- (get_local $5)
- )
- (i32.store offset=24
- (get_local $5)
- (get_local $2)
- )
- (i32.store offset=12
- (get_local $5)
- (get_local $5)
- )
- (i32.store offset=8
- (get_local $5)
- (get_local $5)
- )
- (br $do-once$52)
- )
- )
- (set_local $1
- (i32.shl
- (get_local $4)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
- (get_local $1)
- (i32.const 1)
- )
- )
- (i32.eq
- (get_local $1)
- (i32.const 31)
- )
- )
- )
- )
- (set_local $2
- (i32.load
- (get_local $2)
- )
- )
- (loop $while-in$72
- (block $while-out$71
- (if
- (i32.eq
- (i32.and
- (i32.load offset=4
- (get_local $2)
- )
- (i32.const -8)
- )
- (get_local $4)
- )
- (block
- (set_local $34
- (get_local $2)
- )
- (set_local $11
- (i32.const 281)
- )
- (br $while-out$71)
- )
- )
- (set_local $8
+ (tee_local $0
(i32.shl
- (get_local $1)
+ (i32.const 1)
+ (get_local $3)
+ )
+ )
+ )
+ )
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.or
+ (get_local $4)
+ (get_local $0)
+ )
+ )
+ (i32.store
+ (get_local $1)
+ (get_local $6)
+ )
+ (i32.store offset=24
+ (get_local $6)
+ (get_local $1)
+ )
+ (i32.store offset=12
+ (get_local $6)
+ (get_local $6)
+ )
+ (i32.store offset=8
+ (get_local $6)
+ (get_local $6)
+ )
+ (br $do-once$52)
+ )
+ )
+ (set_local $3
+ (i32.shl
+ (get_local $2)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (get_local $3)
(i32.const 1)
)
)
- (if
- (i32.eq
- (tee_local $0
+ (i32.eq
+ (get_local $3)
+ (i32.const 31)
+ )
+ )
+ )
+ )
+ (set_local $0
+ (i32.load
+ (get_local $1)
+ )
+ )
+ (block $jumpthreading$outer$6
+ (block $jumpthreading$inner$6
+ (block $jumpthreading$inner$5
+ (loop $while-in$72
+ (br_if $jumpthreading$inner$6
+ (i32.eq
+ (i32.and
+ (i32.load offset=4
+ (get_local $0)
+ )
+ (i32.const -8)
+ )
+ (get_local $2)
+ )
+ )
+ (set_local $1
+ (i32.shl
+ (get_local $3)
+ (i32.const 1)
+ )
+ )
+ (if
+ (tee_local $4
(i32.load
- (tee_local $1
+ (tee_local $3
(i32.add
(i32.add
- (get_local $2)
+ (get_local $0)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (get_local $1)
+ (get_local $3)
(i32.const 31)
)
(i32.const 2)
@@ -14542,40 +12827,30 @@
)
)
)
- (i32.const 0)
- )
- (block
- (set_local $45
- (get_local $2)
+ (block
+ (set_local $3
+ (get_local $1)
+ )
+ (set_local $0
+ (get_local $4)
+ )
+ (br $while-in$72)
)
- (set_local $40
- (get_local $1)
- )
- (set_local $11
- (i32.const 278)
- )
- (br $while-out$71)
- )
- (block
- (set_local $1
- (get_local $8)
- )
- (set_local $2
- (get_local $0)
+ (block
+ (set_local $1
+ (get_local $0)
+ )
+ (set_local $0
+ (get_local $3)
+ )
+ (br $jumpthreading$inner$5)
)
)
)
- (br $while-in$72)
- )
- )
- (if
- (i32.eq
- (get_local $11)
- (i32.const 278)
)
(if
(i32.lt_u
- (get_local $40)
+ (get_local $0)
(i32.load
(i32.const 192)
)
@@ -14583,495 +12858,461 @@
(call_import $_abort)
(block
(i32.store
- (get_local $40)
- (get_local $5)
+ (get_local $0)
+ (get_local $6)
)
(i32.store offset=24
- (get_local $5)
- (get_local $45)
+ (get_local $6)
+ (get_local $1)
)
(i32.store offset=12
- (get_local $5)
- (get_local $5)
+ (get_local $6)
+ (get_local $6)
)
(i32.store offset=8
- (get_local $5)
- (get_local $5)
+ (get_local $6)
+ (get_local $6)
)
+ (br $do-once$52)
)
)
- (if
- (i32.eq
- (get_local $11)
- (i32.const 281)
- )
- (if
- (i32.and
- (i32.ge_u
- (tee_local $0
- (i32.load
- (tee_local $2
- (i32.add
- (get_local $34)
- (i32.const 8)
- )
- )
- )
- )
+ (br $jumpthreading$outer$6)
+ )
+ (if
+ (i32.and
+ (i32.ge_u
+ (tee_local $3
+ (i32.load
(tee_local $1
- (i32.load
- (i32.const 192)
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
)
)
)
- (i32.ge_u
- (get_local $34)
- (get_local $1)
+ )
+ (tee_local $2
+ (i32.load
+ (i32.const 192)
)
)
- (block
- (i32.store offset=12
- (get_local $0)
- (get_local $5)
- )
- (i32.store
- (get_local $2)
- (get_local $5)
- )
- (i32.store offset=8
- (get_local $5)
- (get_local $0)
- )
- (i32.store offset=12
- (get_local $5)
- (get_local $34)
- )
- (i32.store offset=24
- (get_local $5)
- (i32.const 0)
- )
- )
- (call_import $_abort)
+ )
+ (i32.ge_u
+ (get_local $0)
+ (get_local $2)
)
)
+ (block
+ (i32.store offset=12
+ (get_local $3)
+ (get_local $6)
+ )
+ (i32.store
+ (get_local $1)
+ (get_local $6)
+ )
+ (i32.store offset=8
+ (get_local $6)
+ (get_local $3)
+ )
+ (i32.store offset=12
+ (get_local $6)
+ (get_local $0)
+ )
+ (i32.store offset=24
+ (get_local $6)
+ (i32.const 0)
+ )
+ )
+ (call_import $_abort)
)
)
)
)
- (return
- (i32.add
- (get_local $7)
- (i32.const 8)
- )
- )
)
- (set_local $27
- (i32.const 624)
+ (return
+ (i32.add
+ (get_local $9)
+ (i32.const 8)
+ )
)
)
)
- (loop $while-in$74
- (block $while-out$73
- (if
- (i32.le_u
- (tee_local $1
- (i32.load
- (get_local $27)
+ )
+ (loop $while-in$74
+ (block $while-out$73
+ (if
+ (i32.le_u
+ (tee_local $3
+ (i32.load
+ (get_local $4)
+ )
+ )
+ (get_local $7)
+ )
+ (br_if $while-out$73
+ (i32.gt_u
+ (tee_local $3
+ (i32.add
+ (get_local $3)
+ (i32.load offset=4
+ (get_local $4)
+ )
)
)
- (get_local $0)
+ (get_local $7)
)
- (if
- (i32.gt_u
- (tee_local $1
- (i32.add
- (get_local $1)
- (i32.load offset=4
- (get_local $27)
+ )
+ )
+ (set_local $4
+ (i32.load offset=8
+ (get_local $4)
+ )
+ )
+ (br $while-in$74)
+ )
+ )
+ (set_local $5
+ (i32.add
+ (tee_local $4
+ (i32.add
+ (get_local $3)
+ (i32.const -47)
+ )
+ )
+ (i32.const 8)
+ )
+ )
+ (set_local $8
+ (i32.add
+ (tee_local $9
+ (select
+ (get_local $7)
+ (tee_local $4
+ (i32.add
+ (get_local $4)
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (get_local $5)
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (get_local $5)
+ (i32.const 7)
+ )
+ )
+ )
+ )
+ (i32.lt_u
+ (get_local $4)
+ (tee_local $6
+ (i32.add
+ (get_local $7)
+ (i32.const 16)
+ )
+ )
+ )
+ )
+ )
+ (i32.const 8)
+ )
+ )
+ (i32.store
+ (i32.const 200)
+ (tee_local $5
+ (i32.add
+ (get_local $2)
+ (tee_local $4
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (tee_local $4
+ (i32.add
+ (get_local $2)
+ (i32.const 8)
)
)
)
- (get_local $0)
+ (i32.const 7)
)
- (block
- (set_local $2
- (get_local $1)
- )
- (br $while-out$73)
+ (i32.const 0)
+ (i32.and
+ (get_local $4)
+ (i32.const 7)
)
)
)
- (set_local $27
- (i32.load offset=8
- (get_local $27)
- )
- )
- (br $while-in$74)
- )
- )
- (set_local $8
- (i32.eq
- (i32.and
- (tee_local $1
- (i32.add
- (tee_local $4
- (i32.add
- (get_local $2)
- (i32.const -47)
- )
- )
- (i32.const 8)
- )
- )
- (i32.const 7)
- )
- (i32.const 0)
- )
- )
- (set_local $4
- (i32.lt_u
- (tee_local $1
- (i32.add
- (get_local $4)
- (select
- (i32.const 0)
- (i32.and
- (i32.sub
- (i32.const 0)
- (get_local $1)
- )
- (i32.const 7)
- )
- (get_local $8)
- )
- )
- )
- (tee_local $8
- (i32.add
- (get_local $0)
- (i32.const 16)
- )
- )
)
)
- (set_local $4
+ )
+ (i32.store
+ (i32.const 188)
+ (tee_local $4
+ (i32.sub
+ (i32.add
+ (get_local $1)
+ (i32.const -40)
+ )
+ (get_local $4)
+ )
+ )
+ )
+ (i32.store offset=4
+ (get_local $5)
+ (i32.or
+ (get_local $4)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4
+ (i32.add
+ (get_local $5)
+ (get_local $4)
+ )
+ (i32.const 40)
+ )
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
+ )
+ )
+ (i32.store
+ (tee_local $4
(i32.add
- (tee_local $5
- (select
- (get_local $0)
- (get_local $1)
- (get_local $4)
- )
- )
- (i32.const 8)
+ (get_local $9)
+ (i32.const 4)
)
)
- (set_local $3
- (i32.eq
- (i32.and
- (tee_local $1
- (i32.add
- (get_local $14)
- (i32.const 8)
- )
- )
- (i32.const 7)
- )
- (i32.const 0)
- )
+ (i32.const 27)
+ )
+ (i32.store
+ (get_local $8)
+ (i32.load
+ (i32.const 624)
)
+ )
+ (i32.store offset=4
+ (get_local $8)
+ (i32.load
+ (i32.const 628)
+ )
+ )
+ (i32.store offset=8
+ (get_local $8)
+ (i32.load
+ (i32.const 632)
+ )
+ )
+ (i32.store offset=12
+ (get_local $8)
+ (i32.load
+ (i32.const 636)
+ )
+ )
+ (i32.store
+ (i32.const 624)
+ (get_local $2)
+ )
+ (i32.store
+ (i32.const 628)
+ (get_local $1)
+ )
+ (i32.store
+ (i32.const 636)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 632)
+ (get_local $8)
+ )
+ (set_local $1
+ (i32.add
+ (get_local $9)
+ (i32.const 24)
+ )
+ )
+ (loop $while-in$76
(i32.store
- (i32.const 200)
(tee_local $1
(i32.add
- (get_local $14)
- (tee_local $3
- (select
- (i32.const 0)
- (i32.and
- (i32.sub
- (i32.const 0)
- (get_local $1)
- )
- (i32.const 7)
- )
- (get_local $3)
- )
- )
- )
- )
- )
- (i32.store
- (i32.const 188)
- (tee_local $3
- (i32.sub
- (i32.add
- (get_local $19)
- (i32.const -40)
- )
- (get_local $3)
- )
- )
- )
- (i32.store offset=4
- (get_local $1)
- (i32.or
- (get_local $3)
- (i32.const 1)
- )
- )
- (i32.store offset=4
- (i32.add
- (get_local $1)
- (get_local $3)
- )
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
- )
- )
- (i32.store
- (tee_local $3
- (i32.add
- (get_local $5)
+ (get_local $1)
(i32.const 4)
)
)
- (i32.const 27)
+ (i32.const 7)
)
- (i32.store
- (get_local $4)
- (i32.load
- (i32.const 624)
+ (br_if $while-in$76
+ (i32.lt_u
+ (i32.add
+ (get_local $1)
+ (i32.const 4)
+ )
+ (get_local $3)
)
)
- (i32.store offset=4
- (get_local $4)
- (i32.load
- (i32.const 628)
+ )
+ (if
+ (i32.ne
+ (get_local $9)
+ (get_local $7)
+ )
+ (block
+ (i32.store
+ (get_local $4)
+ (i32.and
+ (i32.load
+ (get_local $4)
+ )
+ (i32.const -2)
+ )
)
- )
- (i32.store offset=8
- (get_local $4)
- (i32.load
- (i32.const 632)
+ (i32.store offset=4
+ (get_local $7)
+ (i32.or
+ (tee_local $5
+ (i32.sub
+ (get_local $9)
+ (get_local $7)
+ )
+ )
+ (i32.const 1)
+ )
)
- )
- (i32.store offset=12
- (get_local $4)
- (i32.load
- (i32.const 636)
- )
- )
- (i32.store
- (i32.const 624)
- (get_local $14)
- )
- (i32.store
- (i32.const 628)
- (get_local $19)
- )
- (i32.store
- (i32.const 636)
- (i32.const 0)
- )
- (i32.store
- (i32.const 632)
- (get_local $4)
- )
- (set_local $1
- (i32.add
+ (i32.store
+ (get_local $9)
(get_local $5)
- (i32.const 24)
)
- )
- (loop $while-in$76
- (block $while-out$75
- (i32.store
- (tee_local $1
+ (set_local $2
+ (i32.shr_u
+ (get_local $5)
+ (i32.const 3)
+ )
+ )
+ (if
+ (i32.lt_u
+ (get_local $5)
+ (i32.const 256)
+ )
+ (block
+ (set_local $1
(i32.add
- (get_local $1)
- (i32.const 4)
- )
- )
- (i32.const 7)
- )
- (br_if $while-out$75
- (i32.ge_u
- (i32.add
- (get_local $1)
- (i32.const 4)
- )
- (get_local $2)
- )
- )
- (br $while-in$76)
- )
- )
- (if
- (i32.ne
- (get_local $5)
- (get_local $0)
- )
- (block
- (i32.store
- (get_local $3)
- (i32.and
- (i32.load
- (get_local $3)
- )
- (i32.const -2)
- )
- )
- (i32.store offset=4
- (get_local $0)
- (i32.or
- (tee_local $3
- (i32.sub
- (get_local $5)
- (get_local $0)
+ (i32.const 216)
+ (i32.shl
+ (i32.shl
+ (get_local $2)
+ (i32.const 1)
+ )
+ (i32.const 2)
)
)
- (i32.const 1)
)
- )
- (i32.store
- (get_local $5)
- (get_local $3)
- )
- (set_local $2
- (i32.shr_u
- (get_local $3)
- (i32.const 3)
- )
- )
- (if
- (i32.lt_u
- (get_local $3)
- (i32.const 256)
- )
- (block
- (set_local $4
- (i32.add
- (i32.const 216)
+ (if
+ (i32.and
+ (tee_local $3
+ (i32.load
+ (i32.const 176)
+ )
+ )
+ (tee_local $2
(i32.shl
- (i32.shl
- (get_local $2)
- (i32.const 1)
- )
- (i32.const 2)
+ (i32.const 1)
+ (get_local $2)
)
)
)
(if
- (i32.eq
- (i32.and
- (tee_local $1
- (i32.load
- (i32.const 176)
- )
- )
- (tee_local $2
- (i32.shl
- (i32.const 1)
- (get_local $2)
- )
- )
- )
- (i32.const 0)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (get_local $1)
- (get_local $2)
- )
- )
- (set_local $9
- (i32.add
- (get_local $4)
- (i32.const 8)
- )
- )
- (set_local $20
- (get_local $4)
- )
- )
- (if
- (i32.lt_u
- (tee_local $2
- (i32.load
- (tee_local $1
- (i32.add
- (get_local $4)
- (i32.const 8)
- )
- )
- )
- )
+ (i32.lt_u
+ (tee_local $2
(i32.load
- (i32.const 192)
- )
- )
- (call_import $_abort)
- (block
- (set_local $9
- (get_local $1)
- )
- (set_local $20
- (get_local $2)
- )
- )
- )
- )
- (i32.store
- (get_local $9)
- (get_local $0)
- )
- (i32.store offset=12
- (get_local $20)
- (get_local $0)
- )
- (i32.store offset=8
- (get_local $0)
- (get_local $20)
- )
- (i32.store offset=12
- (get_local $0)
- (get_local $4)
- )
- (br $do-once$44)
- )
- )
- (set_local $4
- (i32.add
- (i32.const 480)
- (i32.shl
- (tee_local $2
- (if
- (i32.eq
- (tee_local $1
- (i32.shr_u
- (get_local $3)
+ (tee_local $3
+ (i32.add
+ (get_local $1)
(i32.const 8)
)
)
- (i32.const 0)
)
- (i32.const 0)
- (if
- (i32.gt_u
- (get_local $3)
- (i32.const 16777215)
- )
- (i32.const 31)
- (block
- (set_local $2
- (i32.shl
+ )
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call_import $_abort)
+ (block
+ (set_local $23
+ (get_local $3)
+ )
+ (set_local $18
+ (get_local $2)
+ )
+ )
+ )
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (get_local $3)
+ (get_local $2)
+ )
+ )
+ (set_local $23
+ (i32.add
+ (get_local $1)
+ (i32.const 8)
+ )
+ )
+ (set_local $18
+ (get_local $1)
+ )
+ )
+ )
+ (i32.store
+ (get_local $23)
+ (get_local $7)
+ )
+ (i32.store offset=12
+ (get_local $18)
+ (get_local $7)
+ )
+ (i32.store offset=8
+ (get_local $7)
+ (get_local $18)
+ )
+ (i32.store offset=12
+ (get_local $7)
+ (get_local $1)
+ )
+ (br $do-once$44)
+ )
+ )
+ (set_local $2
+ (i32.add
+ (i32.const 480)
+ (i32.shl
+ (tee_local $3
+ (if
+ (tee_local $1
+ (i32.shr_u
+ (get_local $5)
+ (i32.const 8)
+ )
+ )
+ (if
+ (i32.gt_u
+ (get_local $5)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (get_local $5)
+ (i32.add
(tee_local $1
(i32.add
(i32.sub
@@ -15082,10 +13323,10 @@
(i32.and
(i32.shr_u
(i32.add
- (tee_local $4
+ (tee_local $1
(i32.shl
(get_local $1)
- (tee_local $1
+ (tee_local $3
(i32.and
(i32.shr_u
(i32.add
@@ -15106,15 +13347,15 @@
(i32.const 4)
)
)
- (get_local $1)
+ (get_local $3)
)
- (tee_local $1
+ (tee_local $2
(i32.and
(i32.shr_u
(i32.add
- (tee_local $2
+ (tee_local $1
(i32.shl
- (get_local $4)
+ (get_local $1)
(get_local $2)
)
)
@@ -15129,158 +13370,143 @@
)
(i32.shr_u
(i32.shl
- (get_local $2)
(get_local $1)
+ (get_local $2)
)
(i32.const 15)
)
)
)
- (i32.const 1)
+ (i32.const 7)
)
)
- (i32.or
- (i32.and
- (i32.shr_u
- (get_local $3)
- (i32.add
- (get_local $1)
- (i32.const 7)
- )
- )
- (i32.const 1)
- )
- (get_local $2)
- )
+ (i32.const 1)
+ )
+ (i32.shl
+ (get_local $1)
+ (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 2)
)
+ (i32.const 2)
)
)
- (i32.store offset=28
- (get_local $0)
- (get_local $2)
- )
- (i32.store offset=20
- (get_local $0)
- (i32.const 0)
- )
- (i32.store
- (get_local $8)
- (i32.const 0)
- )
- (if
- (i32.eq
- (i32.and
- (tee_local $1
- (i32.load
- (i32.const 180)
- )
- )
- (tee_local $8
- (i32.shl
- (i32.const 1)
- (get_local $2)
- )
+ )
+ (i32.store offset=28
+ (get_local $7)
+ (get_local $3)
+ )
+ (i32.store offset=20
+ (get_local $7)
+ (i32.const 0)
+ )
+ (i32.store
+ (get_local $6)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (tee_local $4
+ (i32.load
+ (i32.const 180)
)
)
- (i32.const 0)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.or
- (get_local $1)
- (get_local $8)
- )
- )
- (i32.store
- (get_local $4)
- (get_local $0)
- )
- (i32.store offset=24
- (get_local $0)
- (get_local $4)
- )
- (i32.store offset=12
- (get_local $0)
- (get_local $0)
- )
- (i32.store offset=8
- (get_local $0)
- (get_local $0)
- )
- (br $do-once$44)
- )
- )
- (set_local $2
- (i32.shl
- (get_local $3)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
- (get_local $2)
- (i32.const 1)
- )
- )
- (i32.eq
- (get_local $2)
- (i32.const 31)
- )
- )
- )
- )
- (set_local $4
- (i32.load
- (get_local $4)
- )
- )
- (loop $while-in$78
- (block $while-out$77
- (if
- (i32.eq
- (i32.and
- (i32.load offset=4
- (get_local $4)
- )
- (i32.const -8)
- )
+ (tee_local $1
+ (i32.shl
+ (i32.const 1)
(get_local $3)
)
- (block
- (set_local $35
- (get_local $4)
- )
- (set_local $11
- (i32.const 307)
- )
- (br $while-out$77)
- )
)
- (set_local $8
- (i32.shl
- (get_local $2)
+ )
+ )
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.or
+ (get_local $4)
+ (get_local $1)
+ )
+ )
+ (i32.store
+ (get_local $2)
+ (get_local $7)
+ )
+ (i32.store offset=24
+ (get_local $7)
+ (get_local $2)
+ )
+ (i32.store offset=12
+ (get_local $7)
+ (get_local $7)
+ )
+ (i32.store offset=8
+ (get_local $7)
+ (get_local $7)
+ )
+ (br $do-once$44)
+ )
+ )
+ (set_local $3
+ (i32.shl
+ (get_local $5)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (get_local $3)
(i32.const 1)
)
)
- (if
- (i32.eq
- (tee_local $1
+ (i32.eq
+ (get_local $3)
+ (i32.const 31)
+ )
+ )
+ )
+ )
+ (set_local $1
+ (i32.load
+ (get_local $2)
+ )
+ )
+ (block $jumpthreading$outer$8
+ (block $jumpthreading$inner$8
+ (block $jumpthreading$inner$7
+ (loop $while-in$78
+ (br_if $jumpthreading$inner$8
+ (i32.eq
+ (i32.and
+ (i32.load offset=4
+ (get_local $1)
+ )
+ (i32.const -8)
+ )
+ (get_local $5)
+ )
+ )
+ (set_local $2
+ (i32.shl
+ (get_local $3)
+ (i32.const 1)
+ )
+ )
+ (if
+ (tee_local $4
(i32.load
- (tee_local $2
+ (tee_local $3
(i32.add
(i32.add
- (get_local $4)
+ (get_local $1)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (get_local $2)
+ (get_local $3)
(i32.const 31)
)
(i32.const 2)
@@ -15289,40 +13515,30 @@
)
)
)
- (i32.const 0)
- )
- (block
- (set_local $46
- (get_local $4)
+ (block
+ (set_local $3
+ (get_local $2)
+ )
+ (set_local $1
+ (get_local $4)
+ )
+ (br $while-in$78)
)
- (set_local $41
- (get_local $2)
- )
- (set_local $11
- (i32.const 304)
- )
- (br $while-out$77)
- )
- (block
- (set_local $2
- (get_local $8)
- )
- (set_local $4
- (get_local $1)
+ (block
+ (set_local $2
+ (get_local $1)
+ )
+ (set_local $1
+ (get_local $3)
+ )
+ (br $jumpthreading$inner$7)
)
)
)
- (br $while-in$78)
- )
- )
- (if
- (i32.eq
- (get_local $11)
- (i32.const 304)
)
(if
(i32.lt_u
- (get_local $41)
+ (get_local $1)
(i32.load
(i32.const 192)
)
@@ -15330,136 +13546,271 @@
(call_import $_abort)
(block
(i32.store
- (get_local $41)
- (get_local $0)
+ (get_local $1)
+ (get_local $7)
)
(i32.store offset=24
- (get_local $0)
- (get_local $46)
+ (get_local $7)
+ (get_local $2)
)
(i32.store offset=12
- (get_local $0)
- (get_local $0)
+ (get_local $7)
+ (get_local $7)
)
(i32.store offset=8
- (get_local $0)
- (get_local $0)
+ (get_local $7)
+ (get_local $7)
)
+ (br $do-once$44)
)
)
- (if
- (i32.eq
- (get_local $11)
- (i32.const 307)
- )
- (if
- (i32.and
- (i32.ge_u
- (tee_local $1
- (i32.load
- (tee_local $4
- (i32.add
- (get_local $35)
- (i32.const 8)
- )
- )
- )
- )
+ (br $jumpthreading$outer$8)
+ )
+ (if
+ (i32.and
+ (i32.ge_u
+ (tee_local $4
+ (i32.load
(tee_local $2
- (i32.load
- (i32.const 192)
+ (i32.add
+ (get_local $1)
+ (i32.const 8)
)
)
)
- (i32.ge_u
- (get_local $35)
- (get_local $2)
+ )
+ (tee_local $3
+ (i32.load
+ (i32.const 192)
)
)
- (block
- (i32.store offset=12
- (get_local $1)
- (get_local $0)
- )
- (i32.store
- (get_local $4)
- (get_local $0)
- )
- (i32.store offset=8
- (get_local $0)
- (get_local $1)
- )
- (i32.store offset=12
- (get_local $0)
- (get_local $35)
- )
- (i32.store offset=24
- (get_local $0)
- (i32.const 0)
- )
- )
- (call_import $_abort)
+ )
+ (i32.ge_u
+ (get_local $1)
+ (get_local $3)
)
)
+ (block
+ (i32.store offset=12
+ (get_local $4)
+ (get_local $7)
+ )
+ (i32.store
+ (get_local $2)
+ (get_local $7)
+ )
+ (i32.store offset=8
+ (get_local $7)
+ (get_local $4)
+ )
+ (i32.store offset=12
+ (get_local $7)
+ (get_local $1)
+ )
+ (i32.store offset=24
+ (get_local $7)
+ (i32.const 0)
+ )
+ )
+ (call_import $_abort)
)
)
)
)
)
- )
- (if
- (i32.gt_u
- (tee_local $0
- (i32.load
- (i32.const 188)
+ (block
+ (if
+ (i32.or
+ (i32.eqz
+ (tee_local $3
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ )
+ (i32.lt_u
+ (get_local $2)
+ (get_local $3)
+ )
+ )
+ (i32.store
+ (i32.const 192)
+ (get_local $2)
)
)
- (get_local $6)
- )
- (block
(i32.store
- (i32.const 188)
- (tee_local $2
- (i32.sub
- (get_local $0)
- (get_local $6)
+ (i32.const 624)
+ (get_local $2)
+ )
+ (i32.store
+ (i32.const 628)
+ (get_local $1)
+ )
+ (i32.store
+ (i32.const 636)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 212)
+ (i32.load
+ (i32.const 648)
+ )
+ )
+ (i32.store
+ (i32.const 208)
+ (i32.const -1)
+ )
+ (set_local $3
+ (i32.const 0)
+ )
+ (loop $while-in$47
+ (i32.store offset=12
+ (tee_local $4
+ (i32.add
+ (i32.const 216)
+ (i32.shl
+ (i32.shl
+ (get_local $3)
+ (i32.const 1)
+ )
+ (i32.const 2)
+ )
+ )
+ )
+ (get_local $4)
+ )
+ (i32.store offset=8
+ (get_local $4)
+ (get_local $4)
+ )
+ (br_if $while-in$47
+ (i32.ne
+ (tee_local $3
+ (i32.add
+ (get_local $3)
+ (i32.const 1)
+ )
+ )
+ (i32.const 32)
)
)
)
(i32.store
(i32.const 200)
- (tee_local $1
+ (tee_local $3
(i32.add
- (tee_local $0
- (i32.load
- (i32.const 200)
+ (get_local $2)
+ (tee_local $2
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (tee_local $2
+ (i32.add
+ (get_local $2)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (get_local $2)
+ (i32.const 7)
+ )
)
)
- (get_local $6)
+ )
+ )
+ )
+ (i32.store
+ (i32.const 188)
+ (tee_local $1
+ (i32.sub
+ (i32.add
+ (get_local $1)
+ (i32.const -40)
+ )
+ (get_local $2)
)
)
)
(i32.store offset=4
- (get_local $1)
+ (get_local $3)
(i32.or
- (get_local $2)
+ (get_local $1)
(i32.const 1)
)
)
(i32.store offset=4
- (get_local $0)
- (i32.or
- (get_local $6)
- (i32.const 3)
+ (i32.add
+ (get_local $3)
+ (get_local $1)
+ )
+ (i32.const 40)
+ )
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
)
)
- (return
- (i32.add
+ )
+ )
+ )
+ (if
+ (i32.gt_u
+ (tee_local $1
+ (i32.load
+ (i32.const 188)
+ )
+ )
+ (get_local $0)
+ )
+ (block
+ (i32.store
+ (i32.const 188)
+ (tee_local $1
+ (i32.sub
+ (get_local $1)
(get_local $0)
- (i32.const 8)
)
)
)
+ (i32.store
+ (i32.const 200)
+ (tee_local $2
+ (i32.add
+ (tee_local $3
+ (i32.load
+ (i32.const 200)
+ )
+ )
+ (get_local $0)
+ )
+ )
+ )
+ (i32.store offset=4
+ (get_local $2)
+ (i32.or
+ (get_local $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4
+ (get_local $3)
+ (i32.or
+ (get_local $0)
+ (i32.const 3)
+ )
+ )
+ (return
+ (i32.add
+ (get_local $3)
+ (i32.const 8)
+ )
+ )
)
)
)
@@ -15485,13 +13836,9 @@
(local $13 i32)
(local $14 i32)
(local $15 i32)
- (local $16 i32)
- (local $17 i32)
- (local $18 i32)
(if
- (i32.eq
+ (i32.eqz
(get_local $0)
- (i32.const 0)
)
(return)
)
@@ -15503,7 +13850,7 @@
(i32.const -8)
)
)
- (tee_local $1
+ (tee_local $11
(i32.load
(i32.const 192)
)
@@ -15513,9 +13860,9 @@
)
(if
(i32.eq
- (tee_local $8
+ (tee_local $10
(i32.and
- (tee_local $0
+ (tee_local $3
(i32.load
(i32.add
(get_local $0)
@@ -15530,12 +13877,12 @@
)
(call_import $_abort)
)
- (set_local $9
+ (set_local $6
(i32.add
(get_local $2)
- (tee_local $7
+ (tee_local $0
(i32.and
- (get_local $0)
+ (get_local $3)
(i32.const -8)
)
)
@@ -15543,50 +13890,54 @@
)
(block $do-once$0
(if
- (i32.eq
- (i32.and
- (get_local $0)
- (i32.const 1)
- )
- (i32.const 0)
+ (i32.and
+ (get_local $3)
+ (i32.const 1)
)
(block
- (set_local $0
+ (set_local $4
+ (get_local $2)
+ )
+ (set_local $1
+ (get_local $0)
+ )
+ )
+ (block
+ (set_local $8
(i32.load
(get_local $2)
)
)
(if
- (i32.eq
- (get_local $8)
- (i32.const 0)
+ (i32.eqz
+ (get_local $10)
)
(return)
)
- (set_local $12
+ (set_local $3
(i32.add
+ (get_local $8)
(get_local $0)
- (get_local $7)
)
)
(if
(i32.lt_u
- (tee_local $4
+ (tee_local $0
(i32.add
(get_local $2)
(i32.sub
(i32.const 0)
- (get_local $0)
+ (get_local $8)
)
)
)
- (get_local $1)
+ (get_local $11)
)
(call_import $_abort)
)
(if
(i32.eq
- (get_local $4)
+ (get_local $0)
(i32.load
(i32.const 196)
)
@@ -15595,11 +13946,11 @@
(if
(i32.ne
(i32.and
- (tee_local $0
+ (tee_local $1
(i32.load
- (tee_local $1
+ (tee_local $4
(i32.add
- (get_local $9)
+ (get_local $6)
(i32.const 4)
)
)
@@ -15610,73 +13961,73 @@
(i32.const 3)
)
(block
- (set_local $3
- (get_local $4)
+ (set_local $4
+ (get_local $0)
)
- (set_local $10
- (get_local $12)
+ (set_local $1
+ (get_local $3)
)
(br $do-once$0)
)
)
(i32.store
(i32.const 184)
- (get_local $12)
+ (get_local $3)
)
(i32.store
- (get_local $1)
+ (get_local $4)
(i32.and
- (get_local $0)
+ (get_local $1)
(i32.const -2)
)
)
(i32.store offset=4
- (get_local $4)
+ (get_local $0)
(i32.or
- (get_local $12)
+ (get_local $3)
(i32.const 1)
)
)
(i32.store
(i32.add
- (get_local $4)
- (get_local $12)
+ (get_local $0)
+ (get_local $3)
)
- (get_local $12)
+ (get_local $3)
)
(return)
)
)
- (set_local $7
+ (set_local $10
(i32.shr_u
- (get_local $0)
+ (get_local $8)
(i32.const 3)
)
)
(if
(i32.lt_u
- (get_local $0)
+ (get_local $8)
(i32.const 256)
)
(block
(set_local $2
(i32.load offset=12
- (get_local $4)
+ (get_local $0)
)
)
(if
(i32.ne
- (tee_local $0
+ (tee_local $4
(i32.load offset=8
- (get_local $4)
+ (get_local $0)
)
)
- (tee_local $8
+ (tee_local $1
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (get_local $7)
+ (get_local $10)
(i32.const 1)
)
(i32.const 2)
@@ -15687,17 +14038,17 @@
(block
(if
(i32.lt_u
- (get_local $0)
- (get_local $1)
+ (get_local $4)
+ (get_local $11)
)
(call_import $_abort)
)
(if
(i32.ne
(i32.load offset=12
- (get_local $0)
+ (get_local $4)
)
- (get_local $4)
+ (get_local $0)
)
(call_import $_abort)
)
@@ -15706,7 +14057,7 @@
(if
(i32.eq
(get_local $2)
- (get_local $0)
+ (get_local $4)
)
(block
(i32.store
@@ -15718,17 +14069,17 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $7)
+ (get_local $10)
)
(i32.const -1)
)
)
)
- (set_local $3
- (get_local $4)
+ (set_local $4
+ (get_local $0)
)
- (set_local $10
- (get_local $12)
+ (set_local $1
+ (get_local $3)
)
(br $do-once$0)
)
@@ -15736,9 +14087,9 @@
(if
(i32.eq
(get_local $2)
- (get_local $8)
+ (get_local $1)
)
- (set_local $13
+ (set_local $5
(i32.add
(get_local $2)
(i32.const 8)
@@ -15748,7 +14099,7 @@
(if
(i32.lt_u
(get_local $2)
- (get_local $1)
+ (get_local $11)
)
(call_import $_abort)
)
@@ -15762,9 +14113,9 @@
)
)
)
- (get_local $4)
+ (get_local $0)
)
- (set_local $13
+ (set_local $5
(get_local $1)
)
(call_import $_abort)
@@ -15772,47 +14123,47 @@
)
)
(i32.store offset=12
- (get_local $0)
+ (get_local $4)
(get_local $2)
)
(i32.store
- (get_local $13)
- (get_local $0)
- )
- (set_local $3
+ (get_local $5)
(get_local $4)
)
- (set_local $10
- (get_local $12)
+ (set_local $4
+ (get_local $0)
+ )
+ (set_local $1
+ (get_local $3)
)
(br $do-once$0)
)
)
- (set_local $8
+ (set_local $12
(i32.load offset=24
- (get_local $4)
+ (get_local $0)
)
)
(block $do-once$2
(if
(i32.eq
- (tee_local $0
+ (tee_local $2
(i32.load offset=12
- (get_local $4)
+ (get_local $0)
)
)
- (get_local $4)
+ (get_local $0)
)
(block
(if
- (i32.eq
- (tee_local $0
+ (i32.eqz
+ (tee_local $2
(i32.load
- (tee_local $7
+ (tee_local $5
(i32.add
- (tee_local $13
+ (tee_local $8
(i32.add
- (get_local $4)
+ (get_local $0)
(i32.const 16)
)
)
@@ -15821,101 +14172,80 @@
)
)
)
- (i32.const 0)
)
(if
- (i32.eq
- (tee_local $0
- (i32.load
- (get_local $13)
- )
+ (tee_local $2
+ (i32.load
+ (get_local $8)
)
- (i32.const 0)
+ )
+ (set_local $5
+ (get_local $8)
)
(block
- (set_local $5
+ (set_local $7
(i32.const 0)
)
(br $do-once$2)
)
- (block
- (set_local $2
- (get_local $0)
- )
- (set_local $7
- (get_local $13)
- )
- )
- )
- (set_local $2
- (get_local $0)
)
)
(loop $while-in$5
- (block $while-out$4
- (if
- (i32.ne
- (tee_local $0
- (i32.load
- (tee_local $13
- (i32.add
- (get_local $2)
- (i32.const 20)
- )
- )
+ (if
+ (tee_local $8
+ (i32.load
+ (tee_local $10
+ (i32.add
+ (get_local $2)
+ (i32.const 20)
)
)
- (i32.const 0)
- )
- (block
- (set_local $2
- (get_local $0)
- )
- (set_local $7
- (get_local $13)
- )
- (br $while-in$5)
- )
- )
- (if
- (i32.eq
- (tee_local $0
- (i32.load
- (tee_local $13
- (i32.add
- (get_local $2)
- (i32.const 16)
- )
- )
- )
- )
- (i32.const 0)
- )
- (br $while-out$4)
- (block
- (set_local $2
- (get_local $0)
- )
- (set_local $7
- (get_local $13)
- )
)
)
- (br $while-in$5)
+ (block
+ (set_local $2
+ (get_local $8)
+ )
+ (set_local $5
+ (get_local $10)
+ )
+ (br $while-in$5)
+ )
+ )
+ (if
+ (tee_local $8
+ (i32.load
+ (tee_local $10
+ (i32.add
+ (get_local $2)
+ (i32.const 16)
+ )
+ )
+ )
+ )
+ (block
+ (set_local $2
+ (get_local $8)
+ )
+ (set_local $5
+ (get_local $10)
+ )
+ (br $while-in$5)
+ )
)
)
(if
(i32.lt_u
- (get_local $7)
- (get_local $1)
+ (get_local $5)
+ (get_local $11)
)
(call_import $_abort)
(block
(i32.store
- (get_local $7)
+ (get_local $5)
(i32.const 0)
)
- (set_local $5
+ (set_local $7
(get_local $2)
)
)
@@ -15924,52 +14254,52 @@
(block
(if
(i32.lt_u
- (tee_local $2
+ (tee_local $5
(i32.load offset=8
- (get_local $4)
+ (get_local $0)
)
)
- (get_local $1)
+ (get_local $11)
)
(call_import $_abort)
)
(if
(i32.ne
(i32.load
- (tee_local $1
+ (tee_local $8
(i32.add
- (get_local $2)
+ (get_local $5)
(i32.const 12)
)
)
)
- (get_local $4)
+ (get_local $0)
)
(call_import $_abort)
)
(if
(i32.eq
(i32.load
- (tee_local $7
+ (tee_local $10
(i32.add
- (get_local $0)
+ (get_local $2)
(i32.const 8)
)
)
)
- (get_local $4)
+ (get_local $0)
)
(block
(i32.store
- (get_local $1)
- (get_local $0)
- )
- (i32.store
- (get_local $7)
+ (get_local $8)
(get_local $2)
)
- (set_local $5
- (get_local $0)
+ (i32.store
+ (get_local $10)
+ (get_local $5)
+ )
+ (set_local $7
+ (get_local $2)
)
)
(call_import $_abort)
@@ -15978,30 +14308,19 @@
)
)
(if
- (i32.eq
- (get_local $8)
- (i32.const 0)
- )
- (block
- (set_local $3
- (get_local $4)
- )
- (set_local $10
- (get_local $12)
- )
- )
+ (get_local $12)
(block
(if
(i32.eq
- (get_local $4)
+ (get_local $0)
(i32.load
- (tee_local $1
+ (tee_local $5
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $0
+ (tee_local $2
(i32.load offset=28
- (get_local $4)
+ (get_local $0)
)
)
(i32.const 2)
@@ -16012,13 +14331,12 @@
)
(block
(i32.store
- (get_local $1)
(get_local $5)
+ (get_local $7)
)
(if
- (i32.eq
- (get_local $5)
- (i32.const 0)
+ (i32.eqz
+ (get_local $7)
)
(block
(i32.store
@@ -16030,17 +14348,17 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $0)
+ (get_local $2)
)
(i32.const -1)
)
)
)
- (set_local $3
- (get_local $4)
+ (set_local $4
+ (get_local $0)
)
- (set_local $10
- (get_local $12)
+ (set_local $1
+ (get_local $3)
)
(br $do-once$0)
)
@@ -16049,7 +14367,7 @@
(block
(if
(i32.lt_u
- (get_local $8)
+ (get_local $12)
(i32.load
(i32.const 192)
)
@@ -16059,35 +14377,34 @@
(if
(i32.eq
(i32.load
- (tee_local $0
+ (tee_local $2
(i32.add
- (get_local $8)
+ (get_local $12)
(i32.const 16)
)
)
)
- (get_local $4)
+ (get_local $0)
)
(i32.store
- (get_local $0)
- (get_local $5)
+ (get_local $2)
+ (get_local $7)
)
(i32.store offset=20
- (get_local $8)
- (get_local $5)
+ (get_local $12)
+ (get_local $7)
)
)
(if
- (i32.eq
- (get_local $5)
- (i32.const 0)
+ (i32.eqz
+ (get_local $7)
)
(block
- (set_local $3
- (get_local $4)
+ (set_local $4
+ (get_local $0)
)
- (set_local $10
- (get_local $12)
+ (set_local $1
+ (get_local $3)
)
(br $do-once$0)
)
@@ -16096,8 +14413,8 @@
)
(if
(i32.lt_u
- (get_local $5)
- (tee_local $0
+ (get_local $7)
+ (tee_local $2
(i32.load
(i32.const 192)
)
@@ -16106,61 +14423,47 @@
(call_import $_abort)
)
(i32.store offset=24
- (get_local $5)
- (get_local $8)
+ (get_local $7)
+ (get_local $12)
)
(if
- (i32.ne
- (tee_local $1
- (i32.load
- (tee_local $2
- (i32.add
- (get_local $4)
- (i32.const 16)
- )
+ (tee_local $5
+ (i32.load
+ (tee_local $8
+ (i32.add
+ (get_local $0)
+ (i32.const 16)
)
)
)
- (i32.const 0)
)
(if
(i32.lt_u
- (get_local $1)
- (get_local $0)
+ (get_local $5)
+ (get_local $2)
)
(call_import $_abort)
(block
(i32.store offset=16
+ (get_local $7)
(get_local $5)
- (get_local $1)
)
(i32.store offset=24
- (get_local $1)
(get_local $5)
+ (get_local $7)
)
)
)
)
(if
- (i32.eq
- (tee_local $0
- (i32.load offset=4
- (get_local $2)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $3
- (get_local $4)
- )
- (set_local $10
- (get_local $12)
+ (tee_local $2
+ (i32.load offset=4
+ (get_local $8)
)
)
(if
(i32.lt_u
- (get_local $0)
+ (get_local $2)
(i32.load
(i32.const 192)
)
@@ -16168,50 +14471,58 @@
(call_import $_abort)
(block
(i32.store offset=20
- (get_local $5)
- (get_local $0)
+ (get_local $7)
+ (get_local $2)
)
(i32.store offset=24
+ (get_local $2)
+ (get_local $7)
+ )
+ (set_local $4
(get_local $0)
- (get_local $5)
)
- (set_local $3
- (get_local $4)
+ (set_local $1
+ (get_local $3)
)
- (set_local $10
- (get_local $12)
- )
+ )
+ )
+ (block
+ (set_local $4
+ (get_local $0)
+ )
+ (set_local $1
+ (get_local $3)
)
)
)
)
- )
- )
- (block
- (set_local $3
- (get_local $2)
- )
- (set_local $10
- (get_local $7)
+ (block
+ (set_local $4
+ (get_local $0)
+ )
+ (set_local $1
+ (get_local $3)
+ )
+ )
)
)
)
)
(if
(i32.ge_u
- (get_local $3)
- (get_local $9)
+ (get_local $4)
+ (get_local $6)
)
(call_import $_abort)
)
(if
- (i32.eq
+ (i32.eqz
(i32.and
(tee_local $0
(i32.load
- (tee_local $1
+ (tee_local $3
(i32.add
- (get_local $9)
+ (get_local $6)
(i32.const 4)
)
)
@@ -16219,22 +14530,41 @@
)
(i32.const 1)
)
- (i32.const 0)
)
(call_import $_abort)
)
(if
- (i32.eq
- (i32.and
- (get_local $0)
- (i32.const 2)
+ (i32.and
+ (get_local $0)
+ (i32.const 2)
+ )
+ (block
+ (i32.store
+ (get_local $3)
+ (i32.and
+ (get_local $0)
+ (i32.const -2)
+ )
)
- (i32.const 0)
+ (i32.store offset=4
+ (get_local $4)
+ (i32.or
+ (get_local $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (get_local $4)
+ (get_local $1)
+ )
+ (get_local $1)
+ )
)
(block
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.load
(i32.const 200)
)
@@ -16247,16 +14577,16 @@
(i32.load
(i32.const 188)
)
- (get_local $10)
+ (get_local $1)
)
)
)
(i32.store
(i32.const 200)
- (get_local $3)
+ (get_local $4)
)
(i32.store offset=4
- (get_local $3)
+ (get_local $4)
(i32.or
(get_local $0)
(i32.const 1)
@@ -16264,7 +14594,7 @@
)
(if
(i32.ne
- (get_local $3)
+ (get_local $4)
(i32.load
(i32.const 196)
)
@@ -16284,7 +14614,7 @@
)
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.load
(i32.const 196)
)
@@ -16297,16 +14627,16 @@
(i32.load
(i32.const 184)
)
- (get_local $10)
+ (get_local $1)
)
)
)
(i32.store
(i32.const 196)
- (get_local $3)
+ (get_local $4)
)
(i32.store offset=4
- (get_local $3)
+ (get_local $4)
(i32.or
(get_local $0)
(i32.const 1)
@@ -16314,7 +14644,7 @@
)
(i32.store
(i32.add
- (get_local $3)
+ (get_local $4)
(get_local $0)
)
(get_local $0)
@@ -16322,16 +14652,16 @@
(return)
)
)
- (set_local $5
+ (set_local $2
(i32.add
(i32.and
(get_local $0)
(i32.const -8)
)
- (get_local $10)
+ (get_local $1)
)
)
- (set_local $8
+ (set_local $5
(i32.shr_u
(get_local $0)
(i32.const 3)
@@ -16344,24 +14674,24 @@
(i32.const 256)
)
(block
- (set_local $1
+ (set_local $3
(i32.load offset=12
- (get_local $9)
+ (get_local $6)
)
)
(if
(i32.ne
- (tee_local $0
+ (tee_local $1
(i32.load offset=8
- (get_local $9)
+ (get_local $6)
)
)
- (tee_local $2
+ (tee_local $0
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (get_local $8)
+ (get_local $5)
(i32.const 1)
)
(i32.const 2)
@@ -16372,62 +14702,6 @@
(block
(if
(i32.lt_u
- (get_local $0)
- (i32.load
- (i32.const 192)
- )
- )
- (call_import $_abort)
- )
- (if
- (i32.ne
- (i32.load offset=12
- (get_local $0)
- )
- (get_local $9)
- )
- (call_import $_abort)
- )
- )
- )
- (if
- (i32.eq
- (get_local $1)
- (get_local $0)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.and
- (i32.load
- (i32.const 176)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (get_local $8)
- )
- (i32.const -1)
- )
- )
- )
- (br $do-once$8)
- )
- )
- (if
- (i32.eq
- (get_local $1)
- (get_local $2)
- )
- (set_local $16
- (i32.add
- (get_local $1)
- (i32.const 8)
- )
- )
- (block
- (if
- (i32.lt_u
(get_local $1)
(i32.load
(i32.const 192)
@@ -16436,59 +14710,115 @@
(call_import $_abort)
)
(if
+ (i32.ne
+ (i32.load offset=12
+ (get_local $1)
+ )
+ (get_local $6)
+ )
+ (call_import $_abort)
+ )
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $3)
+ (get_local $1)
+ )
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.and
+ (i32.load
+ (i32.const 176)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (get_local $5)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (br $do-once$8)
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $3)
+ (get_local $0)
+ )
+ (set_local $14
+ (i32.add
+ (get_local $3)
+ (i32.const 8)
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (get_local $3)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call_import $_abort)
+ )
+ (if
(i32.eq
(i32.load
- (tee_local $2
+ (tee_local $0
(i32.add
- (get_local $1)
+ (get_local $3)
(i32.const 8)
)
)
)
- (get_local $9)
+ (get_local $6)
)
- (set_local $16
- (get_local $2)
+ (set_local $14
+ (get_local $0)
)
(call_import $_abort)
)
)
)
(i32.store offset=12
- (get_local $0)
(get_local $1)
+ (get_local $3)
)
(i32.store
- (get_local $16)
- (get_local $0)
+ (get_local $14)
+ (get_local $1)
)
)
(block
- (set_local $0
+ (set_local $7
(i32.load offset=24
- (get_local $9)
+ (get_local $6)
)
)
(block $do-once$10
(if
(i32.eq
- (tee_local $1
+ (tee_local $0
(i32.load offset=12
- (get_local $9)
+ (get_local $6)
)
)
- (get_local $9)
+ (get_local $6)
)
(block
(if
- (i32.eq
- (tee_local $1
+ (i32.eqz
+ (tee_local $0
(i32.load
- (tee_local $8
+ (tee_local $1
(i32.add
- (tee_local $7
+ (tee_local $3
(i32.add
- (get_local $9)
+ (get_local $6)
(i32.const 16)
)
)
@@ -16497,92 +14827,71 @@
)
)
)
- (i32.const 0)
)
(if
- (i32.eq
- (tee_local $1
- (i32.load
- (get_local $7)
- )
+ (tee_local $0
+ (i32.load
+ (get_local $3)
)
- (i32.const 0)
+ )
+ (set_local $1
+ (get_local $3)
)
(block
- (set_local $11
+ (set_local $9
(i32.const 0)
)
(br $do-once$10)
)
- (block
- (set_local $2
- (get_local $1)
- )
- (set_local $8
- (get_local $7)
- )
- )
- )
- (set_local $2
- (get_local $1)
)
)
(loop $while-in$13
- (block $while-out$12
- (if
- (i32.ne
- (tee_local $1
- (i32.load
- (tee_local $7
- (i32.add
- (get_local $2)
- (i32.const 20)
- )
- )
+ (if
+ (tee_local $3
+ (i32.load
+ (tee_local $5
+ (i32.add
+ (get_local $0)
+ (i32.const 20)
)
)
- (i32.const 0)
- )
- (block
- (set_local $2
- (get_local $1)
- )
- (set_local $8
- (get_local $7)
- )
- (br $while-in$13)
- )
- )
- (if
- (i32.eq
- (tee_local $1
- (i32.load
- (tee_local $7
- (i32.add
- (get_local $2)
- (i32.const 16)
- )
- )
- )
- )
- (i32.const 0)
- )
- (br $while-out$12)
- (block
- (set_local $2
- (get_local $1)
- )
- (set_local $8
- (get_local $7)
- )
)
)
- (br $while-in$13)
+ (block
+ (set_local $0
+ (get_local $3)
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (br $while-in$13)
+ )
+ )
+ (if
+ (tee_local $3
+ (i32.load
+ (tee_local $5
+ (i32.add
+ (get_local $0)
+ (i32.const 16)
+ )
+ )
+ )
+ )
+ (block
+ (set_local $0
+ (get_local $3)
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (br $while-in$13)
+ )
)
)
(if
(i32.lt_u
- (get_local $8)
+ (get_local $1)
(i32.load
(i32.const 192)
)
@@ -16590,11 +14899,11 @@
(call_import $_abort)
(block
(i32.store
- (get_local $8)
+ (get_local $1)
(i32.const 0)
)
- (set_local $11
- (get_local $2)
+ (set_local $9
+ (get_local $0)
)
)
)
@@ -16602,9 +14911,9 @@
(block
(if
(i32.lt_u
- (tee_local $2
+ (tee_local $1
(i32.load offset=8
- (get_local $9)
+ (get_local $6)
)
)
(i32.load
@@ -16616,41 +14925,41 @@
(if
(i32.ne
(i32.load
- (tee_local $8
+ (tee_local $3
(i32.add
- (get_local $2)
+ (get_local $1)
(i32.const 12)
)
)
)
- (get_local $9)
+ (get_local $6)
)
(call_import $_abort)
)
(if
(i32.eq
(i32.load
- (tee_local $7
+ (tee_local $5
(i32.add
- (get_local $1)
+ (get_local $0)
(i32.const 8)
)
)
)
- (get_local $9)
+ (get_local $6)
)
(block
(i32.store
- (get_local $8)
- (get_local $1)
+ (get_local $3)
+ (get_local $0)
)
(i32.store
- (get_local $7)
- (get_local $2)
- )
- (set_local $11
+ (get_local $5)
(get_local $1)
)
+ (set_local $9
+ (get_local $0)
+ )
)
(call_import $_abort)
)
@@ -16658,22 +14967,19 @@
)
)
(if
- (i32.ne
- (get_local $0)
- (i32.const 0)
- )
+ (get_local $7)
(block
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.load
- (tee_local $2
+ (tee_local $1
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $1
+ (tee_local $0
(i32.load offset=28
- (get_local $9)
+ (get_local $6)
)
)
(i32.const 2)
@@ -16684,13 +14990,12 @@
)
(block
(i32.store
- (get_local $2)
- (get_local $11)
+ (get_local $1)
+ (get_local $9)
)
(if
- (i32.eq
- (get_local $11)
- (i32.const 0)
+ (i32.eqz
+ (get_local $9)
)
(block
(i32.store
@@ -16702,7 +15007,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $1)
+ (get_local $0)
)
(i32.const -1)
)
@@ -16715,7 +15020,7 @@
(block
(if
(i32.lt_u
- (get_local $0)
+ (get_local $7)
(i32.load
(i32.const 192)
)
@@ -16725,36 +15030,35 @@
(if
(i32.eq
(i32.load
- (tee_local $1
+ (tee_local $0
(i32.add
- (get_local $0)
+ (get_local $7)
(i32.const 16)
)
)
)
- (get_local $9)
+ (get_local $6)
)
(i32.store
- (get_local $1)
- (get_local $11)
+ (get_local $0)
+ (get_local $9)
)
(i32.store offset=20
- (get_local $0)
- (get_local $11)
+ (get_local $7)
+ (get_local $9)
)
)
(br_if $do-once$8
- (i32.eq
- (get_local $11)
- (i32.const 0)
+ (i32.eqz
+ (get_local $9)
)
)
)
)
(if
(i32.lt_u
- (get_local $11)
- (tee_local $1
+ (get_local $9)
+ (tee_local $0
(i32.load
(i32.const 192)
)
@@ -16763,49 +15067,43 @@
(call_import $_abort)
)
(i32.store offset=24
- (get_local $11)
- (get_local $0)
+ (get_local $9)
+ (get_local $7)
)
(if
- (i32.ne
- (tee_local $0
- (i32.load
- (tee_local $2
- (i32.add
- (get_local $9)
- (i32.const 16)
- )
+ (tee_local $1
+ (i32.load
+ (tee_local $3
+ (i32.add
+ (get_local $6)
+ (i32.const 16)
)
)
)
- (i32.const 0)
)
(if
(i32.lt_u
- (get_local $0)
(get_local $1)
+ (get_local $0)
)
(call_import $_abort)
(block
(i32.store offset=16
- (get_local $11)
- (get_local $0)
+ (get_local $9)
+ (get_local $1)
)
(i32.store offset=24
- (get_local $0)
- (get_local $11)
+ (get_local $1)
+ (get_local $9)
)
)
)
)
(if
- (i32.ne
- (tee_local $0
- (i32.load offset=4
- (get_local $2)
- )
+ (tee_local $0
+ (i32.load offset=4
+ (get_local $3)
)
- (i32.const 0)
)
(if
(i32.lt_u
@@ -16817,12 +15115,12 @@
(call_import $_abort)
(block
(i32.store offset=20
- (get_local $11)
+ (get_local $9)
(get_local $0)
)
(i32.store offset=24
(get_local $0)
- (get_local $11)
+ (get_local $9)
)
)
)
@@ -16833,22 +15131,22 @@
)
)
(i32.store offset=4
- (get_local $3)
+ (get_local $4)
(i32.or
- (get_local $5)
+ (get_local $2)
(i32.const 1)
)
)
(i32.store
(i32.add
- (get_local $3)
- (get_local $5)
+ (get_local $4)
+ (get_local $2)
)
- (get_local $5)
+ (get_local $2)
)
(if
(i32.eq
- (get_local $3)
+ (get_local $4)
(i32.load
(i32.const 196)
)
@@ -16856,57 +15154,34 @@
(block
(i32.store
(i32.const 184)
- (get_local $5)
+ (get_local $2)
)
(return)
)
- )
- )
- (block
- (i32.store
- (get_local $1)
- (i32.and
- (get_local $0)
- (i32.const -2)
+ (set_local $1
+ (get_local $2)
)
)
- (i32.store offset=4
- (get_local $3)
- (i32.or
- (get_local $10)
- (i32.const 1)
- )
- )
- (i32.store
- (i32.add
- (get_local $3)
- (get_local $10)
- )
- (get_local $10)
- )
- (set_local $5
- (get_local $10)
- )
)
)
- (set_local $1
+ (set_local $2
(i32.shr_u
- (get_local $5)
+ (get_local $1)
(i32.const 3)
)
)
(if
(i32.lt_u
- (get_local $5)
+ (get_local $1)
(i32.const 256)
)
(block
- (set_local $2
+ (set_local $3
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (get_local $1)
+ (get_local $2)
(i32.const 1)
)
(i32.const 2)
@@ -16914,39 +15189,18 @@
)
)
(if
- (i32.eq
- (i32.and
- (tee_local $0
- (i32.load
- (i32.const 176)
- )
- )
- (tee_local $1
- (i32.shl
- (i32.const 1)
- (get_local $1)
- )
+ (i32.and
+ (tee_local $0
+ (i32.load
+ (i32.const 176)
)
)
- (i32.const 0)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (get_local $0)
- (get_local $1)
- )
- )
- (set_local $6
- (i32.add
+ (tee_local $1
+ (i32.shl
+ (i32.const 1)
(get_local $2)
- (i32.const 8)
)
)
- (set_local $14
- (get_local $2)
- )
)
(if
(i32.lt_u
@@ -16954,7 +15208,7 @@
(i32.load
(tee_local $0
(i32.add
- (get_local $2)
+ (get_local $3)
(i32.const 8)
)
)
@@ -16966,141 +15220,151 @@
)
(call_import $_abort)
(block
- (set_local $6
+ (set_local $15
(get_local $0)
)
- (set_local $14
+ (set_local $13
(get_local $1)
)
)
)
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (set_local $15
+ (i32.add
+ (get_local $3)
+ (i32.const 8)
+ )
+ )
+ (set_local $13
+ (get_local $3)
+ )
+ )
)
(i32.store
- (get_local $6)
- (get_local $3)
+ (get_local $15)
+ (get_local $4)
)
(i32.store offset=12
- (get_local $14)
- (get_local $3)
+ (get_local $13)
+ (get_local $4)
)
(i32.store offset=8
- (get_local $3)
- (get_local $14)
+ (get_local $4)
+ (get_local $13)
)
(i32.store offset=12
+ (get_local $4)
(get_local $3)
- (get_local $2)
)
(return)
)
)
- (set_local $1
+ (set_local $5
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $6
+ (tee_local $3
(if
- (i32.eq
- (tee_local $0
- (i32.shr_u
- (get_local $5)
- (i32.const 8)
- )
+ (tee_local $0
+ (i32.shr_u
+ (get_local $1)
+ (i32.const 8)
)
- (i32.const 0)
)
- (i32.const 0)
(if
(i32.gt_u
- (get_local $5)
+ (get_local $1)
(i32.const 16777215)
)
(i32.const 31)
- (block
- (set_local $6
- (i32.shl
- (tee_local $0
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (get_local $1)
+ (i32.add
+ (tee_local $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
(i32.or
- (tee_local $6
- (i32.and
- (i32.shr_u
- (i32.add
- (tee_local $1
- (i32.shl
- (get_local $0)
- (tee_local $0
- (i32.and
- (i32.shr_u
- (i32.add
- (get_local $0)
- (i32.const 1048320)
+ (i32.or
+ (tee_local $3
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (tee_local $2
+ (i32.shl
+ (get_local $0)
+ (tee_local $0
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (get_local $0)
+ (i32.const 1048320)
+ )
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 8)
)
- (i32.const 8)
)
)
)
+ (i32.const 520192)
)
- (i32.const 520192)
+ (i32.const 16)
+ )
+ (i32.const 4)
+ )
+ )
+ (get_local $0)
+ )
+ (tee_local $0
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (tee_local $3
+ (i32.shl
+ (get_local $2)
+ (get_local $3)
+ )
+ )
+ (i32.const 245760)
)
(i32.const 16)
)
- (i32.const 4)
+ (i32.const 2)
)
)
+ )
+ )
+ (i32.shr_u
+ (i32.shl
+ (get_local $3)
(get_local $0)
)
- (tee_local $0
- (i32.and
- (i32.shr_u
- (i32.add
- (tee_local $6
- (i32.shl
- (get_local $1)
- (get_local $6)
- )
- )
- (i32.const 245760)
- )
- (i32.const 16)
- )
- (i32.const 2)
- )
- )
+ (i32.const 15)
)
)
- (i32.shr_u
- (i32.shl
- (get_local $6)
- (get_local $0)
- )
- (i32.const 15)
- )
)
+ (i32.const 7)
)
- (i32.const 1)
)
+ (i32.const 1)
)
- (i32.or
- (i32.and
- (i32.shr_u
- (get_local $5)
- (i32.add
- (get_local $0)
- (i32.const 7)
- )
- )
- (i32.const 1)
- )
- (get_local $6)
+ (i32.shl
+ (get_local $0)
+ (i32.const 1)
)
)
)
+ (i32.const 0)
)
)
(i32.const 2)
@@ -17108,19 +15372,19 @@
)
)
(i32.store offset=28
+ (get_local $4)
(get_local $3)
- (get_local $6)
)
(i32.store offset=20
- (get_local $3)
+ (get_local $4)
(i32.const 0)
)
(i32.store offset=16
- (get_local $3)
+ (get_local $4)
(i32.const 0)
)
- (if
- (i32.eq
+ (block $do-once$16
+ (if
(i32.and
(tee_local $0
(i32.load
@@ -17130,217 +15394,163 @@
(tee_local $2
(i32.shl
(i32.const 1)
- (get_local $6)
+ (get_local $3)
)
)
)
- (i32.const 0)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.or
- (get_local $0)
- (get_local $2)
- )
- )
- (i32.store
- (get_local $1)
- (get_local $3)
- )
- (i32.store offset=24
- (get_local $3)
- (get_local $1)
- )
- (i32.store offset=12
- (get_local $3)
- (get_local $3)
- )
- (i32.store offset=8
- (get_local $3)
- (get_local $3)
- )
- )
- (block
- (set_local $6
- (i32.shl
- (get_local $5)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
- (get_local $6)
- (i32.const 1)
- )
- )
- (i32.eq
- (get_local $6)
- (i32.const 31)
- )
- )
- )
- )
- (set_local $1
- (i32.load
- (get_local $1)
- )
- )
- (loop $while-in$19
- (block $while-out$18
- (if
- (i32.eq
- (i32.and
- (i32.load offset=4
- (get_local $1)
+ (block
+ (set_local $2
+ (i32.shl
+ (get_local $1)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (get_local $3)
+ (i32.const 1)
)
- (i32.const -8)
)
- (get_local $5)
- )
- (block
- (set_local $15
- (get_local $1)
+ (i32.eq
+ (get_local $3)
+ (i32.const 31)
)
- (set_local $0
- (i32.const 130)
- )
- (br $while-out$18)
)
)
- (set_local $2
- (i32.shl
- (get_local $6)
- (i32.const 1)
- )
+ )
+ (set_local $0
+ (i32.load
+ (get_local $5)
)
- (if
- (i32.eq
- (tee_local $0
- (i32.load
- (tee_local $6
- (i32.add
- (i32.add
- (get_local $1)
- (i32.const 16)
+ )
+ (block $jumpthreading$outer$1
+ (block $jumpthreading$inner$1
+ (block $jumpthreading$inner$0
+ (loop $while-in$19
+ (br_if $jumpthreading$inner$1
+ (i32.eq
+ (i32.and
+ (i32.load offset=4
+ (get_local $0)
)
- (i32.shl
- (i32.shr_u
- (get_local $6)
- (i32.const 31)
+ (i32.const -8)
+ )
+ (get_local $1)
+ )
+ )
+ (set_local $5
+ (i32.shl
+ (get_local $2)
+ (i32.const 1)
+ )
+ )
+ (br_if $jumpthreading$inner$0
+ (i32.eqz
+ (tee_local $3
+ (i32.load
+ (tee_local $2
+ (i32.add
+ (i32.add
+ (get_local $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (get_local $2)
+ (i32.const 31)
+ )
+ (i32.const 2)
+ )
+ )
)
- (i32.const 2)
)
)
)
)
+ (block
+ (set_local $2
+ (get_local $5)
+ )
+ (set_local $0
+ (get_local $3)
+ )
+ (br $while-in$19)
+ )
)
- (i32.const 0)
)
- (block
- (set_local $18
- (get_local $1)
- )
- (set_local $17
- (get_local $6)
- )
- (set_local $0
- (i32.const 127)
- )
- (br $while-out$18)
- )
- (block
- (set_local $6
+ (if
+ (i32.lt_u
(get_local $2)
+ (i32.load
+ (i32.const 192)
+ )
)
- (set_local $1
- (get_local $0)
+ (call_import $_abort)
+ (block
+ (i32.store
+ (get_local $2)
+ (get_local $4)
+ )
+ (i32.store offset=24
+ (get_local $4)
+ (get_local $0)
+ )
+ (i32.store offset=12
+ (get_local $4)
+ (get_local $4)
+ )
+ (i32.store offset=8
+ (get_local $4)
+ (get_local $4)
+ )
+ (br $do-once$16)
)
)
- )
- (br $while-in$19)
- )
- )
- (if
- (i32.eq
- (get_local $0)
- (i32.const 127)
- )
- (if
- (i32.lt_u
- (get_local $17)
- (i32.load
- (i32.const 192)
- )
- )
- (call_import $_abort)
- (block
- (i32.store
- (get_local $17)
- (get_local $3)
- )
- (i32.store offset=24
- (get_local $3)
- (get_local $18)
- )
- (i32.store offset=12
- (get_local $3)
- (get_local $3)
- )
- (i32.store offset=8
- (get_local $3)
- (get_local $3)
- )
- )
- )
- (if
- (i32.eq
- (get_local $0)
- (i32.const 130)
+ (br $jumpthreading$outer$1)
)
(if
(i32.and
(i32.ge_u
- (tee_local $0
+ (tee_local $1
(i32.load
- (tee_local $1
+ (tee_local $2
(i32.add
- (get_local $15)
+ (get_local $0)
(i32.const 8)
)
)
)
)
- (tee_local $6
+ (tee_local $3
(i32.load
(i32.const 192)
)
)
)
(i32.ge_u
- (get_local $15)
- (get_local $6)
+ (get_local $0)
+ (get_local $3)
)
)
(block
(i32.store offset=12
- (get_local $0)
- (get_local $3)
+ (get_local $1)
+ (get_local $4)
)
(i32.store
- (get_local $1)
- (get_local $3)
+ (get_local $2)
+ (get_local $4)
)
(i32.store offset=8
- (get_local $3)
- (get_local $0)
+ (get_local $4)
+ (get_local $1)
)
(i32.store offset=12
- (get_local $3)
- (get_local $15)
+ (get_local $4)
+ (get_local $0)
)
(i32.store offset=24
- (get_local $3)
+ (get_local $4)
(i32.const 0)
)
)
@@ -17348,6 +15558,31 @@
)
)
)
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.or
+ (get_local $0)
+ (get_local $2)
+ )
+ )
+ (i32.store
+ (get_local $5)
+ (get_local $4)
+ )
+ (i32.store offset=24
+ (get_local $4)
+ (get_local $5)
+ )
+ (i32.store offset=12
+ (get_local $4)
+ (get_local $4)
+ )
+ (i32.store offset=8
+ (get_local $4)
+ (get_local $4)
+ )
+ )
)
)
(i32.store
@@ -17362,37 +15597,25 @@
)
)
(if
- (i32.eq
- (get_local $0)
- (i32.const 0)
- )
- (set_local $6
+ (get_local $0)
+ (return)
+ (set_local $0
(i32.const 632)
)
- (return)
)
(loop $while-in$21
- (block $while-out$20
- (set_local $0
- (i32.eq
- (tee_local $6
- (i32.load
- (get_local $6)
- )
+ (set_local $0
+ (i32.add
+ (tee_local $1
+ (i32.load
+ (get_local $0)
)
- (i32.const 0)
)
+ (i32.const 8)
)
- (set_local $6
- (i32.add
- (get_local $6)
- (i32.const 8)
- )
- )
- (br_if $while-out$20
- (get_local $0)
- )
- (br $while-in$21)
+ )
+ (br_if $while-in$21
+ (get_local $1)
)
)
(i32.store
@@ -17508,70 +15731,70 @@
)
)
(loop $while-in$1
- (block $while-out$0
- (br_if $while-out$0
- (i32.ge_s
- (get_local $0)
- (get_local $3)
- )
- )
- (i32.store8
+ (if
+ (i32.lt_s
(get_local $0)
- (get_local $1)
+ (get_local $3)
)
- (set_local $0
- (i32.add
+ (block
+ (i32.store8
(get_local $0)
- (i32.const 1)
+ (get_local $1)
)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ (br $while-in$1)
)
- (br $while-in$1)
)
)
)
)
(loop $while-in$3
- (block $while-out$2
- (br_if $while-out$2
- (i32.ge_s
- (get_local $0)
- (get_local $6)
- )
- )
- (i32.store
+ (if
+ (i32.lt_s
(get_local $0)
- (get_local $5)
+ (get_local $6)
)
- (set_local $0
- (i32.add
+ (block
+ (i32.store
(get_local $0)
- (i32.const 4)
+ (get_local $5)
)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 4)
+ )
+ )
+ (br $while-in$3)
)
- (br $while-in$3)
)
)
)
)
(loop $while-in$5
- (block $while-out$4
- (br_if $while-out$4
- (i32.ge_s
- (get_local $0)
- (get_local $4)
- )
- )
- (i32.store8
+ (if
+ (i32.lt_s
(get_local $0)
- (get_local $1)
+ (get_local $4)
)
- (set_local $0
- (i32.add
+ (block
+ (i32.store8
(get_local $0)
- (i32.const 1)
+ (get_local $1)
)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ (br $while-in$5)
)
- (br $while-in$5)
)
)
(i32.sub
@@ -17726,9 +15949,8 @@
)
)
(if
- (i32.eq
+ (i32.eqz
(get_local $2)
- (i32.const 0)
)
(return
(get_local $3)
@@ -17762,75 +15984,75 @@
)
)
(loop $while-in$3
- (block $while-out$2
- (br_if $while-out$2
- (i32.lt_s
- (get_local $2)
- (i32.const 4)
- )
+ (if
+ (i32.ge_s
+ (get_local $2)
+ (i32.const 4)
)
- (i32.store
- (get_local $0)
- (i32.load
- (get_local $1)
- )
- )
- (set_local $0
- (i32.add
+ (block
+ (i32.store
(get_local $0)
- (i32.const 4)
+ (i32.load
+ (get_local $1)
+ )
)
- )
- (set_local $1
- (i32.add
- (get_local $1)
- (i32.const 4)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 4)
+ )
)
- )
- (set_local $2
- (i32.sub
- (get_local $2)
- (i32.const 4)
+ (set_local $1
+ (i32.add
+ (get_local $1)
+ (i32.const 4)
+ )
)
+ (set_local $2
+ (i32.sub
+ (get_local $2)
+ (i32.const 4)
+ )
+ )
+ (br $while-in$3)
)
- (br $while-in$3)
)
)
)
)
(loop $while-in$5
- (block $while-out$4
- (br_if $while-out$4
- (i32.le_s
- (get_local $2)
- (i32.const 0)
- )
+ (if
+ (i32.gt_s
+ (get_local $2)
+ (i32.const 0)
)
- (i32.store8
- (get_local $0)
- (i32.load8_s
- (get_local $1)
- )
- )
- (set_local $0
- (i32.add
+ (block
+ (i32.store8
(get_local $0)
- (i32.const 1)
+ (i32.load8_s
+ (get_local $1)
+ )
)
- )
- (set_local $1
- (i32.add
- (get_local $1)
- (i32.const 1)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
)
- )
- (set_local $2
- (i32.sub
- (get_local $2)
- (i32.const 1)
+ (set_local $1
+ (i32.add
+ (get_local $1)
+ (i32.const 1)
+ )
)
+ (set_local $2
+ (i32.sub
+ (get_local $2)
+ (i32.const 1)
+ )
+ )
+ (br $while-in$5)
)
- (br $while-in$5)
)
)
(get_local $3)
@@ -17982,140 +16204,147 @@
)
(func $___divdi3 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(local $4 i32)
+ (local $5 i32)
+ (local $6 i32)
+ (set_local $6
+ (call $_i64Subtract
+ (i32.xor
+ (tee_local $4
+ (i32.or
+ (i32.shr_s
+ (get_local $1)
+ (i32.const 31)
+ )
+ (i32.shl
+ (select
+ (i32.const -1)
+ (i32.const 0)
+ (i32.lt_s
+ (get_local $1)
+ (i32.const 0)
+ )
+ )
+ (i32.const 1)
+ )
+ )
+ )
+ (get_local $0)
+ )
+ (i32.xor
+ (tee_local $0
+ (i32.or
+ (i32.shr_s
+ (select
+ (i32.const -1)
+ (i32.const 0)
+ (i32.lt_s
+ (get_local $1)
+ (i32.const 0)
+ )
+ )
+ (i32.const 31)
+ )
+ (i32.shl
+ (select
+ (i32.const -1)
+ (i32.const 0)
+ (i32.lt_s
+ (get_local $1)
+ (i32.const 0)
+ )
+ )
+ (i32.const 1)
+ )
+ )
+ )
+ (get_local $1)
+ )
+ (get_local $4)
+ (get_local $0)
+ )
+ )
+ (set_local $5
+ (i32.xor
+ (tee_local $1
+ (i32.or
+ (i32.shr_s
+ (get_local $3)
+ (i32.const 31)
+ )
+ (i32.shl
+ (select
+ (i32.const -1)
+ (i32.const 0)
+ (i32.lt_s
+ (get_local $3)
+ (i32.const 0)
+ )
+ )
+ (i32.const 1)
+ )
+ )
+ )
+ (get_local $4)
+ )
+ )
+ (set_local $0
+ (i32.xor
+ (tee_local $4
+ (i32.or
+ (i32.shr_s
+ (select
+ (i32.const -1)
+ (i32.const 0)
+ (i32.lt_s
+ (get_local $3)
+ (i32.const 0)
+ )
+ )
+ (i32.const 31)
+ )
+ (i32.shl
+ (select
+ (i32.const -1)
+ (i32.const 0)
+ (i32.lt_s
+ (get_local $3)
+ (i32.const 0)
+ )
+ )
+ (i32.const 1)
+ )
+ )
+ )
+ (get_local $0)
+ )
+ )
(call $_i64Subtract
(i32.xor
(call $___udivmoddi4
- (call $_i64Subtract
- (i32.xor
- (tee_local $4
- (i32.or
- (i32.shr_s
- (get_local $1)
- (i32.const 31)
- )
- (i32.shl
- (select
- (i32.const -1)
- (i32.const 0)
- (i32.lt_s
- (get_local $1)
- (i32.const 0)
- )
- )
- (i32.const 1)
- )
- )
- )
- (get_local $0)
- )
- (i32.xor
- (tee_local $0
- (i32.or
- (i32.shr_s
- (select
- (i32.const -1)
- (i32.const 0)
- (i32.lt_s
- (get_local $1)
- (i32.const 0)
- )
- )
- (i32.const 31)
- )
- (i32.shl
- (select
- (i32.const -1)
- (i32.const 0)
- (i32.lt_s
- (get_local $1)
- (i32.const 0)
- )
- )
- (i32.const 1)
- )
- )
- )
- (get_local $1)
- )
- (get_local $4)
- (get_local $0)
- )
+ (get_local $6)
(get_global $tempRet0)
(call $_i64Subtract
(i32.xor
- (tee_local $1
- (i32.or
- (i32.shr_s
- (get_local $3)
- (i32.const 31)
- )
- (i32.shl
- (select
- (i32.const -1)
- (i32.const 0)
- (i32.lt_s
- (get_local $3)
- (i32.const 0)
- )
- )
- (i32.const 1)
- )
- )
- )
+ (get_local $1)
(get_local $2)
)
(i32.xor
- (tee_local $2
- (i32.or
- (i32.shr_s
- (select
- (i32.const -1)
- (i32.const 0)
- (i32.lt_s
- (get_local $3)
- (i32.const 0)
- )
- )
- (i32.const 31)
- )
- (i32.shl
- (select
- (i32.const -1)
- (i32.const 0)
- (i32.lt_s
- (get_local $3)
- (i32.const 0)
- )
- )
- (i32.const 1)
- )
- )
- )
+ (get_local $4)
(get_local $3)
)
(get_local $1)
- (get_local $2)
+ (get_local $4)
)
(get_global $tempRet0)
(i32.const 0)
)
- (tee_local $1
- (i32.xor
- (get_local $1)
- (get_local $4)
- )
- )
+ (get_local $5)
)
(i32.xor
(get_global $tempRet0)
- (tee_local $0
- (i32.xor
- (get_local $2)
- (get_local $0)
- )
- )
+ (get_local $0)
)
- (get_local $1)
+ (get_local $5)
(get_local $0)
)
)
@@ -18269,15 +16498,9 @@
(get_local $5)
)
)
- (set_local $1
- (get_global $tempRet0)
- )
(set_global $STACKTOP
(get_local $6)
)
- (set_global $tempRet0
- (get_local $1)
- )
(get_local $0)
)
(func $___muldi3 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
@@ -18362,971 +16585,61 @@
(get_local $0)
)
)
- (func $___udivmoddi4 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32)
- (local $5 i32)
- (local $6 i32)
- (local $7 i32)
- (local $8 i32)
- (local $9 i32)
- (local $10 i32)
- (local $11 i32)
- (local $12 i32)
- (local $13 i32)
- (local $14 i32)
- (set_local $8
- (get_local $0)
- )
- (set_local $5
- (get_local $2)
- )
- (set_local $7
- (tee_local $14
- (get_local $3)
- )
- )
- (if
- (i32.eq
- (tee_local $6
- (tee_local $9
- (get_local $1)
- )
+ (func $___udivmoddi4 (param $xl i32) (param $xh i32) (param $yl i32) (param $yh i32) (param $r i32) (result i32)
+ (local $x64 i64)
+ (local $y64 i64)
+ (set_local $x64
+ (i64.or
+ (i64.extend_u/i32
+ (get_local $xl)
)
- (i32.const 0)
- )
- (block
- (set_local $2
- (i32.ne
- (get_local $4)
- (i32.const 0)
+ (i64.shl
+ (i64.extend_u/i32
+ (get_local $xh)
)
- )
- (if
- (i32.eq
- (get_local $7)
- (i32.const 0)
- )
- (block
- (if
- (get_local $2)
- (block
- (i32.store
- (get_local $4)
- (call_import $i32u-rem
- (get_local $8)
- (get_local $5)
- )
- )
- (i32.store offset=4
- (get_local $4)
- (i32.const 0)
- )
- )
- )
- (set_local $0
- (call_import $i32u-div
- (get_local $8)
- (get_local $5)
- )
- )
- (set_global $tempRet0
- (i32.const 0)
- )
- (return
- (get_local $0)
- )
- )
- (block
- (if
- (i32.eqz
- (get_local $2)
- )
- (block
- (set_global $tempRet0
- (i32.const 0)
- )
- (return
- (i32.const 0)
- )
- )
- )
- (i32.store
- (get_local $4)
- (i32.and
- (get_local $0)
- (i32.const -1)
- )
- )
- (i32.store offset=4
- (get_local $4)
- (i32.and
- (get_local $1)
- (i32.const 0)
- )
- )
- (set_global $tempRet0
- (i32.const 0)
- )
- (return
- (i32.const 0)
- )
- )
+ (i64.const 32)
)
)
)
- (set_local $10
- (i32.eq
- (get_local $7)
- (i32.const 0)
- )
- )
- (block $do-once$0
- (if
- (i32.eq
- (get_local $5)
- (i32.const 0)
+ (set_local $y64
+ (i64.or
+ (i64.extend_u/i32
+ (get_local $yl)
)
- (block
- (if
- (get_local $10)
- (block
- (if
- (i32.ne
- (get_local $4)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $4)
- (call_import $i32u-rem
- (get_local $6)
- (get_local $5)
- )
- )
- (i32.store offset=4
- (get_local $4)
- (i32.const 0)
- )
- )
- )
- (set_local $0
- (call_import $i32u-div
- (get_local $6)
- (get_local $5)
- )
- )
- (set_global $tempRet0
- (i32.const 0)
- )
- (return
- (get_local $0)
- )
- )
+ (i64.shl
+ (i64.extend_u/i32
+ (get_local $yh)
)
- (if
- (i32.eq
- (get_local $8)
- (i32.const 0)
- )
- (block
- (if
- (i32.ne
- (get_local $4)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $4)
- (i32.const 0)
- )
- (i32.store offset=4
- (get_local $4)
- (call_import $i32u-rem
- (get_local $6)
- (get_local $7)
- )
- )
- )
- )
- (set_local $0
- (call_import $i32u-div
- (get_local $6)
- (get_local $7)
- )
- )
- (set_global $tempRet0
- (i32.const 0)
- )
- (return
- (get_local $0)
- )
- )
- )
- (if
- (i32.eq
- (i32.and
- (tee_local $5
- (i32.sub
- (get_local $7)
- (i32.const 1)
- )
- )
- (get_local $7)
- )
- (i32.const 0)
- )
- (block
- (if
- (i32.ne
- (get_local $4)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $4)
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $0)
- (i32.const -1)
- )
- )
- )
- (i32.store offset=4
- (get_local $4)
- (i32.or
- (i32.and
- (get_local $5)
- (get_local $6)
- )
- (i32.and
- (get_local $1)
- (i32.const 0)
- )
- )
- )
- )
- )
- (set_global $tempRet0
- (i32.const 0)
- )
- (return
- (i32.shr_u
- (get_local $6)
- (i32.ctz
- (get_local $7)
- )
- )
- )
- )
- )
- (if
- (i32.le_u
- (tee_local $5
- (i32.sub
- (i32.clz
- (get_local $7)
- )
- (i32.clz
- (get_local $6)
- )
- )
- )
- (i32.const 30)
- )
- (block
- (set_local $12
- (tee_local $0
- (i32.add
- (get_local $5)
- (i32.const 1)
- )
- )
- )
- (set_local $11
- (i32.or
- (i32.shl
- (get_local $6)
- (tee_local $1
- (i32.sub
- (i32.const 31)
- (get_local $5)
- )
- )
- )
- (i32.shr_u
- (get_local $8)
- (get_local $0)
- )
- )
- )
- (set_local $13
- (i32.shr_u
- (get_local $6)
- (get_local $0)
- )
- )
- (set_local $10
- (i32.const 0)
- )
- (set_local $0
- (i32.shl
- (get_local $8)
- (get_local $1)
- )
- )
- (br $do-once$0)
- )
- )
- (if
- (i32.eq
- (get_local $4)
- (i32.const 0)
- )
- (block
- (set_global $tempRet0
- (i32.const 0)
- )
- (return
- (i32.const 0)
- )
- )
- )
- (i32.store
- (get_local $4)
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $0)
- (i32.const -1)
- )
- )
- )
- (i32.store offset=4
- (get_local $4)
- (i32.or
- (get_local $9)
- (i32.and
- (get_local $1)
- (i32.const 0)
- )
- )
- )
- (set_global $tempRet0
- (i32.const 0)
- )
- (return
- (i32.const 0)
- )
- )
- (block
- (if
- (i32.eqz
- (get_local $10)
- )
- (block
- (if
- (i32.le_u
- (tee_local $5
- (i32.sub
- (i32.clz
- (get_local $7)
- )
- (i32.clz
- (get_local $6)
- )
- )
- )
- (i32.const 31)
- )
- (block
- (set_local $12
- (tee_local $0
- (i32.add
- (get_local $5)
- (i32.const 1)
- )
- )
- )
- (set_local $11
- (i32.or
- (i32.and
- (i32.shr_u
- (get_local $8)
- (get_local $0)
- )
- (tee_local $9
- (i32.shr_s
- (i32.sub
- (get_local $5)
- (i32.const 31)
- )
- (i32.const 31)
- )
- )
- )
- (i32.shl
- (get_local $6)
- (tee_local $1
- (i32.sub
- (i32.const 31)
- (get_local $5)
- )
- )
- )
- )
- )
- (set_local $13
- (i32.and
- (i32.shr_u
- (get_local $6)
- (get_local $0)
- )
- (get_local $9)
- )
- )
- (set_local $10
- (i32.const 0)
- )
- (set_local $0
- (i32.shl
- (get_local $8)
- (get_local $1)
- )
- )
- (br $do-once$0)
- )
- )
- (if
- (i32.eq
- (get_local $4)
- (i32.const 0)
- )
- (block
- (set_global $tempRet0
- (i32.const 0)
- )
- (return
- (i32.const 0)
- )
- )
- )
- (i32.store
- (get_local $4)
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $0)
- (i32.const -1)
- )
- )
- )
- (i32.store offset=4
- (get_local $4)
- (i32.or
- (get_local $9)
- (i32.and
- (get_local $1)
- (i32.const 0)
- )
- )
- )
- (set_global $tempRet0
- (i32.const 0)
- )
- (return
- (i32.const 0)
- )
- )
- )
- (if
- (i32.ne
- (i32.and
- (tee_local $7
- (i32.sub
- (get_local $5)
- (i32.const 1)
- )
- )
- (get_local $5)
- )
- (i32.const 0)
- )
- (block
- (set_local $1
- (i32.sub
- (i32.const 64)
- (tee_local $0
- (i32.sub
- (i32.add
- (i32.clz
- (get_local $5)
- )
- (i32.const 33)
- )
- (i32.clz
- (get_local $6)
- )
- )
- )
- )
- )
- (set_local $5
- (i32.shr_s
- (tee_local $9
- (i32.sub
- (i32.const 32)
- (get_local $0)
- )
- )
- (i32.const 31)
- )
- )
- (set_local $10
- (i32.shr_s
- (tee_local $7
- (i32.sub
- (get_local $0)
- (i32.const 32)
- )
- )
- (i32.const 31)
- )
- )
- (set_local $12
- (get_local $0)
- )
- (set_local $11
- (i32.or
- (i32.and
- (i32.shr_s
- (i32.sub
- (get_local $9)
- (i32.const 1)
- )
- (i32.const 31)
- )
- (i32.shr_u
- (get_local $6)
- (get_local $7)
- )
- )
- (i32.and
- (i32.or
- (i32.shl
- (get_local $6)
- (get_local $9)
- )
- (i32.shr_u
- (get_local $8)
- (get_local $0)
- )
- )
- (get_local $10)
- )
- )
- )
- (set_local $13
- (i32.and
- (get_local $10)
- (i32.shr_u
- (get_local $6)
- (get_local $0)
- )
- )
- )
- (set_local $10
- (i32.and
- (i32.shl
- (get_local $8)
- (get_local $1)
- )
- (get_local $5)
- )
- )
- (set_local $0
- (i32.or
- (i32.and
- (i32.or
- (i32.shl
- (get_local $6)
- (get_local $1)
- )
- (i32.shr_u
- (get_local $8)
- (get_local $7)
- )
- )
- (get_local $5)
- )
- (i32.and
- (i32.shl
- (get_local $8)
- (get_local $9)
- )
- (i32.shr_s
- (i32.sub
- (get_local $0)
- (i32.const 33)
- )
- (i32.const 31)
- )
- )
- )
- )
- (br $do-once$0)
- )
- )
- (if
- (i32.ne
- (get_local $4)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $4)
- (i32.and
- (get_local $7)
- (get_local $8)
- )
- )
- (i32.store offset=4
- (get_local $4)
- (i32.const 0)
- )
- )
- )
- (if
- (i32.eq
- (get_local $5)
- (i32.const 1)
- )
- (block
- (set_global $tempRet0
- (i32.or
- (get_local $9)
- (i32.and
- (get_local $1)
- (i32.const 0)
- )
- )
- )
- (return
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $0)
- (i32.const -1)
- )
- )
- )
- )
- (block
- (set_global $tempRet0
- (i32.or
- (i32.const 0)
- (i32.shr_u
- (get_local $6)
- (tee_local $0
- (i32.ctz
- (get_local $5)
- )
- )
- )
- )
- )
- (return
- (i32.or
- (i32.shl
- (get_local $6)
- (i32.sub
- (i32.const 32)
- (get_local $0)
- )
- )
- (i32.shr_u
- (get_local $8)
- (get_local $0)
- )
- )
- )
- )
- )
- )
- )
- )
- (set_local $0
- (if
- (i32.eq
- (get_local $12)
- (i32.const 0)
- )
- (block
- (set_local $6
- (get_local $0)
- )
- (set_local $1
- (i32.const 0)
- )
- (i32.const 0)
- )
- (block
- (set_local $3
- (call $_i64Add
- (tee_local $1
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $2)
- (i32.const -1)
- )
- )
- )
- (tee_local $2
- (i32.or
- (get_local $14)
- (i32.and
- (get_local $3)
- (i32.const 0)
- )
- )
- )
- (i32.const -1)
- (i32.const -1)
- )
- )
- (set_local $8
- (get_global $tempRet0)
- )
- (set_local $9
- (get_local $0)
- )
- (set_local $0
- (i32.const 0)
- )
- (loop $while-in$3
- (block $while-out$2
- (set_local $6
- (i32.or
- (i32.shr_u
- (get_local $10)
- (i32.const 31)
- )
- (i32.shl
- (get_local $9)
- (i32.const 1)
- )
- )
- )
- (set_local $10
- (i32.or
- (get_local $0)
- (i32.shl
- (get_local $10)
- (i32.const 1)
- )
- )
- )
- (drop
- (call $_i64Subtract
- (get_local $3)
- (get_local $8)
- (tee_local $0
- (i32.or
- (i32.const 0)
- (i32.or
- (i32.shl
- (get_local $11)
- (i32.const 1)
- )
- (i32.shr_u
- (get_local $9)
- (i32.const 31)
- )
- )
- )
- )
- (tee_local $9
- (i32.or
- (i32.shr_u
- (get_local $11)
- (i32.const 31)
- )
- (i32.shl
- (get_local $13)
- (i32.const 1)
- )
- )
- )
- )
- )
- (set_local $7
- (i32.and
- (tee_local $14
- (i32.or
- (i32.shr_s
- (tee_local $5
- (get_global $tempRet0)
- )
- (i32.const 31)
- )
- (i32.shl
- (select
- (i32.const -1)
- (i32.const 0)
- (i32.lt_s
- (get_local $5)
- (i32.const 0)
- )
- )
- (i32.const 1)
- )
- )
- )
- (i32.const 1)
- )
- )
- (set_local $11
- (call $_i64Subtract
- (get_local $0)
- (get_local $9)
- (i32.and
- (get_local $14)
- (get_local $1)
- )
- (i32.and
- (i32.or
- (i32.shr_s
- (select
- (i32.const -1)
- (i32.const 0)
- (i32.lt_s
- (get_local $5)
- (i32.const 0)
- )
- )
- (i32.const 31)
- )
- (i32.shl
- (select
- (i32.const -1)
- (i32.const 0)
- (i32.lt_s
- (get_local $5)
- (i32.const 0)
- )
- )
- (i32.const 1)
- )
- )
- (get_local $2)
- )
- )
- )
- (set_local $13
- (get_global $tempRet0)
- )
- (if
- (i32.eq
- (tee_local $12
- (i32.sub
- (get_local $12)
- (i32.const 1)
- )
- )
- (i32.const 0)
- )
- (br $while-out$2)
- (block
- (set_local $9
- (get_local $6)
- )
- (set_local $0
- (get_local $7)
- )
- )
- )
- (br $while-in$3)
- )
- )
- (set_local $1
- (i32.const 0)
- )
- (get_local $7)
- )
- )
- )
- (set_local $3
- (i32.or
- (get_local $6)
- (tee_local $2
- (i32.const 0)
+ (i64.const 32)
)
)
)
(if
- (i32.ne
- (get_local $4)
- (i32.const 0)
+ (get_local $r)
+ (i64.store
+ (get_local $r)
+ (i64.rem_u
+ (get_local $x64)
+ (get_local $y64)
+ )
)
- (block
- (i32.store
- (get_local $4)
- (i32.or
- (i32.const 0)
- (get_local $11)
- )
- )
- (i32.store offset=4
- (get_local $4)
- (get_local $13)
- )
+ )
+ (set_local $x64
+ (i64.div_u
+ (get_local $x64)
+ (get_local $y64)
)
)
(set_global $tempRet0
- (i32.or
- (i32.or
- (i32.or
- (i32.shr_u
- (i32.or
- (i32.const 0)
- (get_local $10)
- )
- (i32.const 31)
- )
- (i32.shl
- (get_local $3)
- (i32.const 1)
- )
- )
- (i32.and
- (i32.or
- (i32.shl
- (get_local $2)
- (i32.const 1)
- )
- (i32.shr_u
- (get_local $10)
- (i32.const 31)
- )
- )
- (i32.const 0)
- )
+ (i32.wrap/i64
+ (i64.shr_u
+ (get_local $x64)
+ (i64.const 32)
)
- (get_local $1)
)
)
- (i32.or
- (i32.and
- (i32.or
- (i32.shl
- (get_local $10)
- (i32.const 1)
- )
- (i32.const 0)
- )
- (i32.const -2)
- )
- (get_local $0)
+ (i32.wrap/i64
+ (get_local $x64)
)
)
(func $dynCall_ii (param $0 i32) (param $1 i32) (result i32)
diff --git a/test/emcc_hello_world.fromasm.imprecise b/test/emcc_hello_world.fromasm.imprecise
index c97524f..bc1e15b 100644
--- a/test/emcc_hello_world.fromasm.imprecise
+++ b/test/emcc_hello_world.fromasm.imprecise
@@ -132,9 +132,8 @@
)
(func $setThrew (param $0 i32) (param $1 i32)
(if
- (i32.eq
+ (i32.eqz
(get_global $__THREW__)
- (i32.const 0)
)
(block
(set_global $__THREW__
@@ -374,37 +373,30 @@
(set_local $1
(i32.const 0)
)
- (loop $while-in$1
- (block $while-out$0
- (if
- (i32.eq
- (i32.and
- (i32.load8_s offset=687
- (get_local $1)
+ (block $jumpthreading$outer$0
+ (block $jumpthreading$inner$0
+ (loop $while-in$1
+ (br_if $jumpthreading$inner$0
+ (i32.eq
+ (i32.and
+ (i32.load8_s offset=687
+ (get_local $1)
+ )
+ (i32.const 255)
)
- (i32.const 255)
+ (get_local $0)
)
- (get_local $0)
)
- (block
- (set_local $4
- (get_local $1)
- )
- (set_local $0
- (i32.const 2)
- )
- (br $while-out$0)
- )
- )
- (if
- (i32.eq
- (tee_local $1
- (i32.add
- (get_local $1)
- (i32.const 1)
+ (br_if $while-in$1
+ (i32.ne
+ (tee_local $1
+ (i32.add
+ (get_local $1)
+ (i32.const 1)
+ )
)
+ (i32.const 87)
)
- (i32.const 87)
)
(block
(set_local $3
@@ -413,108 +405,72 @@
(set_local $2
(i32.const 775)
)
- (set_local $0
+ (set_local $4
(i32.const 5)
)
- (br $while-out$0)
)
)
- (br $while-in$1)
- )
- )
- (if
- (i32.eq
- (get_local $0)
- (i32.const 2)
+ (br $jumpthreading$outer$0)
)
(if
- (i32.eq
- (get_local $4)
- (i32.const 0)
- )
- (set_local $5
- (i32.const 775)
- )
+ (get_local $1)
(block
(set_local $3
- (get_local $4)
+ (get_local $1)
)
(set_local $2
(i32.const 775)
)
- (set_local $0
+ (set_local $4
(i32.const 5)
)
)
+ (set_local $5
+ (i32.const 775)
+ )
)
)
(if
(i32.eq
- (get_local $0)
+ (get_local $4)
(i32.const 5)
)
(loop $while-in$3
- (block $while-out$2
- (loop $while-in$5
- (block $while-out$4
- (set_local $0
- (i32.add
- (get_local $2)
- (i32.const 1)
- )
- )
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (get_local $2)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 0)
- )
- (block
- (set_local $1
- (get_local $0)
- )
- (br $while-out$4)
- )
- (set_local $2
- (get_local $0)
- )
+ (loop $while-in$5
+ (set_local $0
+ (i32.add
+ (get_local $2)
+ (i32.const 1)
+ )
+ )
+ (if
+ (i32.load8_s
+ (get_local $2)
+ )
+ (block
+ (set_local $2
+ (get_local $0)
)
(br $while-in$5)
)
)
- (if
- (i32.eq
- (tee_local $0
- (i32.add
- (get_local $3)
- (i32.const -1)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $5
- (get_local $1)
- )
- (br $while-out$2)
- )
- (block
- (set_local $3
- (get_local $0)
- )
- (set_local $2
- (get_local $1)
- )
+ )
+ (if
+ (tee_local $3
+ (i32.add
+ (get_local $3)
+ (i32.const -1)
)
)
- (br $while-in$3)
+ (block
+ (set_local $2
+ (get_local $0)
+ )
+ (br $while-in$3)
+ )
+ (set_local $5
+ (get_local $0)
+ )
)
)
)
@@ -522,16 +478,13 @@
)
(func $___errno_location (result i32)
(if
- (i32.eq
- (i32.load
- (i32.const 16)
- )
- (i32.const 0)
+ (i32.load
+ (i32.const 16)
)
- (i32.const 60)
(i32.load offset=60
(call_import $_pthread_self)
)
+ (i32.const 60)
)
)
(func $___stdio_close (param $0 i32) (result i32)
@@ -608,14 +561,13 @@
(i32.const 4)
)
(if
- (i32.eq
+ (i32.eqz
(i32.and
(i32.load
(get_local $0)
)
(i32.const 64)
)
- (i32.const 0)
)
(block
(i32.store
@@ -633,12 +585,9 @@
(get_local $5)
)
(if
- (i32.ne
- (call_import $___syscall54
- (i32.const 54)
- (get_local $3)
- )
- (i32.const 0)
+ (call_import $___syscall54
+ (i32.const 54)
+ (get_local $3)
)
(i32.store8 offset=75
(get_local $0)
@@ -740,116 +689,7 @@
(local $2 i32)
(block $do-once$0
(if
- (i32.eq
- (get_local $0)
- (i32.const 0)
- )
- (block
- (set_local $0
- (if
- (i32.eq
- (i32.load
- (i32.const 12)
- )
- (i32.const 0)
- )
- (i32.const 0)
- (call $_fflush
- (i32.load
- (i32.const 12)
- )
- )
- )
- )
- (call_import $___lock
- (i32.const 44)
- )
- (if
- (i32.ne
- (tee_local $1
- (i32.load
- (i32.const 40)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $2
- (get_local $0)
- )
- (loop $while-in$3
- (block $while-out$2
- (set_local $0
- (if
- (i32.gt_s
- (i32.load offset=76
- (get_local $1)
- )
- (i32.const -1)
- )
- (call $___lockfile
- (get_local $1)
- )
- (i32.const 0)
- )
- )
- (set_local $2
- (if
- (i32.gt_u
- (i32.load offset=20
- (get_local $1)
- )
- (i32.load offset=28
- (get_local $1)
- )
- )
- (i32.or
- (call $___fflush_unlocked
- (get_local $1)
- )
- (get_local $2)
- )
- (get_local $2)
- )
- )
- (if
- (i32.ne
- (get_local $0)
- (i32.const 0)
- )
- (call $___unlockfile
- (get_local $1)
- )
- )
- (if
- (i32.eq
- (tee_local $0
- (i32.load offset=56
- (get_local $1)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $0
- (get_local $2)
- )
- (br $while-out$2)
- )
- (set_local $1
- (get_local $0)
- )
- )
- (br $while-in$3)
- )
- )
- )
- )
- (call_import $___unlock
- (i32.const 44)
- )
- (get_local $0)
- )
+ (get_local $0)
(block
(if
(i32.le_s
@@ -865,11 +705,10 @@
)
)
(set_local $2
- (i32.eq
+ (i32.eqz
(call $___lockfile
(get_local $0)
)
- (i32.const 0)
)
)
(set_local $1
@@ -888,6 +727,83 @@
)
)
)
+ (block
+ (set_local $0
+ (if
+ (i32.load
+ (i32.const 12)
+ )
+ (call $_fflush
+ (i32.load
+ (i32.const 12)
+ )
+ )
+ (i32.const 0)
+ )
+ )
+ (call_import $___lock
+ (i32.const 44)
+ )
+ (if
+ (tee_local $1
+ (i32.load
+ (i32.const 40)
+ )
+ )
+ (loop $while-in$3
+ (set_local $2
+ (if
+ (i32.gt_s
+ (i32.load offset=76
+ (get_local $1)
+ )
+ (i32.const -1)
+ )
+ (call $___lockfile
+ (get_local $1)
+ )
+ (i32.const 0)
+ )
+ )
+ (set_local $0
+ (if
+ (i32.gt_u
+ (i32.load offset=20
+ (get_local $1)
+ )
+ (i32.load offset=28
+ (get_local $1)
+ )
+ )
+ (i32.or
+ (call $___fflush_unlocked
+ (get_local $1)
+ )
+ (get_local $0)
+ )
+ (get_local $0)
+ )
+ )
+ (if
+ (get_local $2)
+ (call $___unlockfile
+ (get_local $1)
+ )
+ )
+ (br_if $while-in$3
+ (tee_local $1
+ (i32.load offset=56
+ (get_local $1)
+ )
+ )
+ )
+ )
+ )
+ (call_import $___unlock
+ (i32.const 44)
+ )
+ (get_local $0)
+ )
)
)
)
@@ -949,10 +865,7 @@
(local $12 i32)
(local $13 i32)
(local $14 i32)
- (local $15 i32)
- (local $16 i32)
- (local $17 i32)
- (set_local $8
+ (set_local $7
(get_global $STACKTOP)
)
(set_global $STACKTOP
@@ -968,25 +881,25 @@
)
(call_import $abort)
)
- (set_local $9
+ (set_local $8
(i32.add
- (get_local $8)
+ (get_local $7)
(i32.const 16)
)
)
- (set_local $10
- (get_local $8)
+ (set_local $9
+ (get_local $7)
)
(i32.store
(tee_local $4
(i32.add
- (get_local $8)
+ (get_local $7)
(i32.const 32)
)
)
(tee_local $3
(i32.load
- (tee_local $7
+ (tee_local $6
(i32.add
(get_local $0)
(i32.const 28)
@@ -1000,7 +913,7 @@
(tee_local $3
(i32.sub
(i32.load
- (tee_local $11
+ (tee_local $10
(i32.add
(get_local $0)
(i32.const 20)
@@ -1019,310 +932,281 @@
(get_local $4)
(get_local $2)
)
- (set_local $12
+ (set_local $13
(i32.add
(get_local $0)
(i32.const 60)
)
)
- (set_local $13
+ (set_local $14
(i32.add
(get_local $0)
(i32.const 44)
)
)
- (set_local $6
+ (set_local $1
+ (get_local $4)
+ )
+ (set_local $4
(i32.const 2)
)
- (set_local $3
+ (set_local $11
(i32.add
(get_local $3)
(get_local $2)
)
)
- (loop $while-in$1
- (block $while-out$0
- (if
- (i32.eq
- (get_local $3)
- (tee_local $5
- (if
+ (set_local $0
+ (block $jumpthreading$outer$1
+ (block $jumpthreading$inner$1
+ (block $jumpthreading$inner$0
+ (loop $while-in$1
+ (br_if $jumpthreading$inner$0
(i32.eq
- (i32.load
- (i32.const 16)
- )
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $9)
- (i32.load
- (get_local $12)
- )
- )
- (i32.store offset=4
- (get_local $9)
- (get_local $4)
- )
- (i32.store offset=8
- (get_local $9)
- (get_local $6)
- )
- (call $___syscall_ret
- (call_import $___syscall146
- (i32.const 146)
- (get_local $9)
- )
- )
- )
- (block
- (call_import $_pthread_cleanup_push
- (i32.const 5)
- (get_local $0)
- )
- (i32.store
- (get_local $10)
- (i32.load
- (get_local $12)
- )
- )
- (i32.store offset=4
- (get_local $10)
- (get_local $4)
- )
- (i32.store offset=8
- (get_local $10)
- (get_local $6)
- )
- (set_local $1
- (call $___syscall_ret
- (call_import $___syscall146
- (i32.const 146)
- (get_local $10)
+ (get_local $11)
+ (tee_local $5
+ (if
+ (i32.load
+ (i32.const 16)
+ )
+ (block
+ (call_import $_pthread_cleanup_push
+ (i32.const 5)
+ (get_local $0)
+ )
+ (i32.store
+ (get_local $9)
+ (i32.load
+ (get_local $13)
+ )
+ )
+ (i32.store offset=4
+ (get_local $9)
+ (get_local $1)
+ )
+ (i32.store offset=8
+ (get_local $9)
+ (get_local $4)
+ )
+ (set_local $3
+ (call $___syscall_ret
+ (call_import $___syscall146
+ (i32.const 146)
+ (get_local $9)
+ )
+ )
+ )
+ (call_import $_pthread_cleanup_pop
+ (i32.const 0)
+ )
+ (get_local $3)
+ )
+ (block
+ (i32.store
+ (get_local $8)
+ (i32.load
+ (get_local $13)
+ )
+ )
+ (i32.store offset=4
+ (get_local $8)
+ (get_local $1)
+ )
+ (i32.store offset=8
+ (get_local $8)
+ (get_local $4)
+ )
+ (call $___syscall_ret
+ (call_import $___syscall146
+ (i32.const 146)
+ (get_local $8)
+ )
+ )
)
)
)
- (call_import $_pthread_cleanup_pop
- (i32.const 0)
- )
- (get_local $1)
)
)
- )
- )
- (block
- (set_local $1
- (i32.const 6)
- )
- (br $while-out$0)
- )
- )
- (if
- (i32.lt_s
- (get_local $5)
- (i32.const 0)
- )
- (block
- (set_local $15
- (get_local $4)
- )
- (set_local $16
- (get_local $6)
- )
- (set_local $1
- (i32.const 8)
- )
- (br $while-out$0)
- )
- )
- (set_local $17
- (i32.sub
- (get_local $3)
- (get_local $5)
- )
- )
- (set_local $1
- (if
- (i32.gt_u
- (get_local $5)
- (tee_local $1
- (i32.load offset=4
- (get_local $4)
- )
- )
- )
- (block
- (i32.store
- (get_local $7)
- (tee_local $3
- (i32.load
- (get_local $13)
- )
- )
- )
- (i32.store
- (get_local $11)
- (get_local $3)
- )
- (set_local $5
- (i32.sub
+ (br_if $jumpthreading$inner$1
+ (i32.lt_s
(get_local $5)
- (get_local $1)
+ (i32.const 0)
)
)
- (set_local $3
- (i32.add
- (get_local $4)
- (i32.const 8)
- )
- )
- (set_local $6
- (i32.add
- (get_local $6)
- (i32.const -1)
- )
- )
- (i32.load offset=12
- (get_local $4)
- )
- )
- (if
- (i32.eq
- (get_local $6)
- (i32.const 2)
- )
(block
+ (set_local $11
+ (i32.sub
+ (get_local $11)
+ (get_local $5)
+ )
+ )
+ (set_local $1
+ (if
+ (i32.gt_u
+ (get_local $5)
+ (tee_local $12
+ (i32.load offset=4
+ (get_local $1)
+ )
+ )
+ )
+ (block
+ (i32.store
+ (get_local $6)
+ (tee_local $3
+ (i32.load
+ (get_local $14)
+ )
+ )
+ )
+ (i32.store
+ (get_local $10)
+ (get_local $3)
+ )
+ (set_local $5
+ (i32.sub
+ (get_local $5)
+ (get_local $12)
+ )
+ )
+ (set_local $3
+ (i32.add
+ (get_local $1)
+ (i32.const 8)
+ )
+ )
+ (set_local $4
+ (i32.add
+ (get_local $4)
+ (i32.const -1)
+ )
+ )
+ (i32.load offset=12
+ (get_local $1)
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $4)
+ (i32.const 2)
+ )
+ (block
+ (i32.store
+ (get_local $6)
+ (i32.add
+ (i32.load
+ (get_local $6)
+ )
+ (get_local $5)
+ )
+ )
+ (set_local $3
+ (get_local $1)
+ )
+ (set_local $4
+ (i32.const 2)
+ )
+ (get_local $12)
+ )
+ (block
+ (set_local $3
+ (get_local $1)
+ )
+ (get_local $12)
+ )
+ )
+ )
+ )
(i32.store
- (get_local $7)
+ (get_local $3)
(i32.add
(i32.load
- (get_local $7)
+ (get_local $3)
)
(get_local $5)
)
)
- (set_local $3
- (get_local $4)
+ (i32.store offset=4
+ (get_local $3)
+ (i32.sub
+ (get_local $1)
+ (get_local $5)
+ )
)
- (set_local $6
- (i32.const 2)
+ (set_local $1
+ (get_local $3)
)
- (get_local $1)
- )
- (block
- (set_local $3
- (get_local $4)
- )
- (get_local $1)
+ (br $while-in$1)
)
)
)
- )
- (i32.store
- (get_local $3)
- (i32.add
- (i32.load
- (get_local $3)
- )
- (get_local $5)
- )
- )
- (i32.store offset=4
- (get_local $3)
- (i32.sub
- (get_local $1)
- (get_local $5)
- )
- )
- (set_local $4
- (get_local $3)
- )
- (set_local $3
- (get_local $17)
- )
- (br $while-in$1)
- )
- )
- (if
- (i32.eq
- (get_local $1)
- (i32.const 6)
- )
- (block
- (i32.store offset=16
- (get_local $0)
- (i32.add
- (tee_local $1
- (i32.load
- (get_local $13)
- )
- )
- (i32.load offset=48
- (get_local $0)
- )
- )
- )
- (i32.store
- (get_local $7)
- (get_local $1)
- )
- (i32.store
- (get_local $11)
- (get_local $1)
- )
- (set_local $14
- (get_local $2)
- )
- )
- (if
- (i32.eq
- (get_local $1)
- (i32.const 8)
- )
- (block
(i32.store offset=16
(get_local $0)
- (i32.const 0)
- )
- (i32.store
- (get_local $7)
- (i32.const 0)
- )
- (i32.store
- (get_local $11)
- (i32.const 0)
- )
- (i32.store
- (get_local $0)
- (i32.or
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- )
- (set_local $14
- (select
- (i32.const 0)
- (i32.sub
- (get_local $2)
- (i32.load offset=4
- (get_local $15)
+ (i32.add
+ (tee_local $1
+ (i32.load
+ (get_local $14)
)
)
- (i32.eq
- (get_local $16)
- (i32.const 2)
+ (i32.load offset=48
+ (get_local $0)
)
)
)
+ (i32.store
+ (get_local $6)
+ (tee_local $0
+ (get_local $1)
+ )
+ )
+ (i32.store
+ (get_local $10)
+ (get_local $0)
+ )
+ (br $jumpthreading$outer$1
+ (get_local $2)
+ )
+ )
+ (i32.store offset=16
+ (get_local $0)
+ (i32.const 0)
+ )
+ (i32.store
+ (get_local $6)
+ (i32.const 0)
+ )
+ (i32.store
+ (get_local $10)
+ (i32.const 0)
+ )
+ (i32.store
+ (get_local $0)
+ (i32.or
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (select
+ (i32.const 0)
+ (i32.sub
+ (get_local $2)
+ (i32.load offset=4
+ (get_local $1)
+ )
+ )
+ (i32.eq
+ (get_local $4)
+ (i32.const 2)
+ )
)
)
)
(set_global $STACKTOP
- (get_local $8)
+ (get_local $7)
)
- (get_local $14)
+ (get_local $0)
)
(func $_vfprintf (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
@@ -1444,14 +1328,8 @@
)
(if
(i32.lt_s
- (i32.shr_s
- (i32.shl
- (i32.load8_s offset=74
- (get_local $0)
- )
- (i32.const 24)
- )
- (i32.const 24)
+ (i32.load8_s offset=74
+ (get_local $0)
)
(i32.const 1)
)
@@ -1465,17 +1343,22 @@
)
(set_local $2
(select
+ (i32.const -1)
(if
- (i32.eq
- (i32.load
- (tee_local $10
- (i32.add
- (get_local $0)
- (i32.const 48)
- )
+ (i32.load
+ (tee_local $10
+ (i32.add
+ (get_local $0)
+ (i32.const 48)
)
)
- (i32.const 0)
+ )
+ (call $_printf_core
+ (get_local $0)
+ (get_local $1)
+ (get_local $5)
+ (get_local $8)
+ (get_local $9)
)
(block
(set_local $2
@@ -1536,11 +1419,7 @@
)
)
(if
- (i32.eq
- (get_local $2)
- (i32.const 0)
- )
- (get_local $1)
+ (get_local $2)
(block
(drop
(call_indirect $FUNCSIG$iiii
@@ -1560,13 +1439,10 @@
)
(set_local $1
(select
- (i32.const -1)
(get_local $1)
- (i32.eq
- (i32.load
- (get_local $11)
- )
- (i32.const 0)
+ (i32.const -1)
+ (i32.load
+ (get_local $11)
)
)
)
@@ -1592,27 +1468,17 @@
)
(get_local $1)
)
+ (get_local $1)
)
)
- (call $_printf_core
- (get_local $0)
- (get_local $1)
- (get_local $5)
- (get_local $8)
- (get_local $9)
- )
)
- (i32.const -1)
- (i32.eq
- (i32.and
- (tee_local $1
- (i32.load
- (get_local $0)
- )
+ (i32.and
+ (tee_local $1
+ (i32.load
+ (get_local $0)
)
- (i32.const 32)
)
- (i32.const 0)
+ (i32.const 32)
)
)
)
@@ -1624,10 +1490,7 @@
)
)
(if
- (i32.ne
- (get_local $12)
- (i32.const 0)
- )
+ (get_local $12)
(call $___unlockfile
(get_local $0)
)
@@ -1646,262 +1509,216 @@
(local $4 i32)
(local $5 i32)
(local $6 i32)
- (local $7 i32)
- (if
- (i32.eq
- (tee_local $6
+ (block $label$break$L5
+ (block $jumpthreading$inner$0
+ (br_if $jumpthreading$inner$0
+ (tee_local $3
+ (i32.load
+ (tee_local $4
+ (i32.add
+ (get_local $2)
+ (i32.const 16)
+ )
+ )
+ )
+ )
+ )
+ (if
+ (call $___towrite
+ (get_local $2)
+ )
+ (set_local $3
+ (i32.const 0)
+ )
+ (block
+ (set_local $3
+ (i32.load
+ (get_local $4)
+ )
+ )
+ (br $jumpthreading$inner$0)
+ )
+ )
+ (br $label$break$L5)
+ )
+ (set_local $6
+ (tee_local $4
(i32.load
(tee_local $5
(i32.add
(get_local $2)
- (i32.const 16)
+ (i32.const 20)
)
)
)
)
- (i32.const 0)
)
(if
- (i32.eq
- (call $___towrite
- (get_local $2)
- )
- (i32.const 0)
- )
- (block
- (set_local $3
- (i32.load
- (get_local $5)
- )
- )
- (set_local $7
- (i32.const 5)
- )
- )
- (set_local $4
- (i32.const 0)
- )
- )
- (block
- (set_local $3
- (get_local $6)
- )
- (set_local $7
- (i32.const 5)
- )
- )
- )
- (block $label$break$L5
- (if
- (i32.eq
- (get_local $7)
- (i32.const 5)
- )
- (block
- (set_local $3
- (i32.lt_u
- (i32.sub
- (get_local $3)
- (tee_local $6
- (i32.load
- (tee_local $5
- (i32.add
- (get_local $2)
- (i32.const 20)
- )
- )
- )
- )
- )
- (get_local $1)
- )
- )
- (if
+ (i32.lt_u
+ (i32.sub
(get_local $3)
- (block
- (set_local $4
- (call_indirect $FUNCSIG$iiii
- (get_local $2)
- (get_local $0)
- (get_local $1)
- (i32.add
- (i32.and
- (i32.load offset=36
- (get_local $2)
- )
- (i32.const 7)
- )
- (i32.const 2)
- )
- )
- )
- (br $label$break$L5)
- )
+ (get_local $4)
)
- (drop
- (call $_memcpy
- (block $label$break$L10
- (if
- (i32.gt_s
- (i32.shr_s
- (i32.shl
- (i32.load8_s offset=75
- (get_local $2)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const -1)
- )
- (block
- (set_local $3
- (get_local $1)
- )
- (loop $while-in$3
- (block $while-out$2
- (if
- (i32.eq
- (get_local $3)
- (i32.const 0)
- )
- (block
- (set_local $2
- (i32.const 0)
- )
- (br $label$break$L10
- (get_local $6)
- )
- )
- )
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (i32.add
- (get_local $0)
- (tee_local $4
- (i32.add
- (get_local $3)
- (i32.const -1)
- )
- )
- )
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 10)
- )
- (br $while-out$2)
- (set_local $3
- (get_local $4)
- )
- )
- (br $while-in$3)
- )
- )
- (if
- (i32.lt_u
- (call_indirect $FUNCSIG$iiii
- (get_local $2)
- (get_local $0)
- (get_local $3)
- (i32.add
- (i32.and
- (i32.load offset=36
- (get_local $2)
- )
- (i32.const 7)
- )
- (i32.const 2)
- )
- )
- (get_local $3)
- )
- (block
- (set_local $4
- (get_local $3)
- )
- (br $label$break$L5)
- )
- )
- (set_local $2
- (get_local $3)
- )
- (set_local $1
- (i32.sub
- (get_local $1)
- (get_local $3)
- )
- )
- (set_local $0
- (i32.add
- (get_local $0)
- (get_local $3)
- )
- )
- (i32.load
- (get_local $5)
- )
- )
- (block
- (set_local $2
- (i32.const 0)
- )
- (get_local $6)
- )
- )
- )
+ (get_local $1)
+ )
+ (block
+ (set_local $3
+ (call_indirect $FUNCSIG$iiii
+ (get_local $2)
(get_local $0)
(get_local $1)
- )
- )
- (i32.store
- (get_local $5)
- (i32.add
- (i32.load
- (get_local $5)
+ (i32.add
+ (i32.and
+ (i32.load offset=36
+ (get_local $2)
+ )
+ (i32.const 7)
+ )
+ (i32.const 2)
)
- (get_local $1)
)
)
- (set_local $4
- (i32.add
- (get_local $2)
- (get_local $1)
+ (br $label$break$L5)
+ )
+ )
+ (drop
+ (call $_memcpy
+ (block $label$break$L10
+ (if
+ (i32.gt_s
+ (i32.load8_s offset=75
+ (get_local $2)
+ )
+ (i32.const -1)
+ )
+ (block
+ (set_local $3
+ (get_local $1)
+ )
+ (loop $while-in$3
+ (if
+ (i32.eqz
+ (get_local $3)
+ )
+ (block
+ (set_local $2
+ (i32.const 0)
+ )
+ (br $label$break$L10
+ (get_local $6)
+ )
+ )
+ )
+ (if
+ (i32.ne
+ (i32.load8_s
+ (i32.add
+ (get_local $0)
+ (tee_local $4
+ (i32.add
+ (get_local $3)
+ (i32.const -1)
+ )
+ )
+ )
+ )
+ (i32.const 10)
+ )
+ (block
+ (set_local $3
+ (get_local $4)
+ )
+ (br $while-in$3)
+ )
+ )
+ )
+ (br_if $label$break$L5
+ (i32.lt_u
+ (call_indirect $FUNCSIG$iiii
+ (get_local $2)
+ (get_local $0)
+ (get_local $3)
+ (i32.add
+ (i32.and
+ (i32.load offset=36
+ (get_local $2)
+ )
+ (i32.const 7)
+ )
+ (i32.const 2)
+ )
+ )
+ (get_local $3)
+ )
+ )
+ (set_local $2
+ (get_local $3)
+ )
+ (set_local $1
+ (i32.sub
+ (get_local $1)
+ (get_local $3)
+ )
+ )
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (get_local $3)
+ )
+ )
+ (i32.load
+ (get_local $5)
+ )
+ )
+ (block
+ (set_local $2
+ (i32.const 0)
+ )
+ (get_local $6)
+ )
)
)
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (i32.store
+ (get_local $5)
+ (i32.add
+ (i32.load
+ (get_local $5)
+ )
+ (get_local $1)
+ )
+ )
+ (set_local $3
+ (i32.add
+ (get_local $2)
+ (get_local $1)
)
)
)
- (get_local $4)
+ (get_local $3)
)
(func $___towrite (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(set_local $1
+ (i32.load8_s
+ (tee_local $2
+ (i32.add
+ (get_local $0)
+ (i32.const 74)
+ )
+ )
+ )
+ )
+ (i32.store8
+ (get_local $2)
(i32.and
(i32.or
(i32.add
- (tee_local $1
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (tee_local $2
- (i32.add
- (get_local $0)
- (i32.const 74)
- )
- )
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- )
+ (get_local $1)
(i32.const 255)
)
(get_local $1)
@@ -1909,21 +1726,24 @@
(i32.const 255)
)
)
- (i32.store8
- (get_local $2)
- (get_local $1)
- )
(if
- (i32.eq
- (i32.and
- (tee_local $1
- (i32.load
- (get_local $0)
- )
+ (i32.and
+ (tee_local $1
+ (i32.load
+ (get_local $0)
)
- (i32.const 8)
)
- (i32.const 0)
+ (i32.const 8)
+ )
+ (block
+ (i32.store
+ (get_local $0)
+ (i32.or
+ (get_local $1)
+ (i32.const 32)
+ )
+ )
+ (i32.const -1)
)
(block
(i32.store offset=8
@@ -1957,26 +1777,12 @@
)
(i32.const 0)
)
- (block
- (i32.store
- (get_local $0)
- (i32.or
- (get_local $1)
- (i32.const 32)
- )
- )
- (i32.const -1)
- )
)
)
(func $_wcrtomb (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(block $do-once$0
(if
- (i32.eq
- (get_local $0)
- (i32.const 0)
- )
- (i32.const 1)
+ (get_local $0)
(block
(if
(i32.lt_u
@@ -2173,444 +1979,264 @@
)
)
)
+ (i32.const 1)
)
)
)
(func $_wctomb (param $0 i32) (param $1 i32) (result i32)
(if
- (i32.eq
- (get_local $0)
- (i32.const 0)
- )
- (i32.const 0)
+ (get_local $0)
(call $_wcrtomb
(get_local $0)
(get_local $1)
(i32.const 0)
)
+ (i32.const 0)
)
)
(func $_memchr (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
- (local $6 i32)
- (local $7 i32)
- (local $8 i32)
- (local $9 i32)
- (local $10 i32)
- (local $11 i32)
- (local $12 i32)
- (local $13 i32)
- (local $14 i32)
- (local $15 i32)
- (local $16 i32)
- (set_local $16
+ (set_local $5
(i32.and
(get_local $1)
(i32.const 255)
)
)
- (block $label$break$L1
- (if
- (i32.and
- (tee_local $6
- (i32.ne
- (get_local $2)
- (i32.const 0)
- )
- )
- (i32.ne
+ (block $label$break$L8
+ (block $jumpthreading$inner$2
+ (block $jumpthreading$inner$1
+ (if
(i32.and
- (get_local $0)
- (i32.const 3)
+ (tee_local $3
+ (i32.ne
+ (get_local $2)
+ (i32.const 0)
+ )
+ )
+ (i32.ne
+ (i32.and
+ (get_local $0)
+ (i32.const 3)
+ )
+ (i32.const 0)
+ )
)
- (i32.const 0)
- )
- )
- (block
- (set_local $6
- (i32.and
- (get_local $1)
- (i32.const 255)
- )
- )
- (set_local $3
- (get_local $2)
- )
- (set_local $2
- (get_local $0)
- )
- (loop $while-in$2
- (block $while-out$1
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (get_local $2)
+ (block
+ (set_local $4
+ (i32.and
+ (get_local $1)
+ (i32.const 255)
+ )
+ )
+ (loop $while-in$2
+ (br_if $jumpthreading$inner$2
+ (i32.eq
+ (i32.load8_s
+ (get_local $0)
+ )
+ (i32.shr_s
+ (i32.shl
+ (get_local $4)
+ (i32.const 24)
)
(i32.const 24)
)
- (i32.const 24)
- )
- (i32.shr_s
- (i32.shl
- (get_local $6)
- (i32.const 24)
- )
- (i32.const 24)
)
)
- (block
- (set_local $4
- (get_local $3)
- )
- (set_local $5
- (get_local $2)
- )
- (set_local $3
- (i32.const 6)
- )
- (br $label$break$L1)
- )
- )
- (if
- (i32.and
- (tee_local $3
- (i32.ne
- (tee_local $0
- (i32.add
- (get_local $3)
- (i32.const -1)
+ (br_if $while-in$2
+ (i32.and
+ (tee_local $3
+ (i32.ne
+ (tee_local $2
+ (i32.add
+ (get_local $2)
+ (i32.const -1)
+ )
)
+ (i32.const 0)
+ )
+ )
+ (i32.ne
+ (i32.and
+ (tee_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ (i32.const 3)
)
(i32.const 0)
)
)
- (i32.ne
- (i32.and
- (tee_local $2
- (i32.add
- (get_local $2)
- (i32.const 1)
- )
- )
- (i32.const 3)
- )
- (i32.const 0)
- )
)
- (set_local $3
- (get_local $0)
- )
- (block
- (set_local $14
- (get_local $0)
- )
- (set_local $11
- (get_local $2)
- )
- (set_local $15
- (get_local $3)
- )
- (set_local $3
- (i32.const 5)
- )
- (br $while-out$1)
- )
+ (br $jumpthreading$inner$1)
)
- (br $while-in$2)
)
)
)
- (block
- (set_local $14
- (get_local $2)
- )
- (set_local $11
- (get_local $0)
- )
- (set_local $15
- (get_local $6)
- )
- (set_local $3
- (i32.const 5)
- )
+ (br_if $jumpthreading$inner$2
+ (get_local $3)
)
- )
- )
- (if
- (i32.eq
- (get_local $3)
- (i32.const 5)
- )
- (if
- (get_local $15)
- (block
- (set_local $4
- (get_local $14)
- )
- (set_local $5
- (get_local $11)
- )
- (set_local $3
- (i32.const 6)
- )
+ (set_local $1
+ (i32.const 0)
)
- (block
- (set_local $7
- (i32.const 0)
- )
- (set_local $8
- (get_local $11)
- )
- )
+ (br $label$break$L8)
)
- )
- (block $label$break$L8
(if
(i32.eq
- (get_local $3)
- (i32.const 6)
+ (i32.load8_s
+ (get_local $0)
+ )
+ (i32.shr_s
+ (i32.shl
+ (tee_local $4
+ (i32.and
+ (get_local $1)
+ (i32.const 255)
+ )
+ )
+ (i32.const 24)
+ )
+ (i32.const 24)
+ )
)
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (get_local $5)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.shr_s
- (i32.shl
- (tee_local $0
- (i32.and
- (get_local $1)
- (i32.const 255)
- )
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- )
- (block
- (set_local $7
- (get_local $4)
- )
- (set_local $8
+ (set_local $1
+ (get_local $2)
+ )
+ (block
+ (set_local $3
+ (i32.mul
(get_local $5)
+ (i32.const 16843009)
)
)
- (block
- (set_local $2
- (i32.mul
- (get_local $16)
- (i32.const 16843009)
- )
- )
- (block $label$break$L11
+ (block $jumpthreading$outer$0
+ (block $jumpthreading$inner$0
(if
(i32.gt_u
- (get_local $4)
+ (get_local $2)
(i32.const 3)
)
- (block
- (loop $while-in$6
- (block $while-out$5
- (set_local $1
- (i32.add
- (tee_local $6
- (i32.xor
- (i32.load
- (get_local $5)
+ (loop $while-in$6
+ (block $while-out$5
+ (if
+ (i32.and
+ (i32.xor
+ (i32.and
+ (tee_local $1
+ (i32.xor
+ (i32.load
+ (get_local $0)
+ )
+ (get_local $3)
)
- (get_local $2)
)
+ (i32.const -2139062144)
)
+ (i32.const -2139062144)
+ )
+ (i32.add
+ (get_local $1)
(i32.const -16843009)
)
)
- (br_if $while-out$5
- (i32.ne
- (i32.and
- (i32.xor
- (i32.and
- (get_local $6)
- (i32.const -2139062144)
- )
- (i32.const -2139062144)
- )
- (get_local $1)
- )
- (i32.const 0)
+ (block
+ (set_local $1
+ (get_local $2)
)
+ (br $while-out$5)
)
- (set_local $1
- (i32.add
- (get_local $5)
- (i32.const 4)
- )
+ )
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 4)
)
- (if
- (i32.gt_u
- (tee_local $4
- (i32.add
- (get_local $4)
- (i32.const -4)
- )
+ )
+ (br_if $jumpthreading$inner$0
+ (i32.le_u
+ (tee_local $1
+ (i32.add
+ (get_local $2)
+ (i32.const -4)
)
- (i32.const 3)
)
- (set_local $5
- (get_local $1)
- )
- (block
- (set_local $12
- (get_local $4)
- )
- (set_local $13
- (get_local $1)
- )
- (set_local $3
- (i32.const 11)
- )
- (br $label$break$L11)
- )
+ (i32.const 3)
+ )
+ )
+ (block
+ (set_local $2
+ (get_local $1)
)
(br $while-in$6)
)
)
- (set_local $10
- (get_local $4)
- )
- (set_local $9
- (get_local $5)
- )
)
(block
- (set_local $12
- (get_local $4)
+ (set_local $1
+ (get_local $2)
)
- (set_local $13
- (get_local $5)
- )
- (set_local $3
- (i32.const 11)
- )
+ (br $jumpthreading$inner$0)
)
)
+ (br $jumpthreading$outer$0)
)
(if
- (i32.eq
- (get_local $3)
- (i32.const 11)
+ (i32.eqz
+ (get_local $1)
)
- (if
- (i32.eq
- (get_local $12)
+ (block
+ (set_local $1
(i32.const 0)
)
- (block
- (set_local $7
- (i32.const 0)
- )
- (set_local $8
- (get_local $13)
- )
- (br $label$break$L8)
+ (br $label$break$L8)
+ )
+ )
+ )
+ (loop $while-in$8
+ (br_if $label$break$L8
+ (i32.eq
+ (i32.load8_s
+ (get_local $0)
)
- (block
- (set_local $10
- (get_local $12)
+ (i32.shr_s
+ (i32.shl
+ (get_local $4)
+ (i32.const 24)
)
- (set_local $9
- (get_local $13)
- )
+ (i32.const 24)
)
)
)
- (loop $while-in$8
- (block $while-out$7
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (get_local $9)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.shr_s
- (i32.shl
- (get_local $0)
- (i32.const 24)
- )
- (i32.const 24)
- )
- )
- (block
- (set_local $7
- (get_local $10)
- )
- (set_local $8
- (get_local $9)
- )
- (br $label$break$L8)
- )
- )
- (set_local $2
- (i32.add
- (get_local $9)
- (i32.const 1)
- )
- )
- (if
- (i32.eq
- (tee_local $1
- (i32.add
- (get_local $10)
- (i32.const -1)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $7
- (i32.const 0)
- )
- (set_local $8
- (get_local $2)
- )
- (br $while-out$7)
- )
- (block
- (set_local $10
- (get_local $1)
- )
- (set_local $9
- (get_local $2)
- )
- )
- )
- (br $while-in$8)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
)
)
+ (br_if $while-in$8
+ (tee_local $1
+ (i32.add
+ (get_local $1)
+ (i32.const -1)
+ )
+ )
+ )
+ (set_local $1
+ (i32.const 0)
+ )
)
)
)
)
(select
- (get_local $8)
+ (get_local $0)
(i32.const 0)
(i32.ne
- (get_local $7)
+ (get_local $1)
(i32.const 0)
)
)
@@ -2641,26 +2267,28 @@
(local $4 i32)
(local $5 i32)
(local $6 i32)
- (if
- (i32.gt_u
- (i32.load
- (tee_local $3
- (i32.add
- (get_local $0)
- (i32.const 20)
+ (block $jumpthreading$outer$0
+ (block $jumpthreading$inner$0
+ (br_if $jumpthreading$inner$0
+ (i32.le_u
+ (i32.load
+ (tee_local $1
+ (i32.add
+ (get_local $0)
+ (i32.const 20)
+ )
+ )
+ )
+ (i32.load
+ (tee_local $2
+ (i32.add
+ (get_local $0)
+ (i32.const 28)
+ )
+ )
)
)
)
- (i32.load
- (tee_local $4
- (i32.add
- (get_local $0)
- (i32.const 28)
- )
- )
- )
- )
- (block
(drop
(call_indirect $FUNCSIG$iiii
(get_local $0)
@@ -2677,108 +2305,87 @@
)
)
)
- (if
- (i32.eq
+ (br_if $jumpthreading$inner$0
+ (i32.load
+ (get_local $1)
+ )
+ )
+ (br $jumpthreading$outer$0
+ (i32.const -1)
+ )
+ )
+ (if
+ (i32.lt_u
+ (tee_local $4
(i32.load
- (get_local $3)
+ (tee_local $3
+ (i32.add
+ (get_local $0)
+ (i32.const 4)
+ )
+ )
)
- (i32.const 0)
)
- (set_local $1
- (i32.const -1)
+ (tee_local $6
+ (i32.load
+ (tee_local $5
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ )
+ )
)
- (set_local $2
- (i32.const 3)
+ )
+ (drop
+ (call_indirect $FUNCSIG$iiii
+ (get_local $0)
+ (i32.sub
+ (get_local $4)
+ (get_local $6)
+ )
+ (i32.const 1)
+ (i32.add
+ (i32.and
+ (i32.load offset=40
+ (get_local $0)
+ )
+ (i32.const 7)
+ )
+ (i32.const 2)
+ )
)
)
)
- (set_local $2
- (i32.const 3)
+ (i32.store offset=16
+ (get_local $0)
+ (i32.const 0)
)
- )
- (if
- (i32.eq
+ (i32.store
(get_local $2)
- (i32.const 3)
+ (i32.const 0)
)
- (block
- (if
- (i32.lt_u
- (tee_local $1
- (i32.load
- (tee_local $5
- (i32.add
- (get_local $0)
- (i32.const 4)
- )
- )
- )
- )
- (tee_local $2
- (i32.load
- (tee_local $6
- (i32.add
- (get_local $0)
- (i32.const 8)
- )
- )
- )
- )
- )
- (drop
- (call_indirect $FUNCSIG$iiii
- (get_local $0)
- (i32.sub
- (get_local $1)
- (get_local $2)
- )
- (i32.const 1)
- (i32.add
- (i32.and
- (i32.load offset=40
- (get_local $0)
- )
- (i32.const 7)
- )
- (i32.const 2)
- )
- )
- )
- )
- (i32.store offset=16
- (get_local $0)
- (i32.const 0)
- )
- (i32.store
- (get_local $4)
- (i32.const 0)
- )
- (i32.store
- (get_local $3)
- (i32.const 0)
- )
- (i32.store
- (get_local $6)
- (i32.const 0)
- )
- (i32.store
- (get_local $5)
- (i32.const 0)
- )
- (set_local $1
- (i32.const 0)
- )
+ (i32.store
+ (get_local $1)
+ (i32.const 0)
)
+ (i32.store
+ (get_local $5)
+ (i32.const 0)
+ )
+ (i32.store
+ (get_local $3)
+ (i32.const 0)
+ )
+ (i32.const 0)
)
- (get_local $1)
)
(func $_cleanup (param $0 i32)
(if
- (i32.eq
+ (i32.eqz
(i32.load offset=68
(get_local $0)
)
- (i32.const 0)
)
(call $___unlockfile
(get_local $0)
@@ -2803,7 +2410,7 @@
(local $19 i32)
(local $20 i32)
(local $21 i32)
- (local $22 i32)
+ (local $22 f64)
(local $23 i32)
(local $24 i32)
(local $25 i32)
@@ -2811,7 +2418,7 @@
(local $27 i32)
(local $28 i32)
(local $29 i32)
- (local $30 f64)
+ (local $30 i32)
(local $31 i32)
(local $32 i32)
(local $33 i32)
@@ -2837,35 +2444,7 @@
(local $53 i32)
(local $54 i32)
(local $55 i32)
- (local $56 i32)
- (local $57 i32)
- (local $58 i32)
- (local $59 i32)
- (local $60 i32)
- (local $61 i32)
- (local $62 i32)
- (local $63 i32)
- (local $64 i32)
- (local $65 i32)
- (local $66 i32)
- (local $67 i32)
- (local $68 i32)
- (local $69 i32)
- (local $70 i32)
- (local $71 i32)
- (local $72 i32)
- (local $73 i32)
- (local $74 i32)
- (local $75 i32)
- (local $76 i32)
- (local $77 i32)
- (local $78 i32)
- (local $79 i32)
- (local $80 i32)
- (local $81 i32)
- (local $82 i32)
- (local $83 i32)
- (set_local $31
+ (set_local $27
(get_global $STACKTOP)
)
(set_global $STACKTOP
@@ -2881,33 +2460,33 @@
)
(call_import $abort)
)
- (set_local $25
+ (set_local $20
(i32.add
- (get_local $31)
+ (get_local $27)
(i32.const 16)
)
)
- (set_local $19
- (get_local $31)
+ (set_local $18
+ (get_local $27)
)
- (set_local $63
+ (set_local $41
(i32.add
- (get_local $31)
+ (get_local $27)
(i32.const 528)
)
)
- (set_local $44
+ (set_local $33
(i32.ne
(get_local $0)
(i32.const 0)
)
)
- (set_local $71
- (tee_local $28
+ (set_local $45
+ (tee_local $23
(i32.add
- (tee_local $5
+ (tee_local $13
(i32.add
- (get_local $31)
+ (get_local $27)
(i32.const 536)
)
)
@@ -2915,542 +2494,320 @@
)
)
)
- (set_local $72
+ (set_local $46
(i32.add
- (get_local $5)
+ (get_local $13)
(i32.const 39)
)
)
- (set_local $76
+ (set_local $50
(i32.add
- (tee_local $73
+ (tee_local $47
(i32.add
- (get_local $31)
+ (get_local $27)
(i32.const 8)
)
)
(i32.const 4)
)
)
- (set_local $52
+ (set_local $37
(i32.add
- (tee_local $5
+ (tee_local $13
(i32.add
- (get_local $31)
+ (get_local $27)
(i32.const 576)
)
)
(i32.const 12)
)
)
- (set_local $74
+ (set_local $48
(i32.add
- (get_local $5)
+ (get_local $13)
(i32.const 11)
)
)
- (set_local $77
+ (set_local $51
(i32.sub
- (tee_local $40
- (get_local $52)
+ (tee_local $32
+ (get_local $37)
)
- (tee_local $64
- (tee_local $29
+ (tee_local $42
+ (tee_local $24
(i32.add
- (get_local $31)
+ (get_local $27)
(i32.const 588)
)
)
)
)
)
- (set_local $78
+ (set_local $52
(i32.sub
(i32.const -2)
- (get_local $64)
+ (get_local $42)
)
)
- (set_local $79
+ (set_local $53
(i32.add
- (get_local $40)
+ (get_local $32)
(i32.const 2)
)
)
- (set_local $81
+ (set_local $55
(i32.add
- (tee_local $80
+ (tee_local $54
(i32.add
- (get_local $31)
+ (get_local $27)
(i32.const 24)
)
)
(i32.const 288)
)
)
- (set_local $75
- (tee_local $45
+ (set_local $49
+ (tee_local $34
(i32.add
- (get_local $29)
+ (get_local $24)
(i32.const 9)
)
)
)
- (set_local $53
+ (set_local $38
(i32.add
- (get_local $29)
+ (get_local $24)
(i32.const 8)
)
)
- (set_local $22
+ (set_local $15
(i32.const 0)
)
- (set_local $20
- (get_local $1)
- )
- (set_local $1
+ (set_local $5
(i32.const 0)
)
- (set_local $8
+ (set_local $13
(i32.const 0)
)
- (loop $label$continue$L1
- (block $label$break$L1
- (set_local $22
- (if
- (i32.gt_s
- (get_local $22)
- (i32.const -1)
- )
- (if
- (i32.gt_s
- (get_local $1)
- (i32.sub
- (i32.const 2147483647)
- (get_local $22)
+ (block $label$break$L343
+ (block $jumpthreading$inner$8
+ (loop $label$continue$L1
+ (block $label$break$L1
+ (set_local $15
+ (if
+ (i32.gt_s
+ (get_local $15)
+ (i32.const -1)
)
- )
- (block
- (i32.store
- (call $___errno_location)
- (i32.const 75)
- )
- (i32.const -1)
- )
- (i32.add
- (get_local $1)
- (get_local $22)
- )
- )
- (get_local $22)
- )
- )
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (tee_local $1
- (i32.load8_s
- (get_local $20)
- )
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 0)
- )
- (block
- (set_local $82
- (get_local $22)
- )
- (set_local $83
- (get_local $8)
- )
- (set_local $12
- (i32.const 242)
- )
- (br $label$break$L1)
- )
- (set_local $5
- (get_local $20)
- )
- )
- (loop $label$continue$L9
- (block $label$break$L9
- (block $switch-default$5
- (block $switch-case$4
- (block $switch-case$3
- (br_table $switch-case$4 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-case$3 $switch-default$5
+ (if
+ (i32.gt_s
+ (get_local $5)
(i32.sub
- (i32.shr_s
- (i32.shl
- (get_local $1)
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 0)
+ (i32.const 2147483647)
+ (get_local $15)
)
)
- )
- (set_local $54
- (get_local $5)
- )
- (set_local $65
- (get_local $5)
- )
- (set_local $12
- (i32.const 9)
- )
- (br $label$break$L9)
- )
- (set_local $41
- (get_local $5)
- )
- (set_local $55
- (get_local $5)
- )
- (br $label$break$L9)
- )
- (set_local $1
- (i32.load8_s
- (tee_local $5
+ (block
+ (i32.store
+ (call $___errno_location)
+ (i32.const 75)
+ )
+ (i32.const -1)
+ )
(i32.add
(get_local $5)
- (i32.const 1)
+ (get_local $15)
)
)
+ (get_local $15)
)
)
- (br $label$continue$L9)
- )
- )
- (block $label$break$L12
- (if
- (i32.eq
- (get_local $12)
- (i32.const 9)
- )
- (loop $while-in$8
- (block $while-out$7
- (set_local $12
- (i32.const 0)
- )
- (if
- (i32.ne
- (i32.shr_s
- (i32.shl
- (i32.load8_s offset=1
- (get_local $54)
- )
- (i32.const 24)
+ (br_if $jumpthreading$inner$8
+ (i32.eqz
+ (i32.shr_s
+ (i32.shl
+ (tee_local $5
+ (i32.load8_s
+ (get_local $1)
)
- (i32.const 24)
- )
- (i32.const 37)
- )
- (block
- (set_local $41
- (get_local $54)
- )
- (set_local $55
- (get_local $65)
- )
- (br $label$break$L12)
- )
- )
- (set_local $5
- (i32.add
- (get_local $65)
- (i32.const 1)
- )
- )
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (tee_local $1
- (i32.add
- (get_local $54)
- (i32.const 2)
- )
- )
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 37)
- )
- (block
- (set_local $54
- (get_local $1)
- )
- (set_local $65
- (get_local $5)
- )
- )
- (block
- (set_local $41
- (get_local $1)
- )
- (set_local $55
- (get_local $5)
- )
- (br $while-out$7)
- )
- )
- (br $while-in$8)
- )
- )
- )
- )
- (set_local $17
- (i32.sub
- (get_local $55)
- (get_local $20)
- )
- )
- (if
- (get_local $44)
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (call $___fwritex
- (get_local $20)
- (get_local $17)
- (get_local $0)
- )
- )
- )
- (if
- (i32.ne
- (get_local $55)
- (get_local $20)
- )
- (block
- (set_local $20
- (get_local $41)
- )
- (set_local $1
- (get_local $17)
- )
- (br $label$continue$L1)
- )
- )
- (set_local $7
- (if
- (i32.lt_u
- (tee_local $6
- (i32.add
- (i32.shr_s
- (i32.shl
- (tee_local $1
- (i32.load8_s
- (tee_local $5
- (i32.add
- (get_local $41)
- (i32.const 1)
- )
- )
- )
- )
- (i32.const 24)
)
(i32.const 24)
)
- (i32.const -48)
+ (i32.const 24)
)
)
- (i32.const 10)
)
(block
- (set_local $1
- (i32.load8_s
- (tee_local $5
- (select
+ (set_local $6
+ (get_local $5)
+ )
+ (set_local $5
+ (get_local $1)
+ )
+ )
+ (loop $label$continue$L9
+ (block $label$break$L9
+ (block $switch-default$5
+ (block $switch-case$4
+ (block $switch-case$3
+ (br_table $switch-case$4 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-case$3 $switch-default$5
+ (i32.sub
+ (i32.shr_s
+ (i32.shl
+ (get_local $6)
+ (i32.const 24)
+ )
+ (i32.const 24)
+ )
+ (i32.const 0)
+ )
+ )
+ )
+ (set_local $39
+ (get_local $5)
+ )
+ (set_local $43
+ (get_local $5)
+ )
+ (set_local $28
+ (i32.const 9)
+ )
+ (br $label$break$L9)
+ )
+ (set_local $29
+ (get_local $5)
+ )
+ (set_local $35
+ (get_local $5)
+ )
+ (br $label$break$L9)
+ )
+ (set_local $6
+ (i32.load8_s
+ (tee_local $5
(i32.add
- (get_local $41)
- (i32.const 3)
- )
- (get_local $5)
- (tee_local $7
- (i32.eq
- (i32.shr_s
- (i32.shl
- (i32.load8_s offset=2
- (get_local $41)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 36)
- )
- )
- )
- )
- )
- )
- (set_local $11
- (select
- (i32.const 1)
- (get_local $8)
- (get_local $7)
- )
- )
- (set_local $9
- (get_local $5)
- )
- (select
- (get_local $6)
- (i32.const -1)
- (get_local $7)
- )
- )
- (block
- (set_local $11
- (get_local $8)
- )
- (set_local $9
- (get_local $5)
- )
- (i32.const -1)
- )
- )
- )
- (block $label$break$L25
- (if
- (i32.eq
- (i32.and
- (tee_local $5
- (i32.shr_s
- (i32.shl
- (get_local $1)
- (i32.const 24)
- )
- (i32.const 24)
- )
- )
- (i32.const -32)
- )
- (i32.const 32)
- )
- (block
- (set_local $8
- (i32.const 0)
- )
- (loop $while-in$11
- (block $while-out$10
- (br_if $label$break$L25
- (i32.eq
- (i32.and
- (i32.shl
- (i32.const 1)
- (i32.add
- (get_local $5)
- (i32.const -32)
- )
- )
- (i32.const 75913)
- )
- (i32.const 0)
- )
- )
- (set_local $8
- (i32.or
- (i32.shl
+ (get_local $5)
(i32.const 1)
- (i32.add
- (i32.shr_s
- (i32.shl
- (get_local $1)
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const -32)
- )
)
- (get_local $8)
+ )
+ )
+ )
+ (br $label$continue$L9)
+ )
+ )
+ (block $label$break$L12
+ (if
+ (i32.eq
+ (get_local $28)
+ (i32.const 9)
+ )
+ (loop $while-in$8
+ (set_local $28
+ (i32.const 0)
+ )
+ (if
+ (i32.ne
+ (i32.load8_s offset=1
+ (get_local $39)
+ )
+ (i32.const 37)
+ )
+ (block
+ (set_local $29
+ (get_local $39)
+ )
+ (set_local $35
+ (get_local $43)
+ )
+ (br $label$break$L12)
+ )
+ )
+ (set_local $35
+ (i32.add
+ (get_local $43)
+ (i32.const 1)
)
)
(if
(i32.eq
- (i32.and
- (tee_local $5
- (i32.shr_s
- (i32.shl
- (tee_local $1
- (i32.load8_s
- (tee_local $6
- (i32.add
- (get_local $9)
- (i32.const 1)
- )
- )
- )
- )
- (i32.const 24)
- )
- (i32.const 24)
+ (i32.load8_s
+ (tee_local $29
+ (i32.add
+ (get_local $39)
+ (i32.const 2)
)
)
- (i32.const -32)
)
- (i32.const 32)
- )
- (set_local $9
- (get_local $6)
+ (i32.const 37)
)
(block
- (set_local $9
- (get_local $6)
+ (set_local $39
+ (get_local $29)
)
- (br $while-out$10)
+ (set_local $43
+ (get_local $35)
+ )
+ (br $while-in$8)
)
)
- (br $while-in$11)
)
)
)
- (set_local $8
- (i32.const 0)
- )
- )
- )
- (block $do-once$12
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (get_local $1)
- (i32.const 24)
- )
- (i32.const 24)
+ (set_local $6
+ (i32.sub
+ (get_local $35)
+ (get_local $1)
)
- (i32.const 42)
)
- (block
+ (if
+ (get_local $33)
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $1)
+ (get_local $6)
+ (get_local $0)
+ )
+ )
+ )
+ )
+ (if
+ (i32.ne
+ (get_local $35)
+ (get_local $1)
+ )
+ (block
+ (set_local $1
+ (get_local $29)
+ )
+ (set_local $5
+ (get_local $6)
+ )
+ (br $label$continue$L1)
+ )
+ )
+ (set_local $21
(if
(i32.lt_u
- (tee_local $1
+ (tee_local $9
(i32.add
(i32.shr_s
(i32.shl
- (i32.load8_s
- (tee_local $6
- (i32.add
- (get_local $9)
- (i32.const 1)
+ (tee_local $5
+ (i32.load8_s
+ (tee_local $10
+ (i32.add
+ (get_local $29)
+ (i32.const 1)
+ )
)
)
)
@@ -3463,409 +2820,331 @@
)
(i32.const 10)
)
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (i32.load8_s offset=2
- (get_local $9)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 36)
- )
- (block
- (i32.store
- (i32.add
- (get_local $4)
- (i32.shl
- (get_local $1)
- (i32.const 2)
- )
- )
- (i32.const 10)
- )
- (set_local $1
- (i32.load
- (i32.add
- (get_local $3)
- (i32.shl
- (i32.add
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (get_local $6)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const -48)
- )
- (i32.const 3)
- )
- )
- )
- )
- (set_local $66
- (i32.const 1)
- )
- (set_local $67
- (i32.add
- (get_local $9)
- (i32.const 3)
- )
- )
- (set_local $56
- (get_local $1)
- )
- )
- (set_local $12
- (i32.const 24)
- )
- )
- (set_local $12
- (i32.const 24)
- )
- )
- (if
- (i32.eq
- (get_local $12)
- (i32.const 24)
- )
(block
- (set_local $12
- (i32.const 0)
- )
- (if
- (i32.ne
- (get_local $11)
- (i32.const 0)
- )
- (block
- (set_local $24
- (i32.const -1)
- )
- (br $label$break$L1)
- )
- )
- (if
- (i32.eqz
- (get_local $44)
- )
- (block
- (set_local $9
- (get_local $6)
- )
- (set_local $21
- (i32.const 0)
- )
- (set_local $16
- (i32.const 0)
- )
- (br $do-once$12)
- )
- )
(set_local $5
- (i32.load
- (tee_local $1
- (i32.and
+ (i32.load8_s
+ (tee_local $10
+ (select
(i32.add
- (i32.load
- (get_local $2)
- )
+ (get_local $29)
(i32.const 3)
)
- (i32.const -4)
+ (get_local $10)
+ (tee_local $8
+ (i32.eq
+ (i32.load8_s offset=2
+ (get_local $29)
+ )
+ (i32.const 36)
+ )
+ )
)
)
)
)
- (i32.store
- (get_local $2)
- (i32.add
- (get_local $1)
- (i32.const 4)
- )
- )
- (set_local $66
- (i32.const 0)
- )
- (set_local $67
- (get_local $6)
- )
- (set_local $56
- (get_local $5)
- )
- )
- )
- (set_local $8
- (if
- (i32.lt_s
- (get_local $56)
- (i32.const 0)
- )
- (block
- (set_local $9
- (get_local $67)
- )
- (set_local $21
- (get_local $66)
- )
- (set_local $16
- (i32.sub
- (i32.const 0)
- (get_local $56)
- )
- )
- (i32.or
+ (set_local $7
+ (select
+ (i32.const 1)
+ (get_local $13)
(get_local $8)
- (i32.const 8192)
)
)
- (block
- (set_local $9
- (get_local $67)
- )
- (set_local $21
- (get_local $66)
- )
- (set_local $16
- (get_local $56)
- )
+ (select
+ (get_local $9)
+ (i32.const -1)
(get_local $8)
)
)
+ (block
+ (set_local $7
+ (get_local $13)
+ )
+ (i32.const -1)
+ )
)
)
- (if
- (i32.lt_u
- (tee_local $6
- (i32.add
- (i32.shr_s
- (i32.shl
- (get_local $1)
+ (block $label$break$L25
+ (if
+ (i32.eq
+ (i32.and
+ (tee_local $8
+ (i32.shr_s
+ (i32.shl
+ (get_local $5)
+ (i32.const 24)
+ )
(i32.const 24)
)
- (i32.const 24)
)
- (i32.const -48)
+ (i32.const -32)
)
+ (i32.const 32)
)
- (i32.const 10)
- )
- (block
- (set_local $1
- (get_local $9)
- )
- (set_local $5
- (i32.const 0)
- )
- (loop $while-in$15
- (block $while-out$14
- (set_local $5
- (i32.add
- (i32.mul
- (get_local $5)
- (i32.const 10)
- )
- (get_local $6)
- )
- )
- (br_if $while-out$14
- (i32.ge_u
- (tee_local $6
- (i32.add
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (tee_local $1
- (i32.add
- (get_local $1)
- (i32.const 1)
- )
- )
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const -48)
- )
- )
- (i32.const 10)
- )
- )
- (br $while-in$15)
- )
- )
- (if
- (i32.lt_s
+ (block
+ (set_local $13
(get_local $5)
+ )
+ (set_local $5
+ (get_local $8)
+ )
+ (set_local $8
(i32.const 0)
)
- (block
- (set_local $24
- (i32.const -1)
- )
- (br $label$break$L1)
- )
- (block
- (set_local $9
- (get_local $1)
- )
- (set_local $21
- (get_local $11)
- )
- (set_local $16
- (get_local $5)
- )
- )
- )
- )
- (block
- (set_local $21
- (get_local $11)
- )
- (set_local $16
- (i32.const 0)
- )
- )
- )
- )
- )
- (set_local $11
- (block $label$break$L46
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (get_local $9)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 46)
- )
- (block
- (if
- (i32.ne
- (i32.shr_s
- (i32.shl
- (tee_local $1
- (i32.load8_s
- (tee_local $5
- (i32.add
- (get_local $9)
- (i32.const 1)
- )
+ (loop $while-in$11
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.shl
+ (i32.const 1)
+ (i32.add
+ (get_local $5)
+ (i32.const -32)
)
)
+ (i32.const 75913)
)
- (i32.const 24)
)
- (i32.const 24)
+ (block
+ (set_local $5
+ (get_local $8)
+ )
+ (br $label$break$L25)
+ )
)
- (i32.const 42)
- )
- (block
- (if
- (i32.lt_u
- (tee_local $6
+ (set_local $8
+ (i32.or
+ (i32.shl
+ (i32.const 1)
(i32.add
(i32.shr_s
(i32.shl
- (get_local $1)
+ (get_local $13)
(i32.const 24)
)
(i32.const 24)
)
- (i32.const -48)
+ (i32.const -32)
)
)
- (i32.const 10)
- )
- (block
- (set_local $1
- (get_local $5)
- )
- (set_local $5
- (i32.const 0)
- )
- )
- (block
- (set_local $10
- (i32.const 0)
- )
- (br $label$break$L46
- (get_local $5)
- )
+ (get_local $8)
)
)
- (loop $while-in$18
- (set_local $5
- (i32.add
- (i32.mul
- (get_local $5)
- (i32.const 10)
- )
- (get_local $6)
- )
- )
- (if
- (i32.ge_u
- (tee_local $6
- (i32.add
- (i32.shr_s
- (i32.shl
+ (br_if $while-in$11
+ (i32.eq
+ (i32.and
+ (tee_local $5
+ (i32.shr_s
+ (i32.shl
+ (tee_local $13
(i32.load8_s
- (tee_local $1
+ (tee_local $10
(i32.add
- (get_local $1)
+ (get_local $10)
(i32.const 1)
)
)
)
- (i32.const 24)
)
(i32.const 24)
)
- (i32.const -48)
+ (i32.const 24)
+ )
+ )
+ (i32.const -32)
+ )
+ (i32.const 32)
+ )
+ )
+ (set_local $5
+ (get_local $8)
+ )
+ )
+ )
+ (block
+ (set_local $13
+ (get_local $5)
+ )
+ (set_local $5
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ (block $do-once$12
+ (if
+ (i32.eq
+ (i32.shr_s
+ (i32.shl
+ (get_local $13)
+ (i32.const 24)
+ )
+ (i32.const 24)
+ )
+ (i32.const 42)
+ )
+ (block
+ (set_local $13
+ (block $jumpthreading$outer$0
+ (block $jumpthreading$inner$0
+ (br_if $jumpthreading$inner$0
+ (i32.ge_u
+ (tee_local $8
+ (i32.add
+ (i32.load8_s
+ (tee_local $13
+ (i32.add
+ (get_local $10)
+ (i32.const 1)
+ )
+ )
+ )
+ (i32.const -48)
+ )
+ )
+ (i32.const 10)
+ )
+ )
+ (br_if $jumpthreading$inner$0
+ (i32.ne
+ (i32.load8_s offset=2
+ (get_local $10)
+ )
+ (i32.const 36)
+ )
+ )
+ (i32.store
+ (i32.add
+ (get_local $4)
+ (i32.shl
+ (get_local $8)
+ (i32.const 2)
)
)
(i32.const 10)
)
+ (set_local $13
+ (i32.add
+ (get_local $3)
+ (i32.shl
+ (i32.add
+ (i32.load8_s
+ (get_local $13)
+ )
+ (i32.const -48)
+ )
+ (i32.const 3)
+ )
+ )
+ )
+ (set_local $10
+ (i32.add
+ (get_local $10)
+ (i32.const 3)
+ )
+ )
+ (set_local $7
+ (i32.load
+ (get_local $13)
+ )
+ )
+ (br $jumpthreading$outer$0
+ (i32.const 1)
+ )
+ )
+ (set_local $28
+ (i32.const 0)
+ )
+ (if
+ (get_local $7)
(block
- (set_local $10
+ (set_local $15
+ (i32.const -1)
+ )
+ (br $label$break$L1)
+ )
+ )
+ (if
+ (i32.eqz
+ (get_local $33)
+ )
+ (block
+ (set_local $8
(get_local $5)
)
- (br $label$break$L46
- (get_local $1)
+ (set_local $10
+ (get_local $13)
+ )
+ (set_local $13
+ (i32.const 0)
+ )
+ (set_local $17
+ (i32.const 0)
+ )
+ (br $do-once$12)
+ )
+ )
+ (set_local $7
+ (i32.load
+ (tee_local $10
+ (i32.and
+ (i32.add
+ (i32.load
+ (get_local $2)
+ )
+ (i32.const 3)
+ )
+ (i32.const -4)
+ )
)
)
)
- (br $while-in$18)
+ (i32.store
+ (get_local $2)
+ (i32.add
+ (get_local $10)
+ (i32.const 4)
+ )
+ )
+ (set_local $10
+ (get_local $13)
+ )
+ (i32.const 0)
+ )
+ )
+ (set_local $8
+ (if
+ (i32.lt_s
+ (get_local $7)
+ (i32.const 0)
+ )
+ (block
+ (set_local $17
+ (i32.sub
+ (i32.const 0)
+ (get_local $7)
+ )
+ )
+ (i32.or
+ (get_local $5)
+ (i32.const 8192)
+ )
+ )
+ (block
+ (set_local $17
+ (get_local $7)
+ )
+ (get_local $5)
+ )
)
)
)
(if
(i32.lt_u
- (tee_local $1
+ (tee_local $13
(i32.add
(i32.shr_s
(i32.shl
- (i32.load8_s
- (tee_local $6
- (i32.add
- (get_local $9)
- (i32.const 2)
- )
- )
- )
+ (get_local $13)
(i32.const 24)
)
(i32.const 24)
@@ -3875,4693 +3154,4362 @@
)
(i32.const 10)
)
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (i32.load8_s offset=3
+ (block
+ (set_local $8
+ (i32.const 0)
+ )
+ (loop $while-in$15
+ (set_local $13
+ (i32.add
+ (i32.mul
+ (get_local $8)
+ (i32.const 10)
+ )
+ (get_local $13)
+ )
+ )
+ (if
+ (i32.lt_u
+ (tee_local $9
+ (i32.add
+ (i32.load8_s
+ (tee_local $10
+ (i32.add
+ (get_local $10)
+ (i32.const 1)
+ )
+ )
+ )
+ (i32.const -48)
+ )
+ )
+ (i32.const 10)
+ )
+ (block
+ (set_local $8
+ (get_local $13)
+ )
+ (set_local $13
(get_local $9)
)
+ (br $while-in$15)
+ )
+ (set_local $9
+ (get_local $13)
+ )
+ )
+ )
+ (if
+ (i32.lt_s
+ (get_local $9)
+ (i32.const 0)
+ )
+ (block
+ (set_local $15
+ (i32.const -1)
+ )
+ (br $label$break$L1)
+ )
+ (block
+ (set_local $8
+ (get_local $5)
+ )
+ (set_local $13
+ (get_local $7)
+ )
+ (set_local $17
+ (get_local $9)
+ )
+ )
+ )
+ )
+ (block
+ (set_local $8
+ (get_local $5)
+ )
+ (set_local $13
+ (get_local $7)
+ )
+ (set_local $17
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ )
+ (set_local $9
+ (block $label$break$L46
+ (if
+ (i32.eq
+ (i32.load8_s
+ (get_local $10)
+ )
+ (i32.const 46)
+ )
+ (block
+ (if
+ (i32.ne
+ (i32.shr_s
+ (i32.shl
+ (tee_local $7
+ (i32.load8_s
+ (tee_local $5
+ (i32.add
+ (get_local $10)
+ (i32.const 1)
+ )
+ )
+ )
+ )
+ (i32.const 24)
+ )
(i32.const 24)
)
- (i32.const 24)
+ (i32.const 42)
)
- (i32.const 36)
- )
- (block
- (i32.store
- (i32.add
- (get_local $4)
- (i32.shl
- (get_local $1)
- (i32.const 2)
- )
- )
- (i32.const 10)
- )
- (set_local $1
- (i32.load
- (i32.add
- (get_local $3)
- (i32.shl
+ (block
+ (if
+ (i32.lt_u
+ (tee_local $7
(i32.add
(i32.shr_s
(i32.shl
- (i32.load8_s
- (get_local $6)
- )
+ (get_local $7)
(i32.const 24)
)
(i32.const 24)
)
(i32.const -48)
)
- (i32.const 3)
+ )
+ (i32.const 10)
+ )
+ (set_local $10
+ (i32.const 0)
+ )
+ (block
+ (set_local $7
+ (i32.const 0)
+ )
+ (br $label$break$L46
+ (get_local $5)
+ )
+ )
+ )
+ (loop $while-in$18
+ (set_local $7
+ (i32.add
+ (i32.mul
+ (get_local $10)
+ (i32.const 10)
+ )
+ (get_local $7)
+ )
+ )
+ (if
+ (i32.lt_u
+ (tee_local $9
+ (i32.add
+ (i32.load8_s
+ (tee_local $5
+ (i32.add
+ (get_local $5)
+ (i32.const 1)
+ )
+ )
+ )
+ (i32.const -48)
+ )
+ )
+ (i32.const 10)
+ )
+ (block
+ (set_local $10
+ (get_local $7)
+ )
+ (set_local $7
+ (get_local $9)
+ )
+ (br $while-in$18)
+ )
+ (br $label$break$L46
+ (get_local $5)
)
)
)
)
- (set_local $10
- (get_local $1)
+ )
+ (if
+ (i32.lt_u
+ (tee_local $5
+ (i32.add
+ (i32.load8_s
+ (tee_local $9
+ (i32.add
+ (get_local $10)
+ (i32.const 2)
+ )
+ )
+ )
+ (i32.const -48)
+ )
+ )
+ (i32.const 10)
)
- (br $label$break$L46
- (i32.add
- (get_local $9)
- (i32.const 4)
+ (if
+ (i32.eq
+ (i32.load8_s offset=3
+ (get_local $10)
+ )
+ (i32.const 36)
+ )
+ (block
+ (i32.store
+ (i32.add
+ (get_local $4)
+ (i32.shl
+ (get_local $5)
+ (i32.const 2)
+ )
+ )
+ (i32.const 10)
+ )
+ (set_local $5
+ (i32.add
+ (get_local $3)
+ (i32.shl
+ (i32.add
+ (i32.load8_s
+ (get_local $9)
+ )
+ (i32.const -48)
+ )
+ (i32.const 3)
+ )
+ )
+ )
+ (set_local $7
+ (i32.load
+ (get_local $5)
+ )
+ )
+ (br $label$break$L46
+ (i32.add
+ (get_local $10)
+ (i32.const 4)
+ )
+ )
)
)
)
- )
- )
- (if
- (i32.ne
- (get_local $21)
- (i32.const 0)
+ (if
+ (get_local $13)
+ (block
+ (set_local $15
+ (i32.const -1)
+ )
+ (br $label$break$L1)
+ )
+ )
+ (if
+ (get_local $33)
+ (block
+ (set_local $7
+ (i32.load
+ (tee_local $5
+ (i32.and
+ (i32.add
+ (i32.load
+ (get_local $2)
+ )
+ (i32.const 3)
+ )
+ (i32.const -4)
+ )
+ )
+ )
+ )
+ (i32.store
+ (get_local $2)
+ (i32.add
+ (get_local $5)
+ (i32.const 4)
+ )
+ )
+ (get_local $9)
+ )
+ (block
+ (set_local $7
+ (i32.const 0)
+ )
+ (get_local $9)
+ )
+ )
)
(block
- (set_local $24
+ (set_local $7
(i32.const -1)
)
- (br $label$break$L1)
+ (get_local $10)
)
)
- (if
- (get_local $44)
- (block
- (set_local $5
- (i32.load
- (tee_local $1
- (i32.and
- (i32.add
- (i32.load
- (get_local $2)
- )
- (i32.const 3)
- )
- (i32.const -4)
- )
- )
- )
- )
- (i32.store
- (get_local $2)
- (i32.add
- (get_local $1)
- (i32.const 4)
- )
- )
- (set_local $10
- (get_local $5)
- )
- (get_local $6)
- )
- (block
- (set_local $10
- (i32.const 0)
- )
- (get_local $6)
- )
- )
- )
- (block
- (set_local $10
- (i32.const -1)
- )
- (get_local $9)
)
)
- )
- )
- (set_local $13
- (i32.const 0)
- )
- (loop $while-in$20
- (block $while-out$19
- (if
- (i32.gt_u
- (tee_local $1
- (i32.add
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (get_local $11)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const -65)
- )
- )
- (i32.const 57)
- )
- (block
- (set_local $24
- (i32.const -1)
- )
- (br $label$break$L1)
- )
+ (set_local $11
+ (i32.const 0)
)
- (set_local $9
- (i32.add
- (get_local $11)
- (i32.const 1)
- )
- )
- (if
- (i32.lt_u
- (i32.add
+ (loop $while-in$20
+ (if
+ (i32.gt_u
(tee_local $5
- (i32.and
- (tee_local $1
- (i32.load8_s
- (i32.add
- (i32.add
- (i32.const 3611)
- (i32.mul
- (get_local $13)
- (i32.const 58)
- )
- )
- (get_local $1)
- )
- )
- )
- (i32.const 255)
- )
- )
- (i32.const -1)
- )
- (i32.const 8)
- )
- (block
- (set_local $11
- (get_local $9)
- )
- (set_local $13
- (get_local $5)
- )
- )
- (block
- (set_local $6
- (get_local $5)
- )
- (br $while-out$19)
- )
- )
- (br $while-in$20)
- )
- )
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (get_local $1)
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 0)
- )
- (block
- (set_local $24
- (i32.const -1)
- )
- (br $label$break$L1)
- )
- )
- (set_local $5
- (i32.gt_s
- (get_local $7)
- (i32.const -1)
- )
- )
- (block $do-once$21
- (if
- (i32.eq
- (i32.shr_s
- (i32.shl
- (get_local $1)
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 19)
- )
- (if
- (get_local $5)
- (block
- (set_local $24
- (i32.const -1)
- )
- (br $label$break$L1)
- )
- (set_local $12
- (i32.const 52)
- )
- )
- (block
- (if
- (get_local $5)
- (block
- (i32.store
(i32.add
- (get_local $4)
- (i32.shl
- (get_local $7)
- (i32.const 2)
+ (i32.load8_s
+ (get_local $9)
)
- )
- (get_local $6)
- )
- (set_local $5
- (i32.load
- (tee_local $1
- (i32.add
- (get_local $3)
- (i32.shl
- (get_local $7)
- (i32.const 3)
- )
- )
- )
+ (i32.const -65)
)
)
- (set_local $1
- (i32.load offset=4
- (get_local $1)
- )
- )
- (i32.store
- (tee_local $7
- (get_local $19)
- )
- (get_local $5)
- )
- (i32.store offset=4
- (get_local $7)
- (get_local $1)
- )
- (set_local $12
- (i32.const 52)
- )
- (br $do-once$21)
- )
- )
- (if
- (i32.eqz
- (get_local $44)
+ (i32.const 57)
)
(block
- (set_local $24
- (i32.const 0)
+ (set_local $15
+ (i32.const -1)
)
(br $label$break$L1)
)
)
- (call $_pop_arg_336
- (get_local $19)
- (get_local $6)
- (get_local $2)
+ (set_local $10
+ (i32.add
+ (get_local $9)
+ (i32.const 1)
+ )
)
- )
- )
- )
- (if
- (i32.eq
- (get_local $12)
- (i32.const 52)
- )
- (block
- (set_local $12
- (i32.const 0)
+ (if
+ (i32.lt_u
+ (i32.add
+ (tee_local $5
+ (i32.and
+ (tee_local $12
+ (i32.load8_s
+ (i32.add
+ (i32.add
+ (i32.const 3611)
+ (i32.mul
+ (get_local $11)
+ (i32.const 58)
+ )
+ )
+ (get_local $5)
+ )
+ )
+ )
+ (i32.const 255)
+ )
+ )
+ (i32.const -1)
+ )
+ (i32.const 8)
+ )
+ (block
+ (set_local $9
+ (get_local $10)
+ )
+ (set_local $11
+ (get_local $5)
+ )
+ (br $while-in$20)
+ )
+ (block
+ (set_local $16
+ (get_local $5)
+ )
+ (set_local $5
+ (get_local $10)
+ )
+ (set_local $19
+ (get_local $9)
+ )
+ )
+ )
)
(if
(i32.eqz
- (get_local $44)
+ (i32.shr_s
+ (i32.shl
+ (get_local $12)
+ (i32.const 24)
+ )
+ (i32.const 24)
+ )
)
(block
- (set_local $20
- (get_local $9)
+ (set_local $15
+ (i32.const -1)
)
- (set_local $1
- (get_local $17)
- )
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
+ (br $label$break$L1)
)
)
- )
- )
- (set_local $5
- (i32.and
- (i32.ne
- (get_local $13)
- (i32.const 0)
+ (set_local $10
+ (i32.gt_s
+ (get_local $21)
+ (i32.const -1)
+ )
)
- (i32.eq
- (i32.and
- (tee_local $1
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (get_local $11)
+ (block $jumpthreading$outer$1
+ (block $jumpthreading$inner$1
+ (if
+ (i32.eq
+ (i32.shr_s
+ (i32.shl
+ (get_local $12)
+ (i32.const 24)
)
(i32.const 24)
)
- (i32.const 24)
+ (i32.const 19)
+ )
+ (if
+ (get_local $10)
+ (block
+ (set_local $15
+ (i32.const -1)
+ )
+ (br $label$break$L1)
+ )
+ (br $jumpthreading$inner$1)
+ )
+ (block
+ (if
+ (get_local $10)
+ (block
+ (i32.store
+ (i32.add
+ (get_local $4)
+ (i32.shl
+ (get_local $21)
+ (i32.const 2)
+ )
+ )
+ (get_local $16)
+ )
+ (set_local $12
+ (i32.load offset=4
+ (tee_local $9
+ (i32.add
+ (get_local $3)
+ (i32.shl
+ (get_local $21)
+ (i32.const 3)
+ )
+ )
+ )
+ )
+ )
+ (i32.store
+ (tee_local $10
+ (get_local $18)
+ )
+ (i32.load
+ (get_local $9)
+ )
+ )
+ (i32.store offset=4
+ (get_local $10)
+ (get_local $12)
+ )
+ (br $jumpthreading$inner$1)
+ )
+ )
+ (if
+ (i32.eqz
+ (get_local $33)
+ )
+ (block
+ (set_local $15
+ (i32.const 0)
+ )
+ (br $label$break$L1)
+ )
+ )
+ (call $_pop_arg_336
+ (get_local $18)
+ (get_local $16)
+ (get_local $2)
+ )
)
)
- (i32.const 15)
+ (br $jumpthreading$outer$1)
)
- (i32.const 3)
+ (set_local $28
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (get_local $33)
+ )
+ (block
+ (set_local $1
+ (get_local $5)
+ )
+ (set_local $5
+ (get_local $6)
+ )
+ (br $label$continue$L1)
+ )
+ )
)
- )
- )
- (set_local $18
- (select
- (get_local $8)
- (tee_local $7
- (i32.and
+ (set_local $10
+ (select
+ (tee_local $9
+ (i32.and
+ (get_local $8)
+ (i32.const -65537)
+ )
+ )
(get_local $8)
- (i32.const -65537)
+ (i32.and
+ (get_local $8)
+ (i32.const 8192)
+ )
)
)
- (i32.eq
- (i32.and
- (get_local $8)
- (i32.const 8192)
- )
- (i32.const 0)
- )
- )
- )
- (block $switch$24
- (block $switch-default$127
- (block $switch-case$49
- (block $switch-case$48
- (block $switch-case$47
- (block $switch-case$46
- (block $switch-case$45
- (block $switch-case$44
- (block $switch-case$43
- (block $switch-case$41
- (block $switch-case$40
- (block $switch-case$36
- (block $switch-case$35
- (block $switch-case$34
- (br_table $switch-case$49 $switch-default$127 $switch-case$47 $switch-default$127 $switch-case$49 $switch-case$49 $switch-case$49 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$48 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$36 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$49 $switch-default$127 $switch-case$44 $switch-case$41 $switch-case$49 $switch-case$49 $switch-case$49 $switch-default$127 $switch-case$41 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$45 $switch-case$34 $switch-case$40 $switch-case$35 $switch-default$127 $switch-default$127 $switch-case$46 $switch-default$127 $switch-case$43 $switch-default$127 $switch-default$127 $switch-case$36 $switch-default$127
- (i32.sub
- (tee_local $26
- (select
- (i32.and
- (get_local $1)
- (i32.const -33)
- )
- (get_local $1)
- (get_local $5)
- )
- )
- (i32.const 65)
- )
- )
- )
- (block $switch-default$33
- (block $switch-case$32
- (block $switch-case$31
- (block $switch-case$30
- (block $switch-case$29
- (block $switch-case$28
- (block $switch-case$27
- (block $switch-case$26
- (br_table $switch-case$26 $switch-case$27 $switch-case$28 $switch-case$29 $switch-case$30 $switch-default$33 $switch-case$31 $switch-case$32 $switch-default$33
- (i32.sub
- (get_local $13)
- (i32.const 0)
+ (block $jumpthreading$outer$7
+ (block $jumpthreading$inner$7
+ (block $jumpthreading$inner$6
+ (block $jumpthreading$inner$5
+ (block $jumpthreading$inner$4
+ (block $jumpthreading$inner$3
+ (block $jumpthreading$inner$2
+ (block $switch-default$127
+ (block $switch-case$49
+ (block $switch-case$48
+ (block $switch-case$47
+ (block $switch-case$46
+ (block $switch-case$45
+ (block $switch-case$44
+ (block $switch-case$43
+ (block $switch-case$41
+ (block $switch-case$40
+ (block $switch-case$36
+ (block $switch-case$35
+ (block $switch-case$34
+ (br_table $switch-case$49 $switch-default$127 $switch-case$47 $switch-default$127 $switch-case$49 $switch-case$49 $switch-case$49 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$48 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$36 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$49 $switch-default$127 $switch-case$44 $switch-case$41 $switch-case$49 $switch-case$49 $switch-case$49 $switch-default$127 $switch-case$41 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$45 $switch-case$34 $switch-case$40 $switch-case$35 $switch-default$127 $switch-default$127 $switch-case$46 $switch-default$127 $switch-case$43 $switch-default$127 $switch-default$127 $switch-case$36 $switch-default$127
+ (i32.sub
+ (tee_local $16
+ (select
+ (i32.and
+ (tee_local $8
+ (i32.load8_s
+ (get_local $19)
+ )
+ )
+ (i32.const -33)
+ )
+ (get_local $8)
+ (i32.and
+ (i32.ne
+ (get_local $11)
+ (i32.const 0)
+ )
+ (i32.eq
+ (i32.and
+ (get_local $8)
+ (i32.const 15)
+ )
+ (i32.const 3)
+ )
+ )
+ )
+ )
+ (i32.const 65)
+ )
+ )
+ )
+ (block $switch-default$33
+ (block $switch-case$32
+ (block $switch-case$31
+ (block $switch-case$30
+ (block $switch-case$29
+ (block $switch-case$28
+ (block $switch-case$27
+ (block $switch-case$26
+ (br_table $switch-case$26 $switch-case$27 $switch-case$28 $switch-case$29 $switch-case$30 $switch-default$33 $switch-case$31 $switch-case$32 $switch-default$33
+ (i32.sub
+ (get_local $11)
+ (i32.const 0)
+ )
+ )
+ )
+ (i32.store
+ (i32.load
+ (get_local $18)
+ )
+ (get_local $15)
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (set_local $5
+ (get_local $6)
+ )
+ (br $label$continue$L1)
+ )
+ (i32.store
+ (i32.load
+ (get_local $18)
+ )
+ (get_local $15)
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (set_local $5
+ (get_local $6)
+ )
+ (br $label$continue$L1)
+ )
+ (i32.store
+ (tee_local $1
+ (i32.load
+ (get_local $18)
+ )
+ )
+ (get_local $15)
+ )
+ (i32.store offset=4
+ (get_local $1)
+ (i32.shr_s
+ (i32.shl
+ (i32.lt_s
+ (get_local $15)
+ (i32.const 0)
+ )
+ (i32.const 31)
+ )
+ (i32.const 31)
+ )
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (set_local $5
+ (get_local $6)
+ )
+ (br $label$continue$L1)
+ )
+ (i32.store16
+ (i32.load
+ (get_local $18)
+ )
+ (i32.and
+ (get_local $15)
+ (i32.const 65535)
+ )
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (set_local $5
+ (get_local $6)
+ )
+ (br $label$continue$L1)
+ )
+ (i32.store8
+ (i32.load
+ (get_local $18)
+ )
+ (i32.and
+ (get_local $15)
+ (i32.const 255)
+ )
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (set_local $5
+ (get_local $6)
+ )
+ (br $label$continue$L1)
+ )
+ (i32.store
+ (i32.load
+ (get_local $18)
+ )
+ (get_local $15)
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (set_local $5
+ (get_local $6)
+ )
+ (br $label$continue$L1)
+ )
+ (i32.store
+ (tee_local $1
+ (i32.load
+ (get_local $18)
+ )
+ )
+ (get_local $15)
+ )
+ (i32.store offset=4
+ (get_local $1)
+ (i32.shr_s
+ (i32.shl
+ (i32.lt_s
+ (get_local $15)
+ (i32.const 0)
+ )
+ (i32.const 31)
+ )
+ (i32.const 31)
+ )
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (set_local $5
+ (get_local $6)
+ )
+ (br $label$continue$L1)
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (set_local $5
+ (get_local $6)
+ )
+ (br $label$continue$L1)
+ )
+ (set_local $1
+ (i32.or
+ (get_local $10)
+ (i32.const 8)
+ )
+ )
+ (set_local $7
+ (select
+ (get_local $7)
+ (i32.const 8)
+ (i32.gt_u
+ (get_local $7)
+ (i32.const 8)
)
)
)
- (i32.store
- (i32.load
- (get_local $19)
- )
- (get_local $22)
+ (set_local $16
+ (i32.const 120)
)
- (set_local $20
- (get_local $9)
- )
- (set_local $1
- (get_local $17)
- )
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
- )
- (i32.store
- (i32.load
- (get_local $19)
- )
- (get_local $22)
- )
- (set_local $20
- (get_local $9)
+ (br $jumpthreading$inner$2)
)
(set_local $1
- (get_local $17)
+ (get_local $10)
)
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
+ (br $jumpthreading$inner$2)
)
- (i32.store
- (tee_local $1
- (i32.load
- (get_local $19)
+ (if
+ (i32.and
+ (i32.eqz
+ (tee_local $6
+ (i32.load
+ (tee_local $1
+ (get_local $18)
+ )
+ )
+ )
+ )
+ (i32.eqz
+ (tee_local $8
+ (i32.load offset=4
+ (get_local $1)
+ )
+ )
)
)
- (get_local $22)
+ (set_local $8
+ (get_local $23)
+ )
+ (block
+ (set_local $1
+ (get_local $6)
+ )
+ (set_local $6
+ (get_local $8)
+ )
+ (set_local $8
+ (get_local $23)
+ )
+ (loop $while-in$39
+ (i32.store8
+ (tee_local $8
+ (i32.add
+ (get_local $8)
+ (i32.const -1)
+ )
+ )
+ (i32.and
+ (i32.or
+ (i32.and
+ (get_local $1)
+ (i32.const 7)
+ )
+ (i32.const 48)
+ )
+ (i32.const 255)
+ )
+ )
+ (br_if $while-in$39
+ (i32.eqz
+ (i32.and
+ (i32.eqz
+ (tee_local $1
+ (call $_bitshift64Lshr
+ (get_local $1)
+ (get_local $6)
+ (i32.const 3)
+ )
+ )
+ )
+ (i32.eqz
+ (tee_local $6
+ (get_global $tempRet0)
+ )
+ )
+ )
+ )
+ )
+ )
+ )
)
- (i32.store offset=4
- (get_local $1)
+ (if
+ (i32.and
+ (get_local $10)
+ (i32.const 8)
+ )
+ (block
+ (set_local $6
+ (get_local $8)
+ )
+ (set_local $1
+ (get_local $10)
+ )
+ (set_local $7
+ (select
+ (tee_local $10
+ (i32.add
+ (i32.sub
+ (get_local $45)
+ (get_local $8)
+ )
+ (i32.const 1)
+ )
+ )
+ (get_local $7)
+ (i32.lt_s
+ (get_local $7)
+ (get_local $10)
+ )
+ )
+ )
+ (set_local $8
+ (i32.const 0)
+ )
+ (set_local $9
+ (i32.const 4091)
+ )
+ (br $jumpthreading$inner$7)
+ )
+ (block
+ (set_local $6
+ (get_local $8)
+ )
+ (set_local $1
+ (get_local $10)
+ )
+ (set_local $8
+ (i32.const 0)
+ )
+ (set_local $9
+ (i32.const 4091)
+ )
+ (br $jumpthreading$inner$7)
+ )
+ )
+ )
+ (set_local $1
+ (i32.load
+ (tee_local $6
+ (get_local $18)
+ )
+ )
+ )
+ (if
+ (i32.lt_s
+ (tee_local $6
+ (i32.load offset=4
+ (get_local $6)
+ )
+ )
+ (i32.const 0)
+ )
+ (block
+ (i32.store
+ (tee_local $8
+ (get_local $18)
+ )
+ (tee_local $1
+ (call $_i64Subtract
+ (i32.const 0)
+ (i32.const 0)
+ (get_local $1)
+ (get_local $6)
+ )
+ )
+ )
+ (i32.store offset=4
+ (get_local $8)
+ (tee_local $6
+ (get_global $tempRet0)
+ )
+ )
+ (set_local $8
+ (i32.const 1)
+ )
+ (set_local $9
+ (i32.const 4091)
+ )
+ (br $jumpthreading$inner$3)
+ )
+ )
+ (if
+ (i32.and
+ (get_local $10)
+ (i32.const 2048)
+ )
+ (block
+ (set_local $8
+ (i32.const 1)
+ )
+ (set_local $9
+ (i32.const 4092)
+ )
+ (br $jumpthreading$inner$3)
+ )
+ (block
+ (set_local $8
+ (tee_local $9
+ (i32.and
+ (get_local $10)
+ (i32.const 1)
+ )
+ )
+ )
+ (set_local $9
+ (select
+ (i32.const 4093)
+ (i32.const 4091)
+ (get_local $9)
+ )
+ )
+ (br $jumpthreading$inner$3)
+ )
+ )
+ )
+ (set_local $1
+ (i32.load
+ (tee_local $6
+ (get_local $18)
+ )
+ )
+ )
+ (set_local $6
+ (i32.load offset=4
+ (get_local $6)
+ )
+ )
+ (set_local $8
+ (i32.const 0)
+ )
+ (set_local $9
+ (i32.const 4091)
+ )
+ (br $jumpthreading$inner$3)
+ )
+ (set_local $1
+ (get_local $18)
+ )
+ (i32.store8
+ (get_local $46)
+ (i32.and
+ (i32.load
+ (get_local $1)
+ )
+ (i32.const 255)
+ )
+ )
+ (set_local $6
+ (get_local $46)
+ )
+ (set_local $10
+ (get_local $9)
+ )
+ (set_local $11
+ (i32.const 1)
+ )
+ (set_local $8
+ (i32.const 0)
+ )
+ (set_local $9
+ (i32.const 4091)
+ )
+ (set_local $1
+ (get_local $23)
+ )
+ (br $jumpthreading$outer$7)
+ )
+ (set_local $1
+ (call $_strerror
+ (i32.load
+ (call $___errno_location)
+ )
+ )
+ )
+ (br $jumpthreading$inner$4)
+ )
+ (set_local $1
+ (select
+ (tee_local $1
+ (i32.load
+ (get_local $18)
+ )
+ )
+ (i32.const 4101)
+ (i32.ne
+ (get_local $1)
+ (i32.const 0)
+ )
+ )
+ )
+ (br $jumpthreading$inner$4)
+ )
+ (set_local $1
+ (get_local $18)
+ )
+ (i32.store
+ (get_local $47)
+ (i32.load
+ (get_local $1)
+ )
+ )
+ (i32.store
+ (get_local $50)
+ (i32.const 0)
+ )
+ (i32.store
+ (get_local $18)
+ (get_local $47)
+ )
+ (set_local $8
+ (i32.const -1)
+ )
+ (br $jumpthreading$inner$5)
+ )
+ (if
+ (get_local $7)
+ (block
+ (set_local $8
+ (get_local $7)
+ )
+ (br $jumpthreading$inner$5)
+ )
+ (block
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $17)
+ (i32.const 0)
+ (get_local $10)
+ )
+ (set_local $6
+ (i32.const 0)
+ )
+ (br $jumpthreading$inner$6)
+ )
+ )
+ )
+ (set_local $14
+ (f64.load
+ (get_local $18)
+ )
+ )
+ (i32.store
+ (get_local $20)
+ (i32.const 0)
+ )
+ (f64.store
+ (get_global $tempDoublePtr)
+ (get_local $14)
+ )
+ (set_local $36
+ (if
+ (i32.lt_s
+ (i32.load offset=4
+ (get_global $tempDoublePtr)
+ )
+ (i32.const 0)
+ )
+ (block
+ (set_local $30
+ (i32.const 1)
+ )
+ (set_local $14
+ (f64.neg
+ (get_local $14)
+ )
+ )
+ (i32.const 4108)
+ )
+ (if
+ (i32.and
+ (get_local $10)
+ (i32.const 2048)
+ )
+ (block
+ (set_local $30
+ (i32.const 1)
+ )
+ (i32.const 4111)
+ )
+ (block
+ (set_local $30
+ (tee_local $1
+ (i32.and
+ (get_local $10)
+ (i32.const 1)
+ )
+ )
+ )
+ (select
+ (i32.const 4114)
+ (i32.const 4109)
+ (get_local $1)
+ )
+ )
+ )
+ )
+ )
+ (f64.store
+ (get_global $tempDoublePtr)
+ (get_local $14)
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (set_local $5
+ (block $do-once$56
+ (if
+ (i32.or
+ (i32.lt_u
+ (tee_local $5
+ (i32.and
+ (i32.load offset=4
+ (get_global $tempDoublePtr)
+ )
+ (i32.const 2146435072)
+ )
+ )
+ (i32.const 2146435072)
+ )
+ (i32.and
+ (i32.eq
+ (get_local $5)
+ (i32.const 2146435072)
+ )
+ (i32.const 0)
+ )
+ )
+ (block
+ (if
+ (tee_local $5
+ (f64.ne
+ (tee_local $22
+ (f64.mul
+ (call $_frexpl
+ (get_local $14)
+ (get_local $20)
+ )
+ (f64.const 2)
+ )
+ )
+ (f64.const 0)
+ )
+ )
+ (i32.store
+ (get_local $20)
+ (i32.add
+ (i32.load
+ (get_local $20)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (if
+ (i32.eq
+ (tee_local $25
+ (i32.or
+ (get_local $16)
+ (i32.const 32)
+ )
+ )
+ (i32.const 97)
+ )
+ (block
+ (set_local $19
+ (select
+ (i32.add
+ (get_local $36)
+ (i32.const 9)
+ )
+ (get_local $36)
+ (tee_local $9
+ (i32.and
+ (get_local $16)
+ (i32.const 32)
+ )
+ )
+ )
+ )
+ (set_local $8
+ (i32.or
+ (get_local $30)
+ (i32.const 2)
+ )
+ )
+ (set_local $14
+ (if
+ (i32.or
+ (i32.gt_u
+ (get_local $7)
+ (i32.const 11)
+ )
+ (i32.eqz
+ (tee_local $5
+ (i32.sub
+ (i32.const 12)
+ (get_local $7)
+ )
+ )
+ )
+ )
+ (get_local $22)
+ (block
+ (set_local $14
+ (f64.const 8)
+ )
+ (loop $while-in$61
+ (set_local $14
+ (f64.mul
+ (get_local $14)
+ (f64.const 16)
+ )
+ )
+ (br_if $while-in$61
+ (tee_local $5
+ (i32.add
+ (get_local $5)
+ (i32.const -1)
+ )
+ )
+ )
+ )
+ (select
+ (f64.neg
+ (f64.add
+ (get_local $14)
+ (f64.sub
+ (f64.neg
+ (get_local $22)
+ )
+ (get_local $14)
+ )
+ )
+ )
+ (f64.sub
+ (f64.add
+ (get_local $22)
+ (get_local $14)
+ )
+ (get_local $14)
+ )
+ (i32.eq
+ (i32.load8_s
+ (get_local $19)
+ )
+ (i32.const 45)
+ )
+ )
+ )
+ )
+ )
+ (i32.store8
+ (i32.add
+ (tee_local $6
+ (if
+ (i32.eq
+ (tee_local $6
+ (call $_fmt_u
+ (tee_local $6
+ (select
+ (i32.sub
+ (i32.const 0)
+ (tee_local $5
+ (i32.load
+ (get_local $20)
+ )
+ )
+ )
+ (get_local $5)
+ (i32.lt_s
+ (get_local $5)
+ (i32.const 0)
+ )
+ )
+ )
+ (i32.shr_s
+ (i32.shl
+ (i32.lt_s
+ (get_local $6)
+ (i32.const 0)
+ )
+ (i32.const 31)
+ )
+ (i32.const 31)
+ )
+ (get_local $37)
+ )
+ )
+ (get_local $37)
+ )
+ (block
+ (i32.store8
+ (get_local $48)
+ (i32.const 48)
+ )
+ (get_local $48)
+ )
+ (get_local $6)
+ )
+ )
+ (i32.const -1)
+ )
+ (i32.and
+ (i32.add
+ (i32.and
+ (i32.shr_s
+ (get_local $5)
+ (i32.const 31)
+ )
+ (i32.const 2)
+ )
+ (i32.const 43)
+ )
+ (i32.const 255)
+ )
+ )
+ (i32.store8
+ (tee_local $11
+ (i32.add
+ (get_local $6)
+ (i32.const -2)
+ )
+ )
+ (i32.and
+ (i32.add
+ (get_local $16)
+ (i32.const 15)
+ )
+ (i32.const 255)
+ )
+ )
+ (set_local $12
+ (i32.lt_s
+ (get_local $7)
+ (i32.const 1)
+ )
+ )
+ (set_local $16
+ (i32.eqz
+ (i32.and
+ (get_local $10)
+ (i32.const 8)
+ )
+ )
+ )
+ (set_local $5
+ (get_local $24)
+ )
+ (loop $while-in$63
+ (i32.store8
+ (get_local $5)
+ (i32.and
+ (i32.or
+ (i32.and
+ (i32.load8_s
+ (i32.add
+ (tee_local $6
+ (i32.trunc_s/f64
+ (get_local $14)
+ )
+ )
+ (i32.const 4075)
+ )
+ )
+ (i32.const 255)
+ )
+ (get_local $9)
+ )
+ (i32.const 255)
+ )
+ )
+ (set_local $14
+ (f64.mul
+ (f64.sub
+ (get_local $14)
+ (f64.convert_s/i32
+ (get_local $6)
+ )
+ )
+ (f64.const 16)
+ )
+ )
+ (set_local $5
+ (block $do-once$64
+ (if
+ (i32.eq
+ (i32.sub
+ (tee_local $6
+ (i32.add
+ (get_local $5)
+ (i32.const 1)
+ )
+ )
+ (get_local $42)
+ )
+ (i32.const 1)
+ )
+ (block
+ (br_if $do-once$64
+ (get_local $6)
+ (i32.and
+ (get_local $16)
+ (i32.and
+ (get_local $12)
+ (f64.eq
+ (get_local $14)
+ (f64.const 0)
+ )
+ )
+ )
+ )
+ (i32.store8
+ (get_local $6)
+ (i32.const 46)
+ )
+ (i32.add
+ (get_local $5)
+ (i32.const 2)
+ )
+ )
+ (get_local $6)
+ )
+ )
+ )
+ (br_if $while-in$63
+ (f64.ne
+ (get_local $14)
+ (f64.const 0)
+ )
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $17)
+ (tee_local $6
+ (i32.add
+ (tee_local $7
+ (select
+ (i32.sub
+ (i32.add
+ (get_local $53)
+ (get_local $7)
+ )
+ (get_local $11)
+ )
+ (i32.add
+ (i32.sub
+ (get_local $51)
+ (get_local $11)
+ )
+ (get_local $5)
+ )
+ (i32.and
+ (i32.ne
+ (get_local $7)
+ (i32.const 0)
+ )
+ (i32.lt_s
+ (i32.add
+ (get_local $52)
+ (get_local $5)
+ )
+ (get_local $7)
+ )
+ )
+ )
+ )
+ (get_local $8)
+ )
+ )
+ (get_local $10)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $19)
+ (get_local $8)
+ (get_local $0)
+ )
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 48)
+ (get_local $17)
+ (get_local $6)
+ (i32.xor
+ (get_local $10)
+ (i32.const 65536)
+ )
+ )
+ (set_local $5
+ (i32.sub
+ (get_local $5)
+ (get_local $42)
+ )
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $24)
+ (get_local $5)
+ (get_local $0)
+ )
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 48)
+ (i32.sub
+ (get_local $7)
+ (i32.add
+ (get_local $5)
+ (tee_local $5
+ (i32.sub
+ (get_local $32)
+ (get_local $11)
+ )
+ )
+ )
+ )
+ (i32.const 0)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $11)
+ (get_local $5)
+ (get_local $0)
+ )
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $17)
+ (get_local $6)
+ (i32.xor
+ (get_local $10)
+ (i32.const 8192)
+ )
+ )
+ (br $do-once$56
+ (select
+ (get_local $17)
+ (get_local $6)
+ (i32.lt_s
+ (get_local $6)
+ (get_local $17)
+ )
+ )
+ )
+ )
+ )
+ (set_local $19
+ (select
+ (i32.const 6)
+ (get_local $7)
+ (i32.lt_s
+ (get_local $7)
+ (i32.const 0)
+ )
+ )
+ )
+ (set_local $40
+ (tee_local $8
+ (select
+ (get_local $54)
+ (get_local $55)
+ (i32.lt_s
+ (if
+ (get_local $5)
+ (block
+ (i32.store
+ (get_local $20)
+ (tee_local $5
+ (i32.add
+ (i32.load
+ (get_local $20)
+ )
+ (i32.const -28)
+ )
+ )
+ )
+ (set_local $14
+ (f64.mul
+ (get_local $22)
+ (f64.const 268435456)
+ )
+ )
+ (get_local $5)
+ )
+ (block
+ (set_local $14
+ (get_local $22)
+ )
+ (i32.load
+ (get_local $20)
+ )
+ )
+ )
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ (set_local $6
+ (get_local $8)
+ )
+ (loop $while-in$67
+ (i32.store
+ (get_local $6)
+ (tee_local $5
+ (i32.trunc_s/f64
+ (get_local $14)
+ )
+ )
+ )
+ (set_local $6
+ (i32.add
+ (get_local $6)
+ (i32.const 4)
+ )
+ )
+ (br_if $while-in$67
+ (f64.ne
+ (tee_local $14
+ (f64.mul
+ (f64.sub
+ (get_local $14)
+ (f64.convert_u/i32
+ (get_local $5)
+ )
+ )
+ (f64.const 1e9)
+ )
+ )
+ (f64.const 0)
+ )
+ )
+ )
+ (if
+ (i32.gt_s
+ (tee_local $7
+ (i32.load
+ (get_local $20)
+ )
+ )
+ (i32.const 0)
+ )
+ (block
+ (set_local $9
+ (get_local $8)
+ )
+ (loop $while-in$69
+ (set_local $21
+ (select
+ (i32.const 29)
+ (get_local $7)
+ (i32.gt_s
+ (get_local $7)
+ (i32.const 29)
+ )
+ )
+ )
+ (set_local $9
+ (block $do-once$70
+ (if
+ (i32.lt_u
+ (tee_local $7
+ (i32.add
+ (get_local $6)
+ (i32.const -4)
+ )
+ )
+ (get_local $9)
+ )
+ (get_local $9)
+ (block
+ (set_local $5
+ (i32.const 0)
+ )
+ (loop $while-in$73
+ (set_local $12
+ (call $___uremdi3
+ (tee_local $5
+ (call $_i64Add
+ (call $_bitshift64Shl
+ (i32.load
+ (get_local $7)
+ )
+ (i32.const 0)
+ (get_local $21)
+ )
+ (get_global $tempRet0)
+ (get_local $5)
+ (i32.const 0)
+ )
+ )
+ (tee_local $11
+ (get_global $tempRet0)
+ )
+ (i32.const 1000000000)
+ (i32.const 0)
+ )
+ )
+ (i32.store
+ (get_local $7)
+ (get_local $12)
+ )
+ (set_local $5
+ (call $___udivdi3
+ (get_local $5)
+ (get_local $11)
+ (i32.const 1000000000)
+ (i32.const 0)
+ )
+ )
+ (br_if $while-in$73
+ (i32.ge_u
+ (tee_local $7
+ (i32.add
+ (get_local $7)
+ (i32.const -4)
+ )
+ )
+ (get_local $9)
+ )
+ )
+ )
+ (br_if $do-once$70
+ (get_local $9)
+ (i32.eqz
+ (get_local $5)
+ )
+ )
+ (i32.store
+ (tee_local $7
+ (i32.add
+ (get_local $9)
+ (i32.const -4)
+ )
+ )
+ (get_local $5)
+ )
+ (get_local $7)
+ )
+ )
+ )
+ )
+ (set_local $5
+ (get_local $6)
+ )
+ (loop $while-in$75
+ (block $while-out$74
+ (if
+ (i32.le_u
+ (get_local $5)
+ (get_local $9)
+ )
+ (block
+ (set_local $6
+ (get_local $5)
+ )
+ (br $while-out$74)
+ )
+ )
+ (if
+ (i32.load
+ (tee_local $6
+ (i32.add
+ (get_local $5)
+ (i32.const -4)
+ )
+ )
+ )
+ (set_local $6
+ (get_local $5)
+ )
+ (block
+ (set_local $5
+ (get_local $6)
+ )
+ (br $while-in$75)
+ )
+ )
+ )
+ )
+ (i32.store
+ (get_local $20)
+ (tee_local $7
+ (i32.sub
+ (i32.load
+ (get_local $20)
+ )
+ (get_local $21)
+ )
+ )
+ )
+ (br_if $while-in$69
+ (i32.gt_s
+ (get_local $7)
+ (i32.const 0)
+ )
+ )
+ (set_local $5
+ (get_local $9)
+ )
+ )
+ )
+ (set_local $5
+ (get_local $8)
+ )
+ )
+ (if
+ (i32.lt_s
+ (get_local $7)
+ (i32.const 0)
+ )
+ (block
+ (set_local $12
+ (i32.add
+ (i32.and
+ (i32.div_s
+ (i32.add
+ (get_local $19)
+ (i32.const 25)
+ )
+ (i32.const 9)
+ )
+ (i32.const -1)
+ )
+ (i32.const 1)
+ )
+ )
+ (set_local $21
+ (i32.eq
+ (get_local $25)
+ (i32.const 102)
+ )
+ )
+ (loop $while-in$77
+ (set_local $26
+ (select
+ (i32.const 9)
+ (tee_local $7
+ (i32.sub
+ (i32.const 0)
+ (get_local $7)
+ )
+ )
+ (i32.gt_s
+ (get_local $7)
+ (i32.const 9)
+ )
+ )
+ )
+ (set_local $6
+ (select
+ (i32.add
+ (tee_local $7
+ (select
+ (get_local $8)
+ (tee_local $5
+ (block $do-once$78
+ (if
+ (i32.lt_u
+ (get_local $5)
+ (get_local $6)
+ )
+ (block
+ (set_local $44
+ (i32.add
+ (i32.shl
+ (i32.const 1)
+ (get_local $26)
+ )
+ (i32.const -1)
+ )
+ )
+ (set_local $31
+ (i32.shr_u
+ (i32.const 1000000000)
+ (get_local $26)
+ )
+ )
+ (set_local $9
+ (i32.const 0)
+ )
+ (set_local $7
+ (get_local $5)
+ )
+ (loop $while-in$81
+ (i32.store
+ (get_local $7)
+ (i32.add
+ (i32.shr_u
+ (tee_local $11
+ (i32.load
+ (get_local $7)
+ )
+ )
+ (get_local $26)
+ )
+ (get_local $9)
+ )
+ )
+ (set_local $9
+ (i32.mul
+ (i32.and
+ (get_local $11)
+ (get_local $44)
+ )
+ (get_local $31)
+ )
+ )
+ (br_if $while-in$81
+ (i32.lt_u
+ (tee_local $7
+ (i32.add
+ (get_local $7)
+ (i32.const 4)
+ )
+ )
+ (get_local $6)
+ )
+ )
+ )
+ (set_local $5
+ (select
+ (get_local $5)
+ (i32.add
+ (get_local $5)
+ (i32.const 4)
+ )
+ (i32.load
+ (get_local $5)
+ )
+ )
+ )
+ (br_if $do-once$78
+ (get_local $5)
+ (i32.eqz
+ (get_local $9)
+ )
+ )
+ (i32.store
+ (get_local $6)
+ (get_local $9)
+ )
+ (set_local $6
+ (i32.add
+ (get_local $6)
+ (i32.const 4)
+ )
+ )
+ (get_local $5)
+ )
+ (select
+ (get_local $5)
+ (i32.add
+ (get_local $5)
+ (i32.const 4)
+ )
+ (i32.load
+ (get_local $5)
+ )
+ )
+ )
+ )
+ )
+ (get_local $21)
+ )
+ )
+ (i32.shl
+ (get_local $12)
+ (i32.const 2)
+ )
+ )
+ (get_local $6)
+ (i32.gt_s
+ (i32.shr_s
+ (i32.sub
+ (get_local $6)
+ (get_local $7)
+ )
+ (i32.const 2)
+ )
+ (get_local $12)
+ )
+ )
+ )
+ (i32.store
+ (get_local $20)
+ (tee_local $7
+ (i32.add
+ (i32.load
+ (get_local $20)
+ )
+ (get_local $26)
+ )
+ )
+ )
+ (br_if $while-in$77
+ (i32.lt_s
+ (get_local $7)
+ (i32.const 0)
+ )
+ )
+ (set_local $9
+ (get_local $6)
+ )
+ )
+ )
+ (set_local $9
+ (get_local $6)
+ )
+ )
+ (block $do-once$82
+ (if
+ (i32.lt_u
+ (get_local $5)
+ (get_local $9)
+ )
+ (block
+ (set_local $6
+ (i32.mul
+ (i32.shr_s
+ (i32.sub
+ (get_local $40)
+ (get_local $5)
+ )
+ (i32.const 2)
+ )
+ (i32.const 9)
+ )
+ )
+ (br_if $do-once$82
+ (i32.lt_u
+ (tee_local $11
+ (i32.load
+ (get_local $5)
+ )
+ )
+ (i32.const 10)
+ )
+ )
+ (set_local $7
+ (i32.const 10)
+ )
+ (loop $while-in$85
+ (set_local $6
+ (i32.add
+ (get_local $6)
+ (i32.const 1)
+ )
+ )
+ (br_if $while-in$85
+ (i32.ge_u
+ (get_local $11)
+ (tee_local $7
+ (i32.mul
+ (get_local $7)
+ (i32.const 10)
+ )
+ )
+ )
+ )
+ )
+ )
+ (set_local $6
+ (i32.const 0)
+ )
+ )
+ )
+ (set_local $12
+ (if
+ (i32.lt_s
+ (tee_local $7
+ (i32.add
+ (i32.sub
+ (get_local $19)
+ (select
+ (get_local $6)
+ (i32.const 0)
+ (i32.ne
+ (get_local $25)
+ (i32.const 102)
+ )
+ )
+ )
(i32.shr_s
(i32.shl
- (i32.lt_s
- (get_local $22)
- (i32.const 0)
+ (i32.and
+ (tee_local $44
+ (i32.ne
+ (get_local $19)
+ (i32.const 0)
+ )
+ )
+ (tee_local $21
+ (i32.eq
+ (get_local $25)
+ (i32.const 103)
+ )
+ )
)
(i32.const 31)
)
(i32.const 31)
)
)
- (set_local $20
- (get_local $9)
- )
- (set_local $1
- (get_local $17)
- )
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
)
- (i32.store16
- (i32.load
- (get_local $19)
- )
- (i32.and
- (get_local $22)
- (i32.const 65535)
- )
- )
- (set_local $20
- (get_local $9)
- )
- (set_local $1
- (get_local $17)
- )
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
- )
- (i32.store8
- (i32.load
- (get_local $19)
- )
- (i32.and
- (get_local $22)
- (i32.const 255)
- )
- )
- (set_local $20
- (get_local $9)
- )
- (set_local $1
- (get_local $17)
- )
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
- )
- (i32.store
- (i32.load
- (get_local $19)
- )
- (get_local $22)
- )
- (set_local $20
- (get_local $9)
- )
- (set_local $1
- (get_local $17)
- )
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
- )
- (i32.store
- (tee_local $1
- (i32.load
- (get_local $19)
- )
- )
- (get_local $22)
- )
- (i32.store offset=4
- (get_local $1)
- (i32.shr_s
- (i32.shl
- (i32.lt_s
- (get_local $22)
- (i32.const 0)
- )
- (i32.const 31)
- )
- (i32.const 31)
- )
- )
- (set_local $20
- (get_local $9)
- )
- (set_local $1
- (get_local $17)
- )
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
- )
- (set_local $20
- (get_local $9)
- )
- (set_local $1
- (get_local $17)
- )
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
- )
- (set_local $46
- (i32.or
- (get_local $18)
- (i32.const 8)
- )
- )
- (set_local $57
- (select
- (get_local $10)
- (i32.const 8)
- (i32.gt_u
- (get_local $10)
- (i32.const 8)
- )
- )
- )
- (set_local $68
- (i32.const 120)
- )
- (set_local $12
- (i32.const 64)
- )
- (br $switch$24)
- )
- (set_local $46
- (get_local $18)
- )
- (set_local $57
- (get_local $10)
- )
- (set_local $68
- (get_local $26)
- )
- (set_local $12
- (i32.const 64)
- )
- (br $switch$24)
- )
- (if
- (i32.and
- (i32.eq
- (tee_local $5
- (i32.load
- (tee_local $1
- (get_local $19)
- )
- )
- )
- (i32.const 0)
- )
- (i32.eq
- (tee_local $1
- (i32.load offset=4
- (get_local $1)
- )
- )
- (i32.const 0)
- )
- )
- (set_local $6
- (get_local $28)
- )
- (block
- (set_local $6
- (get_local $28)
- )
- (loop $while-in$39
- (block $while-out$38
- (i32.store8
- (tee_local $6
- (i32.add
- (get_local $6)
- (i32.const -1)
- )
- )
- (i32.and
- (i32.or
- (i32.and
- (get_local $5)
- (i32.const 7)
- )
- (i32.const 48)
- )
- (i32.const 255)
- )
- )
- (br_if $while-out$38
- (i32.and
- (i32.eq
- (tee_local $5
- (call $_bitshift64Lshr
- (get_local $5)
- (get_local $1)
- (i32.const 3)
- )
- )
- (i32.const 0)
- )
- (i32.eq
- (tee_local $1
- (get_global $tempRet0)
- )
- (i32.const 0)
- )
- )
- )
- (br $while-in$39)
- )
- )
- )
- )
- (set_local $58
- (if
- (i32.eq
- (i32.and
- (get_local $18)
- (i32.const 8)
- )
- (i32.const 0)
- )
- (block
- (set_local $34
- (get_local $18)
- )
- (set_local $32
- (get_local $10)
- )
- (set_local $35
- (i32.const 0)
- )
- (set_local $36
- (i32.const 4091)
- )
- (set_local $12
- (i32.const 77)
- )
- (get_local $6)
- )
- (block
- (set_local $5
- (i32.lt_s
- (get_local $10)
- (tee_local $1
- (i32.add
- (i32.sub
- (get_local $71)
- (get_local $6)
- )
- (i32.const 1)
- )
- )
- )
- )
- (set_local $34
- (get_local $18)
- )
- (set_local $32
- (select
- (get_local $1)
- (get_local $10)
- (get_local $5)
- )
- )
- (set_local $35
- (i32.const 0)
- )
- (set_local $36
- (i32.const 4091)
- )
- (set_local $12
- (i32.const 77)
- )
- (get_local $6)
- )
- )
- )
- (br $switch$24)
- )
- (set_local $5
- (i32.load
- (tee_local $1
- (get_local $19)
- )
- )
- )
- (if
- (i32.lt_s
- (tee_local $33
- (i32.load offset=4
- (get_local $1)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $1
- (call $_i64Subtract
- (i32.const 0)
- (i32.const 0)
- (get_local $5)
- (get_local $33)
- )
- )
- (set_local $5
- (get_global $tempRet0)
- )
- (i32.store
- (tee_local $33
- (get_local $19)
- )
- (get_local $1)
- )
- (i32.store offset=4
- (get_local $33)
- (get_local $5)
- )
- (set_local $33
- (get_local $1)
- )
- (set_local $59
- (get_local $5)
- )
- (set_local $60
- (i32.const 1)
- )
- (set_local $61
- (i32.const 4091)
- )
- (set_local $12
- (i32.const 76)
- )
- (br $switch$24)
- )
- )
- (set_local $33
- (if
- (i32.eq
- (i32.and
- (get_local $18)
- (i32.const 2048)
- )
- (i32.const 0)
- )
- (block
- (set_local $1
- (select
- (i32.const 4091)
- (i32.const 4093)
- (i32.eq
- (tee_local $6
- (i32.and
- (get_local $18)
- (i32.const 1)
- )
- )
- (i32.const 0)
- )
- )
- )
- (set_local $59
- (get_local $33)
- )
- (set_local $60
- (get_local $6)
- )
- (set_local $61
- (get_local $1)
- )
- (set_local $12
- (i32.const 76)
- )
- (get_local $5)
- )
- (block
- (set_local $59
- (get_local $33)
- )
- (set_local $60
- (i32.const 1)
- )
- (set_local $61
- (i32.const 4092)
- )
- (set_local $12
- (i32.const 76)
- )
- (get_local $5)
- )
- )
- )
- (br $switch$24)
- )
- (set_local $33
- (i32.load
- (tee_local $1
- (get_local $19)
- )
- )
- )
- (set_local $59
- (i32.load offset=4
- (get_local $1)
- )
- )
- (set_local $60
- (i32.const 0)
- )
- (set_local $61
- (i32.const 4091)
- )
- (set_local $12
- (i32.const 76)
- )
- (br $switch$24)
- )
- (set_local $1
- (i32.load
- (get_local $19)
- )
- )
- (i32.store8
- (get_local $72)
- (i32.and
- (get_local $1)
- (i32.const 255)
- )
- )
- (set_local $47
- (get_local $72)
- )
- (set_local $37
- (get_local $7)
- )
- (set_local $42
- (i32.const 1)
- )
- (set_local $43
- (i32.const 0)
- )
- (set_local $48
- (i32.const 4091)
- )
- (set_local $49
- (get_local $28)
- )
- (br $switch$24)
- )
- (set_local $50
- (call $_strerror
- (i32.load
- (call $___errno_location)
- )
- )
- )
- (set_local $12
- (i32.const 82)
- )
- (br $switch$24)
- )
- (set_local $5
- (i32.ne
- (tee_local $1
- (i32.load
- (get_local $19)
- )
- )
- (i32.const 0)
- )
- )
- (set_local $50
- (select
- (get_local $1)
- (i32.const 4101)
- (get_local $5)
- )
- )
- (set_local $12
- (i32.const 82)
- )
- (br $switch$24)
- )
- (set_local $1
- (i32.load
- (get_local $19)
- )
- )
- (i32.store
- (get_local $73)
- (get_local $1)
- )
- (i32.store
- (get_local $76)
- (i32.const 0)
- )
- (i32.store
- (get_local $19)
- (get_local $73)
- )
- (set_local $69
- (i32.const -1)
- )
- (set_local $12
- (i32.const 86)
- )
- (br $switch$24)
- )
- (set_local $12
- (if
- (i32.eq
- (get_local $10)
- (i32.const 0)
- )
- (block
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (i32.const 0)
- (get_local $18)
- )
- (set_local $38
- (i32.const 0)
- )
- (i32.const 98)
- )
- (block
- (set_local $69
- (get_local $10)
- )
- (i32.const 86)
- )
- )
- )
- (br $switch$24)
- )
- (set_local $14
- (f64.load
- (get_local $19)
- )
- )
- (i32.store
- (get_local $25)
- (i32.const 0)
- )
- (f64.store
- (get_global $tempDoublePtr)
- (get_local $14)
- )
- (set_local $51
- (if
- (i32.lt_s
- (i32.load offset=4
- (get_global $tempDoublePtr)
- )
- (i32.const 0)
- )
- (block
- (set_local $39
- (i32.const 4108)
- )
- (set_local $14
- (f64.neg
- (get_local $14)
- )
- )
- (i32.const 1)
- )
- (if
- (i32.eq
- (i32.and
- (get_local $18)
- (i32.const 2048)
- )
- (i32.const 0)
- )
- (block
- (set_local $39
- (select
- (i32.const 4109)
- (i32.const 4114)
- (i32.eq
- (tee_local $1
- (i32.and
- (get_local $18)
- (i32.const 1)
- )
- )
- (i32.const 0)
- )
- )
- )
- (get_local $1)
- )
- (block
- (set_local $39
- (i32.const 4111)
- )
- (i32.const 1)
- )
- )
- )
- )
- (f64.store
- (get_global $tempDoublePtr)
- (get_local $14)
- )
- (set_local $20
- (get_local $9)
- )
- (set_local $1
- (block $do-once$56
- (if
- (i32.or
- (i32.lt_u
- (tee_local $1
- (i32.and
- (i32.load offset=4
- (get_global $tempDoublePtr)
- )
- (i32.const 2146435072)
- )
- )
- (i32.const 2146435072)
- )
- (i32.and
- (i32.eq
- (get_local $1)
- (i32.const 2146435072)
- )
- (i32.const 0)
- )
- )
- (block
- (if
- (tee_local $5
- (f64.ne
- (tee_local $14
- (f64.mul
- (call $_frexpl
- (get_local $14)
- (get_local $25)
- )
- (f64.const 2)
- )
- )
- (f64.const 0)
- )
- )
- (i32.store
- (get_local $25)
- (i32.add
- (i32.load
- (get_local $25)
- )
- (i32.const -1)
- )
- )
- )
- (if
- (i32.eq
- (tee_local $15
- (i32.or
- (get_local $26)
- (i32.const 32)
- )
- )
- (i32.const 97)
- )
- (block
- (set_local $9
- (select
- (get_local $39)
- (i32.add
- (get_local $39)
- (i32.const 9)
- )
- (i32.eq
- (tee_local $6
- (i32.and
- (get_local $26)
- (i32.const 32)
- )
- )
- (i32.const 0)
- )
- )
- )
- (set_local $7
- (i32.or
- (get_local $51)
- (i32.const 2)
- )
- )
- (set_local $14
- (if
- (i32.or
- (i32.gt_u
- (get_local $10)
- (i32.const 11)
- )
- (i32.eq
- (tee_local $1
- (i32.sub
- (i32.const 12)
- (get_local $10)
- )
- )
- (i32.const 0)
- )
- )
- (get_local $14)
- (block
- (set_local $30
- (f64.const 8)
- )
- (loop $while-in$61
- (block $while-out$60
- (set_local $30
- (f64.mul
- (get_local $30)
- (f64.const 16)
- )
- )
- (br_if $while-out$60
- (i32.eq
- (tee_local $1
- (i32.add
- (get_local $1)
- (i32.const -1)
- )
- )
- (i32.const 0)
- )
- )
- (br $while-in$61)
- )
- )
- (select
- (f64.neg
- (f64.add
- (get_local $30)
- (f64.sub
- (f64.neg
- (get_local $14)
- )
- (get_local $30)
- )
- )
- )
- (f64.sub
- (f64.add
- (get_local $14)
- (get_local $30)
- )
- (get_local $30)
- )
- (i32.eq
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (get_local $9)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 45)
- )
- )
- )
- )
- )
- (set_local $5
- (i32.lt_s
- (tee_local $1
- (i32.load
- (get_local $25)
- )
- )
- (i32.const 0)
- )
- )
- (set_local $5
- (i32.shr_s
- (i32.shl
- (i32.lt_s
- (tee_local $8
- (select
- (i32.sub
- (i32.const 0)
- (get_local $1)
- )
- (get_local $1)
- (get_local $5)
- )
- )
- (i32.const 0)
- )
- (i32.const 31)
- )
- (i32.const 31)
- )
- )
- (i32.store8
- (i32.add
- (tee_local $5
- (if
- (i32.eq
- (tee_local $5
- (call $_fmt_u
- (get_local $8)
- (get_local $5)
- (get_local $52)
- )
- )
- (get_local $52)
- )
- (block
- (i32.store8
- (get_local $74)
- (i32.const 48)
- )
- (get_local $74)
- )
- (get_local $5)
- )
- )
- (i32.const -1)
- )
- (i32.and
- (i32.add
- (i32.and
- (i32.shr_s
- (get_local $1)
- (i32.const 31)
- )
- (i32.const 2)
- )
- (i32.const 43)
- )
- (i32.const 255)
- )
- )
- (i32.store8
- (tee_local $8
- (i32.add
- (get_local $5)
- (i32.const -2)
- )
- )
- (i32.and
- (i32.add
- (get_local $26)
- (i32.const 15)
- )
- (i32.const 255)
- )
- )
- (set_local $5
- (i32.lt_s
- (get_local $10)
- (i32.const 1)
- )
- )
- (set_local $13
- (i32.eq
- (i32.and
- (get_local $18)
- (i32.const 8)
- )
- (i32.const 0)
- )
- )
- (set_local $11
- (get_local $29)
- )
- (loop $while-in$63
- (block $while-out$62
- (i32.store8
- (get_local $11)
- (i32.and
- (i32.or
- (i32.and
- (i32.load8_s
- (i32.add
- (tee_local $1
- (i32.trunc_s/f64
- (get_local $14)
- )
- )
- (i32.const 4075)
- )
- )
- (i32.const 255)
- )
- (get_local $6)
- )
- (i32.const 255)
- )
- )
- (set_local $14
- (f64.mul
- (f64.sub
- (get_local $14)
- (f64.convert_s/i32
- (get_local $1)
- )
- )
- (f64.const 16)
- )
- )
- (set_local $11
- (block $do-once$64
- (if
- (i32.eq
- (i32.sub
- (tee_local $1
- (i32.add
- (get_local $11)
- (i32.const 1)
- )
- )
- (get_local $64)
- )
- (i32.const 1)
- )
- (block
- (br_if $do-once$64
- (get_local $1)
- (i32.and
- (get_local $13)
- (i32.and
- (get_local $5)
- (f64.eq
- (get_local $14)
- (f64.const 0)
- )
- )
- )
- )
- (i32.store8
- (get_local $1)
- (i32.const 46)
- )
- (i32.add
- (get_local $11)
- (i32.const 2)
- )
- )
- (get_local $1)
- )
- )
- )
- (if
- (f64.eq
- (get_local $14)
- (f64.const 0)
- )
- (block
- (set_local $1
- (get_local $11)
- )
- (br $while-out$62)
- )
- )
- (br $while-in$63)
- )
- )
- (set_local $5
- (i32.and
- (i32.ne
- (get_local $10)
- (i32.const 0)
- )
- (i32.lt_s
- (i32.add
- (get_local $78)
- (get_local $1)
- )
- (get_local $10)
- )
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (tee_local $5
- (i32.add
- (tee_local $6
- (select
- (i32.sub
- (i32.add
- (get_local $79)
- (get_local $10)
- )
- (get_local $8)
- )
- (i32.add
- (i32.sub
- (get_local $77)
- (get_local $8)
- )
- (get_local $1)
- )
- (get_local $5)
- )
- )
- (get_local $7)
- )
- )
- (get_local $18)
- )
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (call $___fwritex
- (get_local $9)
- (get_local $7)
- (get_local $0)
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 48)
- (get_local $16)
- (get_local $5)
- (i32.xor
- (get_local $18)
- (i32.const 65536)
- )
- )
- (set_local $1
- (i32.sub
- (get_local $1)
- (get_local $64)
- )
- )
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (call $___fwritex
- (get_local $29)
- (get_local $1)
- (get_local $0)
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 48)
- (i32.sub
- (get_local $6)
- (i32.add
- (get_local $1)
- (tee_local $1
- (i32.sub
- (get_local $40)
- (get_local $8)
- )
- )
- )
- )
- (i32.const 0)
- (i32.const 0)
- )
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (call $___fwritex
- (get_local $8)
- (get_local $1)
- (get_local $0)
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (get_local $5)
- (i32.xor
- (get_local $18)
- (i32.const 8192)
- )
- )
- (br $do-once$56
- (select
- (get_local $16)
- (get_local $5)
- (i32.lt_s
- (get_local $5)
- (get_local $16)
- )
- )
- )
- )
- )
- (set_local $1
- (select
- (i32.const 6)
- (get_local $10)
- (i32.lt_s
- (get_local $10)
- (i32.const 0)
- )
- )
- )
- (set_local $62
- (tee_local $9
- (select
- (get_local $80)
- (get_local $81)
- (i32.lt_s
- (if
- (get_local $5)
- (block
- (i32.store
- (get_local $25)
- (tee_local $5
- (i32.add
- (i32.load
- (get_local $25)
- )
- (i32.const -28)
- )
- )
- )
- (set_local $14
- (f64.mul
- (get_local $14)
- (f64.const 268435456)
- )
- )
- (get_local $5)
- )
- (i32.load
- (get_local $25)
- )
- )
- (i32.const 0)
- )
- )
- )
- )
- (set_local $7
- (get_local $9)
- )
- (loop $while-in$67
- (block $while-out$66
- (i32.store
- (get_local $7)
- (tee_local $5
- (i32.trunc_s/f64
- (get_local $14)
- )
- )
- )
- (set_local $7
- (i32.add
- (get_local $7)
- (i32.const 4)
- )
- )
- (if
- (f64.eq
- (tee_local $14
- (f64.mul
- (f64.sub
- (get_local $14)
- (f64.convert_u/i32
- (get_local $5)
- )
- )
- (f64.const 1e9)
- )
- )
- (f64.const 0)
- )
- (block
- (set_local $6
- (get_local $7)
- )
- (br $while-out$66)
- )
- )
- (br $while-in$67)
- )
- )
- (if
- (i32.gt_s
- (tee_local $5
- (i32.load
- (get_local $25)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $8
- (get_local $9)
- )
- (set_local $13
- (get_local $6)
- )
- (loop $while-in$69
- (block $while-out$68
- (set_local $11
- (select
- (i32.const 29)
- (get_local $5)
- (i32.gt_s
- (get_local $5)
- (i32.const 29)
- )
- )
- )
- (set_local $7
- (block $do-once$70
- (if
- (i32.lt_u
- (tee_local $7
- (i32.add
- (get_local $13)
- (i32.const -4)
- )
- )
- (get_local $8)
- )
- (get_local $8)
- (block
- (set_local $5
- (i32.const 0)
- )
- (set_local $10
- (get_local $7)
- )
- (loop $while-in$73
- (block $while-out$72
- (set_local $6
- (call $___uremdi3
- (tee_local $5
- (call $_i64Add
- (call $_bitshift64Shl
- (i32.load
- (get_local $10)
- )
- (i32.const 0)
- (get_local $11)
+ (i32.add
+ (i32.mul
+ (i32.shr_s
+ (i32.sub
+ (get_local $9)
+ (get_local $40)
)
- (get_global $tempRet0)
- (get_local $5)
- (i32.const 0)
+ (i32.const 2)
+ )
+ (i32.const 9)
+ )
+ (i32.const -9)
+ )
+ )
+ (block
+ (set_local $7
+ (i32.add
+ (i32.add
+ (get_local $8)
+ (i32.const 4)
+ )
+ (i32.shl
+ (i32.add
+ (i32.and
+ (i32.div_s
+ (tee_local $11
+ (i32.add
+ (get_local $7)
+ (i32.const 9216)
+ )
+ )
+ (i32.const 9)
+ )
+ (i32.const -1)
+ )
+ (i32.const -1024)
+ )
+ (i32.const 2)
)
)
- (tee_local $7
- (get_global $tempRet0)
- )
- (i32.const 1000000000)
- (i32.const 0)
)
+ (if
+ (i32.lt_s
+ (tee_local $11
+ (i32.add
+ (i32.and
+ (i32.rem_s
+ (get_local $11)
+ (i32.const 9)
+ )
+ (i32.const -1)
+ )
+ (i32.const 1)
+ )
+ )
+ (i32.const 9)
+ )
+ (block
+ (set_local $12
+ (i32.const 10)
+ )
+ (loop $while-in$87
+ (set_local $12
+ (i32.mul
+ (get_local $12)
+ (i32.const 10)
+ )
+ )
+ (br_if $while-in$87
+ (i32.ne
+ (tee_local $11
+ (i32.add
+ (get_local $11)
+ (i32.const 1)
+ )
+ )
+ (i32.const 9)
+ )
+ )
+ )
+ )
+ (set_local $12
+ (i32.const 10)
+ )
+ )
+ (block $do-once$88
+ (if
+ (i32.eqz
+ (i32.and
+ (tee_local $26
+ (i32.eq
+ (i32.add
+ (get_local $7)
+ (i32.const 4)
+ )
+ (get_local $9)
+ )
+ )
+ (i32.eqz
+ (tee_local $31
+ (i32.and
+ (i32.rem_u
+ (tee_local $11
+ (i32.load
+ (get_local $7)
+ )
+ )
+ (get_local $12)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ )
+ )
+ (block
+ (set_local $22
+ (select
+ (f64.const 9007199254740994)
+ (f64.const 9007199254740992)
+ (i32.and
+ (i32.and
+ (i32.div_u
+ (get_local $11)
+ (get_local $12)
+ )
+ (i32.const -1)
+ )
+ (i32.const 1)
+ )
+ )
+ )
+ (set_local $14
+ (if
+ (i32.lt_u
+ (get_local $31)
+ (tee_local $25
+ (i32.and
+ (i32.div_s
+ (get_local $12)
+ (i32.const 2)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (f64.const 0.5)
+ (select
+ (f64.const 1)
+ (f64.const 1.5)
+ (i32.and
+ (get_local $26)
+ (i32.eq
+ (get_local $31)
+ (get_local $25)
+ )
+ )
+ )
+ )
+ )
+ (set_local $22
+ (block $do-once$90
+ (if
+ (get_local $30)
+ (block
+ (br_if $do-once$90
+ (get_local $22)
+ (i32.ne
+ (i32.load8_s
+ (get_local $36)
+ )
+ (i32.const 45)
+ )
+ )
+ (set_local $14
+ (f64.neg
+ (get_local $14)
+ )
+ )
+ (f64.neg
+ (get_local $22)
+ )
+ )
+ (get_local $22)
+ )
+ )
+ )
+ (i32.store
+ (get_local $7)
+ (tee_local $11
+ (i32.sub
+ (get_local $11)
+ (get_local $31)
+ )
+ )
+ )
+ (br_if $do-once$88
+ (f64.eq
+ (f64.add
+ (get_local $22)
+ (get_local $14)
+ )
+ (get_local $22)
+ )
+ )
+ (i32.store
+ (get_local $7)
+ (tee_local $6
+ (i32.add
+ (get_local $11)
+ (get_local $12)
+ )
+ )
+ )
+ (if
+ (i32.gt_u
+ (get_local $6)
+ (i32.const 999999999)
+ )
+ (loop $while-in$93
+ (i32.store
+ (get_local $7)
+ (i32.const 0)
+ )
+ (set_local $5
+ (if
+ (i32.lt_u
+ (tee_local $7
+ (i32.add
+ (get_local $7)
+ (i32.const -4)
+ )
+ )
+ (get_local $5)
+ )
+ (block
+ (i32.store
+ (tee_local $5
+ (i32.add
+ (get_local $5)
+ (i32.const -4)
+ )
+ )
+ (i32.const 0)
+ )
+ (get_local $5)
+ )
+ (get_local $5)
+ )
+ )
+ (i32.store
+ (get_local $7)
+ (tee_local $6
+ (i32.add
+ (i32.load
+ (get_local $7)
+ )
+ (i32.const 1)
+ )
+ )
+ )
+ (br_if $while-in$93
+ (i32.gt_u
+ (get_local $6)
+ (i32.const 999999999)
+ )
+ )
+ )
+ )
+ (set_local $6
+ (i32.mul
+ (i32.shr_s
+ (i32.sub
+ (get_local $40)
+ (get_local $5)
+ )
+ (i32.const 2)
+ )
+ (i32.const 9)
+ )
+ )
+ (br_if $do-once$88
+ (i32.lt_u
+ (tee_local $12
+ (i32.load
+ (get_local $5)
+ )
+ )
+ (i32.const 10)
+ )
+ )
+ (set_local $11
+ (i32.const 10)
+ )
+ (loop $while-in$95
+ (set_local $6
+ (i32.add
+ (get_local $6)
+ (i32.const 1)
+ )
+ )
+ (br_if $while-in$95
+ (i32.ge_u
+ (get_local $12)
+ (tee_local $11
+ (i32.mul
+ (get_local $11)
+ (i32.const 10)
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ (set_local $11
+ (get_local $6)
+ )
+ (set_local $9
+ (select
+ (tee_local $6
+ (i32.add
+ (get_local $7)
+ (i32.const 4)
+ )
+ )
+ (get_local $9)
+ (i32.gt_u
+ (get_local $9)
+ (get_local $6)
+ )
+ )
+ )
+ (get_local $5)
)
- (i32.store
- (get_local $10)
- (get_local $6)
+ (block
+ (set_local $11
+ (get_local $6)
+ )
+ (get_local $5)
)
- (set_local $5
- (call $___udivdi3
+ )
+ )
+ (set_local $25
+ (i32.sub
+ (i32.const 0)
+ (get_local $11)
+ )
+ )
+ (set_local $5
+ (get_local $9)
+ )
+ (loop $while-in$97
+ (block $while-out$96
+ (if
+ (i32.le_u
(get_local $5)
- (get_local $7)
- (i32.const 1000000000)
- (i32.const 0)
+ (get_local $12)
+ )
+ (block
+ (set_local $26
+ (i32.const 0)
+ )
+ (set_local $9
+ (get_local $5)
+ )
+ (br $while-out$96)
)
)
(if
- (i32.lt_u
- (tee_local $7
+ (i32.load
+ (tee_local $6
(i32.add
- (get_local $10)
+ (get_local $5)
(i32.const -4)
)
)
- (get_local $8)
)
- (br $while-out$72)
- (set_local $10
- (get_local $7)
+ (block
+ (set_local $26
+ (i32.const 1)
+ )
+ (set_local $9
+ (get_local $5)
+ )
+ )
+ (block
+ (set_local $5
+ (get_local $6)
+ )
+ (br $while-in$97)
)
)
- (br $while-in$73)
)
)
- (br_if $do-once$70
- (get_local $8)
- (i32.eq
- (get_local $5)
+ (set_local $19
+ (block $do-once$98
+ (if
+ (get_local $21)
+ (block
+ (set_local $16
+ (if
+ (i32.and
+ (i32.gt_s
+ (tee_local $5
+ (i32.add
+ (i32.xor
+ (i32.and
+ (get_local $44)
+ (i32.const 1)
+ )
+ (i32.const 1)
+ )
+ (get_local $19)
+ )
+ )
+ (get_local $11)
+ )
+ (i32.gt_s
+ (get_local $11)
+ (i32.const -5)
+ )
+ )
+ (block
+ (set_local $6
+ (i32.add
+ (get_local $16)
+ (i32.const -1)
+ )
+ )
+ (i32.sub
+ (i32.add
+ (get_local $5)
+ (i32.const -1)
+ )
+ (get_local $11)
+ )
+ )
+ (block
+ (set_local $6
+ (i32.add
+ (get_local $16)
+ (i32.const -2)
+ )
+ )
+ (i32.add
+ (get_local $5)
+ (i32.const -1)
+ )
+ )
+ )
+ )
+ (if
+ (tee_local $7
+ (i32.and
+ (get_local $10)
+ (i32.const 8)
+ )
+ )
+ (block
+ (set_local $5
+ (get_local $16)
+ )
+ (br $do-once$98
+ (get_local $7)
+ )
+ )
+ )
+ (block $do-once$100
+ (if
+ (get_local $26)
+ (block
+ (if
+ (i32.eqz
+ (tee_local $19
+ (i32.load
+ (i32.add
+ (get_local $9)
+ (i32.const -4)
+ )
+ )
+ )
+ )
+ (block
+ (set_local $5
+ (i32.const 9)
+ )
+ (br $do-once$100)
+ )
+ )
+ (if
+ (i32.and
+ (i32.rem_u
+ (get_local $19)
+ (i32.const 10)
+ )
+ (i32.const -1)
+ )
+ (block
+ (set_local $5
+ (i32.const 0)
+ )
+ (br $do-once$100)
+ )
+ (block
+ (set_local $7
+ (i32.const 10)
+ )
+ (set_local $5
+ (i32.const 0)
+ )
+ )
+ )
+ (loop $while-in$103
+ (set_local $5
+ (i32.add
+ (get_local $5)
+ (i32.const 1)
+ )
+ )
+ (br_if $while-in$103
+ (i32.eqz
+ (i32.and
+ (i32.rem_u
+ (get_local $19)
+ (tee_local $7
+ (i32.mul
+ (get_local $7)
+ (i32.const 10)
+ )
+ )
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ )
+ )
+ (set_local $5
+ (i32.const 9)
+ )
+ )
+ )
+ (set_local $7
+ (i32.add
+ (i32.mul
+ (i32.shr_s
+ (i32.sub
+ (get_local $9)
+ (get_local $40)
+ )
+ (i32.const 2)
+ )
+ (i32.const 9)
+ )
+ (i32.const -9)
+ )
+ )
+ (if
+ (i32.eq
+ (i32.or
+ (get_local $6)
+ (i32.const 32)
+ )
+ (i32.const 102)
+ )
+ (block
+ (set_local $5
+ (select
+ (get_local $16)
+ (tee_local $5
+ (select
+ (i32.const 0)
+ (tee_local $5
+ (i32.sub
+ (get_local $7)
+ (get_local $5)
+ )
+ )
+ (i32.lt_s
+ (get_local $5)
+ (i32.const 0)
+ )
+ )
+ )
+ (i32.lt_s
+ (get_local $16)
+ (get_local $5)
+ )
+ )
+ )
+ (i32.const 0)
+ )
+ (block
+ (set_local $5
+ (select
+ (get_local $16)
+ (tee_local $5
+ (select
+ (i32.const 0)
+ (tee_local $5
+ (i32.sub
+ (i32.add
+ (get_local $7)
+ (get_local $11)
+ )
+ (get_local $5)
+ )
+ )
+ (i32.lt_s
+ (get_local $5)
+ (i32.const 0)
+ )
+ )
+ )
+ (i32.lt_s
+ (get_local $16)
+ (get_local $5)
+ )
+ )
+ )
+ (i32.const 0)
+ )
+ )
+ )
+ (block
+ (set_local $5
+ (get_local $19)
+ )
+ (set_local $6
+ (get_local $16)
+ )
+ (i32.and
+ (get_local $10)
+ (i32.const 8)
+ )
+ )
+ )
+ )
+ )
+ (set_local $31
+ (i32.and
+ (i32.ne
+ (tee_local $16
+ (i32.or
+ (get_local $5)
+ (get_local $19)
+ )
+ )
+ (i32.const 0)
+ )
+ (i32.const 1)
+ )
+ )
+ (set_local $25
+ (if
+ (tee_local $21
+ (i32.eq
+ (i32.or
+ (get_local $6)
+ (i32.const 32)
+ )
+ (i32.const 102)
+ )
+ )
+ (block
+ (set_local $6
+ (select
+ (get_local $11)
+ (i32.const 0)
+ (i32.gt_s
+ (get_local $11)
+ (i32.const 0)
+ )
+ )
+ )
+ (i32.const 0)
+ )
+ (block
+ (if
+ (i32.lt_s
+ (i32.sub
+ (get_local $32)
+ (tee_local $7
+ (call $_fmt_u
+ (tee_local $7
+ (select
+ (get_local $25)
+ (get_local $11)
+ (i32.lt_s
+ (get_local $11)
+ (i32.const 0)
+ )
+ )
+ )
+ (i32.shr_s
+ (i32.shl
+ (i32.lt_s
+ (get_local $7)
+ (i32.const 0)
+ )
+ (i32.const 31)
+ )
+ (i32.const 31)
+ )
+ (get_local $37)
+ )
+ )
+ )
+ (i32.const 2)
+ )
+ (loop $while-in$105
+ (i32.store8
+ (tee_local $7
+ (i32.add
+ (get_local $7)
+ (i32.const -1)
+ )
+ )
+ (i32.const 48)
+ )
+ (br_if $while-in$105
+ (i32.lt_s
+ (i32.sub
+ (get_local $32)
+ (get_local $7)
+ )
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ (i32.store8
+ (i32.add
+ (get_local $7)
+ (i32.const -1)
+ )
+ (i32.and
+ (i32.add
+ (i32.and
+ (i32.shr_s
+ (get_local $11)
+ (i32.const 31)
+ )
+ (i32.const 2)
+ )
+ (i32.const 43)
+ )
+ (i32.const 255)
+ )
+ )
+ (i32.store8
+ (tee_local $7
+ (i32.add
+ (get_local $7)
+ (i32.const -2)
+ )
+ )
+ (i32.and
+ (get_local $6)
+ (i32.const 255)
+ )
+ )
+ (set_local $6
+ (i32.sub
+ (get_local $32)
+ (get_local $7)
+ )
+ )
+ (get_local $7)
+ )
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $17)
+ (tee_local $11
+ (i32.add
+ (i32.add
+ (i32.add
+ (i32.add
+ (get_local $30)
+ (i32.const 1)
+ )
+ (get_local $5)
+ )
+ (get_local $31)
+ )
+ (get_local $6)
+ )
+ )
+ (get_local $10)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $36)
+ (get_local $30)
+ (get_local $0)
+ )
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 48)
+ (get_local $17)
+ (get_local $11)
+ (i32.xor
+ (get_local $10)
+ (i32.const 65536)
+ )
+ )
+ (block $do-once$106
+ (if
+ (get_local $21)
+ (block
+ (set_local $7
+ (tee_local $12
+ (select
+ (get_local $8)
+ (get_local $12)
+ (i32.gt_u
+ (get_local $12)
+ (get_local $8)
+ )
+ )
+ )
+ )
+ (loop $while-in$109
+ (set_local $6
+ (call $_fmt_u
+ (i32.load
+ (get_local $7)
+ )
+ (i32.const 0)
+ (get_local $34)
+ )
+ )
+ (block $do-once$110
+ (if
+ (i32.eq
+ (get_local $7)
+ (get_local $12)
+ )
+ (block
+ (br_if $do-once$110
+ (i32.ne
+ (get_local $6)
+ (get_local $34)
+ )
+ )
+ (i32.store8
+ (get_local $38)
+ (i32.const 48)
+ )
+ (set_local $6
+ (get_local $38)
+ )
+ )
+ (block
+ (br_if $do-once$110
+ (i32.le_u
+ (get_local $6)
+ (get_local $24)
+ )
+ )
+ (loop $while-in$113
+ (i32.store8
+ (tee_local $6
+ (i32.add
+ (get_local $6)
+ (i32.const -1)
+ )
+ )
+ (i32.const 48)
+ )
+ (br_if $while-in$113
+ (i32.gt_u
+ (get_local $6)
+ (get_local $24)
+ )
+ )
+ )
+ )
+ )
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $6)
+ (i32.sub
+ (get_local $49)
+ (get_local $6)
+ )
+ (get_local $0)
+ )
+ )
+ )
+ (if
+ (i32.le_u
+ (tee_local $6
+ (i32.add
+ (get_local $7)
+ (i32.const 4)
+ )
+ )
+ (get_local $8)
+ )
+ (block
+ (set_local $7
+ (get_local $6)
+ )
+ (br $while-in$109)
+ )
+ )
+ )
+ (block $do-once$114
+ (if
+ (get_local $16)
+ (block
+ (br_if $do-once$114
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (i32.const 4143)
+ (i32.const 1)
+ (get_local $0)
+ )
+ )
+ )
+ )
+ )
+ (if
+ (i32.and
+ (i32.gt_s
+ (get_local $5)
+ (i32.const 0)
+ )
+ (i32.lt_u
+ (get_local $6)
+ (get_local $9)
+ )
+ )
+ (block
+ (set_local $7
+ (get_local $5)
+ )
+ (loop $while-in$117
+ (if
+ (i32.gt_u
+ (tee_local $5
+ (call $_fmt_u
+ (i32.load
+ (get_local $6)
+ )
+ (i32.const 0)
+ (get_local $34)
+ )
+ )
+ (get_local $24)
+ )
+ (loop $while-in$119
+ (i32.store8
+ (tee_local $5
+ (i32.add
+ (get_local $5)
+ (i32.const -1)
+ )
+ )
+ (i32.const 48)
+ )
+ (br_if $while-in$119
+ (i32.gt_u
+ (get_local $5)
+ (get_local $24)
+ )
+ )
+ )
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $5)
+ (select
+ (i32.const 9)
+ (get_local $7)
+ (i32.gt_s
+ (get_local $7)
+ (i32.const 9)
+ )
+ )
+ (get_local $0)
+ )
+ )
+ )
+ (set_local $5
+ (i32.add
+ (get_local $7)
+ (i32.const -9)
+ )
+ )
+ (if
+ (i32.and
+ (i32.gt_s
+ (get_local $7)
+ (i32.const 9)
+ )
+ (i32.lt_u
+ (tee_local $6
+ (i32.add
+ (get_local $6)
+ (i32.const 4)
+ )
+ )
+ (get_local $9)
+ )
+ )
+ (block
+ (set_local $7
+ (get_local $5)
+ )
+ (br $while-in$117)
+ )
+ )
+ )
+ )
+ )
+ (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 $16
+ (select
+ (get_local $9)
+ (i32.add
+ (get_local $12)
+ (i32.const 4)
+ )
+ (get_local $26)
+ )
+ )
+ (if
+ (i32.gt_s
+ (get_local $5)
+ (i32.const -1)
+ )
+ (block
+ (set_local $9
+ (i32.eqz
+ (get_local $19)
+ )
+ )
+ (set_local $6
+ (get_local $12)
+ )
+ (set_local $7
+ (get_local $5)
+ )
+ (loop $while-in$121
+ (set_local $8
+ (if
+ (i32.eq
+ (tee_local $5
+ (call $_fmt_u
+ (i32.load
+ (get_local $6)
+ )
+ (i32.const 0)
+ (get_local $34)
+ )
+ )
+ (get_local $34)
+ )
+ (block
+ (i32.store8
+ (get_local $38)
+ (i32.const 48)
+ )
+ (get_local $38)
+ )
+ (get_local $5)
+ )
+ )
+ (block $do-once$122
+ (if
+ (i32.eq
+ (get_local $6)
+ (get_local $12)
+ )
+ (block
+ (set_local $5
+ (i32.add
+ (get_local $8)
+ (i32.const 1)
+ )
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $8)
+ (i32.const 1)
+ (get_local $0)
+ )
+ )
+ )
+ (br_if $do-once$122
+ (i32.and
+ (get_local $9)
+ (i32.lt_s
+ (get_local $7)
+ (i32.const 1)
+ )
+ )
+ )
+ (br_if $do-once$122
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (i32.const 4143)
+ (i32.const 1)
+ (get_local $0)
+ )
+ )
+ )
+ (block
+ (if
+ (i32.gt_u
+ (get_local $8)
+ (get_local $24)
+ )
+ (set_local $5
+ (get_local $8)
+ )
+ (block
+ (set_local $5
+ (get_local $8)
+ )
+ (br $do-once$122)
+ )
+ )
+ (loop $while-in$125
+ (i32.store8
+ (tee_local $5
+ (i32.add
+ (get_local $5)
+ (i32.const -1)
+ )
+ )
+ (i32.const 48)
+ )
+ (br_if $while-in$125
+ (i32.gt_u
+ (get_local $5)
+ (get_local $24)
+ )
+ )
+ )
+ )
+ )
+ )
+ (set_local $8
+ (i32.sub
+ (get_local $49)
+ (get_local $5)
+ )
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (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)
+ )
+ )
+ )
+ (if
+ (i32.and
+ (i32.lt_u
+ (tee_local $6
+ (i32.add
+ (get_local $6)
+ (i32.const 4)
+ )
+ )
+ (get_local $16)
+ )
+ (i32.gt_s
+ (tee_local $5
+ (i32.sub
+ (get_local $7)
+ (get_local $8)
+ )
+ )
+ (i32.const -1)
+ )
+ )
+ (block
+ (set_local $7
+ (get_local $5)
+ )
+ (br $while-in$121)
+ )
+ )
+ )
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 48)
+ (i32.add
+ (get_local $5)
+ (i32.const 18)
+ )
+ (i32.const 18)
+ (i32.const 0)
+ )
+ (br_if $do-once$106
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $25)
+ (i32.sub
+ (get_local $32)
+ (get_local $25)
+ )
+ (get_local $0)
+ )
+ )
+ )
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $17)
+ (get_local $11)
+ (i32.xor
+ (get_local $10)
+ (i32.const 8192)
+ )
+ )
+ (select
+ (get_local $17)
+ (get_local $11)
+ (i32.lt_s
+ (get_local $11)
+ (get_local $17)
+ )
+ )
+ )
+ (block
+ (set_local $7
+ (select
(i32.const 0)
+ (get_local $30)
+ (tee_local $5
+ (i32.or
+ (f64.ne
+ (get_local $14)
+ (get_local $14)
+ )
+ (i32.const 0)
+ )
+ )
)
)
- (i32.store
- (tee_local $7
+ (set_local $8
+ (select
+ (select
+ (i32.const 4135)
+ (i32.const 4139)
+ (tee_local $6
+ (i32.ne
+ (i32.and
+ (get_local $16)
+ (i32.const 32)
+ )
+ (i32.const 0)
+ )
+ )
+ )
+ (select
+ (i32.const 4127)
+ (i32.const 4131)
+ (get_local $6)
+ )
+ (get_local $5)
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $17)
+ (tee_local $6
(i32.add
+ (get_local $7)
+ (i32.const 3)
+ )
+ )
+ (get_local $9)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (if
+ (i32.and
+ (tee_local $5
+ (i32.load
+ (get_local $0)
+ )
+ )
+ (i32.const 32)
+ )
+ (get_local $5)
+ (block
+ (drop
+ (call $___fwritex
+ (get_local $36)
+ (get_local $7)
+ (get_local $0)
+ )
+ )
+ (i32.load
+ (get_local $0)
+ )
+ )
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
(get_local $8)
- (i32.const -4)
+ (i32.const 3)
+ (get_local $0)
)
)
- (get_local $5)
)
- (get_local $7)
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $17)
+ (get_local $6)
+ (i32.xor
+ (get_local $10)
+ (i32.const 8192)
+ )
+ )
+ (select
+ (get_local $17)
+ (get_local $6)
+ (i32.lt_s
+ (get_local $6)
+ (get_local $17)
+ )
+ )
)
)
)
)
- (loop $while-in$75
- (block $while-out$74
- (br_if $while-out$74
- (i32.le_u
- (get_local $13)
- (get_local $7)
+ (br $label$continue$L1)
+ )
+ (set_local $6
+ (get_local $1)
+ )
+ (set_local $11
+ (get_local $7)
+ )
+ (set_local $8
+ (i32.const 0)
+ )
+ (set_local $9
+ (i32.const 4091)
+ )
+ (set_local $1
+ (get_local $23)
+ )
+ (br $jumpthreading$outer$7)
+ )
+ (set_local $9
+ (i32.and
+ (get_local $16)
+ (i32.const 32)
+ )
+ )
+ (if
+ (i32.and
+ (i32.eqz
+ (tee_local $10
+ (i32.load
+ (tee_local $6
+ (get_local $18)
)
)
- (if
- (i32.eq
- (i32.load
- (tee_local $5
+ )
+ )
+ (i32.eqz
+ (tee_local $6
+ (i32.load offset=4
+ (get_local $6)
+ )
+ )
+ )
+ )
+ (block
+ (set_local $6
+ (get_local $23)
+ )
+ (set_local $8
+ (i32.const 0)
+ )
+ (set_local $9
+ (i32.const 4091)
+ )
+ (br $jumpthreading$inner$7)
+ )
+ (block
+ (set_local $8
+ (get_local $23)
+ )
+ (loop $while-in$130
+ (i32.store8
+ (tee_local $8
+ (i32.add
+ (get_local $8)
+ (i32.const -1)
+ )
+ )
+ (i32.and
+ (i32.or
+ (i32.and
+ (i32.load8_s
(i32.add
- (get_local $13)
- (i32.const -4)
+ (i32.and
+ (get_local $10)
+ (i32.const 15)
+ )
+ (i32.const 4075)
+ )
+ )
+ (i32.const 255)
+ )
+ (get_local $9)
+ )
+ (i32.const 255)
+ )
+ )
+ (br_if $while-in$130
+ (i32.eqz
+ (i32.and
+ (i32.eqz
+ (tee_local $10
+ (call $_bitshift64Lshr
+ (get_local $10)
+ (get_local $6)
+ (i32.const 4)
)
)
)
- (i32.const 0)
+ (i32.eqz
+ (tee_local $6
+ (get_global $tempRet0)
+ )
+ )
)
- (set_local $13
- (get_local $5)
- )
- (br $while-out$74)
)
- (br $while-in$75)
)
- )
- (i32.store
- (get_local $25)
- (tee_local $5
- (i32.sub
- (i32.load
- (get_local $25)
- )
- (get_local $11)
- )
+ (set_local $6
+ (get_local $8)
)
)
(if
- (i32.gt_s
- (get_local $5)
- (i32.const 0)
- )
- (set_local $8
- (get_local $7)
+ (i32.or
+ (i32.eqz
+ (i32.and
+ (get_local $1)
+ (i32.const 8)
+ )
+ )
+ (i32.and
+ (i32.eqz
+ (i32.load
+ (tee_local $10
+ (get_local $18)
+ )
+ )
+ )
+ (i32.eqz
+ (i32.load offset=4
+ (get_local $10)
+ )
+ )
+ )
)
(block
- (set_local $6
- (get_local $13)
+ (set_local $8
+ (i32.const 0)
)
- (br $while-out$68)
+ (set_local $9
+ (i32.const 4091)
+ )
+ (br $jumpthreading$inner$7)
+ )
+ (block
+ (set_local $8
+ (i32.const 2)
+ )
+ (set_local $9
+ (i32.add
+ (i32.const 4091)
+ (i32.shr_s
+ (get_local $16)
+ (i32.const 4)
+ )
+ )
+ )
+ (br $jumpthreading$inner$7)
)
)
- (br $while-in$69)
+ )
+ )
+ (br $jumpthreading$outer$7)
+ )
+ (set_local $6
+ (call $_fmt_u
+ (get_local $1)
+ (get_local $6)
+ (get_local $23)
+ )
+ )
+ (set_local $1
+ (get_local $10)
+ )
+ (br $jumpthreading$inner$7)
+ )
+ (set_local $28
+ (i32.const 0)
+ )
+ (set_local $16
+ (i32.eqz
+ (tee_local $12
+ (call $_memchr
+ (get_local $1)
+ (i32.const 0)
+ (get_local $7)
+ )
+ )
+ )
+ )
+ (set_local $6
+ (get_local $1)
+ )
+ (set_local $10
+ (get_local $9)
+ )
+ (set_local $11
+ (select
+ (get_local $7)
+ (i32.sub
+ (get_local $12)
+ (get_local $1)
+ )
+ (get_local $16)
+ )
+ )
+ (set_local $8
+ (i32.const 0)
+ )
+ (set_local $9
+ (i32.const 4091)
+ )
+ (set_local $1
+ (select
+ (i32.add
+ (get_local $1)
+ (get_local $7)
+ )
+ (get_local $12)
+ (get_local $16)
+ )
+ )
+ (br $jumpthreading$outer$7)
+ )
+ (set_local $1
+ (i32.const 0)
+ )
+ (set_local $6
+ (i32.const 0)
+ )
+ (set_local $7
+ (i32.load
+ (get_local $18)
+ )
+ )
+ (loop $while-in$132
+ (block $while-out$131
+ (br_if $while-out$131
+ (i32.eqz
+ (tee_local $9
+ (i32.load
+ (get_local $7)
+ )
+ )
+ )
+ )
+ (br_if $while-out$131
+ (i32.or
+ (i32.lt_s
+ (tee_local $6
+ (call $_wctomb
+ (get_local $41)
+ (get_local $9)
+ )
+ )
+ (i32.const 0)
+ )
+ (i32.gt_u
+ (get_local $6)
+ (i32.sub
+ (get_local $8)
+ (get_local $1)
+ )
)
)
)
(set_local $7
- (get_local $9)
- )
- )
- (if
- (i32.lt_s
- (get_local $5)
- (i32.const 0)
- )
- (block
- (set_local $8
- (i32.add
- (i32.and
- (i32.div_s
- (i32.add
- (get_local $1)
- (i32.const 25)
- )
- (i32.const 9)
- )
- (i32.const -1)
- )
- (i32.const 1)
- )
- )
- (set_local $10
- (i32.eq
- (get_local $15)
- (i32.const 102)
- )
- )
- (set_local $23
- (get_local $6)
- )
- (loop $while-in$77
- (block $while-out$76
- (set_local $5
- (i32.gt_s
- (tee_local $6
- (i32.sub
- (i32.const 0)
- (get_local $5)
- )
- )
- (i32.const 9)
- )
- )
- (set_local $13
- (select
- (i32.const 9)
- (get_local $6)
- (get_local $5)
- )
- )
- (set_local $11
- (block $do-once$78
- (if
- (i32.lt_u
- (get_local $7)
- (get_local $23)
- )
- (block
- (set_local $70
- (i32.add
- (i32.shl
- (i32.const 1)
- (get_local $13)
- )
- (i32.const -1)
- )
- )
- (set_local $27
- (i32.shr_u
- (i32.const 1000000000)
- (get_local $13)
- )
- )
- (set_local $11
- (i32.const 0)
- )
- (set_local $17
- (get_local $7)
- )
- (loop $while-in$81
- (block $while-out$80
- (set_local $6
- (i32.and
- (tee_local $5
- (i32.load
- (get_local $17)
- )
- )
- (get_local $70)
- )
- )
- (i32.store
- (get_local $17)
- (i32.add
- (i32.shr_u
- (get_local $5)
- (get_local $13)
- )
- (get_local $11)
- )
- )
- (set_local $11
- (i32.mul
- (get_local $6)
- (get_local $27)
- )
- )
- (br_if $while-out$80
- (i32.ge_u
- (tee_local $17
- (i32.add
- (get_local $17)
- (i32.const 4)
- )
- )
- (get_local $23)
- )
- )
- (br $while-in$81)
- )
- )
- (set_local $5
- (select
- (i32.add
- (get_local $7)
- (i32.const 4)
- )
- (get_local $7)
- (i32.eq
- (i32.load
- (get_local $7)
- )
- (i32.const 0)
- )
- )
- )
- (br_if $do-once$78
- (get_local $5)
- (i32.eq
- (get_local $11)
- (i32.const 0)
- )
- )
- (i32.store
- (get_local $23)
- (get_local $11)
- )
- (set_local $23
- (i32.add
- (get_local $23)
- (i32.const 4)
- )
- )
- (get_local $5)
- )
- (select
- (i32.add
- (get_local $7)
- (i32.const 4)
- )
- (get_local $7)
- (i32.eq
- (i32.load
- (get_local $7)
- )
- (i32.const 0)
- )
- )
- )
- )
- )
- (set_local $5
- (i32.gt_s
- (i32.shr_s
- (i32.sub
- (get_local $23)
- (tee_local $7
- (select
- (get_local $9)
- (get_local $11)
- (get_local $10)
- )
- )
- )
- (i32.const 2)
- )
- (get_local $8)
- )
- )
- (set_local $6
- (select
- (i32.add
- (get_local $7)
- (i32.shl
- (get_local $8)
- (i32.const 2)
- )
- )
- (get_local $23)
- (get_local $5)
- )
- )
- (i32.store
- (get_local $25)
- (tee_local $5
- (i32.add
- (i32.load
- (get_local $25)
- )
- (get_local $13)
- )
- )
- )
- (if
- (i32.lt_s
- (get_local $5)
- (i32.const 0)
- )
- (block
- (set_local $7
- (get_local $11)
- )
- (set_local $23
- (get_local $6)
- )
- )
- (block
- (set_local $7
- (get_local $11)
- )
- (set_local $27
- (get_local $6)
- )
- (br $while-out$76)
- )
- )
- (br $while-in$77)
- )
- )
- )
- (set_local $27
- (get_local $6)
- )
- )
- (block $do-once$82
- (if
- (i32.lt_u
+ (i32.add
(get_local $7)
- (get_local $27)
- )
- (block
- (set_local $6
- (i32.mul
- (i32.shr_s
- (i32.sub
- (get_local $62)
- (get_local $7)
- )
- (i32.const 2)
- )
- (i32.const 9)
- )
- )
- (if
- (i32.lt_u
- (tee_local $5
- (i32.load
- (get_local $7)
- )
- )
- (i32.const 10)
- )
- (block
- (set_local $13
- (get_local $6)
- )
- (br $do-once$82)
- )
- (set_local $8
- (i32.const 10)
- )
- )
- (loop $while-in$85
- (block $while-out$84
- (set_local $6
- (i32.add
- (get_local $6)
- (i32.const 1)
- )
- )
- (if
- (i32.lt_u
- (get_local $5)
- (tee_local $8
- (i32.mul
- (get_local $8)
- (i32.const 10)
- )
- )
- )
- (block
- (set_local $13
- (get_local $6)
- )
- (br $while-out$84)
- )
- )
- (br $while-in$85)
- )
- )
- )
- (set_local $13
- (i32.const 0)
+ (i32.const 4)
)
)
- )
- (set_local $7
- (if
- (i32.lt_s
- (tee_local $5
- (i32.add
- (i32.sub
- (get_local $1)
- (select
- (get_local $13)
- (i32.const 0)
- (i32.ne
- (get_local $15)
- (i32.const 102)
- )
- )
- )
- (i32.shr_s
- (i32.shl
- (i32.and
- (tee_local $70
- (i32.ne
- (get_local $1)
- (i32.const 0)
- )
- )
- (tee_local $8
- (i32.eq
- (get_local $15)
- (i32.const 103)
- )
- )
- )
- (i32.const 31)
- )
- (i32.const 31)
- )
- )
- )
- (i32.add
- (i32.mul
- (i32.shr_s
- (i32.sub
- (get_local $27)
- (get_local $62)
- )
- (i32.const 2)
- )
- (i32.const 9)
- )
- (i32.const -9)
- )
- )
- (block
- (set_local $6
- (i32.add
- (i32.add
- (get_local $9)
- (i32.const 4)
- )
- (i32.shl
- (i32.add
- (i32.and
- (i32.div_s
- (tee_local $5
- (i32.add
- (get_local $5)
- (i32.const 9216)
- )
- )
- (i32.const 9)
- )
- (i32.const -1)
- )
- (i32.const -1024)
- )
- (i32.const 2)
- )
- )
- )
- (if
- (i32.lt_s
- (tee_local $11
- (i32.add
- (i32.and
- (i32.rem_s
- (get_local $5)
- (i32.const 9)
- )
- (i32.const -1)
- )
- (i32.const 1)
- )
- )
- (i32.const 9)
- )
- (block
- (set_local $5
- (i32.const 10)
- )
- (loop $while-in$87
- (block $while-out$86
- (set_local $5
- (i32.mul
- (get_local $5)
- (i32.const 10)
- )
- )
- (if
- (i32.eq
- (tee_local $11
- (i32.add
- (get_local $11)
- (i32.const 1)
- )
- )
- (i32.const 9)
- )
- (block
- (set_local $17
- (get_local $5)
- )
- (br $while-out$86)
- )
- )
- (br $while-in$87)
- )
- )
- )
- (set_local $17
- (i32.const 10)
- )
- )
- (block $do-once$88
- (if
- (i32.eqz
- (i32.and
- (tee_local $11
- (i32.eq
- (i32.add
- (get_local $6)
- (i32.const 4)
- )
- (get_local $27)
- )
- )
- (i32.eq
- (tee_local $15
- (i32.and
- (i32.rem_u
- (tee_local $5
- (i32.load
- (get_local $6)
- )
- )
- (get_local $17)
- )
- (i32.const -1)
- )
- )
- (i32.const 0)
- )
- )
- )
- (block
- (set_local $14
- (select
- (f64.const 9007199254740992)
- (f64.const 9007199254740994)
- (i32.eq
- (i32.and
- (i32.and
- (i32.div_u
- (get_local $5)
- (get_local $17)
- )
- (i32.const -1)
- )
- (i32.const 1)
- )
- (i32.const 0)
- )
- )
- )
- (set_local $30
- (if
- (i32.lt_u
- (get_local $15)
- (tee_local $10
- (i32.and
- (i32.div_s
- (get_local $17)
- (i32.const 2)
- )
- (i32.const -1)
- )
- )
- )
- (f64.const 0.5)
- (select
- (f64.const 1)
- (f64.const 1.5)
- (i32.and
- (get_local $11)
- (i32.eq
- (get_local $15)
- (get_local $10)
- )
- )
- )
- )
- )
- (set_local $14
- (block $do-once$90
- (if
- (i32.eq
- (get_local $51)
- (i32.const 0)
- )
- (get_local $14)
- (block
- (br_if $do-once$90
- (get_local $14)
- (i32.ne
- (i32.shr_s
- (i32.shl
- (i32.load8_s
- (get_local $39)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- (i32.const 45)
- )
- )
- (set_local $30
- (f64.neg
- (get_local $30)
- )
- )
- (f64.neg
- (get_local $14)
- )
- )
- )
- )
- )
- (i32.store
- (get_local $6)
- (tee_local $5
- (i32.sub
- (get_local $5)
- (get_local $15)
- )
- )
- )
- (br_if $do-once$88
- (f64.eq
- (f64.add
- (get_local $14)
- (get_local $30)
- )
- (get_local $14)
- )
- )
- (i32.store
- (get_local $6)
- (tee_local $5
- (i32.add
- (get_local $5)
- (get_local $17)
- )
- )
- )
- (if
- (i32.gt_u
- (get_local $5)
- (i32.const 999999999)
- )
- (loop $while-in$93
- (block $while-out$92
- (i32.store
- (get_local $6)
- (i32.const 0)
- )
- (set_local $7
- (if
- (i32.lt_u
- (tee_local $6
- (i32.add
- (get_local $6)
- (i32.const -4)
- )
- )
- (get_local $7)
- )
- (block
- (i32.store
- (tee_local $5
- (i32.add
- (get_local $7)
- (i32.const -4)
- )
- )
- (i32.const 0)
- )
- (get_local $5)
- )
- (get_local $7)
- )
- )
- (i32.store
- (get_local $6)
- (tee_local $5
- (i32.add
- (i32.load
- (get_local $6)
- )
- (i32.const 1)
- )
- )
- )
- (br_if $while-out$92
- (i32.le_u
- (get_local $5)
- (i32.const 999999999)
- )
- )
- (br $while-in$93)
- )
- )
- )
- (set_local $11
- (i32.mul
- (i32.shr_s
- (i32.sub
- (get_local $62)
- (get_local $7)
- )
- (i32.const 2)
- )
- (i32.const 9)
- )
- )
- (if
- (i32.lt_u
- (tee_local $5
- (i32.load
- (get_local $7)
- )
- )
- (i32.const 10)
- )
- (block
- (set_local $13
- (get_local $11)
- )
- (br $do-once$88)
- )
- (set_local $10
- (i32.const 10)
- )
- )
- (loop $while-in$95
- (block $while-out$94
- (set_local $11
- (i32.add
- (get_local $11)
- (i32.const 1)
- )
- )
- (if
- (i32.lt_u
- (get_local $5)
- (tee_local $10
- (i32.mul
- (get_local $10)
- (i32.const 10)
- )
- )
- )
- (block
- (set_local $13
- (get_local $11)
- )
- (br $while-out$94)
- )
- )
- (br $while-in$95)
- )
- )
- )
- )
- )
- (set_local $6
- (i32.gt_u
- (get_local $27)
- (tee_local $5
- (i32.add
- (get_local $6)
- (i32.const 4)
- )
- )
- )
- )
- (set_local $6
- (select
- (get_local $5)
- (get_local $27)
- (get_local $6)
- )
- )
- (get_local $7)
- )
- (block
- (set_local $6
- (get_local $27)
- )
- (get_local $7)
- )
- )
- )
- (set_local $27
- (i32.sub
- (i32.const 0)
- (get_local $13)
- )
- )
- (loop $while-in$97
- (block $while-out$96
- (if
- (i32.le_u
- (get_local $6)
- (get_local $7)
- )
- (block
- (set_local $11
- (i32.const 0)
- )
- (set_local $23
- (get_local $6)
- )
- (br $while-out$96)
- )
- )
- (if
- (i32.eq
- (i32.load
- (tee_local $5
- (i32.add
- (get_local $6)
- (i32.const -4)
- )
- )
- )
- (i32.const 0)
- )
- (set_local $6
- (get_local $5)
- )
- (block
- (set_local $11
- (i32.const 1)
- )
- (set_local $23
- (get_local $6)
- )
- (br $while-out$96)
- )
- )
- (br $while-in$97)
- )
- )
- (set_local $8
- (block $do-once$98
- (if
+ (br_if $while-in$132
+ (i32.gt_u
(get_local $8)
- (block
- (set_local $8
- (if
- (i32.and
- (i32.gt_s
- (tee_local $1
- (i32.add
- (i32.xor
- (i32.and
- (get_local $70)
- (i32.const 1)
- )
- (i32.const 1)
- )
- (get_local $1)
- )
- )
- (get_local $13)
- )
- (i32.gt_s
- (get_local $13)
- (i32.const -5)
- )
- )
- (block
- (set_local $10
- (i32.add
- (get_local $26)
- (i32.const -1)
- )
- )
- (i32.sub
- (i32.add
- (get_local $1)
- (i32.const -1)
- )
- (get_local $13)
- )
- )
- (block
- (set_local $10
- (i32.add
- (get_local $26)
- (i32.const -2)
- )
- )
- (i32.add
- (get_local $1)
- (i32.const -1)
- )
- )
- )
- )
- (if
- (i32.ne
- (tee_local $1
- (i32.and
- (get_local $18)
- (i32.const 8)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $15
- (get_local $8)
- )
- (set_local $26
- (get_local $10)
- )
- (br $do-once$98
- (get_local $1)
- )
- )
- )
- (block $do-once$100
- (if
- (get_local $11)
- (block
- (if
- (i32.eq
- (tee_local $1
- (i32.load
- (i32.add
- (get_local $23)
- (i32.const -4)
- )
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $6
- (i32.const 9)
- )
- (br $do-once$100)
- )
- )
- (if
- (i32.eq
- (i32.and
- (i32.rem_u
- (get_local $1)
- (i32.const 10)
- )
- (i32.const -1)
- )
- (i32.const 0)
- )
- (block
- (set_local $5
- (i32.const 10)
- )
- (set_local $6
- (i32.const 0)
- )
- )
- (block
- (set_local $6
- (i32.const 0)
- )
- (br $do-once$100)
- )
- )
- (loop $while-in$103
- (block $while-out$102
- (set_local $6
- (i32.add
- (get_local $6)
- (i32.const 1)
- )
- )
- (br_if $while-out$102
- (i32.ne
- (i32.and
- (i32.rem_u
- (get_local $1)
- (tee_local $5
- (i32.mul
- (get_local $5)
- (i32.const 10)
- )
- )
- )
- (i32.const -1)
- )
- (i32.const 0)
- )
- )
- (br $while-in$103)
- )
- )
- )
- (set_local $6
- (i32.const 9)
- )
- )
- )
- (set_local $1
- (i32.add
- (i32.mul
- (i32.shr_s
- (i32.sub
- (get_local $23)
- (get_local $62)
- )
- (i32.const 2)
- )
- (i32.const 9)
- )
- (i32.const -9)
- )
- )
- (if
- (i32.eq
- (i32.or
- (get_local $10)
- (i32.const 32)
- )
- (i32.const 102)
- )
- (block
- (set_local $1
- (i32.lt_s
- (tee_local $5
- (i32.sub
- (get_local $1)
- (get_local $6)
- )
- )
- (i32.const 0)
- )
- )
- (set_local $5
- (i32.lt_s
- (get_local $8)
- (tee_local $1
- (select
- (i32.const 0)
- (get_local $5)
- (get_local $1)
- )
- )
- )
- )
- (set_local $15
- (select
- (get_local $8)
- (get_local $1)
- (get_local $5)
- )
- )
- (set_local $26
- (get_local $10)
- )
- (i32.const 0)
- )
- (block
- (set_local $1
- (i32.lt_s
- (tee_local $5
- (i32.sub
- (i32.add
- (get_local $1)
- (get_local $13)
- )
- (get_local $6)
- )
- )
- (i32.const 0)
- )
- )
- (set_local $5
- (i32.lt_s
- (get_local $8)
- (tee_local $1
- (select
- (i32.const 0)
- (get_local $5)
- (get_local $1)
- )
- )
- )
- )
- (set_local $15
- (select
- (get_local $8)
- (get_local $1)
- (get_local $5)
- )
- )
- (set_local $26
- (get_local $10)
- )
- (i32.const 0)
- )
- )
- )
- (block
- (set_local $15
+ (tee_local $1
+ (i32.add
+ (get_local $6)
(get_local $1)
)
- (i32.and
- (get_local $18)
- (i32.const 8)
- )
)
)
)
)
- (set_local $17
- (i32.and
- (i32.ne
- (tee_local $1
- (i32.or
- (get_local $15)
- (get_local $8)
- )
- )
- (i32.const 0)
- )
- (i32.const 1)
- )
- )
- (set_local $13
- (if
- (tee_local $10
- (i32.eq
- (i32.or
- (get_local $26)
- (i32.const 32)
- )
- (i32.const 102)
- )
- )
- (block
- (set_local $6
- (select
- (get_local $13)
- (i32.const 0)
- (i32.gt_s
- (get_local $13)
- (i32.const 0)
- )
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $5
- (i32.shr_s
- (i32.shl
- (i32.lt_s
- (tee_local $6
- (select
- (get_local $27)
- (get_local $13)
- (i32.lt_s
- (get_local $13)
- (i32.const 0)
- )
- )
- )
- (i32.const 0)
- )
- (i32.const 31)
- )
- (i32.const 31)
- )
- )
- (if
- (i32.lt_s
- (i32.sub
- (get_local $40)
- (tee_local $5
- (call $_fmt_u
- (get_local $6)
- (get_local $5)
- (get_local $52)
- )
- )
- )
- (i32.const 2)
- )
- (loop $while-in$105
- (block $while-out$104
- (i32.store8
- (tee_local $5
- (i32.add
- (get_local $5)
- (i32.const -1)
- )
- )
- (i32.const 48)
- )
- (br_if $while-out$104
- (i32.ge_s
- (i32.sub
- (get_local $40)
- (get_local $5)
- )
- (i32.const 2)
- )
- )
- (br $while-in$105)
- )
- )
- )
- (i32.store8
- (i32.add
- (get_local $5)
- (i32.const -1)
- )
- (i32.and
- (i32.add
- (i32.and
- (i32.shr_s
- (get_local $13)
- (i32.const 31)
- )
- (i32.const 2)
- )
- (i32.const 43)
- )
- (i32.const 255)
- )
- )
- (i32.store8
- (tee_local $5
- (i32.add
- (get_local $5)
- (i32.const -2)
- )
- )
- (i32.and
- (get_local $26)
- (i32.const 255)
- )
- )
- (set_local $6
- (i32.sub
- (get_local $40)
- (get_local $5)
- )
- )
- (get_local $5)
- )
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (tee_local $6
- (i32.add
- (i32.add
- (i32.add
- (i32.add
- (get_local $51)
- (i32.const 1)
- )
- (get_local $15)
- )
- (get_local $17)
- )
- (get_local $6)
- )
- )
- (get_local $18)
- )
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (call $___fwritex
- (get_local $39)
- (get_local $51)
- (get_local $0)
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 48)
- (get_local $16)
- (get_local $6)
- (i32.xor
- (get_local $18)
- (i32.const 65536)
- )
- )
- (block $do-once$106
- (if
- (get_local $10)
- (block
- (set_local $7
- (tee_local $8
- (select
- (get_local $9)
- (get_local $7)
- (i32.gt_u
- (get_local $7)
- (get_local $9)
- )
- )
- )
- )
- (loop $while-in$109
- (block $while-out$108
- (set_local $5
- (call $_fmt_u
- (i32.load
- (get_local $7)
- )
- (i32.const 0)
- (get_local $45)
- )
- )
- (block $do-once$110
- (if
- (i32.eq
- (get_local $7)
- (get_local $8)
- )
- (block
- (br_if $do-once$110
- (i32.ne
- (get_local $5)
- (get_local $45)
- )
- )
- (i32.store8
- (get_local $53)
- (i32.const 48)
- )
- (set_local $5
- (get_local $53)
- )
- )
- (block
- (br_if $do-once$110
- (i32.le_u
- (get_local $5)
- (get_local $29)
- )
- )
- (loop $while-in$113
- (block $while-out$112
- (i32.store8
- (tee_local $5
- (i32.add
- (get_local $5)
- (i32.const -1)
- )
- )
- (i32.const 48)
- )
- (br_if $while-out$112
- (i32.le_u
- (get_local $5)
- (get_local $29)
- )
- )
- (br $while-in$113)
- )
- )
- )
- )
- )
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (drop
- (call $___fwritex
- (get_local $5)
- (i32.sub
- (get_local $75)
- (get_local $5)
- )
- (get_local $0)
- )
- )
- )
- (if
- (i32.gt_u
- (tee_local $7
- (i32.add
- (get_local $7)
- (i32.const 4)
- )
- )
- (get_local $9)
- )
- (block
- (set_local $5
- (get_local $7)
- )
- (br $while-out$108)
- )
- )
- (br $while-in$109)
- )
- )
- (block $do-once$114
- (if
- (i32.ne
- (get_local $1)
- (i32.const 0)
- )
- (block
- (br_if $do-once$114
- (i32.ne
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- )
- (drop
- (call $___fwritex
- (i32.const 4143)
- (i32.const 1)
- (get_local $0)
- )
- )
- )
- )
- )
- (if
- (i32.and
- (i32.gt_s
- (get_local $15)
- (i32.const 0)
- )
- (i32.lt_u
- (get_local $5)
- (get_local $23)
- )
- )
- (loop $while-in$117
- (block $while-out$116
- (if
- (i32.gt_u
- (tee_local $1
- (call $_fmt_u
- (i32.load
- (get_local $5)
- )
- (i32.const 0)
- (get_local $45)
- )
- )
- (get_local $29)
- )
- (loop $while-in$119
- (block $while-out$118
- (i32.store8
- (tee_local $1
- (i32.add
- (get_local $1)
- (i32.const -1)
- )
- )
- (i32.const 48)
- )
- (br_if $while-out$118
- (i32.le_u
- (get_local $1)
- (get_local $29)
- )
- )
- (br $while-in$119)
- )
- )
- )
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (drop
- (call $___fwritex
- (get_local $1)
- (select
- (i32.const 9)
- (get_local $15)
- (i32.gt_s
- (get_local $15)
- (i32.const 9)
- )
- )
- (get_local $0)
- )
- )
- )
- (set_local $1
- (i32.add
- (get_local $15)
- (i32.const -9)
- )
- )
- (if
- (i32.and
- (i32.gt_s
- (get_local $15)
- (i32.const 9)
- )
- (i32.lt_u
- (tee_local $5
- (i32.add
- (get_local $5)
- (i32.const 4)
- )
- )
- (get_local $23)
- )
- )
- (set_local $15
- (get_local $1)
- )
- (block
- (set_local $15
- (get_local $1)
- )
- (br $while-out$116)
- )
- )
- (br $while-in$117)
- )
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 48)
- (i32.add
- (get_local $15)
- (i32.const 9)
- )
- (i32.const 9)
- (i32.const 0)
- )
- )
- (block
- (set_local $11
- (select
- (get_local $23)
- (i32.add
- (get_local $7)
- (i32.const 4)
- )
- (get_local $11)
- )
- )
- (if
- (i32.gt_s
- (get_local $15)
- (i32.const -1)
- )
- (block
- (set_local $9
- (i32.eq
- (get_local $8)
- (i32.const 0)
- )
- )
- (set_local $5
- (get_local $7)
- )
- (loop $while-in$121
- (block $while-out$120
- (set_local $8
- (if
- (i32.eq
- (tee_local $1
- (call $_fmt_u
- (i32.load
- (get_local $5)
- )
- (i32.const 0)
- (get_local $45)
- )
- )
- (get_local $45)
- )
- (block
- (i32.store8
- (get_local $53)
- (i32.const 48)
- )
- (get_local $53)
- )
- (get_local $1)
- )
- )
- (block $do-once$122
- (if
- (i32.eq
- (get_local $5)
- (get_local $7)
- )
- (block
- (set_local $1
- (i32.add
- (get_local $8)
- (i32.const 1)
- )
- )
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (call $___fwritex
- (get_local $8)
- (i32.const 1)
- (get_local $0)
- )
- )
- (br_if $do-once$122
- (i32.and
- (get_local $9)
- (i32.lt_s
- (get_local $15)
- (i32.const 1)
- )
- )
- )
- (br_if $do-once$122
- (i32.ne
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- )
- (drop
- (call $___fwritex
- (i32.const 4143)
- (i32.const 1)
- (get_local $0)
- )
- )
- )
- (block
- (if
- (i32.gt_u
- (get_local $8)
- (get_local $29)
- )
- (set_local $1
- (get_local $8)
- )
- (block
- (set_local $1
- (get_local $8)
- )
- (br $do-once$122)
- )
- )
- (loop $while-in$125
- (block $while-out$124
- (i32.store8
- (tee_local $1
- (i32.add
- (get_local $1)
- (i32.const -1)
- )
- )
- (i32.const 48)
- )
- (br_if $while-out$124
- (i32.le_u
- (get_local $1)
- (get_local $29)
- )
- )
- (br $while-in$125)
- )
- )
- )
- )
- )
- (set_local $8
- (i32.sub
- (get_local $75)
- (get_local $1)
- )
- )
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (drop
- (call $___fwritex
- (get_local $1)
- (select
- (get_local $8)
- (get_local $15)
- (i32.gt_s
- (get_local $15)
- (get_local $8)
- )
- )
- (get_local $0)
- )
- )
- )
- (br_if $while-out$120
- (i32.eqz
- (i32.and
- (i32.lt_u
- (tee_local $5
- (i32.add
- (get_local $5)
- (i32.const 4)
- )
- )
- (get_local $11)
- )
- (i32.gt_s
- (tee_local $15
- (i32.sub
- (get_local $15)
- (get_local $8)
- )
- )
- (i32.const -1)
- )
- )
- )
- )
- (br $while-in$121)
- )
- )
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 48)
- (i32.add
- (get_local $15)
- (i32.const 18)
- )
- (i32.const 18)
- (i32.const 0)
- )
- (br_if $do-once$106
- (i32.ne
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- )
- (drop
- (call $___fwritex
- (get_local $13)
- (i32.sub
- (get_local $40)
- (get_local $13)
- )
- (get_local $0)
- )
- )
- )
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (get_local $6)
- (i32.xor
- (get_local $18)
- (i32.const 8192)
- )
- )
- (select
- (get_local $16)
- (get_local $6)
- (i32.lt_s
- (get_local $6)
- (get_local $16)
- )
- )
)
- (block
- (set_local $5
- (select
- (i32.const 4127)
- (i32.const 4131)
- (tee_local $8
- (i32.ne
- (i32.and
- (get_local $26)
- (i32.const 32)
- )
- (i32.const 0)
- )
- )
- )
+ (if
+ (i32.lt_s
+ (get_local $6)
+ (i32.const 0)
)
- (set_local $6
- (select
- (i32.const 0)
- (get_local $51)
- (tee_local $1
- (i32.or
- (f64.ne
- (get_local $14)
- (get_local $14)
- )
- (i32.const 0)
- )
- )
+ (block
+ (set_local $15
+ (i32.const -1)
)
- )
- (set_local $8
- (select
- (select
- (i32.const 4135)
- (i32.const 4139)
- (get_local $8)
- )
- (get_local $5)
- (get_local $1)
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (tee_local $5
- (i32.add
- (get_local $6)
- (i32.const 3)
- )
- )
- (get_local $7)
- )
- (if
- (i32.eq
- (i32.and
- (if
- (i32.eq
- (i32.and
- (tee_local $1
- (i32.load
- (get_local $0)
- )
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (block
- (drop
- (call $___fwritex
- (get_local $39)
- (get_local $6)
- (get_local $0)
- )
- )
- (i32.load
- (get_local $0)
- )
- )
- (get_local $1)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (call $___fwritex
- (get_local $8)
- (i32.const 3)
- (get_local $0)
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (get_local $5)
- (i32.xor
- (get_local $18)
- (i32.const 8192)
- )
- )
- (select
- (get_local $16)
- (get_local $5)
- (i32.lt_s
- (get_local $5)
- (get_local $16)
- )
+ (br $label$break$L1)
)
)
- )
- )
- )
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
- )
- (set_local $47
- (get_local $20)
- )
- (set_local $37
- (get_local $18)
- )
- (set_local $42
- (get_local $10)
- )
- (set_local $43
- (i32.const 0)
- )
- (set_local $48
- (i32.const 4091)
- )
- (set_local $49
- (get_local $28)
- )
- )
- (block $label$break$L308
- (if
- (i32.eq
- (get_local $12)
- (i32.const 64)
- )
- (block
- (set_local $7
- (i32.and
- (get_local $68)
- (i32.const 32)
- )
- )
- (set_local $58
- (if
- (i32.and
- (i32.eq
- (tee_local $5
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $17)
+ (get_local $1)
+ (get_local $10)
+ )
+ (if
+ (get_local $1)
+ (block
+ (set_local $6
+ (i32.const 0)
+ )
+ (set_local $7
(i32.load
- (tee_local $1
- (get_local $19)
- )
+ (get_local $18)
)
)
- (i32.const 0)
- )
- (i32.eq
- (tee_local $1
- (i32.load offset=4
- (get_local $1)
- )
- )
- (i32.const 0)
- )
- )
- (block
- (set_local $34
- (get_local $46)
- )
- (set_local $32
- (get_local $57)
- )
- (set_local $35
- (i32.const 0)
- )
- (set_local $36
- (i32.const 4091)
- )
- (set_local $12
- (i32.const 77)
- )
- (get_local $28)
- )
- (block
- (set_local $6
- (get_local $28)
- )
- (loop $while-in$130
- (block $while-out$129
- (i32.store8
- (tee_local $6
- (i32.add
- (get_local $6)
- (i32.const -1)
- )
- )
- (i32.and
- (i32.or
- (i32.and
- (i32.load8_s
- (i32.add
- (i32.and
- (get_local $5)
- (i32.const 15)
- )
- (i32.const 4075)
- )
- )
- (i32.const 255)
- )
- (get_local $7)
- )
- (i32.const 255)
- )
- )
- (br_if $while-out$129
- (i32.and
- (i32.eq
- (tee_local $5
- (call $_bitshift64Lshr
- (get_local $5)
- (get_local $1)
- (i32.const 4)
- )
- )
- (i32.const 0)
- )
- (i32.eq
- (tee_local $1
- (get_global $tempRet0)
- )
- (i32.const 0)
- )
- )
- )
- (br $while-in$130)
- )
- )
- (if
- (i32.or
- (i32.eq
- (i32.and
- (get_local $46)
- (i32.const 8)
- )
- (i32.const 0)
- )
- (i32.and
- (i32.eq
- (i32.load
- (tee_local $1
- (get_local $19)
- )
- )
- (i32.const 0)
- )
- (i32.eq
- (i32.load offset=4
- (get_local $1)
- )
- (i32.const 0)
- )
- )
- )
- (block
- (set_local $34
- (get_local $46)
- )
- (set_local $32
- (get_local $57)
- )
- (set_local $35
- (i32.const 0)
- )
- (set_local $36
- (i32.const 4091)
- )
- (set_local $12
- (i32.const 77)
- )
- (get_local $6)
- )
- (block
- (set_local $34
- (get_local $46)
- )
- (set_local $32
- (get_local $57)
- )
- (set_local $35
- (i32.const 2)
- )
- (set_local $36
- (i32.add
- (i32.const 4091)
- (i32.shr_s
- (get_local $68)
- (i32.const 4)
- )
- )
- )
- (set_local $12
- (i32.const 77)
- )
- (get_local $6)
- )
- )
- )
- )
- )
- )
- (if
- (i32.eq
- (get_local $12)
- (i32.const 76)
- )
- (block
- (set_local $58
- (call $_fmt_u
- (get_local $33)
- (get_local $59)
- (get_local $28)
- )
- )
- (set_local $34
- (get_local $18)
- )
- (set_local $32
- (get_local $10)
- )
- (set_local $35
- (get_local $60)
- )
- (set_local $36
- (get_local $61)
- )
- (set_local $12
- (i32.const 77)
- )
- )
- (if
- (i32.eq
- (get_local $12)
- (i32.const 82)
- )
- (block
- (set_local $12
- (i32.const 0)
- )
- (set_local $5
- (i32.eq
- (tee_local $1
- (call $_memchr
- (get_local $50)
- (i32.const 0)
- (get_local $10)
- )
- )
- (i32.const 0)
- )
- )
- (set_local $47
- (get_local $50)
- )
- (set_local $37
- (get_local $7)
- )
- (set_local $42
- (select
- (get_local $10)
- (i32.sub
- (get_local $1)
- (get_local $50)
- )
- (get_local $5)
- )
- )
- (set_local $43
- (i32.const 0)
- )
- (set_local $48
- (i32.const 4091)
- )
- (set_local $49
- (select
- (i32.add
- (get_local $50)
- (get_local $10)
- )
- (get_local $1)
- (get_local $5)
- )
- )
- )
- (if
- (i32.eq
- (get_local $12)
- (i32.const 86)
- )
- (block
- (set_local $12
- (i32.const 0)
- )
- (set_local $7
- (i32.const 0)
- )
- (set_local $5
- (i32.const 0)
- )
- (set_local $6
- (i32.load
- (get_local $19)
- )
- )
- (loop $while-in$132
- (block $while-out$131
- (br_if $while-out$131
- (i32.eq
- (tee_local $1
+ (loop $while-in$134
+ (if
+ (i32.eqz
+ (tee_local $8
(i32.load
- (get_local $6)
- )
- )
- (i32.const 0)
- )
- )
- (br_if $while-out$131
- (i32.or
- (i32.lt_s
- (tee_local $5
- (call $_wctomb
- (get_local $63)
- (get_local $1)
- )
- )
- (i32.const 0)
- )
- (i32.gt_u
- (get_local $5)
- (i32.sub
- (get_local $69)
(get_local $7)
)
)
)
+ (block
+ (set_local $6
+ (get_local $1)
+ )
+ (br $jumpthreading$inner$6)
+ )
)
- (set_local $6
+ (set_local $7
(i32.add
- (get_local $6)
+ (get_local $7)
(i32.const 4)
)
)
(if
- (i32.gt_u
- (get_local $69)
- (tee_local $1
+ (i32.gt_s
+ (tee_local $6
(i32.add
- (get_local $5)
- (get_local $7)
- )
- )
- )
- (set_local $7
- (get_local $1)
- )
- (block
- (set_local $7
- (get_local $1)
- )
- (br $while-out$131)
- )
- )
- (br $while-in$132)
- )
- )
- (if
- (i32.lt_s
- (get_local $5)
- (i32.const 0)
- )
- (block
- (set_local $24
- (i32.const -1)
- )
- (br $label$break$L1)
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (get_local $7)
- (get_local $18)
- )
- (if
- (i32.eq
- (get_local $7)
- (i32.const 0)
- )
- (block
- (set_local $38
- (i32.const 0)
- )
- (set_local $12
- (i32.const 98)
- )
- )
- (block
- (set_local $6
- (i32.const 0)
- )
- (set_local $8
- (i32.load
- (get_local $19)
- )
- )
- (loop $while-in$134
- (block $while-out$133
- (if
- (i32.eq
- (tee_local $1
- (i32.load
+ (tee_local $8
+ (call $_wctomb
+ (get_local $41)
(get_local $8)
)
)
- (i32.const 0)
- )
- (block
- (set_local $38
- (get_local $7)
- )
- (set_local $12
- (i32.const 98)
- )
- (br $label$break$L308)
+ (get_local $6)
)
)
- (set_local $8
- (i32.add
- (get_local $8)
- (i32.const 4)
- )
+ (get_local $1)
+ )
+ (block
+ (set_local $6
+ (get_local $1)
)
- (if
- (i32.gt_s
- (tee_local $1
- (i32.add
- (tee_local $5
- (call $_wctomb
- (get_local $63)
- (get_local $1)
- )
- )
- (get_local $6)
- )
- )
- (get_local $7)
- )
- (block
- (set_local $38
- (get_local $7)
- )
- (set_local $12
- (i32.const 98)
- )
- (br $label$break$L308)
- )
- )
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (call $___fwritex
- (get_local $63)
- (get_local $5)
+ (br $jumpthreading$inner$6)
+ )
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
(get_local $0)
)
+ (i32.const 32)
)
- (if
- (i32.lt_u
- (get_local $1)
- (get_local $7)
- )
- (set_local $6
- (get_local $1)
- )
- (block
- (set_local $38
- (get_local $7)
- )
- (set_local $12
- (i32.const 98)
- )
- (br $while-out$133)
- )
- )
- (br $while-in$134)
)
+ (drop
+ (call $___fwritex
+ (get_local $41)
+ (get_local $8)
+ (get_local $0)
+ )
+ )
+ )
+ (br_if $while-in$134
+ (i32.lt_u
+ (get_local $6)
+ (get_local $1)
+ )
+ )
+ (block
+ (set_local $6
+ (get_local $1)
+ )
+ (br $jumpthreading$inner$6)
+ )
+ )
+ )
+ (block
+ (set_local $6
+ (i32.const 0)
+ )
+ (br $jumpthreading$inner$6)
+ )
+ )
+ (br $jumpthreading$outer$7)
+ )
+ (set_local $28
+ (i32.const 0)
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $17)
+ (get_local $6)
+ (i32.xor
+ (get_local $10)
+ (i32.const 8192)
+ )
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (set_local $5
+ (select
+ (get_local $17)
+ (get_local $6)
+ (i32.gt_s
+ (get_local $17)
+ (get_local $6)
+ )
+ )
+ )
+ (br $label$continue$L1)
+ )
+ (set_local $28
+ (i32.const 0)
+ )
+ (set_local $10
+ (select
+ (i32.and
+ (get_local $1)
+ (i32.const -65537)
+ )
+ (get_local $1)
+ (i32.gt_s
+ (get_local $7)
+ (i32.const -1)
+ )
+ )
+ )
+ (set_local $6
+ (if
+ (i32.or
+ (i32.ne
+ (get_local $7)
+ (i32.const 0)
+ )
+ (tee_local $1
+ (i32.or
+ (i32.ne
+ (i32.load
+ (tee_local $1
+ (get_local $18)
+ )
+ )
+ (i32.const 0)
+ )
+ (i32.ne
+ (i32.load offset=4
+ (get_local $1)
+ )
+ (i32.const 0)
)
)
)
)
+ (block
+ (set_local $11
+ (select
+ (get_local $7)
+ (tee_local $1
+ (i32.add
+ (i32.xor
+ (i32.and
+ (get_local $1)
+ (i32.const 1)
+ )
+ (i32.const 1)
+ )
+ (i32.sub
+ (get_local $45)
+ (get_local $6)
+ )
+ )
+ )
+ (i32.gt_s
+ (get_local $7)
+ (get_local $1)
+ )
+ )
+ )
+ (set_local $1
+ (get_local $23)
+ )
+ (get_local $6)
+ )
+ (block
+ (set_local $11
+ (i32.const 0)
+ )
+ (set_local $1
+ (get_local $23)
+ )
+ (get_local $23)
+ )
)
)
)
- )
- )
- (if
- (i32.eq
- (get_local $12)
- (i32.const 98)
- )
- (block
- (set_local $12
- (i32.const 0)
- )
(call $_pad
(get_local $0)
(i32.const 32)
- (get_local $16)
- (get_local $38)
- (i32.xor
- (get_local $18)
- (i32.const 8192)
- )
- )
- (set_local $20
- (get_local $9)
- )
- (set_local $1
- (select
- (get_local $16)
- (get_local $38)
- (i32.gt_s
- (get_local $16)
- (get_local $38)
- )
- )
- )
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
- )
- )
- (if
- (i32.eq
- (get_local $12)
- (i32.const 77)
- )
- (block
- (set_local $12
- (i32.const 0)
- )
- (set_local $5
- (select
- (i32.and
- (get_local $34)
- (i32.const -65537)
- )
- (get_local $34)
- (i32.gt_s
- (get_local $32)
- (i32.const -1)
- )
- )
- )
- (set_local $47
- (if
- (i32.or
- (i32.ne
- (get_local $32)
- (i32.const 0)
- )
+ (tee_local $7
+ (select
(tee_local $1
- (i32.or
- (i32.ne
- (i32.load
- (tee_local $1
- (get_local $19)
- )
- )
- (i32.const 0)
- )
- (i32.ne
- (i32.load offset=4
- (get_local $1)
- )
- (i32.const 0)
- )
- )
- )
- )
- (block
- (set_local $7
- (i32.gt_s
- (get_local $32)
- (tee_local $1
- (i32.add
- (i32.xor
- (i32.and
+ (i32.add
+ (get_local $8)
+ (tee_local $11
+ (select
+ (tee_local $12
+ (i32.sub
(get_local $1)
- (i32.const 1)
+ (get_local $6)
)
- (i32.const 1)
)
- (i32.sub
- (get_local $71)
- (get_local $58)
+ (get_local $11)
+ (i32.lt_s
+ (get_local $11)
+ (get_local $12)
)
)
)
)
)
- (set_local $37
- (get_local $5)
- )
- (set_local $42
- (select
- (get_local $32)
- (get_local $1)
- (get_local $7)
- )
- )
- (set_local $43
- (get_local $35)
- )
- (set_local $48
- (get_local $36)
- )
- (set_local $49
- (get_local $28)
- )
- (get_local $58)
- )
- (block
- (set_local $37
- (get_local $5)
- )
- (set_local $42
- (i32.const 0)
- )
- (set_local $43
- (get_local $35)
- )
- (set_local $48
- (get_local $36)
- )
- (set_local $49
- (get_local $28)
- )
- (get_local $28)
- )
- )
- )
- )
- )
- (set_local $1
- (i32.lt_s
- (get_local $42)
- (tee_local $7
- (i32.sub
- (get_local $49)
- (get_local $47)
- )
- )
- )
- )
- (set_local $5
- (i32.lt_s
- (get_local $16)
- (tee_local $1
- (i32.add
- (get_local $43)
- (tee_local $6
- (select
- (get_local $7)
- (get_local $42)
+ (get_local $17)
+ (i32.lt_s
+ (get_local $17)
(get_local $1)
)
)
)
- )
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (tee_local $5
- (select
(get_local $1)
- (get_local $16)
+ (get_local $10)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $9)
+ (get_local $8)
+ (get_local $0)
+ )
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 48)
+ (get_local $7)
+ (get_local $1)
+ (i32.xor
+ (get_local $10)
+ (i32.const 65536)
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 48)
+ (get_local $11)
+ (get_local $12)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $6)
+ (get_local $12)
+ (get_local $0)
+ )
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $7)
+ (get_local $1)
+ (i32.xor
+ (get_local $10)
+ (i32.const 8192)
+ )
+ )
+ (set_local $1
(get_local $5)
)
- )
- (get_local $1)
- (get_local $37)
- )
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
+ (set_local $5
+ (get_local $7)
)
- (i32.const 0)
- )
- (call $___fwritex
- (get_local $48)
- (get_local $43)
- (get_local $0)
+ (br $label$continue$L1)
)
)
- (call $_pad
- (get_local $0)
- (i32.const 48)
- (get_local $5)
- (get_local $1)
- (i32.xor
- (get_local $37)
- (i32.const 65536)
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 48)
- (get_local $6)
- (get_local $7)
- (i32.const 0)
- )
- (if
- (i32.eq
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- (call $___fwritex
- (get_local $47)
- (get_local $7)
- (get_local $0)
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $5)
- (get_local $1)
- (i32.xor
- (get_local $37)
- (i32.const 8192)
- )
- )
- (set_local $20
- (get_local $9)
- )
- (set_local $1
- (get_local $5)
- )
- (set_local $8
- (get_local $21)
- )
- (br $label$continue$L1)
+ (br $label$break$L343)
)
- )
- (block $label$break$L343
(if
- (i32.eq
- (get_local $12)
- (i32.const 242)
+ (i32.eqz
+ (get_local $0)
)
(if
- (i32.eq
- (get_local $0)
- (i32.const 0)
- )
- (if
- (i32.eq
- (get_local $83)
- (i32.const 0)
+ (get_local $13)
+ (block
+ (set_local $0
+ (i32.const 1)
)
- (set_local $24
- (i32.const 0)
- )
- (block
- (set_local $1
- (i32.const 1)
- )
- (loop $while-in$137
- (block $while-out$136
- (br_if $while-out$136
- (i32.eq
- (tee_local $0
- (i32.load
- (i32.add
- (get_local $4)
- (i32.shl
- (get_local $1)
- (i32.const 2)
- )
- )
- )
- )
- (i32.const 0)
- )
- )
- (call $_pop_arg_336
- (i32.add
- (get_local $3)
- (i32.shl
- (get_local $1)
- (i32.const 3)
- )
- )
- (get_local $0)
- (get_local $2)
- )
- (if
- (i32.ge_s
- (tee_local $1
+ (loop $while-in$137
+ (block $while-out$136
+ (br_if $while-out$136
+ (i32.eqz
+ (tee_local $1
+ (i32.load
(i32.add
- (get_local $1)
- (i32.const 1)
- )
- )
- (i32.const 10)
- )
- (block
- (set_local $24
- (i32.const 1)
- )
- (br $label$break$L343)
- )
- )
- (br $while-in$137)
- )
- )
- (if
- (i32.lt_s
- (get_local $1)
- (i32.const 10)
- )
- (loop $while-in$139
- (block $while-out$138
- (set_local $0
- (i32.add
- (get_local $1)
- (i32.const 1)
- )
- )
- (if
- (i32.ne
- (i32.load
- (i32.add
- (get_local $4)
- (i32.shl
- (get_local $1)
- (i32.const 2)
- )
+ (get_local $4)
+ (i32.shl
+ (get_local $0)
+ (i32.const 2)
)
)
- (i32.const 0)
- )
- (block
- (set_local $24
- (i32.const -1)
- )
- (br $label$break$L343)
)
)
- (if
- (i32.lt_s
+ )
+ )
+ (call $_pop_arg_336
+ (i32.add
+ (get_local $3)
+ (i32.shl
+ (get_local $0)
+ (i32.const 3)
+ )
+ )
+ (get_local $1)
+ (get_local $2)
+ )
+ (br_if $while-in$137
+ (i32.lt_s
+ (tee_local $0
+ (i32.add
(get_local $0)
- (i32.const 10)
+ (i32.const 1)
)
- (set_local $1
+ )
+ (i32.const 10)
+ )
+ )
+ (block
+ (set_local $15
+ (i32.const 1)
+ )
+ (br $label$break$L343)
+ )
+ )
+ )
+ (if
+ (i32.lt_s
+ (get_local $0)
+ (i32.const 10)
+ )
+ (loop $while-in$139
+ (set_local $1
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ (if
+ (i32.load
+ (i32.add
+ (get_local $4)
+ (i32.shl
(get_local $0)
+ (i32.const 2)
)
- (block
- (set_local $24
- (i32.const 1)
- )
- (br $while-out$138)
- )
+ )
+ )
+ (block
+ (set_local $15
+ (i32.const -1)
+ )
+ (br $label$break$L343)
+ )
+ )
+ (if
+ (i32.lt_s
+ (get_local $1)
+ (i32.const 10)
+ )
+ (block
+ (set_local $0
+ (get_local $1)
)
(br $while-in$139)
)
+ (set_local $15
+ (i32.const 1)
+ )
)
- (set_local $24
- (i32.const 1)
- )
+ )
+ (set_local $15
+ (i32.const 1)
)
)
)
- (set_local $24
- (get_local $82)
+ (set_local $15
+ (i32.const 0)
)
)
)
)
(set_global $STACKTOP
- (get_local $31)
+ (get_local $27)
)
- (get_local $24)
+ (get_local $15)
)
(func $_pop_arg_336 (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
@@ -8753,22 +7701,27 @@
(i32.const 4)
)
)
- (set_local $2
+ (i32.store
+ (get_local $0)
+ (tee_local $1
+ (i32.shr_s
+ (i32.shl
+ (i32.and
+ (get_local $3)
+ (i32.const 65535)
+ )
+ (i32.const 16)
+ )
+ (i32.const 16)
+ )
+ )
+ )
+ (i32.store offset=4
+ (get_local $0)
(i32.shr_s
(i32.shl
(i32.lt_s
- (tee_local $1
- (i32.shr_s
- (i32.shl
- (i32.and
- (get_local $3)
- (i32.const 65535)
- )
- (i32.const 16)
- )
- (i32.const 16)
- )
- )
+ (get_local $1)
(i32.const 0)
)
(i32.const 31)
@@ -8776,14 +7729,6 @@
(i32.const 31)
)
)
- (i32.store
- (get_local $0)
- (get_local $1)
- )
- (i32.store offset=4
- (get_local $0)
- (get_local $2)
- )
(br $label$break$L1)
)
(set_local $3
@@ -8843,22 +7788,27 @@
(i32.const 4)
)
)
- (set_local $2
+ (i32.store
+ (get_local $0)
+ (tee_local $1
+ (i32.shr_s
+ (i32.shl
+ (i32.and
+ (get_local $3)
+ (i32.const 255)
+ )
+ (i32.const 24)
+ )
+ (i32.const 24)
+ )
+ )
+ )
+ (i32.store offset=4
+ (get_local $0)
(i32.shr_s
(i32.shl
(i32.lt_s
- (tee_local $1
- (i32.shr_s
- (i32.shl
- (i32.and
- (get_local $3)
- (i32.const 255)
- )
- (i32.const 24)
- )
- (i32.const 24)
- )
- )
+ (get_local $1)
(i32.const 0)
)
(i32.const 31)
@@ -8866,14 +7816,6 @@
(i32.const 31)
)
)
- (i32.store
- (get_local $0)
- (get_local $1)
- )
- (i32.store offset=4
- (get_local $0)
- (get_local $2)
- )
(br $label$break$L1)
)
(set_local $3
@@ -8972,7 +7914,7 @@
(func $_fmt_u (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
- (set_local $0
+ (set_local $1
(if
(i32.or
(i32.gt_u
@@ -8980,9 +7922,8 @@
(i32.const 0)
)
(i32.and
- (i32.eq
+ (i32.eqz
(get_local $1)
- (i32.const 0)
)
(i32.gt_u
(get_local $0)
@@ -8991,151 +7932,129 @@
)
)
(block
- (set_local $3
- (get_local $0)
- )
- (set_local $4
- (get_local $1)
- )
(loop $while-in$1
- (block $while-out$0
- (set_local $0
- (call $___uremdi3
- (get_local $3)
- (get_local $4)
- (i32.const 10)
- (i32.const 0)
- )
+ (set_local $3
+ (call $___uremdi3
+ (get_local $0)
+ (get_local $1)
+ (i32.const 10)
+ (i32.const 0)
)
- (i32.store8
- (tee_local $2
- (i32.add
- (get_local $2)
- (i32.const -1)
- )
- )
- (i32.and
- (i32.or
- (get_local $0)
- (i32.const 48)
- )
- (i32.const 255)
- )
- )
- (set_local $0
- (call $___udivdi3
- (get_local $3)
- (get_local $4)
- (i32.const 10)
- (i32.const 0)
- )
- )
- (set_local $1
- (get_global $tempRet0)
- )
- (if
- (i32.or
- (i32.gt_u
- (get_local $4)
- (i32.const 9)
- )
- (i32.and
- (i32.eq
- (get_local $4)
- (i32.const 9)
- )
- (i32.gt_u
- (get_local $3)
- (i32.const -1)
- )
- )
- )
- (block
- (set_local $3
- (get_local $0)
- )
- (set_local $4
- (get_local $1)
- )
- )
- (br $while-out$0)
- )
- (br $while-in$1)
)
- )
- (set_local $3
- (get_local $0)
- )
- (get_local $2)
- )
- (block
- (set_local $3
- (get_local $0)
- )
- (get_local $2)
- )
- )
- )
- (if
- (i32.ne
- (get_local $3)
- (i32.const 0)
- )
- (block
- (set_local $1
- (get_local $0)
- )
- (loop $while-in$3
- (block $while-out$2
(i32.store8
- (tee_local $1
+ (tee_local $2
(i32.add
- (get_local $1)
+ (get_local $2)
(i32.const -1)
)
)
(i32.and
(i32.or
- (i32.and
- (i32.rem_u
- (get_local $3)
- (i32.const 10)
- )
- (i32.const -1)
- )
+ (get_local $3)
(i32.const 48)
)
(i32.const 255)
)
)
- (set_local $0
- (i32.and
- (i32.div_u
+ (set_local $3
+ (call $___udivdi3
+ (get_local $0)
+ (get_local $1)
+ (i32.const 10)
+ (i32.const 0)
+ )
+ )
+ (set_local $4
+ (get_global $tempRet0)
+ )
+ (if
+ (i32.or
+ (i32.gt_u
+ (get_local $1)
+ (i32.const 9)
+ )
+ (i32.and
+ (i32.eq
+ (get_local $1)
+ (i32.const 9)
+ )
+ (i32.gt_u
+ (get_local $0)
+ (i32.const -1)
+ )
+ )
+ )
+ (block
+ (set_local $0
(get_local $3)
+ )
+ (set_local $1
+ (get_local $4)
+ )
+ (br $while-in$1)
+ )
+ (set_local $0
+ (get_local $3)
+ )
+ )
+ )
+ (get_local $2)
+ )
+ (get_local $2)
+ )
+ )
+ (if
+ (get_local $0)
+ (loop $while-in$3
+ (i32.store8
+ (tee_local $1
+ (i32.add
+ (get_local $1)
+ (i32.const -1)
+ )
+ )
+ (i32.and
+ (i32.or
+ (i32.and
+ (i32.rem_u
+ (get_local $0)
(i32.const 10)
)
(i32.const -1)
)
+ (i32.const 48)
)
- (if
- (i32.lt_u
- (get_local $3)
- (i32.const 10)
- )
- (block
- (set_local $0
- (get_local $1)
- )
- (br $while-out$2)
- )
- (set_local $3
- (get_local $0)
- )
+ (i32.const 255)
+ )
+ )
+ (set_local $2
+ (i32.and
+ (i32.div_u
+ (get_local $0)
+ (i32.const 10)
+ )
+ (i32.const -1)
+ )
+ )
+ (if
+ (i32.lt_u
+ (get_local $0)
+ (i32.const 10)
+ )
+ (set_local $0
+ (get_local $1)
+ )
+ (block
+ (set_local $0
+ (get_local $2)
)
(br $while-in$3)
)
)
)
+ (set_local $0
+ (get_local $1)
+ )
)
(get_local $0)
)
@@ -9143,7 +8062,8 @@
(local $5 i32)
(local $6 i32)
(local $7 i32)
- (set_local $7
+ (local $8 i32)
+ (set_local $6
(get_global $STACKTOP)
)
(set_global $STACKTOP
@@ -9159,8 +8079,8 @@
)
(call_import $abort)
)
- (set_local $6
- (get_local $7)
+ (set_local $5
+ (get_local $6)
)
(block $do-once$0
(if
@@ -9169,39 +8089,35 @@
(get_local $2)
(get_local $3)
)
- (i32.eq
+ (i32.eqz
(i32.and
(get_local $4)
(i32.const 73728)
)
- (i32.const 0)
)
)
(block
- (set_local $4
- (i32.gt_u
- (tee_local $5
- (i32.sub
- (get_local $2)
- (get_local $3)
- )
- )
- (i32.const 256)
- )
- )
(drop
(call $_memset
- (get_local $6)
+ (get_local $5)
(get_local $1)
(select
(i32.const 256)
- (get_local $5)
- (get_local $4)
+ (tee_local $4
+ (i32.sub
+ (get_local $2)
+ (get_local $3)
+ )
+ )
+ (i32.gt_u
+ (get_local $4)
+ (i32.const 256)
+ )
)
)
)
- (set_local $4
- (i32.eq
+ (set_local $7
+ (i32.eqz
(i32.and
(tee_local $1
(i32.load
@@ -9210,89 +8126,87 @@
)
(i32.const 32)
)
- (i32.const 0)
)
)
(if
(i32.gt_u
- (get_local $5)
+ (get_local $4)
(i32.const 255)
)
(block
- (set_local $2
+ (set_local $8
(i32.sub
(get_local $2)
(get_local $3)
)
)
+ (set_local $2
+ (get_local $4)
+ )
(set_local $3
- (get_local $5)
+ (get_local $7)
)
(loop $while-in$3
- (block $while-out$2
- (set_local $4
- (i32.eq
- (i32.and
- (tee_local $1
- (if
- (get_local $4)
- (block
- (drop
- (call $___fwritex
- (get_local $6)
- (i32.const 256)
- (get_local $0)
- )
- )
- (i32.load
+ (set_local $3
+ (i32.eqz
+ (i32.and
+ (tee_local $1
+ (if
+ (get_local $3)
+ (block
+ (drop
+ (call $___fwritex
+ (get_local $5)
+ (i32.const 256)
(get_local $0)
)
)
- (get_local $1)
+ (i32.load
+ (get_local $0)
+ )
)
- )
- (i32.const 32)
- )
- (i32.const 0)
- )
- )
- (br_if $while-out$2
- (i32.le_u
- (tee_local $3
- (i32.add
- (get_local $3)
- (i32.const -256)
+ (get_local $1)
)
)
- (i32.const 255)
+ (i32.const 32)
)
)
- (br $while-in$3)
+ )
+ (br_if $while-in$3
+ (i32.gt_u
+ (tee_local $2
+ (i32.add
+ (get_local $2)
+ (i32.const -256)
+ )
+ )
+ (i32.const 255)
+ )
)
)
(set_local $1
(i32.and
- (get_local $2)
+ (get_local $8)
(i32.const 255)
)
)
(br_if $do-once$0
(i32.eqz
- (get_local $4)
+ (get_local $3)
)
)
)
(if
- (get_local $4)
+ (get_local $7)
(set_local $1
- (get_local $5)
+ (get_local $4)
)
(br $do-once$0)
)
)
(drop
(call $___fwritex
- (get_local $6)
+ (get_local $5)
(get_local $1)
(get_local $0)
)
@@ -9301,7 +8215,7 @@
)
)
(set_global $STACKTOP
- (get_local $7)
+ (get_local $6)
)
)
(func $_malloc (param $0 i32) (result i32)
@@ -9329,28 +8243,6 @@
(local $22 i32)
(local $23 i32)
(local $24 i32)
- (local $25 i32)
- (local $26 i32)
- (local $27 i32)
- (local $28 i32)
- (local $29 i32)
- (local $30 i32)
- (local $31 i32)
- (local $32 i32)
- (local $33 i32)
- (local $34 i32)
- (local $35 i32)
- (local $36 i32)
- (local $37 i32)
- (local $38 i32)
- (local $39 i32)
- (local $40 i32)
- (local $41 i32)
- (local $42 i32)
- (local $43 i32)
- (local $44 i32)
- (local $45 i32)
- (local $46 i32)
(block $do-once$0
(if
(i32.lt_u
@@ -9359,66 +8251,63 @@
)
(block
(if
- (i32.ne
- (i32.and
- (tee_local $25
- (i32.shr_u
- (tee_local $4
- (i32.load
- (i32.const 176)
- )
+ (i32.and
+ (tee_local $1
+ (i32.shr_u
+ (tee_local $10
+ (i32.load
+ (i32.const 176)
)
- (tee_local $22
- (i32.shr_u
- (tee_local $6
- (select
- (i32.const 16)
- (i32.and
- (i32.add
- (get_local $0)
- (i32.const 11)
- )
- (i32.const -8)
- )
- (i32.lt_u
+ )
+ (tee_local $4
+ (i32.shr_u
+ (tee_local $3
+ (select
+ (i32.const 16)
+ (i32.and
+ (i32.add
(get_local $0)
(i32.const 11)
)
+ (i32.const -8)
+ )
+ (i32.lt_u
+ (get_local $0)
+ (i32.const 11)
)
)
- (i32.const 3)
)
+ (i32.const 3)
)
)
)
- (i32.const 3)
)
- (i32.const 0)
+ (i32.const 3)
)
(block
- (set_local $2
+ (set_local $4
(i32.load
- (tee_local $3
+ (tee_local $1
(i32.add
- (tee_local $1
+ (tee_local $5
(i32.load
- (tee_local $0
+ (tee_local $9
(i32.add
- (tee_local $9
+ (tee_local $2
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (tee_local $8
+ (tee_local $3
(i32.add
(i32.xor
(i32.and
- (get_local $25)
+ (get_local $1)
(i32.const 1)
)
(i32.const 1)
)
- (get_local $22)
+ (get_local $4)
)
)
(i32.const 1)
@@ -9439,17 +8328,17 @@
)
(if
(i32.eq
- (get_local $9)
(get_local $2)
+ (get_local $4)
)
(i32.store
(i32.const 176)
(i32.and
- (get_local $4)
+ (get_local $10)
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $8)
+ (get_local $3)
)
(i32.const -1)
)
@@ -9458,7 +8347,7 @@
(block
(if
(i32.lt_u
- (get_local $2)
+ (get_local $4)
(i32.load
(i32.const 192)
)
@@ -9468,70 +8357,67 @@
(if
(i32.eq
(i32.load
- (tee_local $4
+ (tee_local $0
(i32.add
- (get_local $2)
+ (get_local $4)
(i32.const 12)
)
)
)
- (get_local $1)
+ (get_local $5)
)
(block
(i32.store
- (get_local $4)
- (get_local $9)
- )
- (i32.store
(get_local $0)
(get_local $2)
)
+ (i32.store
+ (get_local $9)
+ (get_local $4)
+ )
)
(call_import $_abort)
)
)
)
(i32.store offset=4
- (get_local $1)
+ (get_local $5)
(i32.or
(tee_local $0
(i32.shl
- (get_local $8)
+ (get_local $3)
(i32.const 3)
)
)
(i32.const 3)
)
)
- (set_local $1
+ (i32.store
+ (tee_local $0
+ (i32.add
+ (i32.add
+ (get_local $5)
+ (get_local $0)
+ )
+ (i32.const 4)
+ )
+ )
(i32.or
(i32.load
- (tee_local $0
- (i32.add
- (i32.add
- (get_local $1)
- (get_local $0)
- )
- (i32.const 4)
- )
- )
+ (get_local $0)
)
(i32.const 1)
)
)
- (i32.store
- (get_local $0)
- (get_local $1)
- )
(return
- (get_local $3)
+ (get_local $1)
)
)
)
(if
(i32.gt_u
- (get_local $6)
- (tee_local $10
+ (get_local $3)
+ (tee_local $0
(i32.load
(i32.const 184)
)
@@ -9539,47 +8425,38 @@
)
(block
(if
- (i32.ne
- (get_local $25)
- (i32.const 0)
- )
+ (get_local $1)
(block
- (set_local $1
- (i32.sub
- (i32.const 0)
- (tee_local $0
- (i32.shl
- (i32.const 2)
- (get_local $22)
- )
- )
- )
- )
- (set_local $1
- (i32.sub
- (i32.const 0)
- (tee_local $0
- (i32.and
- (i32.shl
- (get_local $25)
- (get_local $22)
- )
- (i32.or
- (get_local $0)
- (get_local $1)
- )
- )
- )
- )
- )
- (set_local $0
+ (set_local $5
(i32.and
(i32.shr_u
(tee_local $1
(i32.add
(i32.and
- (get_local $0)
- (get_local $1)
+ (tee_local $1
+ (i32.and
+ (i32.shl
+ (get_local $1)
+ (get_local $4)
+ )
+ (i32.or
+ (tee_local $1
+ (i32.shl
+ (i32.const 2)
+ (get_local $4)
+ )
+ )
+ (i32.sub
+ (i32.const 0)
+ (get_local $1)
+ )
+ )
+ )
+ )
+ (i32.sub
+ (i32.const 0)
+ (get_local $1)
+ )
)
(i32.const -1)
)
@@ -9589,32 +8466,32 @@
(i32.const 16)
)
)
- (set_local $0
+ (set_local $7
(i32.load
- (tee_local $3
+ (tee_local $5
(i32.add
- (tee_local $2
+ (tee_local $9
(i32.load
- (tee_local $1
+ (tee_local $6
(i32.add
- (tee_local $9
+ (tee_local $1
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (tee_local $8
+ (tee_local $4
(i32.add
(i32.or
(i32.or
(i32.or
(i32.or
- (tee_local $1
+ (tee_local $4
(i32.and
(i32.shr_u
- (tee_local $2
+ (tee_local $1
(i32.shr_u
(get_local $1)
- (get_local $0)
+ (get_local $5)
)
)
(i32.const 5)
@@ -9622,15 +8499,15 @@
(i32.const 8)
)
)
- (get_local $0)
+ (get_local $5)
)
- (tee_local $0
+ (tee_local $4
(i32.and
(i32.shr_u
(tee_local $1
(i32.shr_u
- (get_local $2)
(get_local $1)
+ (get_local $4)
)
)
(i32.const 2)
@@ -9639,13 +8516,13 @@
)
)
)
- (tee_local $0
+ (tee_local $4
(i32.and
(i32.shr_u
(tee_local $1
(i32.shr_u
(get_local $1)
- (get_local $0)
+ (get_local $4)
)
)
(i32.const 1)
@@ -9654,13 +8531,13 @@
)
)
)
- (tee_local $0
+ (tee_local $4
(i32.and
(i32.shr_u
(tee_local $1
(i32.shr_u
(get_local $1)
- (get_local $0)
+ (get_local $4)
)
)
(i32.const 1)
@@ -9671,7 +8548,7 @@
)
(i32.shr_u
(get_local $1)
- (get_local $0)
+ (get_local $4)
)
)
)
@@ -9693,31 +8570,31 @@
)
(if
(i32.eq
- (get_local $9)
- (get_local $0)
+ (get_local $1)
+ (get_local $7)
)
(block
(i32.store
(i32.const 176)
(i32.and
- (get_local $4)
+ (get_local $10)
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $8)
+ (get_local $4)
)
(i32.const -1)
)
)
)
- (set_local $7
- (get_local $10)
+ (set_local $8
+ (get_local $0)
)
)
(block
(if
(i32.lt_u
- (get_local $0)
+ (get_local $7)
(i32.load
(i32.const 192)
)
@@ -9727,25 +8604,25 @@
(if
(i32.eq
(i32.load
- (tee_local $4
+ (tee_local $0
(i32.add
- (get_local $0)
+ (get_local $7)
(i32.const 12)
)
)
)
- (get_local $2)
+ (get_local $9)
)
(block
(i32.store
- (get_local $4)
- (get_local $9)
+ (get_local $0)
+ (get_local $1)
)
(i32.store
- (get_local $1)
- (get_local $0)
+ (get_local $6)
+ (get_local $7)
)
- (set_local $7
+ (set_local $8
(i32.load
(i32.const 184)
)
@@ -9756,27 +8633,27 @@
)
)
(i32.store offset=4
- (get_local $2)
+ (get_local $9)
(i32.or
- (get_local $6)
+ (get_local $3)
(i32.const 3)
)
)
(i32.store offset=4
- (tee_local $4
+ (tee_local $9
(i32.add
- (get_local $2)
- (get_local $6)
+ (get_local $9)
+ (get_local $3)
)
)
(i32.or
- (tee_local $9
+ (tee_local $4
(i32.sub
(i32.shl
- (get_local $8)
+ (get_local $4)
(i32.const 3)
)
- (get_local $6)
+ (get_local $3)
)
)
(i32.const 1)
@@ -9784,30 +8661,27 @@
)
(i32.store
(i32.add
- (get_local $4)
(get_local $9)
+ (get_local $4)
)
- (get_local $9)
+ (get_local $4)
)
(if
- (i32.ne
- (get_local $7)
- (i32.const 0)
- )
+ (get_local $8)
(block
- (set_local $0
+ (set_local $6
(i32.load
(i32.const 196)
)
)
- (set_local $8
+ (set_local $0
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (tee_local $2
+ (tee_local $1
(i32.shr_u
- (get_local $7)
+ (get_local $8)
(i32.const 3)
)
)
@@ -9818,47 +8692,26 @@
)
)
(if
- (i32.eq
- (i32.and
- (tee_local $1
- (i32.load
- (i32.const 176)
- )
- )
- (tee_local $2
- (i32.shl
- (i32.const 1)
- (get_local $2)
- )
+ (i32.and
+ (tee_local $3
+ (i32.load
+ (i32.const 176)
)
)
- (i32.const 0)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
+ (tee_local $1
+ (i32.shl
+ (i32.const 1)
(get_local $1)
- (get_local $2)
)
)
- (set_local $5
- (i32.add
- (get_local $8)
- (i32.const 8)
- )
- )
- (set_local $12
- (get_local $8)
- )
)
(if
(i32.lt_u
- (tee_local $2
+ (tee_local $1
(i32.load
- (tee_local $1
+ (tee_local $3
(i32.add
- (get_local $8)
+ (get_local $0)
(i32.const 8)
)
)
@@ -9870,60 +8723,75 @@
)
(call_import $_abort)
(block
- (set_local $5
+ (set_local $12
+ (get_local $3)
+ )
+ (set_local $2
(get_local $1)
)
- (set_local $12
- (get_local $2)
+ )
+ )
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (get_local $3)
+ (get_local $1)
)
)
+ (set_local $12
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ )
+ (set_local $2
+ (get_local $0)
+ )
)
)
(i32.store
- (get_local $5)
- (get_local $0)
+ (get_local $12)
+ (get_local $6)
)
(i32.store offset=12
- (get_local $12)
- (get_local $0)
+ (get_local $2)
+ (get_local $6)
)
(i32.store offset=8
- (get_local $0)
- (get_local $12)
+ (get_local $6)
+ (get_local $2)
)
(i32.store offset=12
+ (get_local $6)
(get_local $0)
- (get_local $8)
)
)
)
(i32.store
(i32.const 184)
- (get_local $9)
+ (get_local $4)
)
(i32.store
(i32.const 196)
- (get_local $4)
+ (get_local $9)
)
(return
- (get_local $3)
+ (get_local $5)
)
)
)
(if
- (i32.ne
- (tee_local $0
- (i32.load
- (i32.const 180)
- )
+ (tee_local $0
+ (i32.load
+ (i32.const 180)
)
- (i32.const 0)
)
(block
- (set_local $0
+ (set_local $2
(i32.and
(i32.shr_u
- (tee_local $1
+ (tee_local $0
(i32.add
(i32.and
(get_local $0)
@@ -9940,11 +8808,11 @@
(i32.const 16)
)
)
- (set_local $2
+ (set_local $4
(i32.sub
(i32.and
(i32.load offset=4
- (tee_local $0
+ (tee_local $1
(i32.load offset=480
(i32.shl
(i32.add
@@ -9955,10 +8823,10 @@
(tee_local $1
(i32.and
(i32.shr_u
- (tee_local $2
+ (tee_local $0
(i32.shr_u
- (get_local $1)
(get_local $0)
+ (get_local $2)
)
)
(i32.const 5)
@@ -9966,14 +8834,14 @@
(i32.const 8)
)
)
- (get_local $0)
+ (get_local $2)
)
- (tee_local $0
+ (tee_local $1
(i32.and
(i32.shr_u
- (tee_local $1
+ (tee_local $0
(i32.shr_u
- (get_local $2)
+ (get_local $0)
(get_local $1)
)
)
@@ -9983,13 +8851,13 @@
)
)
)
- (tee_local $0
+ (tee_local $1
(i32.and
(i32.shr_u
- (tee_local $1
+ (tee_local $0
(i32.shr_u
- (get_local $1)
(get_local $0)
+ (get_local $1)
)
)
(i32.const 1)
@@ -9998,13 +8866,13 @@
)
)
)
- (tee_local $0
+ (tee_local $1
(i32.and
(i32.shr_u
- (tee_local $1
+ (tee_local $0
(i32.shr_u
- (get_local $1)
(get_local $0)
+ (get_local $1)
)
)
(i32.const 1)
@@ -10014,8 +8882,8 @@
)
)
(i32.shr_u
- (get_local $1)
(get_local $0)
+ (get_local $1)
)
)
(i32.const 2)
@@ -10025,83 +8893,69 @@
)
(i32.const -8)
)
- (get_local $6)
+ (get_local $3)
)
)
- (set_local $4
- (get_local $0)
- )
- (set_local $8
- (get_local $0)
+ (set_local $2
+ (get_local $1)
)
(loop $while-in$7
(block $while-out$6
(if
- (i32.eq
+ (i32.eqz
(tee_local $0
(i32.load offset=16
- (get_local $4)
- )
- )
- (i32.const 0)
- )
- (if
- (i32.eq
- (tee_local $0
- (i32.load offset=20
- (get_local $4)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $7
(get_local $2)
)
- (set_local $10
- (get_local $8)
+ )
+ )
+ (if
+ (i32.eqz
+ (tee_local $0
+ (i32.load offset=20
+ (get_local $2)
+ )
+ )
+ )
+ (block
+ (set_local $2
+ (get_local $1)
)
(br $while-out$6)
)
- (set_local $1
- (get_local $0)
- )
- )
- (set_local $1
- (get_local $0)
)
)
- (set_local $0
+ (set_local $6
(i32.lt_u
- (tee_local $4
+ (tee_local $2
(i32.sub
(i32.and
(i32.load offset=4
- (get_local $1)
+ (get_local $0)
)
(i32.const -8)
)
- (get_local $6)
+ (get_local $3)
)
)
- (get_local $2)
- )
- )
- (set_local $2
- (select
(get_local $4)
- (get_local $2)
- (get_local $0)
)
)
(set_local $4
- (get_local $1)
- )
- (set_local $8
(select
- (get_local $1)
- (get_local $8)
+ (get_local $2)
+ (get_local $4)
+ (get_local $6)
+ )
+ )
+ (set_local $2
+ (get_local $0)
+ )
+ (set_local $1
+ (select
(get_local $0)
+ (get_local $1)
+ (get_local $6)
)
)
(br $while-in$7)
@@ -10109,8 +8963,8 @@
)
(if
(i32.lt_u
- (get_local $10)
- (tee_local $0
+ (get_local $2)
+ (tee_local $10
(i32.load
(i32.const 192)
)
@@ -10120,140 +8974,123 @@
)
(if
(i32.ge_u
- (get_local $10)
- (tee_local $9
+ (get_local $2)
+ (tee_local $7
(i32.add
- (get_local $10)
- (get_local $6)
+ (get_local $2)
+ (get_local $3)
)
)
)
(call_import $_abort)
)
- (set_local $1
+ (set_local $11
(i32.load offset=24
- (get_local $10)
+ (get_local $2)
)
)
(block $do-once$8
(if
(i32.eq
- (tee_local $2
+ (tee_local $0
(i32.load offset=12
- (get_local $10)
+ (get_local $2)
)
)
- (get_local $10)
+ (get_local $2)
)
(block
(if
- (i32.eq
- (tee_local $2
+ (i32.eqz
+ (tee_local $1
(i32.load
- (tee_local $8
+ (tee_local $0
(i32.add
- (get_local $10)
+ (get_local $2)
(i32.const 20)
)
)
)
)
- (i32.const 0)
)
(if
- (i32.eq
- (tee_local $2
+ (i32.eqz
+ (tee_local $1
(i32.load
- (tee_local $8
+ (tee_local $0
(i32.add
- (get_local $10)
+ (get_local $2)
(i32.const 16)
)
)
)
)
- (i32.const 0)
)
(block
- (set_local $15
+ (set_local $5
(i32.const 0)
)
(br $do-once$8)
)
- (set_local $4
- (get_local $2)
- )
- )
- (set_local $4
- (get_local $2)
)
)
(loop $while-in$11
- (block $while-out$10
- (if
- (i32.ne
- (tee_local $2
- (i32.load
- (tee_local $5
- (i32.add
- (get_local $4)
- (i32.const 20)
- )
- )
+ (if
+ (tee_local $8
+ (i32.load
+ (tee_local $6
+ (i32.add
+ (get_local $1)
+ (i32.const 20)
)
)
- (i32.const 0)
- )
- (block
- (set_local $4
- (get_local $2)
- )
- (set_local $8
- (get_local $5)
- )
- (br $while-in$11)
- )
- )
- (if
- (i32.eq
- (tee_local $2
- (i32.load
- (tee_local $5
- (i32.add
- (get_local $4)
- (i32.const 16)
- )
- )
- )
- )
- (i32.const 0)
- )
- (br $while-out$10)
- (block
- (set_local $4
- (get_local $2)
- )
- (set_local $8
- (get_local $5)
- )
)
)
- (br $while-in$11)
+ (block
+ (set_local $1
+ (get_local $8)
+ )
+ (set_local $0
+ (get_local $6)
+ )
+ (br $while-in$11)
+ )
+ )
+ (if
+ (tee_local $8
+ (i32.load
+ (tee_local $6
+ (i32.add
+ (get_local $1)
+ (i32.const 16)
+ )
+ )
+ )
+ )
+ (block
+ (set_local $1
+ (get_local $8)
+ )
+ (set_local $0
+ (get_local $6)
+ )
+ (br $while-in$11)
+ )
)
)
(if
(i32.lt_u
- (get_local $8)
(get_local $0)
+ (get_local $10)
)
(call_import $_abort)
(block
(i32.store
- (get_local $8)
+ (get_local $0)
(i32.const 0)
)
- (set_local $15
- (get_local $4)
+ (set_local $5
+ (get_local $1)
)
)
)
@@ -10261,52 +9098,52 @@
(block
(if
(i32.lt_u
- (tee_local $4
+ (tee_local $8
(i32.load offset=8
- (get_local $10)
+ (get_local $2)
)
)
- (get_local $0)
+ (get_local $10)
)
(call_import $_abort)
)
(if
(i32.ne
(i32.load
- (tee_local $0
+ (tee_local $6
(i32.add
- (get_local $4)
+ (get_local $8)
(i32.const 12)
)
)
)
- (get_local $10)
+ (get_local $2)
)
(call_import $_abort)
)
(if
(i32.eq
(i32.load
- (tee_local $8
+ (tee_local $1
(i32.add
- (get_local $2)
+ (get_local $0)
(i32.const 8)
)
)
)
- (get_local $10)
+ (get_local $2)
)
(block
(i32.store
+ (get_local $6)
(get_local $0)
- (get_local $2)
)
(i32.store
+ (get_local $1)
(get_local $8)
- (get_local $4)
)
- (set_local $15
- (get_local $2)
+ (set_local $5
+ (get_local $0)
)
)
(call_import $_abort)
@@ -10316,22 +9153,19 @@
)
(block $do-once$12
(if
- (i32.ne
- (get_local $1)
- (i32.const 0)
- )
+ (get_local $11)
(block
(if
(i32.eq
- (get_local $10)
+ (get_local $2)
(i32.load
- (tee_local $2
+ (tee_local $0
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $0
+ (tee_local $1
(i32.load offset=28
- (get_local $10)
+ (get_local $2)
)
)
(i32.const 2)
@@ -10342,13 +9176,12 @@
)
(block
(i32.store
- (get_local $2)
- (get_local $15)
+ (get_local $0)
+ (get_local $5)
)
(if
- (i32.eq
- (get_local $15)
- (i32.const 0)
+ (i32.eqz
+ (get_local $5)
)
(block
(i32.store
@@ -10360,7 +9193,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $0)
+ (get_local $1)
)
(i32.const -1)
)
@@ -10373,7 +9206,7 @@
(block
(if
(i32.lt_u
- (get_local $1)
+ (get_local $11)
(i32.load
(i32.const 192)
)
@@ -10385,34 +9218,33 @@
(i32.load
(tee_local $0
(i32.add
- (get_local $1)
+ (get_local $11)
(i32.const 16)
)
)
)
- (get_local $10)
+ (get_local $2)
)
(i32.store
(get_local $0)
- (get_local $15)
+ (get_local $5)
)
(i32.store offset=20
- (get_local $1)
- (get_local $15)
+ (get_local $11)
+ (get_local $5)
)
)
(br_if $do-once$12
- (i32.eq
- (get_local $15)
- (i32.const 0)
+ (i32.eqz
+ (get_local $5)
)
)
)
)
(if
(i32.lt_u
- (get_local $15)
- (tee_local $0
+ (get_local $5)
+ (tee_local $1
(i32.load
(i32.const 192)
)
@@ -10421,44 +9253,38 @@
(call_import $_abort)
)
(i32.store offset=24
- (get_local $15)
- (get_local $1)
+ (get_local $5)
+ (get_local $11)
)
(if
- (i32.ne
- (tee_local $1
- (i32.load offset=16
- (get_local $10)
- )
+ (tee_local $0
+ (i32.load offset=16
+ (get_local $2)
)
- (i32.const 0)
)
(if
(i32.lt_u
- (get_local $1)
(get_local $0)
+ (get_local $1)
)
(call_import $_abort)
(block
(i32.store offset=16
- (get_local $15)
- (get_local $1)
+ (get_local $5)
+ (get_local $0)
)
(i32.store offset=24
- (get_local $1)
- (get_local $15)
+ (get_local $0)
+ (get_local $5)
)
)
)
)
(if
- (i32.ne
- (tee_local $0
- (i32.load offset=20
- (get_local $10)
- )
+ (tee_local $0
+ (i32.load offset=20
+ (get_local $2)
)
- (i32.const 0)
)
(if
(i32.lt_u
@@ -10470,12 +9296,12 @@
(call_import $_abort)
(block
(i32.store offset=20
- (get_local $15)
+ (get_local $5)
(get_local $0)
)
(i32.store offset=24
(get_local $0)
- (get_local $15)
+ (get_local $5)
)
)
)
@@ -10485,86 +9311,80 @@
)
(if
(i32.lt_u
- (get_local $7)
+ (get_local $4)
(i32.const 16)
)
(block
(i32.store offset=4
- (get_local $10)
+ (get_local $2)
(i32.or
(tee_local $0
(i32.add
- (get_local $7)
- (get_local $6)
+ (get_local $4)
+ (get_local $3)
)
)
(i32.const 3)
)
)
- (set_local $1
+ (i32.store
+ (tee_local $0
+ (i32.add
+ (i32.add
+ (get_local $2)
+ (get_local $0)
+ )
+ (i32.const 4)
+ )
+ )
(i32.or
(i32.load
- (tee_local $0
- (i32.add
- (i32.add
- (get_local $10)
- (get_local $0)
- )
- (i32.const 4)
- )
- )
+ (get_local $0)
)
(i32.const 1)
)
)
- (i32.store
- (get_local $0)
- (get_local $1)
- )
)
(block
(i32.store offset=4
- (get_local $10)
+ (get_local $2)
(i32.or
- (get_local $6)
+ (get_local $3)
(i32.const 3)
)
)
(i32.store offset=4
- (get_local $9)
+ (get_local $7)
(i32.or
- (get_local $7)
+ (get_local $4)
(i32.const 1)
)
)
(i32.store
(i32.add
- (get_local $9)
(get_local $7)
+ (get_local $4)
)
- (get_local $7)
+ (get_local $4)
)
(if
- (i32.ne
- (tee_local $0
- (i32.load
- (i32.const 184)
- )
+ (tee_local $0
+ (i32.load
+ (i32.const 184)
)
- (i32.const 0)
)
(block
- (set_local $1
+ (set_local $5
(i32.load
(i32.const 196)
)
)
- (set_local $4
+ (set_local $0
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (tee_local $2
+ (tee_local $1
(i32.shr_u
(get_local $0)
(i32.const 3)
@@ -10577,47 +9397,26 @@
)
)
(if
- (i32.eq
- (i32.and
- (tee_local $0
- (i32.load
- (i32.const 176)
- )
- )
- (tee_local $2
- (i32.shl
- (i32.const 1)
- (get_local $2)
- )
+ (i32.and
+ (tee_local $3
+ (i32.load
+ (i32.const 176)
)
)
- (i32.const 0)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (get_local $0)
- (get_local $2)
+ (tee_local $1
+ (i32.shl
+ (i32.const 1)
+ (get_local $1)
)
)
- (set_local $3
- (i32.add
- (get_local $4)
- (i32.const 8)
- )
- )
- (set_local $16
- (get_local $4)
- )
)
(if
(i32.lt_u
- (tee_local $2
+ (tee_local $1
(i32.load
- (tee_local $0
+ (tee_local $3
(i32.add
- (get_local $4)
+ (get_local $0)
(i32.const 8)
)
)
@@ -10629,52 +9428,76 @@
)
(call_import $_abort)
(block
- (set_local $3
+ (set_local $13
+ (get_local $3)
+ )
+ (set_local $9
+ (get_local $1)
+ )
+ )
+ )
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (get_local $3)
+ (get_local $1)
+ )
+ )
+ (set_local $13
+ (i32.add
(get_local $0)
+ (i32.const 8)
)
- (set_local $16
- (get_local $2)
- )
+ )
+ (set_local $9
+ (get_local $0)
)
)
)
(i32.store
- (get_local $3)
- (get_local $1)
+ (get_local $13)
+ (get_local $5)
)
(i32.store offset=12
- (get_local $16)
- (get_local $1)
+ (get_local $9)
+ (get_local $5)
)
(i32.store offset=8
- (get_local $1)
- (get_local $16)
+ (get_local $5)
+ (get_local $9)
)
(i32.store offset=12
- (get_local $1)
- (get_local $4)
+ (get_local $5)
+ (get_local $0)
)
)
)
(i32.store
(i32.const 184)
- (get_local $7)
+ (get_local $4)
)
(i32.store
(i32.const 196)
- (get_local $9)
+ (get_local $7)
)
)
)
(return
(i32.add
- (get_local $10)
+ (get_local $2)
(i32.const 8)
)
)
)
+ (set_local $0
+ (get_local $3)
+ )
)
)
+ (set_local $0
+ (get_local $3)
+ )
)
)
(if
@@ -10682,13 +9505,13 @@
(get_local $0)
(i32.const -65)
)
- (set_local $6
+ (set_local $0
(i32.const -1)
)
(block
- (set_local $5
+ (set_local $9
(i32.and
- (tee_local $3
+ (tee_local $2
(i32.add
(get_local $0)
(i32.const 11)
@@ -10698,262 +9521,229 @@
)
)
(if
- (i32.eq
- (tee_local $0
- (i32.load
- (i32.const 180)
- )
+ (tee_local $24
+ (i32.load
+ (i32.const 180)
)
- (i32.const 0)
- )
- (set_local $6
- (get_local $5)
)
(block
- (set_local $16
+ (set_local $0
(i32.sub
(i32.const 0)
- (get_local $5)
+ (get_local $9)
)
)
- (block $label$break$L123
- (if
- (i32.eq
- (tee_local $3
+ (block $jumpthreading$outer$2
+ (block $jumpthreading$inner$2
+ (if
+ (tee_local $2
(i32.load offset=480
(i32.shl
- (tee_local $12
+ (tee_local $15
(if
- (i32.eq
- (tee_local $3
- (i32.shr_u
- (get_local $3)
- (i32.const 8)
- )
+ (tee_local $2
+ (i32.shr_u
+ (get_local $2)
+ (i32.const 8)
)
- (i32.const 0)
)
- (i32.const 0)
(if
(i32.gt_u
- (get_local $5)
+ (get_local $9)
(i32.const 16777215)
)
(i32.const 31)
- (block
- (set_local $7
- (i32.shl
- (tee_local $3
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (get_local $9)
+ (i32.add
+ (tee_local $2
+ (i32.add
+ (i32.sub
+ (i32.const 14)
(i32.or
- (tee_local $7
- (i32.and
- (i32.shr_u
- (i32.add
- (tee_local $12
- (i32.shl
- (get_local $3)
- (tee_local $3
- (i32.and
- (i32.shr_u
- (i32.add
- (get_local $3)
- (i32.const 1048320)
+ (i32.or
+ (tee_local $5
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (tee_local $2
+ (i32.shl
+ (get_local $2)
+ (tee_local $8
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (get_local $2)
+ (i32.const 1048320)
+ )
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 8)
)
- (i32.const 8)
)
)
)
+ (i32.const 520192)
)
- (i32.const 520192)
+ (i32.const 16)
+ )
+ (i32.const 4)
+ )
+ )
+ (get_local $8)
+ )
+ (tee_local $5
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (tee_local $2
+ (i32.shl
+ (get_local $2)
+ (get_local $5)
+ )
+ )
+ (i32.const 245760)
)
(i32.const 16)
)
- (i32.const 4)
+ (i32.const 2)
)
)
- (get_local $3)
- )
- (tee_local $3
- (i32.and
- (i32.shr_u
- (i32.add
- (tee_local $7
- (i32.shl
- (get_local $12)
- (get_local $7)
- )
- )
- (i32.const 245760)
- )
- (i32.const 16)
- )
- (i32.const 2)
- )
)
)
- )
- (i32.shr_u
- (i32.shl
- (get_local $7)
- (get_local $3)
+ (i32.shr_u
+ (i32.shl
+ (get_local $2)
+ (get_local $5)
+ )
+ (i32.const 15)
)
- (i32.const 15)
)
)
+ (i32.const 7)
)
- (i32.const 1)
)
+ (i32.const 1)
)
- (i32.or
- (i32.and
- (i32.shr_u
- (get_local $5)
- (i32.add
- (get_local $3)
- (i32.const 7)
- )
- )
- (i32.const 1)
- )
- (get_local $7)
+ (i32.shl
+ (get_local $2)
+ (i32.const 1)
)
)
)
+ (i32.const 0)
)
)
(i32.const 2)
)
)
)
- (i32.const 0)
- )
- (block
- (set_local $31
- (get_local $16)
- )
- (set_local $32
- (i32.const 0)
- )
- (set_local $28
- (i32.const 0)
- )
- (set_local $11
- (i32.const 86)
- )
- )
- (block
- (set_local $7
- (get_local $16)
- )
- (set_local $15
- (i32.const 0)
- )
- (set_local $11
- (i32.shl
- (get_local $5)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
- (get_local $12)
- (i32.const 1)
+ (block
+ (set_local $5
+ (get_local $0)
+ )
+ (set_local $13
+ (i32.const 0)
+ )
+ (set_local $12
+ (i32.shl
+ (get_local $9)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (get_local $15)
+ (i32.const 1)
+ )
)
- )
- (i32.eq
- (get_local $12)
- (i32.const 31)
+ (i32.eq
+ (get_local $15)
+ (i32.const 31)
+ )
)
)
)
- )
- (set_local $23
- (get_local $3)
- )
- (set_local $36
- (i32.const 0)
- )
- (loop $while-in$18
- (block $while-out$17
+ (set_local $0
+ (get_local $2)
+ )
+ (set_local $2
+ (i32.const 0)
+ )
+ (loop $while-in$18
(if
(i32.lt_u
- (tee_local $16
+ (tee_local $8
(i32.sub
- (tee_local $3
+ (tee_local $14
(i32.and
(i32.load offset=4
- (get_local $23)
+ (get_local $0)
)
(i32.const -8)
)
)
- (get_local $5)
+ (get_local $9)
)
)
- (get_local $7)
+ (get_local $5)
)
(if
(i32.eq
- (get_local $3)
- (get_local $5)
+ (get_local $14)
+ (get_local $9)
)
(block
- (set_local $26
- (get_local $16)
+ (set_local $4
+ (get_local $8)
)
- (set_local $24
- (get_local $23)
+ (set_local $3
+ (get_local $0)
)
- (set_local $29
- (get_local $23)
+ (set_local $1
+ (get_local $0)
)
- (set_local $11
+ (set_local $19
(i32.const 90)
)
- (br $label$break$L123)
+ (br $jumpthreading$outer$2)
)
- (set_local $36
- (get_local $23)
- )
- )
- (set_local $16
- (get_local $7)
- )
- )
- (set_local $7
- (i32.eq
- (tee_local $3
- (i32.load offset=20
- (get_local $23)
+ (block
+ (set_local $5
+ (get_local $8)
+ )
+ (set_local $2
+ (get_local $0)
)
)
- (i32.const 0)
)
)
- (set_local $15
+ (set_local $8
(select
- (get_local $15)
- (get_local $3)
+ (get_local $13)
+ (tee_local $8
+ (i32.load offset=20
+ (get_local $0)
+ )
+ )
(i32.or
- (get_local $7)
+ (i32.eqz
+ (get_local $8)
+ )
(i32.eq
- (get_local $3)
- (tee_local $3
+ (get_local $8)
+ (tee_local $14
(i32.load
(i32.add
(i32.add
- (get_local $23)
+ (get_local $0)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (get_local $11)
+ (get_local $12)
(i32.const 31)
)
(i32.const 2)
@@ -10965,15 +9755,14 @@
)
)
)
- (set_local $11
+ (set_local $0
(i32.shl
- (get_local $11)
+ (get_local $12)
(i32.xor
(i32.and
- (tee_local $7
- (i32.eq
- (get_local $3)
- (i32.const 0)
+ (tee_local $12
+ (i32.eqz
+ (get_local $14)
)
)
(i32.const 1)
@@ -10983,330 +9772,286 @@
)
)
(if
- (get_local $7)
+ (get_local $12)
(block
- (set_local $31
- (get_local $16)
+ (set_local $0
+ (get_local $5)
)
- (set_local $32
- (get_local $15)
- )
- (set_local $28
- (get_local $36)
- )
- (set_local $11
- (i32.const 86)
- )
- (br $while-out$17)
+ (br $jumpthreading$inner$2)
)
(block
- (set_local $7
- (get_local $16)
+ (set_local $13
+ (get_local $8)
)
- (set_local $23
- (get_local $3)
+ (set_local $12
+ (get_local $0)
)
+ (set_local $0
+ (get_local $14)
+ )
+ (br $while-in$18)
)
)
- (br $while-in$18)
)
)
+ (block
+ (set_local $8
+ (i32.const 0)
+ )
+ (set_local $2
+ (i32.const 0)
+ )
+ (br $jumpthreading$inner$2)
+ )
)
- )
- )
- (if
- (i32.eq
- (get_local $11)
- (i32.const 86)
+ (br $jumpthreading$outer$2)
)
(if
- (i32.eq
- (tee_local $0
- (if
- (i32.and
- (i32.eq
- (get_local $32)
- (i32.const 0)
+ (tee_local $5
+ (if
+ (i32.and
+ (i32.eqz
+ (get_local $8)
+ )
+ (i32.eqz
+ (get_local $2)
+ )
+ )
+ (block
+ (if
+ (i32.eqz
+ (tee_local $5
+ (i32.and
+ (get_local $24)
+ (i32.or
+ (tee_local $5
+ (i32.shl
+ (i32.const 2)
+ (get_local $15)
+ )
+ )
+ (i32.sub
+ (i32.const 0)
+ (get_local $5)
+ )
+ )
+ )
+ )
)
- (i32.eq
- (get_local $28)
- (i32.const 0)
+ (block
+ (set_local $0
+ (get_local $9)
+ )
+ (br $do-once$0)
)
)
- (block
- (set_local $7
- (i32.sub
- (i32.const 0)
- (tee_local $3
- (i32.shl
- (i32.const 2)
- (get_local $12)
- )
- )
- )
- )
- (if
- (i32.eq
- (tee_local $0
- (i32.and
- (get_local $0)
- (i32.or
- (get_local $3)
- (get_local $7)
- )
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $6
- (get_local $5)
- )
- (br $do-once$0)
- )
- )
- (set_local $0
- (i32.and
- (i32.shr_u
- (tee_local $3
- (i32.add
- (i32.and
- (get_local $0)
- (i32.sub
- (i32.const 0)
- (get_local $0)
- )
+ (set_local $12
+ (i32.and
+ (i32.shr_u
+ (tee_local $5
+ (i32.add
+ (i32.and
+ (get_local $5)
+ (i32.sub
+ (i32.const 0)
+ (get_local $5)
)
- (i32.const -1)
)
+ (i32.const -1)
)
- (i32.const 12)
)
- (i32.const 16)
+ (i32.const 12)
)
+ (i32.const 16)
)
- (i32.load offset=480
- (i32.shl
- (i32.add
+ )
+ (i32.load offset=480
+ (i32.shl
+ (i32.add
+ (i32.or
(i32.or
(i32.or
(i32.or
- (i32.or
- (tee_local $3
- (i32.and
- (i32.shr_u
- (tee_local $7
- (i32.shr_u
- (get_local $3)
- (get_local $0)
- )
- )
- (i32.const 5)
- )
- (i32.const 8)
- )
- )
- (get_local $0)
- )
- (tee_local $0
+ (tee_local $8
(i32.and
(i32.shr_u
- (tee_local $3
+ (tee_local $5
(i32.shr_u
- (get_local $7)
- (get_local $3)
+ (get_local $5)
+ (get_local $12)
)
)
- (i32.const 2)
+ (i32.const 5)
)
- (i32.const 4)
+ (i32.const 8)
)
)
+ (get_local $12)
)
- (tee_local $0
+ (tee_local $8
(i32.and
(i32.shr_u
- (tee_local $3
+ (tee_local $5
(i32.shr_u
- (get_local $3)
- (get_local $0)
+ (get_local $5)
+ (get_local $8)
)
)
- (i32.const 1)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 4)
)
)
)
- (tee_local $0
+ (tee_local $8
(i32.and
(i32.shr_u
- (tee_local $3
+ (tee_local $5
(i32.shr_u
- (get_local $3)
- (get_local $0)
+ (get_local $5)
+ (get_local $8)
)
)
(i32.const 1)
)
- (i32.const 1)
+ (i32.const 2)
)
)
)
- (i32.shr_u
- (get_local $3)
- (get_local $0)
+ (tee_local $8
+ (i32.and
+ (i32.shr_u
+ (tee_local $5
+ (i32.shr_u
+ (get_local $5)
+ (get_local $8)
+ )
+ )
+ (i32.const 1)
+ )
+ (i32.const 1)
+ )
)
)
- (i32.const 2)
+ (i32.shr_u
+ (get_local $5)
+ (get_local $8)
+ )
)
+ (i32.const 2)
)
)
- (get_local $32)
)
- )
- (i32.const 0)
- )
- (block
- (set_local $17
- (get_local $31)
- )
- (set_local $13
- (get_local $28)
+ (get_local $8)
)
)
(block
- (set_local $26
- (get_local $31)
- )
- (set_local $24
+ (set_local $4
(get_local $0)
)
- (set_local $29
- (get_local $28)
+ (set_local $3
+ (get_local $5)
)
- (set_local $11
+ (set_local $1
+ (get_local $2)
+ )
+ (set_local $19
(i32.const 90)
)
)
- )
- )
- (if
- (i32.eq
- (get_local $11)
- (i32.const 90)
- )
- (loop $while-in$20
- (block $while-out$19
- (set_local $11
- (i32.const 0)
+ (block
+ (set_local $7
+ (get_local $0)
)
- (set_local $0
- (i32.lt_u
- (tee_local $3
- (i32.sub
- (i32.and
- (i32.load offset=4
- (get_local $24)
- )
- (i32.const -8)
- )
- (get_local $5)
- )
- )
- (get_local $26)
- )
+ (set_local $6
+ (get_local $2)
)
- (set_local $17
- (select
- (get_local $3)
- (get_local $26)
- (get_local $0)
- )
- )
- (set_local $3
- (select
- (get_local $24)
- (get_local $29)
- (get_local $0)
- )
- )
- (if
- (i32.ne
- (tee_local $0
- (i32.load offset=16
- (get_local $24)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $26
- (get_local $17)
- )
- (set_local $24
- (get_local $0)
- )
- (set_local $29
- (get_local $3)
- )
- (br $while-in$20)
- )
- )
- (if
- (i32.eq
- (tee_local $0
- (i32.load offset=20
- (get_local $24)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $13
- (get_local $3)
- )
- (br $while-out$19)
- )
- (block
- (set_local $26
- (get_local $17)
- )
- (set_local $24
- (get_local $0)
- )
- (set_local $29
- (get_local $3)
- )
- )
- )
- (br $while-in$20)
)
)
)
(if
(i32.eq
- (get_local $13)
- (i32.const 0)
+ (get_local $19)
+ (i32.const 90)
)
- (set_local $6
- (get_local $5)
+ (loop $while-in$20
+ (set_local $2
+ (i32.lt_u
+ (tee_local $0
+ (i32.sub
+ (i32.and
+ (i32.load offset=4
+ (get_local $3)
+ )
+ (i32.const -8)
+ )
+ (get_local $9)
+ )
+ )
+ (get_local $4)
+ )
+ )
+ (set_local $4
+ (select
+ (get_local $0)
+ (get_local $4)
+ (get_local $2)
+ )
+ )
+ (set_local $1
+ (select
+ (get_local $3)
+ (get_local $1)
+ (get_local $2)
+ )
+ )
+ (if
+ (tee_local $0
+ (i32.load offset=16
+ (get_local $3)
+ )
+ )
+ (block
+ (set_local $3
+ (get_local $0)
+ )
+ (br $while-in$20)
+ )
+ )
+ (br_if $while-in$20
+ (tee_local $3
+ (i32.load offset=20
+ (get_local $3)
+ )
+ )
+ )
+ (block
+ (set_local $7
+ (get_local $4)
+ )
+ (set_local $6
+ (get_local $1)
+ )
+ )
)
+ )
+ (if
+ (get_local $6)
(if
(i32.lt_u
- (get_local $17)
+ (get_local $7)
(i32.sub
(i32.load
(i32.const 184)
)
- (get_local $5)
+ (get_local $9)
)
)
(block
(if
(i32.lt_u
- (get_local $13)
- (tee_local $0
+ (get_local $6)
+ (tee_local $8
(i32.load
(i32.const 192)
)
@@ -11316,140 +10061,123 @@
)
(if
(i32.ge_u
- (get_local $13)
- (tee_local $3
+ (get_local $6)
+ (tee_local $4
(i32.add
- (get_local $13)
- (get_local $5)
+ (get_local $6)
+ (get_local $9)
)
)
)
(call_import $_abort)
)
- (set_local $1
+ (set_local $5
(i32.load offset=24
- (get_local $13)
+ (get_local $6)
)
)
(block $do-once$21
(if
(i32.eq
- (tee_local $2
+ (tee_local $0
(i32.load offset=12
- (get_local $13)
+ (get_local $6)
)
)
- (get_local $13)
+ (get_local $6)
)
(block
(if
- (i32.eq
- (tee_local $2
+ (i32.eqz
+ (tee_local $1
(i32.load
- (tee_local $9
+ (tee_local $0
(i32.add
- (get_local $13)
+ (get_local $6)
(i32.const 20)
)
)
)
)
- (i32.const 0)
)
(if
- (i32.eq
- (tee_local $2
+ (i32.eqz
+ (tee_local $1
(i32.load
- (tee_local $9
+ (tee_local $0
(i32.add
- (get_local $13)
+ (get_local $6)
(i32.const 16)
)
)
)
)
- (i32.const 0)
)
(block
- (set_local $6
+ (set_local $10
(i32.const 0)
)
(br $do-once$21)
)
- (set_local $8
- (get_local $2)
- )
- )
- (set_local $8
- (get_local $2)
)
)
(loop $while-in$24
- (block $while-out$23
- (if
- (i32.ne
+ (if
+ (tee_local $3
+ (i32.load
(tee_local $2
- (i32.load
- (tee_local $7
- (i32.add
- (get_local $8)
- (i32.const 20)
- )
- )
+ (i32.add
+ (get_local $1)
+ (i32.const 20)
)
)
- (i32.const 0)
- )
- (block
- (set_local $8
- (get_local $2)
- )
- (set_local $9
- (get_local $7)
- )
- (br $while-in$24)
- )
- )
- (if
- (i32.eq
- (tee_local $2
- (i32.load
- (tee_local $7
- (i32.add
- (get_local $8)
- (i32.const 16)
- )
- )
- )
- )
- (i32.const 0)
- )
- (br $while-out$23)
- (block
- (set_local $8
- (get_local $2)
- )
- (set_local $9
- (get_local $7)
- )
)
)
- (br $while-in$24)
+ (block
+ (set_local $1
+ (get_local $3)
+ )
+ (set_local $0
+ (get_local $2)
+ )
+ (br $while-in$24)
+ )
+ )
+ (if
+ (tee_local $3
+ (i32.load
+ (tee_local $2
+ (i32.add
+ (get_local $1)
+ (i32.const 16)
+ )
+ )
+ )
+ )
+ (block
+ (set_local $1
+ (get_local $3)
+ )
+ (set_local $0
+ (get_local $2)
+ )
+ (br $while-in$24)
+ )
)
)
(if
(i32.lt_u
- (get_local $9)
(get_local $0)
+ (get_local $8)
)
(call_import $_abort)
(block
(i32.store
- (get_local $9)
+ (get_local $0)
(i32.const 0)
)
- (set_local $6
- (get_local $8)
+ (set_local $10
+ (get_local $1)
)
)
)
@@ -11457,52 +10185,52 @@
(block
(if
(i32.lt_u
- (tee_local $8
+ (tee_local $3
(i32.load offset=8
- (get_local $13)
+ (get_local $6)
)
)
- (get_local $0)
+ (get_local $8)
)
(call_import $_abort)
)
(if
(i32.ne
(i32.load
- (tee_local $0
+ (tee_local $2
(i32.add
- (get_local $8)
+ (get_local $3)
(i32.const 12)
)
)
)
- (get_local $13)
+ (get_local $6)
)
(call_import $_abort)
)
(if
(i32.eq
(i32.load
- (tee_local $9
+ (tee_local $1
(i32.add
- (get_local $2)
+ (get_local $0)
(i32.const 8)
)
)
)
- (get_local $13)
+ (get_local $6)
)
(block
(i32.store
- (get_local $0)
(get_local $2)
+ (get_local $0)
)
(i32.store
- (get_local $9)
- (get_local $8)
+ (get_local $1)
+ (get_local $3)
)
- (set_local $6
- (get_local $2)
+ (set_local $10
+ (get_local $0)
)
)
(call_import $_abort)
@@ -11512,22 +10240,19 @@
)
(block $do-once$25
(if
- (i32.ne
- (get_local $1)
- (i32.const 0)
- )
+ (get_local $5)
(block
(if
(i32.eq
- (get_local $13)
+ (get_local $6)
(i32.load
- (tee_local $2
+ (tee_local $0
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $0
+ (tee_local $1
(i32.load offset=28
- (get_local $13)
+ (get_local $6)
)
)
(i32.const 2)
@@ -11538,13 +10263,12 @@
)
(block
(i32.store
- (get_local $2)
- (get_local $6)
+ (get_local $0)
+ (get_local $10)
)
(if
- (i32.eq
- (get_local $6)
- (i32.const 0)
+ (i32.eqz
+ (get_local $10)
)
(block
(i32.store
@@ -11556,7 +10280,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $0)
+ (get_local $1)
)
(i32.const -1)
)
@@ -11569,7 +10293,7 @@
(block
(if
(i32.lt_u
- (get_local $1)
+ (get_local $5)
(i32.load
(i32.const 192)
)
@@ -11581,34 +10305,33 @@
(i32.load
(tee_local $0
(i32.add
- (get_local $1)
+ (get_local $5)
(i32.const 16)
)
)
)
- (get_local $13)
+ (get_local $6)
)
(i32.store
(get_local $0)
- (get_local $6)
+ (get_local $10)
)
(i32.store offset=20
- (get_local $1)
- (get_local $6)
+ (get_local $5)
+ (get_local $10)
)
)
(br_if $do-once$25
- (i32.eq
- (get_local $6)
- (i32.const 0)
+ (i32.eqz
+ (get_local $10)
)
)
)
)
(if
(i32.lt_u
- (get_local $6)
- (tee_local $0
+ (get_local $10)
+ (tee_local $1
(i32.load
(i32.const 192)
)
@@ -11617,44 +10340,38 @@
(call_import $_abort)
)
(i32.store offset=24
- (get_local $6)
- (get_local $1)
+ (get_local $10)
+ (get_local $5)
)
(if
- (i32.ne
- (tee_local $1
- (i32.load offset=16
- (get_local $13)
- )
+ (tee_local $0
+ (i32.load offset=16
+ (get_local $6)
)
- (i32.const 0)
)
(if
(i32.lt_u
- (get_local $1)
(get_local $0)
+ (get_local $1)
)
(call_import $_abort)
(block
(i32.store offset=16
- (get_local $6)
- (get_local $1)
+ (get_local $10)
+ (get_local $0)
)
(i32.store offset=24
- (get_local $1)
- (get_local $6)
+ (get_local $0)
+ (get_local $10)
)
)
)
)
(if
- (i32.ne
- (tee_local $0
- (i32.load offset=20
- (get_local $13)
- )
+ (tee_local $0
+ (i32.load offset=20
+ (get_local $6)
)
- (i32.const 0)
)
(if
(i32.lt_u
@@ -11666,12 +10383,12 @@
(call_import $_abort)
(block
(i32.store offset=20
- (get_local $6)
+ (get_local $10)
(get_local $0)
)
(i32.store offset=24
(get_local $0)
- (get_local $6)
+ (get_local $10)
)
)
)
@@ -11682,78 +10399,75 @@
(block $do-once$29
(if
(i32.lt_u
- (get_local $17)
+ (get_local $7)
(i32.const 16)
)
(block
(i32.store offset=4
- (get_local $13)
+ (get_local $6)
(i32.or
(tee_local $0
(i32.add
- (get_local $17)
- (get_local $5)
+ (get_local $7)
+ (get_local $9)
)
)
(i32.const 3)
)
)
- (set_local $1
+ (i32.store
+ (tee_local $0
+ (i32.add
+ (i32.add
+ (get_local $6)
+ (get_local $0)
+ )
+ (i32.const 4)
+ )
+ )
(i32.or
(i32.load
- (tee_local $0
- (i32.add
- (i32.add
- (get_local $13)
- (get_local $0)
- )
- (i32.const 4)
- )
- )
+ (get_local $0)
)
(i32.const 1)
)
)
- (i32.store
- (get_local $0)
- (get_local $1)
- )
)
(block
(i32.store offset=4
- (get_local $13)
+ (get_local $6)
(i32.or
- (get_local $5)
+ (get_local $9)
(i32.const 3)
)
)
(i32.store offset=4
- (get_local $3)
+ (get_local $4)
(i32.or
- (get_local $17)
+ (get_local $7)
(i32.const 1)
)
)
(i32.store
(i32.add
- (get_local $3)
- (get_local $17)
+ (get_local $4)
+ (get_local $7)
)
- (get_local $17)
+ (get_local $7)
)
(set_local $1
(i32.shr_u
- (get_local $17)
+ (get_local $7)
(i32.const 3)
)
)
(if
(i32.lt_u
- (get_local $17)
+ (get_local $7)
(i32.const 256)
)
(block
- (set_local $2
+ (set_local $0
(i32.add
(i32.const 216)
(i32.shl
@@ -11766,47 +10480,26 @@
)
)
(if
- (i32.eq
- (i32.and
- (tee_local $0
- (i32.load
- (i32.const 176)
- )
- )
- (tee_local $1
- (i32.shl
- (i32.const 1)
- (get_local $1)
- )
+ (i32.and
+ (tee_local $2
+ (i32.load
+ (i32.const 176)
)
)
- (i32.const 0)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (get_local $0)
+ (tee_local $1
+ (i32.shl
+ (i32.const 1)
(get_local $1)
)
)
- (set_local $4
- (i32.add
- (get_local $2)
- (i32.const 8)
- )
- )
- (set_local $10
- (get_local $2)
- )
)
(if
(i32.lt_u
(tee_local $1
(i32.load
- (tee_local $0
+ (tee_local $2
(i32.add
- (get_local $2)
+ (get_local $0)
(i32.const 8)
)
)
@@ -11818,141 +10511,151 @@
)
(call_import $_abort)
(block
- (set_local $4
- (get_local $0)
+ (set_local $20
+ (get_local $2)
)
- (set_local $10
+ (set_local $16
(get_local $1)
)
)
)
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (get_local $2)
+ (get_local $1)
+ )
+ )
+ (set_local $20
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ )
+ (set_local $16
+ (get_local $0)
+ )
+ )
)
(i32.store
+ (get_local $20)
(get_local $4)
- (get_local $3)
)
(i32.store offset=12
- (get_local $10)
- (get_local $3)
+ (get_local $16)
+ (get_local $4)
)
(i32.store offset=8
- (get_local $3)
- (get_local $10)
+ (get_local $4)
+ (get_local $16)
)
(i32.store offset=12
- (get_local $3)
- (get_local $2)
+ (get_local $4)
+ (get_local $0)
)
(br $do-once$29)
)
)
- (set_local $2
+ (set_local $1
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $1
+ (tee_local $2
(if
- (i32.eq
- (tee_local $0
- (i32.shr_u
- (get_local $17)
- (i32.const 8)
- )
+ (tee_local $0
+ (i32.shr_u
+ (get_local $7)
+ (i32.const 8)
)
- (i32.const 0)
)
- (i32.const 0)
(if
(i32.gt_u
- (get_local $17)
+ (get_local $7)
(i32.const 16777215)
)
(i32.const 31)
- (block
- (set_local $1
- (i32.shl
- (tee_local $0
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (get_local $7)
+ (i32.add
+ (tee_local $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
(i32.or
+ (i32.or
+ (tee_local $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (tee_local $0
+ (i32.shl
+ (get_local $0)
+ (tee_local $2
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (get_local $0)
+ (i32.const 1048320)
+ )
+ (i32.const 16)
+ )
+ (i32.const 8)
+ )
+ )
+ )
+ )
+ (i32.const 520192)
+ )
+ (i32.const 16)
+ )
+ (i32.const 4)
+ )
+ )
+ (get_local $2)
+ )
(tee_local $1
(i32.and
(i32.shr_u
(i32.add
- (tee_local $2
+ (tee_local $0
(i32.shl
(get_local $0)
- (tee_local $0
- (i32.and
- (i32.shr_u
- (i32.add
- (get_local $0)
- (i32.const 1048320)
- )
- (i32.const 16)
- )
- (i32.const 8)
- )
- )
+ (get_local $1)
)
)
- (i32.const 520192)
+ (i32.const 245760)
)
(i32.const 16)
)
- (i32.const 4)
+ (i32.const 2)
)
)
+ )
+ )
+ (i32.shr_u
+ (i32.shl
(get_local $0)
+ (get_local $1)
)
- (tee_local $0
- (i32.and
- (i32.shr_u
- (i32.add
- (tee_local $1
- (i32.shl
- (get_local $2)
- (get_local $1)
- )
- )
- (i32.const 245760)
- )
- (i32.const 16)
- )
- (i32.const 2)
- )
- )
+ (i32.const 15)
)
)
- (i32.shr_u
- (i32.shl
- (get_local $1)
- (get_local $0)
- )
- (i32.const 15)
- )
)
+ (i32.const 7)
)
- (i32.const 1)
)
+ (i32.const 1)
)
- (i32.or
- (i32.and
- (i32.shr_u
- (get_local $17)
- (i32.add
- (get_local $0)
- (i32.const 7)
- )
- )
- (i32.const 1)
- )
- (get_local $1)
+ (i32.shl
+ (get_local $0)
+ (i32.const 1)
)
)
)
+ (i32.const 0)
)
)
(i32.const 2)
@@ -11960,13 +10663,13 @@
)
)
(i32.store offset=28
- (get_local $3)
- (get_local $1)
+ (get_local $4)
+ (get_local $2)
)
(i32.store offset=4
(tee_local $0
(i32.add
- (get_local $3)
+ (get_local $4)
(i32.const 16)
)
)
@@ -11977,233 +10680,211 @@
(i32.const 0)
)
(if
- (i32.eq
+ (i32.eqz
(i32.and
- (tee_local $0
+ (tee_local $3
(i32.load
(i32.const 180)
)
)
- (tee_local $4
+ (tee_local $0
(i32.shl
(i32.const 1)
- (get_local $1)
+ (get_local $2)
)
)
)
- (i32.const 0)
)
(block
(i32.store
(i32.const 180)
(i32.or
+ (get_local $3)
(get_local $0)
- (get_local $4)
)
)
(i32.store
- (get_local $2)
- (get_local $3)
+ (get_local $1)
+ (get_local $4)
)
(i32.store offset=24
- (get_local $3)
- (get_local $2)
+ (get_local $4)
+ (get_local $1)
)
(i32.store offset=12
- (get_local $3)
- (get_local $3)
+ (get_local $4)
+ (get_local $4)
)
(i32.store offset=8
- (get_local $3)
- (get_local $3)
+ (get_local $4)
+ (get_local $4)
)
(br $do-once$29)
)
)
- (set_local $1
+ (set_local $2
(i32.shl
- (get_local $17)
+ (get_local $7)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (get_local $1)
+ (get_local $2)
(i32.const 1)
)
)
(i32.eq
- (get_local $1)
+ (get_local $2)
(i32.const 31)
)
)
)
)
- (set_local $2
+ (set_local $0
(i32.load
- (get_local $2)
+ (get_local $1)
)
)
- (loop $while-in$32
- (block $while-out$31
- (if
- (i32.eq
- (i32.and
- (i32.load offset=4
- (get_local $2)
- )
- (i32.const -8)
- )
- (get_local $17)
- )
- (block
- (set_local $22
- (get_local $2)
- )
- (set_local $11
- (i32.const 148)
- )
- (br $while-out$31)
- )
- )
- (set_local $4
- (i32.shl
- (get_local $1)
- (i32.const 1)
- )
- )
- (if
- (i32.eq
- (tee_local $0
- (i32.load
- (tee_local $1
- (i32.add
- (i32.add
- (get_local $2)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (get_local $1)
- (i32.const 31)
- )
- (i32.const 2)
- )
+ (block $jumpthreading$outer$1
+ (block $jumpthreading$inner$1
+ (block $jumpthreading$inner$0
+ (loop $while-in$32
+ (br_if $jumpthreading$inner$1
+ (i32.eq
+ (i32.and
+ (i32.load offset=4
+ (get_local $0)
)
+ (i32.const -8)
)
+ (get_local $7)
)
)
- (i32.const 0)
- )
- (block
- (set_local $25
- (get_local $2)
- )
- (set_local $37
- (get_local $1)
- )
- (set_local $11
- (i32.const 145)
- )
- (br $while-out$31)
- )
- (block
(set_local $1
- (get_local $4)
+ (i32.shl
+ (get_local $2)
+ (i32.const 1)
+ )
)
- (set_local $2
- (get_local $0)
- )
- )
- )
- (br $while-in$32)
- )
- )
- (if
- (i32.eq
- (get_local $11)
- (i32.const 145)
- )
- (if
- (i32.lt_u
- (get_local $37)
- (i32.load
- (i32.const 192)
- )
- )
- (call_import $_abort)
- (block
- (i32.store
- (get_local $37)
- (get_local $3)
- )
- (i32.store offset=24
- (get_local $3)
- (get_local $25)
- )
- (i32.store offset=12
- (get_local $3)
- (get_local $3)
- )
- (i32.store offset=8
- (get_local $3)
- (get_local $3)
- )
- )
- )
- (if
- (i32.eq
- (get_local $11)
- (i32.const 148)
- )
- (if
- (i32.and
- (i32.ge_u
- (tee_local $0
+ (if
+ (tee_local $3
(i32.load
(tee_local $2
(i32.add
- (get_local $22)
- (i32.const 8)
+ (i32.add
+ (get_local $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (get_local $2)
+ (i32.const 31)
+ )
+ (i32.const 2)
+ )
)
)
)
)
- (tee_local $1
- (i32.load
- (i32.const 192)
+ (block
+ (set_local $2
+ (get_local $1)
)
+ (set_local $0
+ (get_local $3)
+ )
+ (br $while-in$32)
+ )
+ (block
+ (set_local $1
+ (get_local $0)
+ )
+ (set_local $0
+ (get_local $2)
+ )
+ (br $jumpthreading$inner$0)
)
)
- (i32.ge_u
- (get_local $22)
- (get_local $1)
- )
)
- (block
- (i32.store offset=12
- (get_local $0)
- (get_local $3)
- )
- (i32.store
- (get_local $2)
- (get_local $3)
- )
- (i32.store offset=8
- (get_local $3)
- (get_local $0)
- )
- (i32.store offset=12
- (get_local $3)
- (get_local $22)
- )
- (i32.store offset=24
- (get_local $3)
- (i32.const 0)
+ )
+ (if
+ (i32.lt_u
+ (get_local $0)
+ (i32.load
+ (i32.const 192)
)
)
(call_import $_abort)
+ (block
+ (i32.store
+ (get_local $0)
+ (get_local $4)
+ )
+ (i32.store offset=24
+ (get_local $4)
+ (get_local $1)
+ )
+ (i32.store offset=12
+ (get_local $4)
+ (get_local $4)
+ )
+ (i32.store offset=8
+ (get_local $4)
+ (get_local $4)
+ )
+ (br $do-once$29)
+ )
)
+ (br $jumpthreading$outer$1)
+ )
+ (if
+ (i32.and
+ (i32.ge_u
+ (tee_local $3
+ (i32.load
+ (tee_local $1
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ )
+ )
+ )
+ (tee_local $2
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ )
+ (i32.ge_u
+ (get_local $0)
+ (get_local $2)
+ )
+ )
+ (block
+ (i32.store offset=12
+ (get_local $3)
+ (get_local $4)
+ )
+ (i32.store
+ (get_local $1)
+ (get_local $4)
+ )
+ (i32.store offset=8
+ (get_local $4)
+ (get_local $3)
+ )
+ (i32.store offset=12
+ (get_local $4)
+ (get_local $0)
+ )
+ (i32.store offset=24
+ (get_local $4)
+ (i32.const 0)
+ )
+ )
+ (call_import $_abort)
)
)
)
@@ -12211,17 +10892,23 @@
)
(return
(i32.add
- (get_local $13)
+ (get_local $6)
(i32.const 8)
)
)
)
- (set_local $6
- (get_local $5)
+ (set_local $0
+ (get_local $9)
)
)
+ (set_local $0
+ (get_local $9)
+ )
)
)
+ (set_local $0
+ (get_local $9)
+ )
)
)
)
@@ -12229,25 +10916,25 @@
)
(if
(i32.ge_u
- (tee_local $0
+ (tee_local $2
(i32.load
(i32.const 184)
)
)
- (get_local $6)
+ (get_local $0)
)
(block
- (set_local $1
+ (set_local $3
(i32.load
(i32.const 196)
)
)
(if
(i32.gt_u
- (tee_local $2
+ (tee_local $1
(i32.sub
+ (get_local $2)
(get_local $0)
- (get_local $6)
)
)
(i32.const 15)
@@ -12255,35 +10942,35 @@
(block
(i32.store
(i32.const 196)
- (tee_local $0
+ (tee_local $2
(i32.add
- (get_local $1)
- (get_local $6)
+ (get_local $3)
+ (get_local $0)
)
)
)
(i32.store
(i32.const 184)
- (get_local $2)
+ (get_local $1)
)
(i32.store offset=4
- (get_local $0)
+ (get_local $2)
(i32.or
- (get_local $2)
+ (get_local $1)
(i32.const 1)
)
)
(i32.store
(i32.add
- (get_local $0)
(get_local $2)
+ (get_local $1)
)
- (get_local $2)
+ (get_local $1)
)
(i32.store offset=4
- (get_local $1)
+ (get_local $3)
(i32.or
- (get_local $6)
+ (get_local $0)
(i32.const 3)
)
)
@@ -12298,37 +10985,34 @@
(i32.const 0)
)
(i32.store offset=4
- (get_local $1)
+ (get_local $3)
(i32.or
- (get_local $0)
+ (get_local $2)
(i32.const 3)
)
)
- (set_local $2
+ (i32.store
+ (tee_local $0
+ (i32.add
+ (i32.add
+ (get_local $3)
+ (get_local $2)
+ )
+ (i32.const 4)
+ )
+ )
(i32.or
(i32.load
- (tee_local $0
- (i32.add
- (i32.add
- (get_local $1)
- (get_local $0)
- )
- (i32.const 4)
- )
- )
+ (get_local $0)
)
(i32.const 1)
)
)
- (i32.store
- (get_local $0)
- (get_local $2)
- )
)
)
(return
(i32.add
- (get_local $1)
+ (get_local $3)
(i32.const 8)
)
)
@@ -12336,88 +11020,85 @@
)
(if
(i32.gt_u
- (tee_local $0
+ (tee_local $1
(i32.load
(i32.const 188)
)
)
- (get_local $6)
+ (get_local $0)
)
(block
(i32.store
(i32.const 188)
- (tee_local $2
+ (tee_local $1
(i32.sub
+ (get_local $1)
(get_local $0)
- (get_local $6)
)
)
)
(i32.store
(i32.const 200)
- (tee_local $1
+ (tee_local $2
(i32.add
- (tee_local $0
+ (tee_local $3
(i32.load
(i32.const 200)
)
)
- (get_local $6)
+ (get_local $0)
)
)
)
(i32.store offset=4
- (get_local $1)
+ (get_local $2)
(i32.or
- (get_local $2)
+ (get_local $1)
(i32.const 1)
)
)
(i32.store offset=4
- (get_local $0)
+ (get_local $3)
(i32.or
- (get_local $6)
+ (get_local $0)
(i32.const 3)
)
)
(return
(i32.add
- (get_local $0)
+ (get_local $3)
(i32.const 8)
)
)
)
)
(if
- (i32.eq
+ (i32.eqz
(i32.load
(i32.const 648)
)
- (i32.const 0)
)
(if
- (i32.eq
- (i32.and
- (i32.add
- (tee_local $0
- (call_import $_sysconf
- (i32.const 30)
- )
+ (i32.and
+ (i32.add
+ (tee_local $1
+ (call_import $_sysconf
+ (i32.const 30)
)
- (i32.const -1)
)
- (get_local $0)
+ (i32.const -1)
)
- (i32.const 0)
+ (get_local $1)
)
+ (call_import $_abort)
(block
(i32.store
(i32.const 656)
- (get_local $0)
+ (get_local $1)
)
(i32.store
(i32.const 652)
- (get_local $0)
+ (get_local $1)
)
(i32.store
(i32.const 660)
@@ -12448,75 +11129,71 @@
)
)
)
- (call_import $_abort)
)
)
- (set_local $5
+ (set_local $8
(i32.add
- (get_local $6)
+ (get_local $0)
(i32.const 48)
)
)
(if
(i32.le_u
- (tee_local $10
+ (tee_local $9
(i32.and
- (tee_local $7
+ (tee_local $6
(i32.add
- (tee_local $0
+ (tee_local $1
(i32.load
(i32.const 656)
)
)
- (tee_local $15
+ (tee_local $5
(i32.add
- (get_local $6)
+ (get_local $0)
(i32.const 47)
)
)
)
)
- (tee_local $12
+ (tee_local $2
(i32.sub
(i32.const 0)
- (get_local $0)
+ (get_local $1)
)
)
)
)
- (get_local $6)
+ (get_local $0)
)
(return
(i32.const 0)
)
)
(if
- (i32.ne
- (tee_local $0
- (i32.load
- (i32.const 616)
- )
+ (tee_local $4
+ (i32.load
+ (i32.const 616)
)
- (i32.const 0)
)
(if
(i32.or
(i32.le_u
- (tee_local $3
+ (tee_local $1
(i32.add
- (tee_local $4
+ (tee_local $3
(i32.load
(i32.const 608)
)
)
- (get_local $10)
+ (get_local $9)
)
)
- (get_local $4)
+ (get_local $3)
)
(i32.gt_u
- (get_local $3)
- (get_local $0)
+ (get_local $1)
+ (get_local $4)
)
)
(return
@@ -12524,679 +11201,414 @@
)
)
)
- (if
- (i32.eq
- (tee_local $11
- (block $label$break$L257
- (if
- (i32.eq
- (i32.and
- (i32.load
- (i32.const 620)
- )
- (i32.const 4)
- )
- (i32.const 0)
+ (block $jumpthreading$outer$12
+ (block $jumpthreading$inner$12
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (i32.const 620)
)
- (block
- (block $label$break$L259
- (if
- (i32.eq
- (tee_local $0
+ (i32.const 4)
+ )
+ )
+ (block
+ (block $label$break$L279
+ (block $jumpthreading$inner$4
+ (block $jumpthreading$inner$3
+ (br_if $jumpthreading$inner$3
+ (i32.eqz
+ (tee_local $4
(i32.load
(i32.const 200)
)
)
- (i32.const 0)
)
- (set_local $11
- (i32.const 173)
- )
- (block
- (set_local $16
- (i32.const 624)
- )
- (loop $while-in$38
- (block $while-out$37
- (if
- (i32.le_u
- (tee_local $4
- (i32.load
- (get_local $16)
- )
- )
- (get_local $0)
- )
- (if
- (i32.gt_u
- (i32.add
- (get_local $4)
- (i32.load
- (tee_local $3
- (i32.add
- (get_local $16)
- (i32.const 4)
- )
- )
- )
- )
- (get_local $0)
- )
- (block
- (set_local $4
- (get_local $16)
- )
- (set_local $16
- (get_local $3)
- )
- (br $while-out$37)
- )
- )
- )
- (if
- (i32.eq
- (tee_local $4
- (i32.load offset=8
- (get_local $16)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $11
- (i32.const 173)
- )
- (br $label$break$L259)
- )
- (set_local $16
- (get_local $4)
- )
- )
- (br $while-in$38)
- )
- )
+ )
+ (set_local $1
+ (i32.const 624)
+ )
+ (loop $while-in$38
+ (block $while-out$37
(if
- (i32.lt_u
- (tee_local $0
- (i32.and
- (i32.sub
- (get_local $7)
- (i32.load
- (i32.const 188)
- )
- )
- (get_local $12)
+ (i32.le_u
+ (tee_local $3
+ (i32.load
+ (get_local $1)
)
)
- (i32.const 2147483647)
+ (get_local $4)
)
(if
- (i32.eq
- (tee_local $3
- (call_import $_sbrk
- (get_local $0)
+ (i32.gt_u
+ (i32.add
+ (get_local $3)
+ (i32.load
+ (tee_local $3
+ (i32.add
+ (get_local $1)
+ (i32.const 4)
+ )
+ )
+ )
+ )
+ (get_local $4)
+ )
+ (block
+ (set_local $4
+ (get_local $1)
+ )
+ (br $while-out$37)
+ )
+ )
+ )
+ (br_if $while-in$38
+ (tee_local $1
+ (i32.load offset=8
+ (get_local $1)
+ )
+ )
+ )
+ (br $jumpthreading$inner$3)
+ )
+ )
+ (if
+ (i32.lt_u
+ (tee_local $1
+ (i32.and
+ (i32.sub
+ (get_local $6)
+ (i32.load
+ (i32.const 188)
+ )
+ )
+ (get_local $2)
+ )
+ )
+ (i32.const 2147483647)
+ )
+ (if
+ (i32.eq
+ (tee_local $2
+ (call_import $_sbrk
+ (get_local $1)
+ )
+ )
+ (i32.add
+ (i32.load
+ (get_local $4)
+ )
+ (i32.load
+ (get_local $3)
+ )
+ )
+ )
+ (br_if $jumpthreading$inner$12
+ (i32.ne
+ (get_local $2)
+ (i32.const -1)
+ )
+ )
+ (br $jumpthreading$inner$4)
+ )
+ )
+ (br $label$break$L279)
+ )
+ (if
+ (i32.ne
+ (tee_local $2
+ (call_import $_sbrk
+ (i32.const 0)
+ )
+ )
+ (i32.const -1)
+ )
+ (block
+ (set_local $3
+ (i32.add
+ (tee_local $6
+ (i32.load
+ (i32.const 608)
+ )
+ )
+ (tee_local $1
+ (if
+ (i32.and
+ (tee_local $3
+ (i32.add
+ (tee_local $4
+ (i32.load
+ (i32.const 652)
+ )
+ )
+ (i32.const -1)
+ )
+ )
+ (tee_local $1
+ (get_local $2)
)
)
(i32.add
- (i32.load
- (get_local $4)
+ (i32.sub
+ (get_local $9)
+ (get_local $1)
)
- (i32.load
- (get_local $16)
- )
- )
- )
- (if
- (i32.ne
- (get_local $3)
- (i32.const -1)
- )
- (block
- (set_local $14
- (get_local $3)
- )
- (set_local $19
- (get_local $0)
- )
- (br $label$break$L257
- (i32.const 193)
- )
- )
- )
- (block
- (set_local $30
- (get_local $3)
- )
- (set_local $21
- (get_local $0)
- )
- (set_local $11
- (i32.const 183)
- )
- )
- )
- )
- )
- )
- )
- (block $do-once$39
- (if
- (i32.eq
- (get_local $11)
- (i32.const 173)
- )
- (if
- (i32.ne
- (tee_local $7
- (call_import $_sbrk
- (i32.const 0)
- )
- )
- (i32.const -1)
- )
- (block
- (set_local $4
- (i32.add
- (tee_local $3
- (i32.load
- (i32.const 608)
- )
- )
- (tee_local $12
- (if
- (i32.eq
- (i32.and
- (tee_local $12
- (i32.add
- (tee_local $4
- (i32.load
- (i32.const 652)
- )
- )
- (i32.const -1)
- )
- )
- (tee_local $0
- (get_local $7)
- )
- )
- (i32.const 0)
- )
- (get_local $10)
- (i32.add
- (i32.sub
- (get_local $10)
- (get_local $0)
- )
- (i32.and
- (i32.add
- (get_local $12)
- (get_local $0)
- )
- (i32.sub
- (i32.const 0)
- (get_local $4)
- )
- )
- )
- )
- )
- )
- )
- (if
- (i32.and
- (i32.gt_u
- (get_local $12)
- (get_local $6)
- )
- (i32.lt_u
- (get_local $12)
- (i32.const 2147483647)
- )
- )
- (block
- (if
- (i32.ne
- (tee_local $0
- (i32.load
- (i32.const 616)
- )
- )
- (i32.const 0)
- )
- (br_if $do-once$39
- (i32.or
- (i32.le_u
- (get_local $4)
- (get_local $3)
- )
- (i32.gt_u
- (get_local $4)
- (get_local $0)
- )
- )
- )
- )
- (if
- (i32.eq
- (tee_local $30
- (call_import $_sbrk
- (get_local $12)
- )
- )
- (get_local $7)
- )
- (block
- (set_local $14
- (get_local $7)
- )
- (set_local $19
- (get_local $12)
- )
- (br $label$break$L257
- (i32.const 193)
- )
- )
- (block
- (set_local $21
- (get_local $12)
- )
- (set_local $11
- (i32.const 183)
- )
- )
- )
- )
- )
- )
- )
- )
- )
- (block $label$break$L279
- (if
- (i32.eq
- (get_local $11)
- (i32.const 183)
- )
- (block
- (set_local $4
- (i32.sub
- (i32.const 0)
- (get_local $21)
- )
- )
- (if
- (i32.and
- (i32.gt_u
- (get_local $5)
- (get_local $21)
- )
- (i32.and
- (i32.lt_u
- (get_local $21)
- (i32.const 2147483647)
- )
- (i32.ne
- (get_local $30)
- (i32.const -1)
- )
- )
- )
- (if
- (i32.lt_u
- (tee_local $0
(i32.and
(i32.add
- (i32.sub
- (get_local $15)
- (get_local $21)
- )
- (tee_local $0
- (i32.load
- (i32.const 656)
- )
- )
+ (get_local $3)
+ (get_local $1)
)
(i32.sub
(i32.const 0)
- (get_local $0)
- )
- )
- )
- (i32.const 2147483647)
- )
- (if
- (i32.eq
- (call_import $_sbrk
- (get_local $0)
- )
- (i32.const -1)
- )
- (block
- (drop
- (call_import $_sbrk
(get_local $4)
)
)
- (br $label$break$L279)
)
- (set_local $21
- (i32.add
- (get_local $0)
- (get_local $21)
+ (get_local $9)
+ )
+ )
+ )
+ )
+ (if
+ (i32.and
+ (i32.gt_u
+ (get_local $1)
+ (get_local $0)
+ )
+ (i32.lt_u
+ (get_local $1)
+ (i32.const 2147483647)
+ )
+ )
+ (block
+ (if
+ (tee_local $4
+ (i32.load
+ (i32.const 616)
+ )
+ )
+ (br_if $label$break$L279
+ (i32.or
+ (i32.le_u
+ (get_local $3)
+ (get_local $6)
+ )
+ (i32.gt_u
+ (get_local $3)
+ (get_local $4)
)
)
)
)
- )
- (if
- (i32.ne
- (get_local $30)
- (i32.const -1)
+ (br_if $jumpthreading$inner$12
+ (i32.eq
+ (tee_local $3
+ (call_import $_sbrk
+ (get_local $1)
+ )
+ )
+ (get_local $2)
+ )
)
(block
- (set_local $14
- (get_local $30)
+ (set_local $2
+ (get_local $3)
)
- (set_local $19
- (get_local $21)
- )
- (br $label$break$L257
- (i32.const 193)
- )
+ (br $jumpthreading$inner$4)
)
)
)
)
)
- (i32.store
- (i32.const 620)
- (i32.or
- (i32.load
- (i32.const 620)
- )
- (i32.const 4)
- )
- )
- (i32.const 190)
+ (br $label$break$L279)
)
- (i32.const 190)
- )
- )
- )
- (i32.const 190)
- )
- (if
- (i32.lt_u
- (get_local $10)
- (i32.const 2147483647)
- )
- (block
- (set_local $3
- (i32.and
- (i32.ne
- (tee_local $0
- (call_import $_sbrk
- (get_local $10)
- )
- )
- (i32.const -1)
- )
- (i32.ne
- (tee_local $4
- (call_import $_sbrk
- (i32.const 0)
- )
- )
- (i32.const -1)
- )
- )
- )
- (if
- (i32.and
- (i32.lt_u
- (get_local $0)
- (get_local $4)
- )
- (get_local $3)
- )
- (if
- (i32.gt_u
- (tee_local $4
- (i32.sub
- (get_local $4)
- (get_local $0)
- )
- )
- (i32.add
- (get_local $6)
- (i32.const 40)
- )
- )
- (block
- (set_local $14
- (get_local $0)
- )
- (set_local $19
- (get_local $4)
- )
- (set_local $11
- (i32.const 193)
- )
- )
- )
- )
- )
- )
- )
- (if
- (i32.eq
- (get_local $11)
- (i32.const 193)
- )
- (block
- (i32.store
- (i32.const 608)
- (tee_local $0
- (i32.add
- (i32.load
- (i32.const 608)
- )
- (get_local $19)
- )
- )
- )
- (if
- (i32.gt_u
- (get_local $0)
- (i32.load
- (i32.const 612)
- )
- )
- (i32.store
- (i32.const 612)
- (get_local $0)
- )
- )
- (block $do-once$44
- (if
- (i32.eq
- (tee_local $0
- (i32.load
- (i32.const 200)
- )
- )
- (i32.const 0)
- )
- (block
- (if
- (i32.or
- (i32.eq
- (tee_local $0
- (i32.load
- (i32.const 192)
- )
- )
- (i32.const 0)
- )
- (i32.lt_u
- (get_local $14)
- (get_local $0)
- )
- )
- (i32.store
- (i32.const 192)
- (get_local $14)
- )
- )
- (i32.store
- (i32.const 624)
- (get_local $14)
- )
- (i32.store
- (i32.const 628)
- (get_local $19)
- )
- (i32.store
- (i32.const 636)
- (i32.const 0)
- )
- (i32.store
- (i32.const 212)
- (i32.load
- (i32.const 648)
- )
- )
- (i32.store
- (i32.const 208)
- (i32.const -1)
- )
- (set_local $1
- (i32.const 0)
- )
- (loop $while-in$47
- (block $while-out$46
- (i32.store offset=12
- (tee_local $0
- (i32.add
- (i32.const 216)
- (i32.shl
- (i32.shl
- (get_local $1)
- (i32.const 1)
- )
- (i32.const 2)
- )
- )
- )
- (get_local $0)
- )
- (i32.store offset=8
- (get_local $0)
- (get_local $0)
- )
- (br_if $while-out$46
- (i32.eq
- (tee_local $1
- (i32.add
- (get_local $1)
- (i32.const 1)
- )
- )
- (i32.const 32)
- )
- )
- (br $while-in$47)
- )
- )
- (set_local $1
- (i32.eq
- (i32.and
- (tee_local $0
- (i32.add
- (get_local $14)
- (i32.const 8)
- )
- )
- (i32.const 7)
- )
+ (set_local $3
+ (i32.sub
(i32.const 0)
+ (get_local $1)
)
)
- (i32.store
- (i32.const 200)
- (tee_local $0
- (i32.add
- (get_local $14)
- (tee_local $1
- (select
- (i32.const 0)
- (i32.and
+ (if
+ (i32.and
+ (i32.gt_u
+ (get_local $8)
+ (get_local $1)
+ )
+ (i32.and
+ (i32.lt_u
+ (get_local $1)
+ (i32.const 2147483647)
+ )
+ (i32.ne
+ (get_local $2)
+ (i32.const -1)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (tee_local $4
+ (i32.and
+ (i32.add
(i32.sub
- (i32.const 0)
- (get_local $0)
+ (get_local $5)
+ (get_local $1)
)
- (i32.const 7)
+ (tee_local $4
+ (i32.load
+ (i32.const 656)
+ )
+ )
)
+ (i32.sub
+ (i32.const 0)
+ (get_local $4)
+ )
+ )
+ )
+ (i32.const 2147483647)
+ )
+ (if
+ (i32.eq
+ (call_import $_sbrk
+ (get_local $4)
+ )
+ (i32.const -1)
+ )
+ (block
+ (drop
+ (call_import $_sbrk
+ (get_local $3)
+ )
+ )
+ (br $label$break$L279)
+ )
+ (set_local $1
+ (i32.add
+ (get_local $4)
(get_local $1)
)
)
)
)
)
- (i32.store
- (i32.const 188)
- (tee_local $1
- (i32.sub
- (i32.add
- (get_local $19)
- (i32.const -40)
- )
- (get_local $1)
- )
- )
- )
- (i32.store offset=4
- (get_local $0)
- (i32.or
- (get_local $1)
- (i32.const 1)
- )
- )
- (i32.store offset=4
- (i32.add
- (get_local $0)
- (get_local $1)
- )
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
+ (br_if $jumpthreading$inner$12
+ (i32.ne
+ (get_local $2)
+ (i32.const -1)
)
)
)
- (block
- (set_local $7
- (i32.const 624)
+ (i32.store
+ (i32.const 620)
+ (i32.or
+ (i32.load
+ (i32.const 620)
+ )
+ (i32.const 4)
)
- (loop $while-in$49
- (block $while-out$48
- (if
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (get_local $9)
+ (i32.const 2147483647)
+ )
+ (if
+ (i32.and
+ (i32.lt_u
+ (tee_local $2
+ (call_import $_sbrk
+ (get_local $9)
+ )
+ )
+ (tee_local $1
+ (call_import $_sbrk
+ (i32.const 0)
+ )
+ )
+ )
+ (i32.and
+ (i32.ne
+ (get_local $2)
+ (i32.const -1)
+ )
+ (i32.ne
+ (get_local $1)
+ (i32.const -1)
+ )
+ )
+ )
+ (br_if $jumpthreading$inner$12
+ (i32.gt_u
+ (tee_local $1
+ (i32.sub
+ (get_local $1)
+ (get_local $2)
+ )
+ )
+ (i32.add
+ (get_local $0)
+ (i32.const 40)
+ )
+ )
+ )
+ )
+ )
+ (br $jumpthreading$outer$12)
+ )
+ (i32.store
+ (i32.const 608)
+ (tee_local $3
+ (i32.add
+ (i32.load
+ (i32.const 608)
+ )
+ (get_local $1)
+ )
+ )
+ )
+ (if
+ (i32.gt_u
+ (get_local $3)
+ (i32.load
+ (i32.const 612)
+ )
+ )
+ (i32.store
+ (i32.const 612)
+ (get_local $3)
+ )
+ )
+ (block $do-once$44
+ (if
+ (tee_local $7
+ (i32.load
+ (i32.const 200)
+ )
+ )
+ (block
+ (set_local $3
+ (i32.const 624)
+ )
+ (block $jumpthreading$outer$9
+ (block $jumpthreading$inner$9
+ (loop $while-in$49
+ (br_if $jumpthreading$inner$9
(i32.eq
- (get_local $14)
+ (get_local $2)
(i32.add
- (tee_local $4
+ (tee_local $9
(i32.load
- (get_local $7)
+ (get_local $3)
)
)
- (tee_local $3
+ (tee_local $5
(i32.load
- (tee_local $5
+ (tee_local $4
(i32.add
- (get_local $7)
+ (get_local $3)
(i32.const 4)
)
)
@@ -13204,1329 +11616,1202 @@
)
)
)
- (block
- (set_local $1
- (get_local $4)
- )
- (set_local $2
+ )
+ (br_if $while-in$49
+ (tee_local $3
+ (i32.load offset=8
(get_local $3)
)
- (set_local $42
- (get_local $5)
- )
- (set_local $43
- (get_local $7)
- )
- (set_local $11
- (i32.const 203)
- )
- (br $while-out$48)
)
)
- (if
- (i32.eq
- (tee_local $4
- (i32.load offset=8
- (get_local $7)
- )
- )
- (i32.const 0)
- )
- (br $while-out$48)
- (set_local $7
- (get_local $4)
- )
- )
- (br $while-in$49)
)
+ (br $jumpthreading$outer$9)
)
(if
- (i32.eq
- (get_local $11)
- (i32.const 203)
+ (i32.eqz
+ (i32.and
+ (i32.load offset=12
+ (get_local $3)
+ )
+ (i32.const 8)
+ )
)
(if
- (i32.eq
- (i32.and
- (i32.load offset=12
- (get_local $43)
- )
- (i32.const 8)
+ (i32.and
+ (i32.lt_u
+ (get_local $7)
+ (get_local $2)
)
- (i32.const 0)
+ (i32.ge_u
+ (get_local $7)
+ (get_local $9)
+ )
)
- (if
- (i32.and
- (i32.lt_u
- (get_local $0)
- (get_local $14)
- )
- (i32.ge_u
- (get_local $0)
+ (block
+ (i32.store
+ (get_local $4)
+ (i32.add
+ (get_local $5)
(get_local $1)
)
)
+ (set_local $3
+ (i32.add
+ (get_local $7)
+ (tee_local $2
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (tee_local $2
+ (i32.add
+ (get_local $7)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (get_local $2)
+ (i32.const 7)
+ )
+ )
+ )
+ )
+ )
+ (set_local $1
+ (i32.add
+ (i32.sub
+ (get_local $1)
+ (get_local $2)
+ )
+ (i32.load
+ (i32.const 188)
+ )
+ )
+ )
+ (i32.store
+ (i32.const 200)
+ (get_local $3)
+ )
+ (i32.store
+ (i32.const 188)
+ (get_local $1)
+ )
+ (i32.store offset=4
+ (get_local $3)
+ (i32.or
+ (get_local $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4
+ (i32.add
+ (get_local $3)
+ (get_local $1)
+ )
+ (i32.const 40)
+ )
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
+ )
+ )
+ (br $do-once$44)
+ )
+ )
+ )
+ )
+ (set_local $10
+ (if
+ (i32.lt_u
+ (get_local $2)
+ (tee_local $3
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ )
+ (block
+ (i32.store
+ (i32.const 192)
+ (get_local $2)
+ )
+ (get_local $2)
+ )
+ (get_local $3)
+ )
+ )
+ (set_local $5
+ (i32.add
+ (get_local $2)
+ (get_local $1)
+ )
+ )
+ (set_local $3
+ (i32.const 624)
+ )
+ (block $jumpthreading$outer$10
+ (block $jumpthreading$inner$10
+ (loop $while-in$51
+ (if
+ (i32.eq
+ (i32.load
+ (get_local $3)
+ )
+ (get_local $5)
+ )
(block
- (i32.store
- (get_local $42)
+ (set_local $4
+ (get_local $3)
+ )
+ (br $jumpthreading$inner$10)
+ )
+ )
+ (br_if $while-in$51
+ (tee_local $3
+ (i32.load offset=8
+ (get_local $3)
+ )
+ )
+ )
+ (set_local $4
+ (i32.const 624)
+ )
+ )
+ (br $jumpthreading$outer$10)
+ )
+ (if
+ (i32.and
+ (i32.load offset=12
+ (get_local $3)
+ )
+ (i32.const 8)
+ )
+ (set_local $4
+ (i32.const 624)
+ )
+ (block
+ (i32.store
+ (get_local $4)
+ (get_local $2)
+ )
+ (i32.store
+ (tee_local $3
+ (i32.add
+ (get_local $3)
+ (i32.const 4)
+ )
+ )
+ (i32.add
+ (i32.load
+ (get_local $3)
+ )
+ (get_local $1)
+ )
+ )
+ (set_local $6
+ (i32.add
+ (tee_local $9
(i32.add
(get_local $2)
- (get_local $19)
- )
- )
- (set_local $2
- (i32.eq
- (i32.and
- (tee_local $1
- (i32.add
- (get_local $0)
- (i32.const 8)
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (tee_local $1
+ (i32.add
+ (get_local $2)
+ (i32.const 8)
+ )
+ )
)
+ (i32.const 7)
)
- (i32.const 7)
+ (i32.const 0)
+ (i32.and
+ (get_local $1)
+ (i32.const 7)
+ )
)
- (i32.const 0)
)
)
- (set_local $0
- (i32.add
- (get_local $0)
- (tee_local $1
+ (get_local $0)
+ )
+ )
+ (set_local $2
+ (i32.sub
+ (i32.sub
+ (tee_local $8
+ (i32.add
+ (get_local $5)
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
- (get_local $1)
+ (tee_local $1
+ (i32.add
+ (get_local $5)
+ (i32.const 8)
+ )
+ )
)
(i32.const 7)
)
+ (i32.const 0)
+ (i32.and
+ (get_local $1)
+ (i32.const 7)
+ )
+ )
+ )
+ )
+ (get_local $9)
+ )
+ (get_local $0)
+ )
+ )
+ (i32.store offset=4
+ (get_local $9)
+ (i32.or
+ (get_local $0)
+ (i32.const 3)
+ )
+ )
+ (block $do-once$52
+ (if
+ (i32.eq
+ (get_local $8)
+ (get_local $7)
+ )
+ (block
+ (i32.store
+ (i32.const 188)
+ (tee_local $0
+ (i32.add
+ (i32.load
+ (i32.const 188)
+ )
(get_local $2)
)
)
)
- )
- (set_local $1
- (i32.add
- (i32.sub
- (get_local $19)
- (get_local $1)
- )
- (i32.load
- (i32.const 188)
+ (i32.store
+ (i32.const 200)
+ (get_local $6)
+ )
+ (i32.store offset=4
+ (get_local $6)
+ (i32.or
+ (get_local $0)
+ (i32.const 1)
)
)
)
- (i32.store
- (i32.const 200)
- (get_local $0)
- )
- (i32.store
- (i32.const 188)
- (get_local $1)
- )
- (i32.store offset=4
- (get_local $0)
- (i32.or
- (get_local $1)
- (i32.const 1)
+ (block
+ (if
+ (i32.eq
+ (get_local $8)
+ (i32.load
+ (i32.const 196)
+ )
+ )
+ (block
+ (i32.store
+ (i32.const 184)
+ (tee_local $0
+ (i32.add
+ (i32.load
+ (i32.const 184)
+ )
+ (get_local $2)
+ )
+ )
+ )
+ (i32.store
+ (i32.const 196)
+ (get_local $6)
+ )
+ (i32.store offset=4
+ (get_local $6)
+ (i32.or
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (get_local $6)
+ (get_local $0)
+ )
+ (get_local $0)
+ )
+ (br $do-once$52)
+ )
)
- )
- (i32.store offset=4
- (i32.add
- (get_local $0)
- (get_local $1)
- )
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
- )
- )
- (br $do-once$44)
- )
- )
- )
- )
- (set_local $4
- (if
- (i32.lt_u
- (get_local $14)
- (tee_local $1
- (i32.load
- (i32.const 192)
- )
- )
- )
- (block
- (i32.store
- (i32.const 192)
- (get_local $14)
- )
- (get_local $14)
- )
- (get_local $1)
- )
- )
- (set_local $3
- (i32.add
- (get_local $14)
- (get_local $19)
- )
- )
- (set_local $1
- (i32.const 624)
- )
- (loop $while-in$51
- (block $while-out$50
- (if
- (i32.eq
- (i32.load
- (get_local $1)
- )
- (get_local $3)
- )
- (block
- (set_local $44
- (get_local $1)
- )
- (set_local $38
- (get_local $1)
- )
- (set_local $11
- (i32.const 211)
- )
- (br $while-out$50)
- )
- )
- (if
- (i32.eq
- (tee_local $1
- (i32.load offset=8
- (get_local $1)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $27
- (i32.const 624)
- )
- (br $while-out$50)
- )
- )
- (br $while-in$51)
- )
- )
- (if
- (i32.eq
- (get_local $11)
- (i32.const 211)
- )
- (if
- (i32.eq
- (i32.and
- (i32.load offset=12
- (get_local $38)
- )
- (i32.const 8)
- )
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $44)
- (get_local $14)
- )
- (set_local $1
- (i32.add
- (i32.load
- (tee_local $2
+ (i32.store
+ (tee_local $0
(i32.add
- (get_local $38)
+ (if
+ (i32.eq
+ (i32.and
+ (tee_local $1
+ (i32.load offset=4
+ (get_local $8)
+ )
+ )
+ (i32.const 3)
+ )
+ (i32.const 1)
+ )
+ (block
+ (set_local $5
+ (i32.and
+ (get_local $1)
+ (i32.const -8)
+ )
+ )
+ (set_local $0
+ (i32.shr_u
+ (get_local $1)
+ (i32.const 3)
+ )
+ )
+ (block $label$break$L331
+ (if
+ (i32.lt_u
+ (get_local $1)
+ (i32.const 256)
+ )
+ (block
+ (set_local $3
+ (i32.load offset=12
+ (get_local $8)
+ )
+ )
+ (block $do-once$55
+ (if
+ (i32.ne
+ (tee_local $4
+ (i32.load offset=8
+ (get_local $8)
+ )
+ )
+ (tee_local $1
+ (i32.add
+ (i32.const 216)
+ (i32.shl
+ (i32.shl
+ (get_local $0)
+ (i32.const 1)
+ )
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (get_local $4)
+ (get_local $10)
+ )
+ (call_import $_abort)
+ )
+ (br_if $do-once$55
+ (i32.eq
+ (i32.load offset=12
+ (get_local $4)
+ )
+ (get_local $8)
+ )
+ )
+ (call_import $_abort)
+ )
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $3)
+ (get_local $4)
+ )
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.and
+ (i32.load
+ (i32.const 176)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (get_local $0)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (br $label$break$L331)
+ )
+ )
+ (block $do-once$57
+ (if
+ (i32.eq
+ (get_local $3)
+ (get_local $1)
+ )
+ (set_local $21
+ (i32.add
+ (get_local $3)
+ (i32.const 8)
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (get_local $3)
+ (get_local $10)
+ )
+ (call_import $_abort)
+ )
+ (if
+ (i32.eq
+ (i32.load
+ (tee_local $0
+ (i32.add
+ (get_local $3)
+ (i32.const 8)
+ )
+ )
+ )
+ (get_local $8)
+ )
+ (block
+ (set_local $21
+ (get_local $0)
+ )
+ (br $do-once$57)
+ )
+ )
+ (call_import $_abort)
+ )
+ )
+ )
+ (i32.store offset=12
+ (get_local $4)
+ (get_local $3)
+ )
+ (i32.store
+ (get_local $21)
+ (get_local $4)
+ )
+ )
+ (block
+ (set_local $7
+ (i32.load offset=24
+ (get_local $8)
+ )
+ )
+ (block $do-once$59
+ (if
+ (i32.eq
+ (tee_local $0
+ (i32.load offset=12
+ (get_local $8)
+ )
+ )
+ (get_local $8)
+ )
+ (block
+ (if
+ (tee_local $1
+ (i32.load
+ (tee_local $3
+ (i32.add
+ (tee_local $0
+ (i32.add
+ (get_local $8)
+ (i32.const 16)
+ )
+ )
+ (i32.const 4)
+ )
+ )
+ )
+ )
+ (set_local $0
+ (get_local $3)
+ )
+ (if
+ (i32.eqz
+ (tee_local $1
+ (i32.load
+ (get_local $0)
+ )
+ )
+ )
+ (block
+ (set_local $11
+ (i32.const 0)
+ )
+ (br $do-once$59)
+ )
+ )
+ )
+ (loop $while-in$62
+ (if
+ (tee_local $4
+ (i32.load
+ (tee_local $3
+ (i32.add
+ (get_local $1)
+ (i32.const 20)
+ )
+ )
+ )
+ )
+ (block
+ (set_local $1
+ (get_local $4)
+ )
+ (set_local $0
+ (get_local $3)
+ )
+ (br $while-in$62)
+ )
+ )
+ (if
+ (tee_local $4
+ (i32.load
+ (tee_local $3
+ (i32.add
+ (get_local $1)
+ (i32.const 16)
+ )
+ )
+ )
+ )
+ (block
+ (set_local $1
+ (get_local $4)
+ )
+ (set_local $0
+ (get_local $3)
+ )
+ (br $while-in$62)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (get_local $0)
+ (get_local $10)
+ )
+ (call_import $_abort)
+ (block
+ (i32.store
+ (get_local $0)
+ (i32.const 0)
+ )
+ (set_local $11
+ (get_local $1)
+ )
+ )
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (tee_local $4
+ (i32.load offset=8
+ (get_local $8)
+ )
+ )
+ (get_local $10)
+ )
+ (call_import $_abort)
+ )
+ (if
+ (i32.ne
+ (i32.load
+ (tee_local $3
+ (i32.add
+ (get_local $4)
+ (i32.const 12)
+ )
+ )
+ )
+ (get_local $8)
+ )
+ (call_import $_abort)
+ )
+ (if
+ (i32.eq
+ (i32.load
+ (tee_local $1
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ )
+ )
+ (get_local $8)
+ )
+ (block
+ (i32.store
+ (get_local $3)
+ (get_local $0)
+ )
+ (i32.store
+ (get_local $1)
+ (get_local $4)
+ )
+ (set_local $11
+ (get_local $0)
+ )
+ )
+ (call_import $_abort)
+ )
+ )
+ )
+ )
+ (br_if $label$break$L331
+ (i32.eqz
+ (get_local $7)
+ )
+ )
+ (block $do-once$63
+ (if
+ (i32.eq
+ (get_local $8)
+ (i32.load
+ (tee_local $0
+ (i32.add
+ (i32.const 480)
+ (i32.shl
+ (tee_local $1
+ (i32.load offset=28
+ (get_local $8)
+ )
+ )
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ )
+ (block
+ (i32.store
+ (get_local $0)
+ (get_local $11)
+ )
+ (br_if $do-once$63
+ (get_local $11)
+ )
+ (i32.store
+ (i32.const 180)
+ (i32.and
+ (i32.load
+ (i32.const 180)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (get_local $1)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (br $label$break$L331)
+ )
+ (block
+ (if
+ (i32.lt_u
+ (get_local $7)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call_import $_abort)
+ )
+ (if
+ (i32.eq
+ (i32.load
+ (tee_local $0
+ (i32.add
+ (get_local $7)
+ (i32.const 16)
+ )
+ )
+ )
+ (get_local $8)
+ )
+ (i32.store
+ (get_local $0)
+ (get_local $11)
+ )
+ (i32.store offset=20
+ (get_local $7)
+ (get_local $11)
+ )
+ )
+ (br_if $label$break$L331
+ (i32.eqz
+ (get_local $11)
+ )
+ )
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (get_local $11)
+ (tee_local $3
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ )
+ (call_import $_abort)
+ )
+ (i32.store offset=24
+ (get_local $11)
+ (get_local $7)
+ )
+ (if
+ (tee_local $1
+ (i32.load
+ (tee_local $0
+ (i32.add
+ (get_local $8)
+ (i32.const 16)
+ )
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (get_local $1)
+ (get_local $3)
+ )
+ (call_import $_abort)
+ (block
+ (i32.store offset=16
+ (get_local $11)
+ (get_local $1)
+ )
+ (i32.store offset=24
+ (get_local $1)
+ (get_local $11)
+ )
+ )
+ )
+ )
+ (br_if $label$break$L331
+ (i32.eqz
+ (tee_local $0
+ (i32.load offset=4
+ (get_local $0)
+ )
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (get_local $0)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call_import $_abort)
+ (block
+ (i32.store offset=20
+ (get_local $11)
+ (get_local $0)
+ )
+ (i32.store offset=24
+ (get_local $0)
+ (get_local $11)
+ )
+ )
+ )
+ )
+ )
+ )
+ (set_local $2
+ (i32.add
+ (get_local $5)
+ (get_local $2)
+ )
+ )
+ (i32.add
+ (get_local $8)
+ (get_local $5)
+ )
+ )
+ (get_local $8)
+ )
(i32.const 4)
)
)
- )
- (get_local $19)
- )
- )
- (i32.store
- (get_local $2)
- (get_local $1)
- )
- (set_local $9
- (i32.eq
- (i32.and
- (tee_local $1
- (i32.add
- (get_local $14)
- (i32.const 8)
- )
- )
- (i32.const 7)
- )
- (i32.const 0)
- )
- )
- (set_local $5
- (i32.eq
- (i32.and
- (tee_local $2
- (i32.add
- (get_local $3)
- (i32.const 8)
- )
- )
- (i32.const 7)
- )
- (i32.const 0)
- )
- )
- (set_local $1
- (i32.sub
- (tee_local $3
- (i32.add
- (get_local $3)
- (select
- (i32.const 0)
- (i32.and
- (i32.sub
- (i32.const 0)
- (get_local $2)
- )
- (i32.const 7)
- )
- (get_local $5)
- )
- )
- )
- (tee_local $7
- (i32.add
- (get_local $14)
- (select
- (i32.const 0)
- (i32.and
- (i32.sub
- (i32.const 0)
- (get_local $1)
- )
- (i32.const 7)
- )
- (get_local $9)
- )
- )
- )
- )
- )
- (set_local $5
- (i32.add
- (get_local $7)
- (get_local $6)
- )
- )
- (set_local $12
- (i32.sub
- (get_local $1)
- (get_local $6)
- )
- )
- (i32.store offset=4
- (get_local $7)
- (i32.or
- (get_local $6)
- (i32.const 3)
- )
- )
- (block $do-once$52
- (if
- (i32.eq
- (get_local $3)
- (get_local $0)
- )
- (block
- (i32.store
- (i32.const 188)
- (tee_local $0
- (i32.add
- (i32.load
- (i32.const 188)
- )
- (get_local $12)
- )
- )
- )
- (i32.store
- (i32.const 200)
- (get_local $5)
- )
- (i32.store offset=4
- (get_local $5)
- (i32.or
+ (i32.and
+ (i32.load
(get_local $0)
- (i32.const 1)
)
+ (i32.const -2)
)
)
- (block
- (if
- (i32.eq
- (get_local $3)
- (i32.load
- (i32.const 196)
+ (i32.store offset=4
+ (get_local $6)
+ (i32.or
+ (get_local $2)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (get_local $6)
+ (get_local $2)
+ )
+ (get_local $2)
+ )
+ (set_local $1
+ (i32.shr_u
+ (get_local $2)
+ (i32.const 3)
+ )
+ )
+ (if
+ (i32.lt_u
+ (get_local $2)
+ (i32.const 256)
+ )
+ (block
+ (set_local $0
+ (i32.add
+ (i32.const 216)
+ (i32.shl
+ (i32.shl
+ (get_local $1)
+ (i32.const 1)
+ )
+ (i32.const 2)
+ )
)
)
- (block
- (i32.store
- (i32.const 184)
- (tee_local $0
- (i32.add
+ (block $do-once$67
+ (if
+ (i32.and
+ (tee_local $2
(i32.load
- (i32.const 184)
+ (i32.const 176)
)
- (get_local $12)
+ )
+ (tee_local $1
+ (i32.shl
+ (i32.const 1)
+ (get_local $1)
+ )
+ )
+ )
+ (block
+ (if
+ (i32.ge_u
+ (tee_local $1
+ (i32.load
+ (tee_local $2
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ )
+ )
+ )
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (block
+ (set_local $22
+ (get_local $2)
+ )
+ (set_local $17
+ (get_local $1)
+ )
+ (br $do-once$67)
+ )
+ )
+ (call_import $_abort)
+ )
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (get_local $2)
+ (get_local $1)
+ )
+ )
+ (set_local $22
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ )
+ (set_local $17
+ (get_local $0)
)
)
)
- (i32.store
- (i32.const 196)
- (get_local $5)
- )
- (i32.store offset=4
- (get_local $5)
- (i32.or
- (get_local $0)
- (i32.const 1)
- )
- )
- (i32.store
- (i32.add
- (get_local $5)
- (get_local $0)
- )
- (get_local $0)
- )
- (br $do-once$52)
)
+ (i32.store
+ (get_local $22)
+ (get_local $6)
+ )
+ (i32.store offset=12
+ (get_local $17)
+ (get_local $6)
+ )
+ (i32.store offset=8
+ (get_local $6)
+ (get_local $17)
+ )
+ (i32.store offset=12
+ (get_local $6)
+ (get_local $0)
+ )
+ (br $do-once$52)
)
- (set_local $0
- (i32.and
- (i32.load
- (tee_local $1
- (i32.add
- (if
- (i32.eq
- (i32.and
- (tee_local $0
- (i32.load offset=4
- (get_local $3)
- )
- )
- (i32.const 3)
- )
- (i32.const 1)
+ )
+ (set_local $1
+ (i32.add
+ (i32.const 480)
+ (i32.shl
+ (tee_local $3
+ (block $do-once$69
+ (if
+ (tee_local $0
+ (i32.shr_u
+ (get_local $2)
+ (i32.const 8)
)
- (block
- (set_local $10
- (i32.and
- (get_local $0)
- (i32.const -8)
- )
+ )
+ (block
+ (br_if $do-once$69
+ (i32.const 31)
+ (i32.gt_u
+ (get_local $2)
+ (i32.const 16777215)
)
- (set_local $9
+ )
+ (i32.or
+ (i32.and
(i32.shr_u
- (get_local $0)
- (i32.const 3)
- )
- )
- (block $label$break$L331
- (if
- (i32.lt_u
- (get_local $0)
- (i32.const 256)
- )
- (block
- (set_local $1
- (i32.load offset=12
- (get_local $3)
- )
- )
- (block $do-once$55
- (if
- (i32.ne
- (tee_local $0
- (i32.load offset=8
+ (get_local $2)
+ (i32.add
+ (tee_local $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
+ (i32.or
+ (i32.or
+ (tee_local $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (tee_local $0
+ (i32.shl
+ (get_local $0)
+ (tee_local $3
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (get_local $0)
+ (i32.const 1048320)
+ )
+ (i32.const 16)
+ )
+ (i32.const 8)
+ )
+ )
+ )
+ )
+ (i32.const 520192)
+ )
+ (i32.const 16)
+ )
+ (i32.const 4)
+ )
+ )
(get_local $3)
)
- )
- (tee_local $2
- (i32.add
- (i32.const 216)
- (i32.shl
- (i32.shl
- (get_local $9)
- (i32.const 1)
+ (tee_local $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (tee_local $0
+ (i32.shl
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (i32.const 245760)
+ )
+ (i32.const 16)
)
(i32.const 2)
)
)
)
)
- (block
- (if
- (i32.lt_u
- (get_local $0)
- (get_local $4)
- )
- (call_import $_abort)
- )
- (br_if $do-once$55
- (i32.eq
- (i32.load offset=12
- (get_local $0)
- )
- (get_local $3)
- )
- )
- (call_import $_abort)
- )
- )
- )
- (if
- (i32.eq
- (get_local $1)
- (get_local $0)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.and
- (i32.load
- (i32.const 176)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (get_local $9)
- )
- (i32.const -1)
- )
- )
- )
- (br $label$break$L331)
- )
- )
- (block $do-once$57
- (if
- (i32.eq
- (get_local $1)
- (get_local $2)
- )
- (set_local $39
- (i32.add
+ (i32.shr_u
+ (i32.shl
+ (get_local $0)
(get_local $1)
- (i32.const 8)
)
- )
- (block
- (if
- (i32.lt_u
- (get_local $1)
- (get_local $4)
- )
- (call_import $_abort)
- )
- (if
- (i32.eq
- (i32.load
- (tee_local $2
- (i32.add
- (get_local $1)
- (i32.const 8)
- )
- )
- )
- (get_local $3)
- )
- (block
- (set_local $39
- (get_local $2)
- )
- (br $do-once$57)
- )
- )
- (call_import $_abort)
+ (i32.const 15)
)
)
)
- (i32.store offset=12
- (get_local $0)
- (get_local $1)
- )
- (i32.store
- (get_local $39)
- (get_local $0)
- )
- )
- (block
- (set_local $0
- (i32.load offset=24
- (get_local $3)
- )
- )
- (block $do-once$59
- (if
- (i32.eq
- (tee_local $1
- (i32.load offset=12
- (get_local $3)
- )
- )
- (get_local $3)
- )
- (block
- (if
- (i32.eq
- (tee_local $1
- (i32.load
- (tee_local $9
- (i32.add
- (tee_local $20
- (i32.add
- (get_local $3)
- (i32.const 16)
- )
- )
- (i32.const 4)
- )
- )
- )
- )
- (i32.const 0)
- )
- (if
- (i32.eq
- (tee_local $1
- (i32.load
- (get_local $20)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $18
- (i32.const 0)
- )
- (br $do-once$59)
- )
- (block
- (set_local $2
- (get_local $1)
- )
- (set_local $9
- (get_local $20)
- )
- )
- )
- (set_local $2
- (get_local $1)
- )
- )
- (loop $while-in$62
- (block $while-out$61
- (if
- (i32.ne
- (tee_local $1
- (i32.load
- (tee_local $20
- (i32.add
- (get_local $2)
- (i32.const 20)
- )
- )
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $2
- (get_local $1)
- )
- (set_local $9
- (get_local $20)
- )
- (br $while-in$62)
- )
- )
- (if
- (i32.eq
- (tee_local $1
- (i32.load
- (tee_local $20
- (i32.add
- (get_local $2)
- (i32.const 16)
- )
- )
- )
- )
- (i32.const 0)
- )
- (br $while-out$61)
- (block
- (set_local $2
- (get_local $1)
- )
- (set_local $9
- (get_local $20)
- )
- )
- )
- (br $while-in$62)
- )
- )
- (if
- (i32.lt_u
- (get_local $9)
- (get_local $4)
- )
- (call_import $_abort)
- (block
- (i32.store
- (get_local $9)
- (i32.const 0)
- )
- (set_local $18
- (get_local $2)
- )
- )
- )
- )
- (block
- (if
- (i32.lt_u
- (tee_local $2
- (i32.load offset=8
- (get_local $3)
- )
- )
- (get_local $4)
- )
- (call_import $_abort)
- )
- (if
- (i32.ne
- (i32.load
- (tee_local $4
- (i32.add
- (get_local $2)
- (i32.const 12)
- )
- )
- )
- (get_local $3)
- )
- (call_import $_abort)
- )
- (if
- (i32.eq
- (i32.load
- (tee_local $9
- (i32.add
- (get_local $1)
- (i32.const 8)
- )
- )
- )
- (get_local $3)
- )
- (block
- (i32.store
- (get_local $4)
- (get_local $1)
- )
- (i32.store
- (get_local $9)
- (get_local $2)
- )
- (set_local $18
- (get_local $1)
- )
- )
- (call_import $_abort)
- )
- )
- )
- )
- (br_if $label$break$L331
- (i32.eq
- (get_local $0)
- (i32.const 0)
- )
- )
- (block $do-once$63
- (if
- (i32.eq
- (get_local $3)
- (i32.load
- (tee_local $2
- (i32.add
- (i32.const 480)
- (i32.shl
- (tee_local $1
- (i32.load offset=28
- (get_local $3)
- )
- )
- (i32.const 2)
- )
- )
- )
- )
- )
- (block
- (i32.store
- (get_local $2)
- (get_local $18)
- )
- (br_if $do-once$63
- (i32.ne
- (get_local $18)
- (i32.const 0)
- )
- )
- (i32.store
- (i32.const 180)
- (i32.and
- (i32.load
- (i32.const 180)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (get_local $1)
- )
- (i32.const -1)
- )
- )
- )
- (br $label$break$L331)
- )
- (block
- (if
- (i32.lt_u
- (get_local $0)
- (i32.load
- (i32.const 192)
- )
- )
- (call_import $_abort)
- )
- (if
- (i32.eq
- (i32.load
- (tee_local $1
- (i32.add
- (get_local $0)
- (i32.const 16)
- )
- )
- )
- (get_local $3)
- )
- (i32.store
- (get_local $1)
- (get_local $18)
- )
- (i32.store offset=20
- (get_local $0)
- (get_local $18)
- )
- )
- (br_if $label$break$L331
- (i32.eq
- (get_local $18)
- (i32.const 0)
- )
- )
- )
- )
- )
- (if
- (i32.lt_u
- (get_local $18)
- (tee_local $1
- (i32.load
- (i32.const 192)
- )
- )
- )
- (call_import $_abort)
- )
- (i32.store offset=24
- (get_local $18)
- (get_local $0)
- )
- (if
- (i32.ne
- (tee_local $0
- (i32.load
- (tee_local $2
- (i32.add
- (get_local $3)
- (i32.const 16)
- )
- )
- )
- )
- (i32.const 0)
- )
- (if
- (i32.lt_u
- (get_local $0)
- (get_local $1)
- )
- (call_import $_abort)
- (block
- (i32.store offset=16
- (get_local $18)
- (get_local $0)
- )
- (i32.store offset=24
- (get_local $0)
- (get_local $18)
- )
- )
- )
- )
- (br_if $label$break$L331
- (i32.eq
- (tee_local $0
- (i32.load offset=4
- (get_local $2)
- )
- )
- (i32.const 0)
- )
- )
- (if
- (i32.lt_u
- (get_local $0)
- (i32.load
- (i32.const 192)
- )
- )
- (call_import $_abort)
- (block
- (i32.store offset=20
- (get_local $18)
- (get_local $0)
- )
- (i32.store offset=24
- (get_local $0)
- (get_local $18)
- )
- )
- )
+ (i32.const 7)
)
)
- )
- (set_local $4
- (i32.add
- (get_local $10)
- (get_local $12)
- )
- )
- (i32.add
- (get_local $3)
- (get_local $10)
- )
- )
- (block
- (set_local $4
- (get_local $12)
- )
- (get_local $3)
- )
- )
- (i32.const 4)
- )
- )
- )
- (i32.const -2)
- )
- )
- (i32.store
- (get_local $1)
- (get_local $0)
- )
- (i32.store offset=4
- (get_local $5)
- (i32.or
- (get_local $4)
- (i32.const 1)
- )
- )
- (i32.store
- (i32.add
- (get_local $5)
- (get_local $4)
- )
- (get_local $4)
- )
- (set_local $1
- (i32.shr_u
- (get_local $4)
- (i32.const 3)
- )
- )
- (if
- (i32.lt_u
- (get_local $4)
- (i32.const 256)
- )
- (block
- (set_local $2
- (i32.add
- (i32.const 216)
- (i32.shl
- (i32.shl
- (get_local $1)
- (i32.const 1)
- )
- (i32.const 2)
- )
- )
- )
- (block $do-once$67
- (if
- (i32.eq
- (i32.and
- (tee_local $0
- (i32.load
- (i32.const 176)
- )
- )
- (tee_local $1
- (i32.shl
(i32.const 1)
- (get_local $1)
+ )
+ (i32.shl
+ (get_local $0)
+ (i32.const 1)
)
)
)
(i32.const 0)
)
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (get_local $0)
- (get_local $1)
- )
- )
- (set_local $8
- (i32.add
- (get_local $2)
- (i32.const 8)
- )
- )
- (set_local $33
- (get_local $2)
- )
- )
- (block
- (if
- (i32.ge_u
- (tee_local $1
- (i32.load
- (tee_local $0
- (i32.add
- (get_local $2)
- (i32.const 8)
- )
- )
- )
- )
- (i32.load
- (i32.const 192)
- )
- )
- (block
- (set_local $8
- (get_local $0)
- )
- (set_local $33
- (get_local $1)
- )
- (br $do-once$67)
- )
- )
- (call_import $_abort)
- )
)
)
- (i32.store
- (get_local $8)
- (get_local $5)
- )
- (i32.store offset=12
- (get_local $33)
- (get_local $5)
- )
- (i32.store offset=8
- (get_local $5)
- (get_local $33)
- )
- (i32.store offset=12
- (get_local $5)
- (get_local $2)
- )
- (br $do-once$52)
+ (i32.const 2)
)
)
- (set_local $2
+ )
+ (i32.store offset=28
+ (get_local $6)
+ (get_local $3)
+ )
+ (i32.store offset=4
+ (tee_local $0
(i32.add
- (i32.const 480)
- (i32.shl
- (tee_local $1
- (block $do-once$69
- (if
- (i32.eq
- (tee_local $0
- (i32.shr_u
- (get_local $4)
- (i32.const 8)
- )
- )
- (i32.const 0)
- )
- (i32.const 0)
- (block
- (br_if $do-once$69
- (i32.const 31)
- (i32.gt_u
- (get_local $4)
- (i32.const 16777215)
- )
- )
- (set_local $1
- (i32.shl
- (tee_local $0
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
- (i32.or
- (tee_local $1
- (i32.and
- (i32.shr_u
- (i32.add
- (tee_local $2
- (i32.shl
- (get_local $0)
- (tee_local $0
- (i32.and
- (i32.shr_u
- (i32.add
- (get_local $0)
- (i32.const 1048320)
- )
- (i32.const 16)
- )
- (i32.const 8)
- )
- )
- )
- )
- (i32.const 520192)
- )
- (i32.const 16)
- )
- (i32.const 4)
- )
- )
- (get_local $0)
- )
- (tee_local $0
- (i32.and
- (i32.shr_u
- (i32.add
- (tee_local $1
- (i32.shl
- (get_local $2)
- (get_local $1)
- )
- )
- (i32.const 245760)
- )
- (i32.const 16)
- )
- (i32.const 2)
- )
- )
- )
- )
- (i32.shr_u
- (i32.shl
- (get_local $1)
- (get_local $0)
- )
- (i32.const 15)
- )
- )
- )
- (i32.const 1)
- )
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (get_local $4)
- (i32.add
- (get_local $0)
- (i32.const 7)
- )
- )
- (i32.const 1)
- )
- (get_local $1)
- )
- )
- )
- )
- )
- (i32.const 2)
- )
+ (get_local $6)
+ (i32.const 16)
)
)
- (i32.store offset=28
- (get_local $5)
- (get_local $1)
- )
- (i32.store offset=4
- (tee_local $0
- (i32.add
- (get_local $5)
- (i32.const 16)
- )
- )
- (i32.const 0)
- )
- (i32.store
- (get_local $0)
- (i32.const 0)
- )
- (if
- (i32.eq
- (i32.and
- (tee_local $0
- (i32.load
- (i32.const 180)
- )
- )
- (tee_local $8
- (i32.shl
- (i32.const 1)
- (get_local $1)
- )
+ (i32.const 0)
+ )
+ (i32.store
+ (get_local $0)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (tee_local $4
+ (i32.load
+ (i32.const 180)
)
)
- (i32.const 0)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.or
- (get_local $0)
- (get_local $8)
- )
- )
- (i32.store
- (get_local $2)
- (get_local $5)
- )
- (i32.store offset=24
- (get_local $5)
- (get_local $2)
- )
- (i32.store offset=12
- (get_local $5)
- (get_local $5)
- )
- (i32.store offset=8
- (get_local $5)
- (get_local $5)
- )
- (br $do-once$52)
- )
- )
- (set_local $1
- (i32.shl
- (get_local $4)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
- (get_local $1)
- (i32.const 1)
- )
- )
- (i32.eq
- (get_local $1)
- (i32.const 31)
- )
- )
- )
- )
- (set_local $2
- (i32.load
- (get_local $2)
- )
- )
- (loop $while-in$72
- (block $while-out$71
- (if
- (i32.eq
- (i32.and
- (i32.load offset=4
- (get_local $2)
- )
- (i32.const -8)
- )
- (get_local $4)
- )
- (block
- (set_local $34
- (get_local $2)
- )
- (set_local $11
- (i32.const 281)
- )
- (br $while-out$71)
- )
- )
- (set_local $8
+ (tee_local $0
(i32.shl
- (get_local $1)
+ (i32.const 1)
+ (get_local $3)
+ )
+ )
+ )
+ )
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.or
+ (get_local $4)
+ (get_local $0)
+ )
+ )
+ (i32.store
+ (get_local $1)
+ (get_local $6)
+ )
+ (i32.store offset=24
+ (get_local $6)
+ (get_local $1)
+ )
+ (i32.store offset=12
+ (get_local $6)
+ (get_local $6)
+ )
+ (i32.store offset=8
+ (get_local $6)
+ (get_local $6)
+ )
+ (br $do-once$52)
+ )
+ )
+ (set_local $3
+ (i32.shl
+ (get_local $2)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (get_local $3)
(i32.const 1)
)
)
- (if
- (i32.eq
- (tee_local $0
+ (i32.eq
+ (get_local $3)
+ (i32.const 31)
+ )
+ )
+ )
+ )
+ (set_local $0
+ (i32.load
+ (get_local $1)
+ )
+ )
+ (block $jumpthreading$outer$6
+ (block $jumpthreading$inner$6
+ (block $jumpthreading$inner$5
+ (loop $while-in$72
+ (br_if $jumpthreading$inner$6
+ (i32.eq
+ (i32.and
+ (i32.load offset=4
+ (get_local $0)
+ )
+ (i32.const -8)
+ )
+ (get_local $2)
+ )
+ )
+ (set_local $1
+ (i32.shl
+ (get_local $3)
+ (i32.const 1)
+ )
+ )
+ (if
+ (tee_local $4
(i32.load
- (tee_local $1
+ (tee_local $3
(i32.add
(i32.add
- (get_local $2)
+ (get_local $0)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (get_local $1)
+ (get_local $3)
(i32.const 31)
)
(i32.const 2)
@@ -14535,40 +12820,30 @@
)
)
)
- (i32.const 0)
- )
- (block
- (set_local $45
- (get_local $2)
+ (block
+ (set_local $3
+ (get_local $1)
+ )
+ (set_local $0
+ (get_local $4)
+ )
+ (br $while-in$72)
)
- (set_local $40
- (get_local $1)
- )
- (set_local $11
- (i32.const 278)
- )
- (br $while-out$71)
- )
- (block
- (set_local $1
- (get_local $8)
- )
- (set_local $2
- (get_local $0)
+ (block
+ (set_local $1
+ (get_local $0)
+ )
+ (set_local $0
+ (get_local $3)
+ )
+ (br $jumpthreading$inner$5)
)
)
)
- (br $while-in$72)
- )
- )
- (if
- (i32.eq
- (get_local $11)
- (i32.const 278)
)
(if
(i32.lt_u
- (get_local $40)
+ (get_local $0)
(i32.load
(i32.const 192)
)
@@ -14576,495 +12851,461 @@
(call_import $_abort)
(block
(i32.store
- (get_local $40)
- (get_local $5)
+ (get_local $0)
+ (get_local $6)
)
(i32.store offset=24
- (get_local $5)
- (get_local $45)
+ (get_local $6)
+ (get_local $1)
)
(i32.store offset=12
- (get_local $5)
- (get_local $5)
+ (get_local $6)
+ (get_local $6)
)
(i32.store offset=8
- (get_local $5)
- (get_local $5)
+ (get_local $6)
+ (get_local $6)
)
+ (br $do-once$52)
)
)
- (if
- (i32.eq
- (get_local $11)
- (i32.const 281)
- )
- (if
- (i32.and
- (i32.ge_u
- (tee_local $0
- (i32.load
- (tee_local $2
- (i32.add
- (get_local $34)
- (i32.const 8)
- )
- )
- )
- )
+ (br $jumpthreading$outer$6)
+ )
+ (if
+ (i32.and
+ (i32.ge_u
+ (tee_local $3
+ (i32.load
(tee_local $1
- (i32.load
- (i32.const 192)
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
)
)
)
- (i32.ge_u
- (get_local $34)
- (get_local $1)
+ )
+ (tee_local $2
+ (i32.load
+ (i32.const 192)
)
)
- (block
- (i32.store offset=12
- (get_local $0)
- (get_local $5)
- )
- (i32.store
- (get_local $2)
- (get_local $5)
- )
- (i32.store offset=8
- (get_local $5)
- (get_local $0)
- )
- (i32.store offset=12
- (get_local $5)
- (get_local $34)
- )
- (i32.store offset=24
- (get_local $5)
- (i32.const 0)
- )
- )
- (call_import $_abort)
+ )
+ (i32.ge_u
+ (get_local $0)
+ (get_local $2)
)
)
+ (block
+ (i32.store offset=12
+ (get_local $3)
+ (get_local $6)
+ )
+ (i32.store
+ (get_local $1)
+ (get_local $6)
+ )
+ (i32.store offset=8
+ (get_local $6)
+ (get_local $3)
+ )
+ (i32.store offset=12
+ (get_local $6)
+ (get_local $0)
+ )
+ (i32.store offset=24
+ (get_local $6)
+ (i32.const 0)
+ )
+ )
+ (call_import $_abort)
)
)
)
)
- (return
- (i32.add
- (get_local $7)
- (i32.const 8)
- )
- )
)
- (set_local $27
- (i32.const 624)
+ (return
+ (i32.add
+ (get_local $9)
+ (i32.const 8)
+ )
)
)
)
- (loop $while-in$74
- (block $while-out$73
- (if
- (i32.le_u
- (tee_local $1
- (i32.load
- (get_local $27)
+ )
+ (loop $while-in$74
+ (block $while-out$73
+ (if
+ (i32.le_u
+ (tee_local $3
+ (i32.load
+ (get_local $4)
+ )
+ )
+ (get_local $7)
+ )
+ (br_if $while-out$73
+ (i32.gt_u
+ (tee_local $3
+ (i32.add
+ (get_local $3)
+ (i32.load offset=4
+ (get_local $4)
+ )
)
)
- (get_local $0)
+ (get_local $7)
)
- (if
- (i32.gt_u
- (tee_local $1
- (i32.add
- (get_local $1)
- (i32.load offset=4
- (get_local $27)
+ )
+ )
+ (set_local $4
+ (i32.load offset=8
+ (get_local $4)
+ )
+ )
+ (br $while-in$74)
+ )
+ )
+ (set_local $5
+ (i32.add
+ (tee_local $4
+ (i32.add
+ (get_local $3)
+ (i32.const -47)
+ )
+ )
+ (i32.const 8)
+ )
+ )
+ (set_local $8
+ (i32.add
+ (tee_local $9
+ (select
+ (get_local $7)
+ (tee_local $4
+ (i32.add
+ (get_local $4)
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (get_local $5)
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (get_local $5)
+ (i32.const 7)
+ )
+ )
+ )
+ )
+ (i32.lt_u
+ (get_local $4)
+ (tee_local $6
+ (i32.add
+ (get_local $7)
+ (i32.const 16)
+ )
+ )
+ )
+ )
+ )
+ (i32.const 8)
+ )
+ )
+ (i32.store
+ (i32.const 200)
+ (tee_local $5
+ (i32.add
+ (get_local $2)
+ (tee_local $4
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (tee_local $4
+ (i32.add
+ (get_local $2)
+ (i32.const 8)
)
)
)
- (get_local $0)
+ (i32.const 7)
)
- (block
- (set_local $2
- (get_local $1)
- )
- (br $while-out$73)
+ (i32.const 0)
+ (i32.and
+ (get_local $4)
+ (i32.const 7)
)
)
)
- (set_local $27
- (i32.load offset=8
- (get_local $27)
- )
- )
- (br $while-in$74)
- )
- )
- (set_local $8
- (i32.eq
- (i32.and
- (tee_local $1
- (i32.add
- (tee_local $4
- (i32.add
- (get_local $2)
- (i32.const -47)
- )
- )
- (i32.const 8)
- )
- )
- (i32.const 7)
- )
- (i32.const 0)
- )
- )
- (set_local $4
- (i32.lt_u
- (tee_local $1
- (i32.add
- (get_local $4)
- (select
- (i32.const 0)
- (i32.and
- (i32.sub
- (i32.const 0)
- (get_local $1)
- )
- (i32.const 7)
- )
- (get_local $8)
- )
- )
- )
- (tee_local $8
- (i32.add
- (get_local $0)
- (i32.const 16)
- )
- )
)
)
- (set_local $4
+ )
+ (i32.store
+ (i32.const 188)
+ (tee_local $4
+ (i32.sub
+ (i32.add
+ (get_local $1)
+ (i32.const -40)
+ )
+ (get_local $4)
+ )
+ )
+ )
+ (i32.store offset=4
+ (get_local $5)
+ (i32.or
+ (get_local $4)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4
+ (i32.add
+ (get_local $5)
+ (get_local $4)
+ )
+ (i32.const 40)
+ )
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
+ )
+ )
+ (i32.store
+ (tee_local $4
(i32.add
- (tee_local $5
- (select
- (get_local $0)
- (get_local $1)
- (get_local $4)
- )
- )
- (i32.const 8)
+ (get_local $9)
+ (i32.const 4)
)
)
- (set_local $3
- (i32.eq
- (i32.and
- (tee_local $1
- (i32.add
- (get_local $14)
- (i32.const 8)
- )
- )
- (i32.const 7)
- )
- (i32.const 0)
- )
+ (i32.const 27)
+ )
+ (i32.store
+ (get_local $8)
+ (i32.load
+ (i32.const 624)
)
+ )
+ (i32.store offset=4
+ (get_local $8)
+ (i32.load
+ (i32.const 628)
+ )
+ )
+ (i32.store offset=8
+ (get_local $8)
+ (i32.load
+ (i32.const 632)
+ )
+ )
+ (i32.store offset=12
+ (get_local $8)
+ (i32.load
+ (i32.const 636)
+ )
+ )
+ (i32.store
+ (i32.const 624)
+ (get_local $2)
+ )
+ (i32.store
+ (i32.const 628)
+ (get_local $1)
+ )
+ (i32.store
+ (i32.const 636)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 632)
+ (get_local $8)
+ )
+ (set_local $1
+ (i32.add
+ (get_local $9)
+ (i32.const 24)
+ )
+ )
+ (loop $while-in$76
(i32.store
- (i32.const 200)
(tee_local $1
(i32.add
- (get_local $14)
- (tee_local $3
- (select
- (i32.const 0)
- (i32.and
- (i32.sub
- (i32.const 0)
- (get_local $1)
- )
- (i32.const 7)
- )
- (get_local $3)
- )
- )
- )
- )
- )
- (i32.store
- (i32.const 188)
- (tee_local $3
- (i32.sub
- (i32.add
- (get_local $19)
- (i32.const -40)
- )
- (get_local $3)
- )
- )
- )
- (i32.store offset=4
- (get_local $1)
- (i32.or
- (get_local $3)
- (i32.const 1)
- )
- )
- (i32.store offset=4
- (i32.add
- (get_local $1)
- (get_local $3)
- )
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
- )
- )
- (i32.store
- (tee_local $3
- (i32.add
- (get_local $5)
+ (get_local $1)
(i32.const 4)
)
)
- (i32.const 27)
+ (i32.const 7)
)
- (i32.store
- (get_local $4)
- (i32.load
- (i32.const 624)
+ (br_if $while-in$76
+ (i32.lt_u
+ (i32.add
+ (get_local $1)
+ (i32.const 4)
+ )
+ (get_local $3)
)
)
- (i32.store offset=4
- (get_local $4)
- (i32.load
- (i32.const 628)
+ )
+ (if
+ (i32.ne
+ (get_local $9)
+ (get_local $7)
+ )
+ (block
+ (i32.store
+ (get_local $4)
+ (i32.and
+ (i32.load
+ (get_local $4)
+ )
+ (i32.const -2)
+ )
)
- )
- (i32.store offset=8
- (get_local $4)
- (i32.load
- (i32.const 632)
+ (i32.store offset=4
+ (get_local $7)
+ (i32.or
+ (tee_local $5
+ (i32.sub
+ (get_local $9)
+ (get_local $7)
+ )
+ )
+ (i32.const 1)
+ )
)
- )
- (i32.store offset=12
- (get_local $4)
- (i32.load
- (i32.const 636)
- )
- )
- (i32.store
- (i32.const 624)
- (get_local $14)
- )
- (i32.store
- (i32.const 628)
- (get_local $19)
- )
- (i32.store
- (i32.const 636)
- (i32.const 0)
- )
- (i32.store
- (i32.const 632)
- (get_local $4)
- )
- (set_local $1
- (i32.add
+ (i32.store
+ (get_local $9)
(get_local $5)
- (i32.const 24)
)
- )
- (loop $while-in$76
- (block $while-out$75
- (i32.store
- (tee_local $1
+ (set_local $2
+ (i32.shr_u
+ (get_local $5)
+ (i32.const 3)
+ )
+ )
+ (if
+ (i32.lt_u
+ (get_local $5)
+ (i32.const 256)
+ )
+ (block
+ (set_local $1
(i32.add
- (get_local $1)
- (i32.const 4)
- )
- )
- (i32.const 7)
- )
- (br_if $while-out$75
- (i32.ge_u
- (i32.add
- (get_local $1)
- (i32.const 4)
- )
- (get_local $2)
- )
- )
- (br $while-in$76)
- )
- )
- (if
- (i32.ne
- (get_local $5)
- (get_local $0)
- )
- (block
- (i32.store
- (get_local $3)
- (i32.and
- (i32.load
- (get_local $3)
- )
- (i32.const -2)
- )
- )
- (i32.store offset=4
- (get_local $0)
- (i32.or
- (tee_local $3
- (i32.sub
- (get_local $5)
- (get_local $0)
+ (i32.const 216)
+ (i32.shl
+ (i32.shl
+ (get_local $2)
+ (i32.const 1)
+ )
+ (i32.const 2)
)
)
- (i32.const 1)
)
- )
- (i32.store
- (get_local $5)
- (get_local $3)
- )
- (set_local $2
- (i32.shr_u
- (get_local $3)
- (i32.const 3)
- )
- )
- (if
- (i32.lt_u
- (get_local $3)
- (i32.const 256)
- )
- (block
- (set_local $4
- (i32.add
- (i32.const 216)
+ (if
+ (i32.and
+ (tee_local $3
+ (i32.load
+ (i32.const 176)
+ )
+ )
+ (tee_local $2
(i32.shl
- (i32.shl
- (get_local $2)
- (i32.const 1)
- )
- (i32.const 2)
+ (i32.const 1)
+ (get_local $2)
)
)
)
(if
- (i32.eq
- (i32.and
- (tee_local $1
- (i32.load
- (i32.const 176)
- )
- )
- (tee_local $2
- (i32.shl
- (i32.const 1)
- (get_local $2)
- )
- )
- )
- (i32.const 0)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (get_local $1)
- (get_local $2)
- )
- )
- (set_local $9
- (i32.add
- (get_local $4)
- (i32.const 8)
- )
- )
- (set_local $20
- (get_local $4)
- )
- )
- (if
- (i32.lt_u
- (tee_local $2
- (i32.load
- (tee_local $1
- (i32.add
- (get_local $4)
- (i32.const 8)
- )
- )
- )
- )
+ (i32.lt_u
+ (tee_local $2
(i32.load
- (i32.const 192)
- )
- )
- (call_import $_abort)
- (block
- (set_local $9
- (get_local $1)
- )
- (set_local $20
- (get_local $2)
- )
- )
- )
- )
- (i32.store
- (get_local $9)
- (get_local $0)
- )
- (i32.store offset=12
- (get_local $20)
- (get_local $0)
- )
- (i32.store offset=8
- (get_local $0)
- (get_local $20)
- )
- (i32.store offset=12
- (get_local $0)
- (get_local $4)
- )
- (br $do-once$44)
- )
- )
- (set_local $4
- (i32.add
- (i32.const 480)
- (i32.shl
- (tee_local $2
- (if
- (i32.eq
- (tee_local $1
- (i32.shr_u
- (get_local $3)
+ (tee_local $3
+ (i32.add
+ (get_local $1)
(i32.const 8)
)
)
- (i32.const 0)
)
- (i32.const 0)
- (if
- (i32.gt_u
- (get_local $3)
- (i32.const 16777215)
- )
- (i32.const 31)
- (block
- (set_local $2
- (i32.shl
+ )
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call_import $_abort)
+ (block
+ (set_local $23
+ (get_local $3)
+ )
+ (set_local $18
+ (get_local $2)
+ )
+ )
+ )
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (get_local $3)
+ (get_local $2)
+ )
+ )
+ (set_local $23
+ (i32.add
+ (get_local $1)
+ (i32.const 8)
+ )
+ )
+ (set_local $18
+ (get_local $1)
+ )
+ )
+ )
+ (i32.store
+ (get_local $23)
+ (get_local $7)
+ )
+ (i32.store offset=12
+ (get_local $18)
+ (get_local $7)
+ )
+ (i32.store offset=8
+ (get_local $7)
+ (get_local $18)
+ )
+ (i32.store offset=12
+ (get_local $7)
+ (get_local $1)
+ )
+ (br $do-once$44)
+ )
+ )
+ (set_local $2
+ (i32.add
+ (i32.const 480)
+ (i32.shl
+ (tee_local $3
+ (if
+ (tee_local $1
+ (i32.shr_u
+ (get_local $5)
+ (i32.const 8)
+ )
+ )
+ (if
+ (i32.gt_u
+ (get_local $5)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (get_local $5)
+ (i32.add
(tee_local $1
(i32.add
(i32.sub
@@ -15075,10 +13316,10 @@
(i32.and
(i32.shr_u
(i32.add
- (tee_local $4
+ (tee_local $1
(i32.shl
(get_local $1)
- (tee_local $1
+ (tee_local $3
(i32.and
(i32.shr_u
(i32.add
@@ -15099,15 +13340,15 @@
(i32.const 4)
)
)
- (get_local $1)
+ (get_local $3)
)
- (tee_local $1
+ (tee_local $2
(i32.and
(i32.shr_u
(i32.add
- (tee_local $2
+ (tee_local $1
(i32.shl
- (get_local $4)
+ (get_local $1)
(get_local $2)
)
)
@@ -15122,158 +13363,143 @@
)
(i32.shr_u
(i32.shl
- (get_local $2)
(get_local $1)
+ (get_local $2)
)
(i32.const 15)
)
)
)
- (i32.const 1)
+ (i32.const 7)
)
)
- (i32.or
- (i32.and
- (i32.shr_u
- (get_local $3)
- (i32.add
- (get_local $1)
- (i32.const 7)
- )
- )
- (i32.const 1)
- )
- (get_local $2)
- )
+ (i32.const 1)
+ )
+ (i32.shl
+ (get_local $1)
+ (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 2)
)
+ (i32.const 2)
)
)
- (i32.store offset=28
- (get_local $0)
- (get_local $2)
- )
- (i32.store offset=20
- (get_local $0)
- (i32.const 0)
- )
- (i32.store
- (get_local $8)
- (i32.const 0)
- )
- (if
- (i32.eq
- (i32.and
- (tee_local $1
- (i32.load
- (i32.const 180)
- )
- )
- (tee_local $8
- (i32.shl
- (i32.const 1)
- (get_local $2)
- )
+ )
+ (i32.store offset=28
+ (get_local $7)
+ (get_local $3)
+ )
+ (i32.store offset=20
+ (get_local $7)
+ (i32.const 0)
+ )
+ (i32.store
+ (get_local $6)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (tee_local $4
+ (i32.load
+ (i32.const 180)
)
)
- (i32.const 0)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.or
- (get_local $1)
- (get_local $8)
- )
- )
- (i32.store
- (get_local $4)
- (get_local $0)
- )
- (i32.store offset=24
- (get_local $0)
- (get_local $4)
- )
- (i32.store offset=12
- (get_local $0)
- (get_local $0)
- )
- (i32.store offset=8
- (get_local $0)
- (get_local $0)
- )
- (br $do-once$44)
- )
- )
- (set_local $2
- (i32.shl
- (get_local $3)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
- (get_local $2)
- (i32.const 1)
- )
- )
- (i32.eq
- (get_local $2)
- (i32.const 31)
- )
- )
- )
- )
- (set_local $4
- (i32.load
- (get_local $4)
- )
- )
- (loop $while-in$78
- (block $while-out$77
- (if
- (i32.eq
- (i32.and
- (i32.load offset=4
- (get_local $4)
- )
- (i32.const -8)
- )
+ (tee_local $1
+ (i32.shl
+ (i32.const 1)
(get_local $3)
)
- (block
- (set_local $35
- (get_local $4)
- )
- (set_local $11
- (i32.const 307)
- )
- (br $while-out$77)
- )
)
- (set_local $8
- (i32.shl
- (get_local $2)
+ )
+ )
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.or
+ (get_local $4)
+ (get_local $1)
+ )
+ )
+ (i32.store
+ (get_local $2)
+ (get_local $7)
+ )
+ (i32.store offset=24
+ (get_local $7)
+ (get_local $2)
+ )
+ (i32.store offset=12
+ (get_local $7)
+ (get_local $7)
+ )
+ (i32.store offset=8
+ (get_local $7)
+ (get_local $7)
+ )
+ (br $do-once$44)
+ )
+ )
+ (set_local $3
+ (i32.shl
+ (get_local $5)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (get_local $3)
(i32.const 1)
)
)
- (if
- (i32.eq
- (tee_local $1
+ (i32.eq
+ (get_local $3)
+ (i32.const 31)
+ )
+ )
+ )
+ )
+ (set_local $1
+ (i32.load
+ (get_local $2)
+ )
+ )
+ (block $jumpthreading$outer$8
+ (block $jumpthreading$inner$8
+ (block $jumpthreading$inner$7
+ (loop $while-in$78
+ (br_if $jumpthreading$inner$8
+ (i32.eq
+ (i32.and
+ (i32.load offset=4
+ (get_local $1)
+ )
+ (i32.const -8)
+ )
+ (get_local $5)
+ )
+ )
+ (set_local $2
+ (i32.shl
+ (get_local $3)
+ (i32.const 1)
+ )
+ )
+ (if
+ (tee_local $4
(i32.load
- (tee_local $2
+ (tee_local $3
(i32.add
(i32.add
- (get_local $4)
+ (get_local $1)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (get_local $2)
+ (get_local $3)
(i32.const 31)
)
(i32.const 2)
@@ -15282,40 +13508,30 @@
)
)
)
- (i32.const 0)
- )
- (block
- (set_local $46
- (get_local $4)
+ (block
+ (set_local $3
+ (get_local $2)
+ )
+ (set_local $1
+ (get_local $4)
+ )
+ (br $while-in$78)
)
- (set_local $41
- (get_local $2)
- )
- (set_local $11
- (i32.const 304)
- )
- (br $while-out$77)
- )
- (block
- (set_local $2
- (get_local $8)
- )
- (set_local $4
- (get_local $1)
+ (block
+ (set_local $2
+ (get_local $1)
+ )
+ (set_local $1
+ (get_local $3)
+ )
+ (br $jumpthreading$inner$7)
)
)
)
- (br $while-in$78)
- )
- )
- (if
- (i32.eq
- (get_local $11)
- (i32.const 304)
)
(if
(i32.lt_u
- (get_local $41)
+ (get_local $1)
(i32.load
(i32.const 192)
)
@@ -15323,136 +13539,271 @@
(call_import $_abort)
(block
(i32.store
- (get_local $41)
- (get_local $0)
+ (get_local $1)
+ (get_local $7)
)
(i32.store offset=24
- (get_local $0)
- (get_local $46)
+ (get_local $7)
+ (get_local $2)
)
(i32.store offset=12
- (get_local $0)
- (get_local $0)
+ (get_local $7)
+ (get_local $7)
)
(i32.store offset=8
- (get_local $0)
- (get_local $0)
+ (get_local $7)
+ (get_local $7)
)
+ (br $do-once$44)
)
)
- (if
- (i32.eq
- (get_local $11)
- (i32.const 307)
- )
- (if
- (i32.and
- (i32.ge_u
- (tee_local $1
- (i32.load
- (tee_local $4
- (i32.add
- (get_local $35)
- (i32.const 8)
- )
- )
- )
- )
+ (br $jumpthreading$outer$8)
+ )
+ (if
+ (i32.and
+ (i32.ge_u
+ (tee_local $4
+ (i32.load
(tee_local $2
- (i32.load
- (i32.const 192)
+ (i32.add
+ (get_local $1)
+ (i32.const 8)
)
)
)
- (i32.ge_u
- (get_local $35)
- (get_local $2)
+ )
+ (tee_local $3
+ (i32.load
+ (i32.const 192)
)
)
- (block
- (i32.store offset=12
- (get_local $1)
- (get_local $0)
- )
- (i32.store
- (get_local $4)
- (get_local $0)
- )
- (i32.store offset=8
- (get_local $0)
- (get_local $1)
- )
- (i32.store offset=12
- (get_local $0)
- (get_local $35)
- )
- (i32.store offset=24
- (get_local $0)
- (i32.const 0)
- )
- )
- (call_import $_abort)
+ )
+ (i32.ge_u
+ (get_local $1)
+ (get_local $3)
)
)
+ (block
+ (i32.store offset=12
+ (get_local $4)
+ (get_local $7)
+ )
+ (i32.store
+ (get_local $2)
+ (get_local $7)
+ )
+ (i32.store offset=8
+ (get_local $7)
+ (get_local $4)
+ )
+ (i32.store offset=12
+ (get_local $7)
+ (get_local $1)
+ )
+ (i32.store offset=24
+ (get_local $7)
+ (i32.const 0)
+ )
+ )
+ (call_import $_abort)
)
)
)
)
)
- )
- (if
- (i32.gt_u
- (tee_local $0
- (i32.load
- (i32.const 188)
+ (block
+ (if
+ (i32.or
+ (i32.eqz
+ (tee_local $3
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ )
+ (i32.lt_u
+ (get_local $2)
+ (get_local $3)
+ )
+ )
+ (i32.store
+ (i32.const 192)
+ (get_local $2)
)
)
- (get_local $6)
- )
- (block
(i32.store
- (i32.const 188)
- (tee_local $2
- (i32.sub
- (get_local $0)
- (get_local $6)
+ (i32.const 624)
+ (get_local $2)
+ )
+ (i32.store
+ (i32.const 628)
+ (get_local $1)
+ )
+ (i32.store
+ (i32.const 636)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 212)
+ (i32.load
+ (i32.const 648)
+ )
+ )
+ (i32.store
+ (i32.const 208)
+ (i32.const -1)
+ )
+ (set_local $3
+ (i32.const 0)
+ )
+ (loop $while-in$47
+ (i32.store offset=12
+ (tee_local $4
+ (i32.add
+ (i32.const 216)
+ (i32.shl
+ (i32.shl
+ (get_local $3)
+ (i32.const 1)
+ )
+ (i32.const 2)
+ )
+ )
+ )
+ (get_local $4)
+ )
+ (i32.store offset=8
+ (get_local $4)
+ (get_local $4)
+ )
+ (br_if $while-in$47
+ (i32.ne
+ (tee_local $3
+ (i32.add
+ (get_local $3)
+ (i32.const 1)
+ )
+ )
+ (i32.const 32)
)
)
)
(i32.store
(i32.const 200)
- (tee_local $1
+ (tee_local $3
(i32.add
- (tee_local $0
- (i32.load
- (i32.const 200)
+ (get_local $2)
+ (tee_local $2
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (tee_local $2
+ (i32.add
+ (get_local $2)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (get_local $2)
+ (i32.const 7)
+ )
)
)
- (get_local $6)
+ )
+ )
+ )
+ (i32.store
+ (i32.const 188)
+ (tee_local $1
+ (i32.sub
+ (i32.add
+ (get_local $1)
+ (i32.const -40)
+ )
+ (get_local $2)
)
)
)
(i32.store offset=4
- (get_local $1)
+ (get_local $3)
(i32.or
- (get_local $2)
+ (get_local $1)
(i32.const 1)
)
)
(i32.store offset=4
- (get_local $0)
- (i32.or
- (get_local $6)
- (i32.const 3)
+ (i32.add
+ (get_local $3)
+ (get_local $1)
+ )
+ (i32.const 40)
+ )
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
)
)
- (return
- (i32.add
+ )
+ )
+ )
+ (if
+ (i32.gt_u
+ (tee_local $1
+ (i32.load
+ (i32.const 188)
+ )
+ )
+ (get_local $0)
+ )
+ (block
+ (i32.store
+ (i32.const 188)
+ (tee_local $1
+ (i32.sub
+ (get_local $1)
(get_local $0)
- (i32.const 8)
)
)
)
+ (i32.store
+ (i32.const 200)
+ (tee_local $2
+ (i32.add
+ (tee_local $3
+ (i32.load
+ (i32.const 200)
+ )
+ )
+ (get_local $0)
+ )
+ )
+ )
+ (i32.store offset=4
+ (get_local $2)
+ (i32.or
+ (get_local $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4
+ (get_local $3)
+ (i32.or
+ (get_local $0)
+ (i32.const 3)
+ )
+ )
+ (return
+ (i32.add
+ (get_local $3)
+ (i32.const 8)
+ )
+ )
)
)
)
@@ -15478,13 +13829,9 @@
(local $13 i32)
(local $14 i32)
(local $15 i32)
- (local $16 i32)
- (local $17 i32)
- (local $18 i32)
(if
- (i32.eq
+ (i32.eqz
(get_local $0)
- (i32.const 0)
)
(return)
)
@@ -15496,7 +13843,7 @@
(i32.const -8)
)
)
- (tee_local $1
+ (tee_local $11
(i32.load
(i32.const 192)
)
@@ -15506,9 +13853,9 @@
)
(if
(i32.eq
- (tee_local $8
+ (tee_local $10
(i32.and
- (tee_local $0
+ (tee_local $3
(i32.load
(i32.add
(get_local $0)
@@ -15523,12 +13870,12 @@
)
(call_import $_abort)
)
- (set_local $9
+ (set_local $6
(i32.add
(get_local $2)
- (tee_local $7
+ (tee_local $0
(i32.and
- (get_local $0)
+ (get_local $3)
(i32.const -8)
)
)
@@ -15536,50 +13883,54 @@
)
(block $do-once$0
(if
- (i32.eq
- (i32.and
- (get_local $0)
- (i32.const 1)
- )
- (i32.const 0)
+ (i32.and
+ (get_local $3)
+ (i32.const 1)
)
(block
- (set_local $0
+ (set_local $4
+ (get_local $2)
+ )
+ (set_local $1
+ (get_local $0)
+ )
+ )
+ (block
+ (set_local $8
(i32.load
(get_local $2)
)
)
(if
- (i32.eq
- (get_local $8)
- (i32.const 0)
+ (i32.eqz
+ (get_local $10)
)
(return)
)
- (set_local $12
+ (set_local $3
(i32.add
+ (get_local $8)
(get_local $0)
- (get_local $7)
)
)
(if
(i32.lt_u
- (tee_local $4
+ (tee_local $0
(i32.add
(get_local $2)
(i32.sub
(i32.const 0)
- (get_local $0)
+ (get_local $8)
)
)
)
- (get_local $1)
+ (get_local $11)
)
(call_import $_abort)
)
(if
(i32.eq
- (get_local $4)
+ (get_local $0)
(i32.load
(i32.const 196)
)
@@ -15588,11 +13939,11 @@
(if
(i32.ne
(i32.and
- (tee_local $0
+ (tee_local $1
(i32.load
- (tee_local $1
+ (tee_local $4
(i32.add
- (get_local $9)
+ (get_local $6)
(i32.const 4)
)
)
@@ -15603,73 +13954,73 @@
(i32.const 3)
)
(block
- (set_local $3
- (get_local $4)
+ (set_local $4
+ (get_local $0)
)
- (set_local $10
- (get_local $12)
+ (set_local $1
+ (get_local $3)
)
(br $do-once$0)
)
)
(i32.store
(i32.const 184)
- (get_local $12)
+ (get_local $3)
)
(i32.store
- (get_local $1)
+ (get_local $4)
(i32.and
- (get_local $0)
+ (get_local $1)
(i32.const -2)
)
)
(i32.store offset=4
- (get_local $4)
+ (get_local $0)
(i32.or
- (get_local $12)
+ (get_local $3)
(i32.const 1)
)
)
(i32.store
(i32.add
- (get_local $4)
- (get_local $12)
+ (get_local $0)
+ (get_local $3)
)
- (get_local $12)
+ (get_local $3)
)
(return)
)
)
- (set_local $7
+ (set_local $10
(i32.shr_u
- (get_local $0)
+ (get_local $8)
(i32.const 3)
)
)
(if
(i32.lt_u
- (get_local $0)
+ (get_local $8)
(i32.const 256)
)
(block
(set_local $2
(i32.load offset=12
- (get_local $4)
+ (get_local $0)
)
)
(if
(i32.ne
- (tee_local $0
+ (tee_local $4
(i32.load offset=8
- (get_local $4)
+ (get_local $0)
)
)
- (tee_local $8
+ (tee_local $1
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (get_local $7)
+ (get_local $10)
(i32.const 1)
)
(i32.const 2)
@@ -15680,17 +14031,17 @@
(block
(if
(i32.lt_u
- (get_local $0)
- (get_local $1)
+ (get_local $4)
+ (get_local $11)
)
(call_import $_abort)
)
(if
(i32.ne
(i32.load offset=12
- (get_local $0)
+ (get_local $4)
)
- (get_local $4)
+ (get_local $0)
)
(call_import $_abort)
)
@@ -15699,7 +14050,7 @@
(if
(i32.eq
(get_local $2)
- (get_local $0)
+ (get_local $4)
)
(block
(i32.store
@@ -15711,17 +14062,17 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $7)
+ (get_local $10)
)
(i32.const -1)
)
)
)
- (set_local $3
- (get_local $4)
+ (set_local $4
+ (get_local $0)
)
- (set_local $10
- (get_local $12)
+ (set_local $1
+ (get_local $3)
)
(br $do-once$0)
)
@@ -15729,9 +14080,9 @@
(if
(i32.eq
(get_local $2)
- (get_local $8)
+ (get_local $1)
)
- (set_local $13
+ (set_local $5
(i32.add
(get_local $2)
(i32.const 8)
@@ -15741,7 +14092,7 @@
(if
(i32.lt_u
(get_local $2)
- (get_local $1)
+ (get_local $11)
)
(call_import $_abort)
)
@@ -15755,9 +14106,9 @@
)
)
)
- (get_local $4)
+ (get_local $0)
)
- (set_local $13
+ (set_local $5
(get_local $1)
)
(call_import $_abort)
@@ -15765,47 +14116,47 @@
)
)
(i32.store offset=12
- (get_local $0)
+ (get_local $4)
(get_local $2)
)
(i32.store
- (get_local $13)
- (get_local $0)
- )
- (set_local $3
+ (get_local $5)
(get_local $4)
)
- (set_local $10
- (get_local $12)
+ (set_local $4
+ (get_local $0)
+ )
+ (set_local $1
+ (get_local $3)
)
(br $do-once$0)
)
)
- (set_local $8
+ (set_local $12
(i32.load offset=24
- (get_local $4)
+ (get_local $0)
)
)
(block $do-once$2
(if
(i32.eq
- (tee_local $0
+ (tee_local $2
(i32.load offset=12
- (get_local $4)
+ (get_local $0)
)
)
- (get_local $4)
+ (get_local $0)
)
(block
(if
- (i32.eq
- (tee_local $0
+ (i32.eqz
+ (tee_local $2
(i32.load
- (tee_local $7
+ (tee_local $5
(i32.add
- (tee_local $13
+ (tee_local $8
(i32.add
- (get_local $4)
+ (get_local $0)
(i32.const 16)
)
)
@@ -15814,101 +14165,80 @@
)
)
)
- (i32.const 0)
)
(if
- (i32.eq
- (tee_local $0
- (i32.load
- (get_local $13)
- )
+ (tee_local $2
+ (i32.load
+ (get_local $8)
)
- (i32.const 0)
+ )
+ (set_local $5
+ (get_local $8)
)
(block
- (set_local $5
+ (set_local $7
(i32.const 0)
)
(br $do-once$2)
)
- (block
- (set_local $2
- (get_local $0)
- )
- (set_local $7
- (get_local $13)
- )
- )
- )
- (set_local $2
- (get_local $0)
)
)
(loop $while-in$5
- (block $while-out$4
- (if
- (i32.ne
- (tee_local $0
- (i32.load
- (tee_local $13
- (i32.add
- (get_local $2)
- (i32.const 20)
- )
- )
+ (if
+ (tee_local $8
+ (i32.load
+ (tee_local $10
+ (i32.add
+ (get_local $2)
+ (i32.const 20)
)
)
- (i32.const 0)
- )
- (block
- (set_local $2
- (get_local $0)
- )
- (set_local $7
- (get_local $13)
- )
- (br $while-in$5)
- )
- )
- (if
- (i32.eq
- (tee_local $0
- (i32.load
- (tee_local $13
- (i32.add
- (get_local $2)
- (i32.const 16)
- )
- )
- )
- )
- (i32.const 0)
- )
- (br $while-out$4)
- (block
- (set_local $2
- (get_local $0)
- )
- (set_local $7
- (get_local $13)
- )
)
)
- (br $while-in$5)
+ (block
+ (set_local $2
+ (get_local $8)
+ )
+ (set_local $5
+ (get_local $10)
+ )
+ (br $while-in$5)
+ )
+ )
+ (if
+ (tee_local $8
+ (i32.load
+ (tee_local $10
+ (i32.add
+ (get_local $2)
+ (i32.const 16)
+ )
+ )
+ )
+ )
+ (block
+ (set_local $2
+ (get_local $8)
+ )
+ (set_local $5
+ (get_local $10)
+ )
+ (br $while-in$5)
+ )
)
)
(if
(i32.lt_u
- (get_local $7)
- (get_local $1)
+ (get_local $5)
+ (get_local $11)
)
(call_import $_abort)
(block
(i32.store
- (get_local $7)
+ (get_local $5)
(i32.const 0)
)
- (set_local $5
+ (set_local $7
(get_local $2)
)
)
@@ -15917,52 +14247,52 @@
(block
(if
(i32.lt_u
- (tee_local $2
+ (tee_local $5
(i32.load offset=8
- (get_local $4)
+ (get_local $0)
)
)
- (get_local $1)
+ (get_local $11)
)
(call_import $_abort)
)
(if
(i32.ne
(i32.load
- (tee_local $1
+ (tee_local $8
(i32.add
- (get_local $2)
+ (get_local $5)
(i32.const 12)
)
)
)
- (get_local $4)
+ (get_local $0)
)
(call_import $_abort)
)
(if
(i32.eq
(i32.load
- (tee_local $7
+ (tee_local $10
(i32.add
- (get_local $0)
+ (get_local $2)
(i32.const 8)
)
)
)
- (get_local $4)
+ (get_local $0)
)
(block
(i32.store
- (get_local $1)
- (get_local $0)
- )
- (i32.store
- (get_local $7)
+ (get_local $8)
(get_local $2)
)
- (set_local $5
- (get_local $0)
+ (i32.store
+ (get_local $10)
+ (get_local $5)
+ )
+ (set_local $7
+ (get_local $2)
)
)
(call_import $_abort)
@@ -15971,30 +14301,19 @@
)
)
(if
- (i32.eq
- (get_local $8)
- (i32.const 0)
- )
- (block
- (set_local $3
- (get_local $4)
- )
- (set_local $10
- (get_local $12)
- )
- )
+ (get_local $12)
(block
(if
(i32.eq
- (get_local $4)
+ (get_local $0)
(i32.load
- (tee_local $1
+ (tee_local $5
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $0
+ (tee_local $2
(i32.load offset=28
- (get_local $4)
+ (get_local $0)
)
)
(i32.const 2)
@@ -16005,13 +14324,12 @@
)
(block
(i32.store
- (get_local $1)
(get_local $5)
+ (get_local $7)
)
(if
- (i32.eq
- (get_local $5)
- (i32.const 0)
+ (i32.eqz
+ (get_local $7)
)
(block
(i32.store
@@ -16023,17 +14341,17 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $0)
+ (get_local $2)
)
(i32.const -1)
)
)
)
- (set_local $3
- (get_local $4)
+ (set_local $4
+ (get_local $0)
)
- (set_local $10
- (get_local $12)
+ (set_local $1
+ (get_local $3)
)
(br $do-once$0)
)
@@ -16042,7 +14360,7 @@
(block
(if
(i32.lt_u
- (get_local $8)
+ (get_local $12)
(i32.load
(i32.const 192)
)
@@ -16052,35 +14370,34 @@
(if
(i32.eq
(i32.load
- (tee_local $0
+ (tee_local $2
(i32.add
- (get_local $8)
+ (get_local $12)
(i32.const 16)
)
)
)
- (get_local $4)
+ (get_local $0)
)
(i32.store
- (get_local $0)
- (get_local $5)
+ (get_local $2)
+ (get_local $7)
)
(i32.store offset=20
- (get_local $8)
- (get_local $5)
+ (get_local $12)
+ (get_local $7)
)
)
(if
- (i32.eq
- (get_local $5)
- (i32.const 0)
+ (i32.eqz
+ (get_local $7)
)
(block
- (set_local $3
- (get_local $4)
+ (set_local $4
+ (get_local $0)
)
- (set_local $10
- (get_local $12)
+ (set_local $1
+ (get_local $3)
)
(br $do-once$0)
)
@@ -16089,8 +14406,8 @@
)
(if
(i32.lt_u
- (get_local $5)
- (tee_local $0
+ (get_local $7)
+ (tee_local $2
(i32.load
(i32.const 192)
)
@@ -16099,61 +14416,47 @@
(call_import $_abort)
)
(i32.store offset=24
- (get_local $5)
- (get_local $8)
+ (get_local $7)
+ (get_local $12)
)
(if
- (i32.ne
- (tee_local $1
- (i32.load
- (tee_local $2
- (i32.add
- (get_local $4)
- (i32.const 16)
- )
+ (tee_local $5
+ (i32.load
+ (tee_local $8
+ (i32.add
+ (get_local $0)
+ (i32.const 16)
)
)
)
- (i32.const 0)
)
(if
(i32.lt_u
- (get_local $1)
- (get_local $0)
+ (get_local $5)
+ (get_local $2)
)
(call_import $_abort)
(block
(i32.store offset=16
+ (get_local $7)
(get_local $5)
- (get_local $1)
)
(i32.store offset=24
- (get_local $1)
(get_local $5)
+ (get_local $7)
)
)
)
)
(if
- (i32.eq
- (tee_local $0
- (i32.load offset=4
- (get_local $2)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $3
- (get_local $4)
- )
- (set_local $10
- (get_local $12)
+ (tee_local $2
+ (i32.load offset=4
+ (get_local $8)
)
)
(if
(i32.lt_u
- (get_local $0)
+ (get_local $2)
(i32.load
(i32.const 192)
)
@@ -16161,50 +14464,58 @@
(call_import $_abort)
(block
(i32.store offset=20
- (get_local $5)
- (get_local $0)
+ (get_local $7)
+ (get_local $2)
)
(i32.store offset=24
+ (get_local $2)
+ (get_local $7)
+ )
+ (set_local $4
(get_local $0)
- (get_local $5)
)
- (set_local $3
- (get_local $4)
+ (set_local $1
+ (get_local $3)
)
- (set_local $10
- (get_local $12)
- )
+ )
+ )
+ (block
+ (set_local $4
+ (get_local $0)
+ )
+ (set_local $1
+ (get_local $3)
)
)
)
)
- )
- )
- (block
- (set_local $3
- (get_local $2)
- )
- (set_local $10
- (get_local $7)
+ (block
+ (set_local $4
+ (get_local $0)
+ )
+ (set_local $1
+ (get_local $3)
+ )
+ )
)
)
)
)
(if
(i32.ge_u
- (get_local $3)
- (get_local $9)
+ (get_local $4)
+ (get_local $6)
)
(call_import $_abort)
)
(if
- (i32.eq
+ (i32.eqz
(i32.and
(tee_local $0
(i32.load
- (tee_local $1
+ (tee_local $3
(i32.add
- (get_local $9)
+ (get_local $6)
(i32.const 4)
)
)
@@ -16212,22 +14523,41 @@
)
(i32.const 1)
)
- (i32.const 0)
)
(call_import $_abort)
)
(if
- (i32.eq
- (i32.and
- (get_local $0)
- (i32.const 2)
+ (i32.and
+ (get_local $0)
+ (i32.const 2)
+ )
+ (block
+ (i32.store
+ (get_local $3)
+ (i32.and
+ (get_local $0)
+ (i32.const -2)
+ )
)
- (i32.const 0)
+ (i32.store offset=4
+ (get_local $4)
+ (i32.or
+ (get_local $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (get_local $4)
+ (get_local $1)
+ )
+ (get_local $1)
+ )
)
(block
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.load
(i32.const 200)
)
@@ -16240,16 +14570,16 @@
(i32.load
(i32.const 188)
)
- (get_local $10)
+ (get_local $1)
)
)
)
(i32.store
(i32.const 200)
- (get_local $3)
+ (get_local $4)
)
(i32.store offset=4
- (get_local $3)
+ (get_local $4)
(i32.or
(get_local $0)
(i32.const 1)
@@ -16257,7 +14587,7 @@
)
(if
(i32.ne
- (get_local $3)
+ (get_local $4)
(i32.load
(i32.const 196)
)
@@ -16277,7 +14607,7 @@
)
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.load
(i32.const 196)
)
@@ -16290,16 +14620,16 @@
(i32.load
(i32.const 184)
)
- (get_local $10)
+ (get_local $1)
)
)
)
(i32.store
(i32.const 196)
- (get_local $3)
+ (get_local $4)
)
(i32.store offset=4
- (get_local $3)
+ (get_local $4)
(i32.or
(get_local $0)
(i32.const 1)
@@ -16307,7 +14637,7 @@
)
(i32.store
(i32.add
- (get_local $3)
+ (get_local $4)
(get_local $0)
)
(get_local $0)
@@ -16315,16 +14645,16 @@
(return)
)
)
- (set_local $5
+ (set_local $2
(i32.add
(i32.and
(get_local $0)
(i32.const -8)
)
- (get_local $10)
+ (get_local $1)
)
)
- (set_local $8
+ (set_local $5
(i32.shr_u
(get_local $0)
(i32.const 3)
@@ -16337,24 +14667,24 @@
(i32.const 256)
)
(block
- (set_local $1
+ (set_local $3
(i32.load offset=12
- (get_local $9)
+ (get_local $6)
)
)
(if
(i32.ne
- (tee_local $0
+ (tee_local $1
(i32.load offset=8
- (get_local $9)
+ (get_local $6)
)
)
- (tee_local $2
+ (tee_local $0
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (get_local $8)
+ (get_local $5)
(i32.const 1)
)
(i32.const 2)
@@ -16365,62 +14695,6 @@
(block
(if
(i32.lt_u
- (get_local $0)
- (i32.load
- (i32.const 192)
- )
- )
- (call_import $_abort)
- )
- (if
- (i32.ne
- (i32.load offset=12
- (get_local $0)
- )
- (get_local $9)
- )
- (call_import $_abort)
- )
- )
- )
- (if
- (i32.eq
- (get_local $1)
- (get_local $0)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.and
- (i32.load
- (i32.const 176)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (get_local $8)
- )
- (i32.const -1)
- )
- )
- )
- (br $do-once$8)
- )
- )
- (if
- (i32.eq
- (get_local $1)
- (get_local $2)
- )
- (set_local $16
- (i32.add
- (get_local $1)
- (i32.const 8)
- )
- )
- (block
- (if
- (i32.lt_u
(get_local $1)
(i32.load
(i32.const 192)
@@ -16429,59 +14703,115 @@
(call_import $_abort)
)
(if
+ (i32.ne
+ (i32.load offset=12
+ (get_local $1)
+ )
+ (get_local $6)
+ )
+ (call_import $_abort)
+ )
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $3)
+ (get_local $1)
+ )
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.and
+ (i32.load
+ (i32.const 176)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (get_local $5)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (br $do-once$8)
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $3)
+ (get_local $0)
+ )
+ (set_local $14
+ (i32.add
+ (get_local $3)
+ (i32.const 8)
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (get_local $3)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call_import $_abort)
+ )
+ (if
(i32.eq
(i32.load
- (tee_local $2
+ (tee_local $0
(i32.add
- (get_local $1)
+ (get_local $3)
(i32.const 8)
)
)
)
- (get_local $9)
+ (get_local $6)
)
- (set_local $16
- (get_local $2)
+ (set_local $14
+ (get_local $0)
)
(call_import $_abort)
)
)
)
(i32.store offset=12
- (get_local $0)
(get_local $1)
+ (get_local $3)
)
(i32.store
- (get_local $16)
- (get_local $0)
+ (get_local $14)
+ (get_local $1)
)
)
(block
- (set_local $0
+ (set_local $7
(i32.load offset=24
- (get_local $9)
+ (get_local $6)
)
)
(block $do-once$10
(if
(i32.eq
- (tee_local $1
+ (tee_local $0
(i32.load offset=12
- (get_local $9)
+ (get_local $6)
)
)
- (get_local $9)
+ (get_local $6)
)
(block
(if
- (i32.eq
- (tee_local $1
+ (i32.eqz
+ (tee_local $0
(i32.load
- (tee_local $8
+ (tee_local $1
(i32.add
- (tee_local $7
+ (tee_local $3
(i32.add
- (get_local $9)
+ (get_local $6)
(i32.const 16)
)
)
@@ -16490,92 +14820,71 @@
)
)
)
- (i32.const 0)
)
(if
- (i32.eq
- (tee_local $1
- (i32.load
- (get_local $7)
- )
+ (tee_local $0
+ (i32.load
+ (get_local $3)
)
- (i32.const 0)
+ )
+ (set_local $1
+ (get_local $3)
)
(block
- (set_local $11
+ (set_local $9
(i32.const 0)
)
(br $do-once$10)
)
- (block
- (set_local $2
- (get_local $1)
- )
- (set_local $8
- (get_local $7)
- )
- )
- )
- (set_local $2
- (get_local $1)
)
)
(loop $while-in$13
- (block $while-out$12
- (if
- (i32.ne
- (tee_local $1
- (i32.load
- (tee_local $7
- (i32.add
- (get_local $2)
- (i32.const 20)
- )
- )
+ (if
+ (tee_local $3
+ (i32.load
+ (tee_local $5
+ (i32.add
+ (get_local $0)
+ (i32.const 20)
)
)
- (i32.const 0)
- )
- (block
- (set_local $2
- (get_local $1)
- )
- (set_local $8
- (get_local $7)
- )
- (br $while-in$13)
- )
- )
- (if
- (i32.eq
- (tee_local $1
- (i32.load
- (tee_local $7
- (i32.add
- (get_local $2)
- (i32.const 16)
- )
- )
- )
- )
- (i32.const 0)
- )
- (br $while-out$12)
- (block
- (set_local $2
- (get_local $1)
- )
- (set_local $8
- (get_local $7)
- )
)
)
- (br $while-in$13)
+ (block
+ (set_local $0
+ (get_local $3)
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (br $while-in$13)
+ )
+ )
+ (if
+ (tee_local $3
+ (i32.load
+ (tee_local $5
+ (i32.add
+ (get_local $0)
+ (i32.const 16)
+ )
+ )
+ )
+ )
+ (block
+ (set_local $0
+ (get_local $3)
+ )
+ (set_local $1
+ (get_local $5)
+ )
+ (br $while-in$13)
+ )
)
)
(if
(i32.lt_u
- (get_local $8)
+ (get_local $1)
(i32.load
(i32.const 192)
)
@@ -16583,11 +14892,11 @@
(call_import $_abort)
(block
(i32.store
- (get_local $8)
+ (get_local $1)
(i32.const 0)
)
- (set_local $11
- (get_local $2)
+ (set_local $9
+ (get_local $0)
)
)
)
@@ -16595,9 +14904,9 @@
(block
(if
(i32.lt_u
- (tee_local $2
+ (tee_local $1
(i32.load offset=8
- (get_local $9)
+ (get_local $6)
)
)
(i32.load
@@ -16609,41 +14918,41 @@
(if
(i32.ne
(i32.load
- (tee_local $8
+ (tee_local $3
(i32.add
- (get_local $2)
+ (get_local $1)
(i32.const 12)
)
)
)
- (get_local $9)
+ (get_local $6)
)
(call_import $_abort)
)
(if
(i32.eq
(i32.load
- (tee_local $7
+ (tee_local $5
(i32.add
- (get_local $1)
+ (get_local $0)
(i32.const 8)
)
)
)
- (get_local $9)
+ (get_local $6)
)
(block
(i32.store
- (get_local $8)
- (get_local $1)
+ (get_local $3)
+ (get_local $0)
)
(i32.store
- (get_local $7)
- (get_local $2)
- )
- (set_local $11
+ (get_local $5)
(get_local $1)
)
+ (set_local $9
+ (get_local $0)
+ )
)
(call_import $_abort)
)
@@ -16651,22 +14960,19 @@
)
)
(if
- (i32.ne
- (get_local $0)
- (i32.const 0)
- )
+ (get_local $7)
(block
(if
(i32.eq
- (get_local $9)
+ (get_local $6)
(i32.load
- (tee_local $2
+ (tee_local $1
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $1
+ (tee_local $0
(i32.load offset=28
- (get_local $9)
+ (get_local $6)
)
)
(i32.const 2)
@@ -16677,13 +14983,12 @@
)
(block
(i32.store
- (get_local $2)
- (get_local $11)
+ (get_local $1)
+ (get_local $9)
)
(if
- (i32.eq
- (get_local $11)
- (i32.const 0)
+ (i32.eqz
+ (get_local $9)
)
(block
(i32.store
@@ -16695,7 +15000,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $1)
+ (get_local $0)
)
(i32.const -1)
)
@@ -16708,7 +15013,7 @@
(block
(if
(i32.lt_u
- (get_local $0)
+ (get_local $7)
(i32.load
(i32.const 192)
)
@@ -16718,36 +15023,35 @@
(if
(i32.eq
(i32.load
- (tee_local $1
+ (tee_local $0
(i32.add
- (get_local $0)
+ (get_local $7)
(i32.const 16)
)
)
)
- (get_local $9)
+ (get_local $6)
)
(i32.store
- (get_local $1)
- (get_local $11)
+ (get_local $0)
+ (get_local $9)
)
(i32.store offset=20
- (get_local $0)
- (get_local $11)
+ (get_local $7)
+ (get_local $9)
)
)
(br_if $do-once$8
- (i32.eq
- (get_local $11)
- (i32.const 0)
+ (i32.eqz
+ (get_local $9)
)
)
)
)
(if
(i32.lt_u
- (get_local $11)
- (tee_local $1
+ (get_local $9)
+ (tee_local $0
(i32.load
(i32.const 192)
)
@@ -16756,49 +15060,43 @@
(call_import $_abort)
)
(i32.store offset=24
- (get_local $11)
- (get_local $0)
+ (get_local $9)
+ (get_local $7)
)
(if
- (i32.ne
- (tee_local $0
- (i32.load
- (tee_local $2
- (i32.add
- (get_local $9)
- (i32.const 16)
- )
+ (tee_local $1
+ (i32.load
+ (tee_local $3
+ (i32.add
+ (get_local $6)
+ (i32.const 16)
)
)
)
- (i32.const 0)
)
(if
(i32.lt_u
- (get_local $0)
(get_local $1)
+ (get_local $0)
)
(call_import $_abort)
(block
(i32.store offset=16
- (get_local $11)
- (get_local $0)
+ (get_local $9)
+ (get_local $1)
)
(i32.store offset=24
- (get_local $0)
- (get_local $11)
+ (get_local $1)
+ (get_local $9)
)
)
)
)
(if
- (i32.ne
- (tee_local $0
- (i32.load offset=4
- (get_local $2)
- )
+ (tee_local $0
+ (i32.load offset=4
+ (get_local $3)
)
- (i32.const 0)
)
(if
(i32.lt_u
@@ -16810,12 +15108,12 @@
(call_import $_abort)
(block
(i32.store offset=20
- (get_local $11)
+ (get_local $9)
(get_local $0)
)
(i32.store offset=24
(get_local $0)
- (get_local $11)
+ (get_local $9)
)
)
)
@@ -16826,22 +15124,22 @@
)
)
(i32.store offset=4
- (get_local $3)
+ (get_local $4)
(i32.or
- (get_local $5)
+ (get_local $2)
(i32.const 1)
)
)
(i32.store
(i32.add
- (get_local $3)
- (get_local $5)
+ (get_local $4)
+ (get_local $2)
)
- (get_local $5)
+ (get_local $2)
)
(if
(i32.eq
- (get_local $3)
+ (get_local $4)
(i32.load
(i32.const 196)
)
@@ -16849,57 +15147,34 @@
(block
(i32.store
(i32.const 184)
- (get_local $5)
+ (get_local $2)
)
(return)
)
- )
- )
- (block
- (i32.store
- (get_local $1)
- (i32.and
- (get_local $0)
- (i32.const -2)
+ (set_local $1
+ (get_local $2)
)
)
- (i32.store offset=4
- (get_local $3)
- (i32.or
- (get_local $10)
- (i32.const 1)
- )
- )
- (i32.store
- (i32.add
- (get_local $3)
- (get_local $10)
- )
- (get_local $10)
- )
- (set_local $5
- (get_local $10)
- )
)
)
- (set_local $1
+ (set_local $2
(i32.shr_u
- (get_local $5)
+ (get_local $1)
(i32.const 3)
)
)
(if
(i32.lt_u
- (get_local $5)
+ (get_local $1)
(i32.const 256)
)
(block
- (set_local $2
+ (set_local $3
(i32.add
(i32.const 216)
(i32.shl
(i32.shl
- (get_local $1)
+ (get_local $2)
(i32.const 1)
)
(i32.const 2)
@@ -16907,39 +15182,18 @@
)
)
(if
- (i32.eq
- (i32.and
- (tee_local $0
- (i32.load
- (i32.const 176)
- )
- )
- (tee_local $1
- (i32.shl
- (i32.const 1)
- (get_local $1)
- )
+ (i32.and
+ (tee_local $0
+ (i32.load
+ (i32.const 176)
)
)
- (i32.const 0)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (get_local $0)
- (get_local $1)
- )
- )
- (set_local $6
- (i32.add
+ (tee_local $1
+ (i32.shl
+ (i32.const 1)
(get_local $2)
- (i32.const 8)
)
)
- (set_local $14
- (get_local $2)
- )
)
(if
(i32.lt_u
@@ -16947,7 +15201,7 @@
(i32.load
(tee_local $0
(i32.add
- (get_local $2)
+ (get_local $3)
(i32.const 8)
)
)
@@ -16959,141 +15213,151 @@
)
(call_import $_abort)
(block
- (set_local $6
+ (set_local $15
(get_local $0)
)
- (set_local $14
+ (set_local $13
(get_local $1)
)
)
)
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (set_local $15
+ (i32.add
+ (get_local $3)
+ (i32.const 8)
+ )
+ )
+ (set_local $13
+ (get_local $3)
+ )
+ )
)
(i32.store
- (get_local $6)
- (get_local $3)
+ (get_local $15)
+ (get_local $4)
)
(i32.store offset=12
- (get_local $14)
- (get_local $3)
+ (get_local $13)
+ (get_local $4)
)
(i32.store offset=8
- (get_local $3)
- (get_local $14)
+ (get_local $4)
+ (get_local $13)
)
(i32.store offset=12
+ (get_local $4)
(get_local $3)
- (get_local $2)
)
(return)
)
)
- (set_local $1
+ (set_local $5
(i32.add
(i32.const 480)
(i32.shl
- (tee_local $6
+ (tee_local $3
(if
- (i32.eq
- (tee_local $0
- (i32.shr_u
- (get_local $5)
- (i32.const 8)
- )
+ (tee_local $0
+ (i32.shr_u
+ (get_local $1)
+ (i32.const 8)
)
- (i32.const 0)
)
- (i32.const 0)
(if
(i32.gt_u
- (get_local $5)
+ (get_local $1)
(i32.const 16777215)
)
(i32.const 31)
- (block
- (set_local $6
- (i32.shl
- (tee_local $0
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (get_local $1)
+ (i32.add
+ (tee_local $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
(i32.or
- (tee_local $6
- (i32.and
- (i32.shr_u
- (i32.add
- (tee_local $1
- (i32.shl
- (get_local $0)
- (tee_local $0
- (i32.and
- (i32.shr_u
- (i32.add
- (get_local $0)
- (i32.const 1048320)
+ (i32.or
+ (tee_local $3
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (tee_local $2
+ (i32.shl
+ (get_local $0)
+ (tee_local $0
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (get_local $0)
+ (i32.const 1048320)
+ )
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 8)
)
- (i32.const 8)
)
)
)
+ (i32.const 520192)
)
- (i32.const 520192)
+ (i32.const 16)
+ )
+ (i32.const 4)
+ )
+ )
+ (get_local $0)
+ )
+ (tee_local $0
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (tee_local $3
+ (i32.shl
+ (get_local $2)
+ (get_local $3)
+ )
+ )
+ (i32.const 245760)
)
(i32.const 16)
)
- (i32.const 4)
+ (i32.const 2)
)
)
+ )
+ )
+ (i32.shr_u
+ (i32.shl
+ (get_local $3)
(get_local $0)
)
- (tee_local $0
- (i32.and
- (i32.shr_u
- (i32.add
- (tee_local $6
- (i32.shl
- (get_local $1)
- (get_local $6)
- )
- )
- (i32.const 245760)
- )
- (i32.const 16)
- )
- (i32.const 2)
- )
- )
+ (i32.const 15)
)
)
- (i32.shr_u
- (i32.shl
- (get_local $6)
- (get_local $0)
- )
- (i32.const 15)
- )
)
+ (i32.const 7)
)
- (i32.const 1)
)
+ (i32.const 1)
)
- (i32.or
- (i32.and
- (i32.shr_u
- (get_local $5)
- (i32.add
- (get_local $0)
- (i32.const 7)
- )
- )
- (i32.const 1)
- )
- (get_local $6)
+ (i32.shl
+ (get_local $0)
+ (i32.const 1)
)
)
)
+ (i32.const 0)
)
)
(i32.const 2)
@@ -17101,19 +15365,19 @@
)
)
(i32.store offset=28
+ (get_local $4)
(get_local $3)
- (get_local $6)
)
(i32.store offset=20
- (get_local $3)
+ (get_local $4)
(i32.const 0)
)
(i32.store offset=16
- (get_local $3)
+ (get_local $4)
(i32.const 0)
)
- (if
- (i32.eq
+ (block $do-once$16
+ (if
(i32.and
(tee_local $0
(i32.load
@@ -17123,217 +15387,163 @@
(tee_local $2
(i32.shl
(i32.const 1)
- (get_local $6)
+ (get_local $3)
)
)
)
- (i32.const 0)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.or
- (get_local $0)
- (get_local $2)
- )
- )
- (i32.store
- (get_local $1)
- (get_local $3)
- )
- (i32.store offset=24
- (get_local $3)
- (get_local $1)
- )
- (i32.store offset=12
- (get_local $3)
- (get_local $3)
- )
- (i32.store offset=8
- (get_local $3)
- (get_local $3)
- )
- )
- (block
- (set_local $6
- (i32.shl
- (get_local $5)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
- (get_local $6)
- (i32.const 1)
- )
- )
- (i32.eq
- (get_local $6)
- (i32.const 31)
- )
- )
- )
- )
- (set_local $1
- (i32.load
- (get_local $1)
- )
- )
- (loop $while-in$19
- (block $while-out$18
- (if
- (i32.eq
- (i32.and
- (i32.load offset=4
- (get_local $1)
+ (block
+ (set_local $2
+ (i32.shl
+ (get_local $1)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (get_local $3)
+ (i32.const 1)
)
- (i32.const -8)
)
- (get_local $5)
- )
- (block
- (set_local $15
- (get_local $1)
+ (i32.eq
+ (get_local $3)
+ (i32.const 31)
)
- (set_local $0
- (i32.const 130)
- )
- (br $while-out$18)
)
)
- (set_local $2
- (i32.shl
- (get_local $6)
- (i32.const 1)
- )
+ )
+ (set_local $0
+ (i32.load
+ (get_local $5)
)
- (if
- (i32.eq
- (tee_local $0
- (i32.load
- (tee_local $6
- (i32.add
- (i32.add
- (get_local $1)
- (i32.const 16)
+ )
+ (block $jumpthreading$outer$1
+ (block $jumpthreading$inner$1
+ (block $jumpthreading$inner$0
+ (loop $while-in$19
+ (br_if $jumpthreading$inner$1
+ (i32.eq
+ (i32.and
+ (i32.load offset=4
+ (get_local $0)
)
- (i32.shl
- (i32.shr_u
- (get_local $6)
- (i32.const 31)
+ (i32.const -8)
+ )
+ (get_local $1)
+ )
+ )
+ (set_local $5
+ (i32.shl
+ (get_local $2)
+ (i32.const 1)
+ )
+ )
+ (br_if $jumpthreading$inner$0
+ (i32.eqz
+ (tee_local $3
+ (i32.load
+ (tee_local $2
+ (i32.add
+ (i32.add
+ (get_local $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (get_local $2)
+ (i32.const 31)
+ )
+ (i32.const 2)
+ )
+ )
)
- (i32.const 2)
)
)
)
)
+ (block
+ (set_local $2
+ (get_local $5)
+ )
+ (set_local $0
+ (get_local $3)
+ )
+ (br $while-in$19)
+ )
)
- (i32.const 0)
)
- (block
- (set_local $18
- (get_local $1)
- )
- (set_local $17
- (get_local $6)
- )
- (set_local $0
- (i32.const 127)
- )
- (br $while-out$18)
- )
- (block
- (set_local $6
+ (if
+ (i32.lt_u
(get_local $2)
+ (i32.load
+ (i32.const 192)
+ )
)
- (set_local $1
- (get_local $0)
+ (call_import $_abort)
+ (block
+ (i32.store
+ (get_local $2)
+ (get_local $4)
+ )
+ (i32.store offset=24
+ (get_local $4)
+ (get_local $0)
+ )
+ (i32.store offset=12
+ (get_local $4)
+ (get_local $4)
+ )
+ (i32.store offset=8
+ (get_local $4)
+ (get_local $4)
+ )
+ (br $do-once$16)
)
)
- )
- (br $while-in$19)
- )
- )
- (if
- (i32.eq
- (get_local $0)
- (i32.const 127)
- )
- (if
- (i32.lt_u
- (get_local $17)
- (i32.load
- (i32.const 192)
- )
- )
- (call_import $_abort)
- (block
- (i32.store
- (get_local $17)
- (get_local $3)
- )
- (i32.store offset=24
- (get_local $3)
- (get_local $18)
- )
- (i32.store offset=12
- (get_local $3)
- (get_local $3)
- )
- (i32.store offset=8
- (get_local $3)
- (get_local $3)
- )
- )
- )
- (if
- (i32.eq
- (get_local $0)
- (i32.const 130)
+ (br $jumpthreading$outer$1)
)
(if
(i32.and
(i32.ge_u
- (tee_local $0
+ (tee_local $1
(i32.load
- (tee_local $1
+ (tee_local $2
(i32.add
- (get_local $15)
+ (get_local $0)
(i32.const 8)
)
)
)
)
- (tee_local $6
+ (tee_local $3
(i32.load
(i32.const 192)
)
)
)
(i32.ge_u
- (get_local $15)
- (get_local $6)
+ (get_local $0)
+ (get_local $3)
)
)
(block
(i32.store offset=12
- (get_local $0)
- (get_local $3)
+ (get_local $1)
+ (get_local $4)
)
(i32.store
- (get_local $1)
- (get_local $3)
+ (get_local $2)
+ (get_local $4)
)
(i32.store offset=8
- (get_local $3)
- (get_local $0)
+ (get_local $4)
+ (get_local $1)
)
(i32.store offset=12
- (get_local $3)
- (get_local $15)
+ (get_local $4)
+ (get_local $0)
)
(i32.store offset=24
- (get_local $3)
+ (get_local $4)
(i32.const 0)
)
)
@@ -17341,6 +15551,31 @@
)
)
)
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.or
+ (get_local $0)
+ (get_local $2)
+ )
+ )
+ (i32.store
+ (get_local $5)
+ (get_local $4)
+ )
+ (i32.store offset=24
+ (get_local $4)
+ (get_local $5)
+ )
+ (i32.store offset=12
+ (get_local $4)
+ (get_local $4)
+ )
+ (i32.store offset=8
+ (get_local $4)
+ (get_local $4)
+ )
+ )
)
)
(i32.store
@@ -17355,37 +15590,25 @@
)
)
(if
- (i32.eq
- (get_local $0)
- (i32.const 0)
- )
- (set_local $6
+ (get_local $0)
+ (return)
+ (set_local $0
(i32.const 632)
)
- (return)
)
(loop $while-in$21
- (block $while-out$20
- (set_local $0
- (i32.eq
- (tee_local $6
- (i32.load
- (get_local $6)
- )
+ (set_local $0
+ (i32.add
+ (tee_local $1
+ (i32.load
+ (get_local $0)
)
- (i32.const 0)
)
+ (i32.const 8)
)
- (set_local $6
- (i32.add
- (get_local $6)
- (i32.const 8)
- )
- )
- (br_if $while-out$20
- (get_local $0)
- )
- (br $while-in$21)
+ )
+ (br_if $while-in$21
+ (get_local $1)
)
)
(i32.store
@@ -17501,70 +15724,70 @@
)
)
(loop $while-in$1
- (block $while-out$0
- (br_if $while-out$0
- (i32.ge_s
- (get_local $0)
- (get_local $3)
- )
- )
- (i32.store8
+ (if
+ (i32.lt_s
(get_local $0)
- (get_local $1)
+ (get_local $3)
)
- (set_local $0
- (i32.add
+ (block
+ (i32.store8
(get_local $0)
- (i32.const 1)
+ (get_local $1)
)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ (br $while-in$1)
)
- (br $while-in$1)
)
)
)
)
(loop $while-in$3
- (block $while-out$2
- (br_if $while-out$2
- (i32.ge_s
- (get_local $0)
- (get_local $6)
- )
- )
- (i32.store
+ (if
+ (i32.lt_s
(get_local $0)
- (get_local $5)
+ (get_local $6)
)
- (set_local $0
- (i32.add
+ (block
+ (i32.store
(get_local $0)
- (i32.const 4)
+ (get_local $5)
)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 4)
+ )
+ )
+ (br $while-in$3)
)
- (br $while-in$3)
)
)
)
)
(loop $while-in$5
- (block $while-out$4
- (br_if $while-out$4
- (i32.ge_s
- (get_local $0)
- (get_local $4)
- )
- )
- (i32.store8
+ (if
+ (i32.lt_s
(get_local $0)
- (get_local $1)
+ (get_local $4)
)
- (set_local $0
- (i32.add
+ (block
+ (i32.store8
(get_local $0)
- (i32.const 1)
+ (get_local $1)
)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ (br $while-in$5)
)
- (br $while-in$5)
)
)
(i32.sub
@@ -17719,9 +15942,8 @@
)
)
(if
- (i32.eq
+ (i32.eqz
(get_local $2)
- (i32.const 0)
)
(return
(get_local $3)
@@ -17755,75 +15977,75 @@
)
)
(loop $while-in$3
- (block $while-out$2
- (br_if $while-out$2
- (i32.lt_s
- (get_local $2)
- (i32.const 4)
- )
+ (if
+ (i32.ge_s
+ (get_local $2)
+ (i32.const 4)
)
- (i32.store
- (get_local $0)
- (i32.load
- (get_local $1)
- )
- )
- (set_local $0
- (i32.add
+ (block
+ (i32.store
(get_local $0)
- (i32.const 4)
+ (i32.load
+ (get_local $1)
+ )
)
- )
- (set_local $1
- (i32.add
- (get_local $1)
- (i32.const 4)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 4)
+ )
)
- )
- (set_local $2
- (i32.sub
- (get_local $2)
- (i32.const 4)
+ (set_local $1
+ (i32.add
+ (get_local $1)
+ (i32.const 4)
+ )
)
+ (set_local $2
+ (i32.sub
+ (get_local $2)
+ (i32.const 4)
+ )
+ )
+ (br $while-in$3)
)
- (br $while-in$3)
)
)
)
)
(loop $while-in$5
- (block $while-out$4
- (br_if $while-out$4
- (i32.le_s
- (get_local $2)
- (i32.const 0)
- )
+ (if
+ (i32.gt_s
+ (get_local $2)
+ (i32.const 0)
)
- (i32.store8
- (get_local $0)
- (i32.load8_s
- (get_local $1)
- )
- )
- (set_local $0
- (i32.add
+ (block
+ (i32.store8
(get_local $0)
- (i32.const 1)
+ (i32.load8_s
+ (get_local $1)
+ )
)
- )
- (set_local $1
- (i32.add
- (get_local $1)
- (i32.const 1)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
)
- )
- (set_local $2
- (i32.sub
- (get_local $2)
- (i32.const 1)
+ (set_local $1
+ (i32.add
+ (get_local $1)
+ (i32.const 1)
+ )
)
+ (set_local $2
+ (i32.sub
+ (get_local $2)
+ (i32.const 1)
+ )
+ )
+ (br $while-in$5)
)
- (br $while-in$5)
)
)
(get_local $3)
@@ -17975,140 +16197,147 @@
)
(func $___divdi3 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(local $4 i32)
+ (local $5 i32)
+ (local $6 i32)
+ (set_local $6
+ (call $_i64Subtract
+ (i32.xor
+ (tee_local $4
+ (i32.or
+ (i32.shr_s
+ (get_local $1)
+ (i32.const 31)
+ )
+ (i32.shl
+ (select
+ (i32.const -1)
+ (i32.const 0)
+ (i32.lt_s
+ (get_local $1)
+ (i32.const 0)
+ )
+ )
+ (i32.const 1)
+ )
+ )
+ )
+ (get_local $0)
+ )
+ (i32.xor
+ (tee_local $0
+ (i32.or
+ (i32.shr_s
+ (select
+ (i32.const -1)
+ (i32.const 0)
+ (i32.lt_s
+ (get_local $1)
+ (i32.const 0)
+ )
+ )
+ (i32.const 31)
+ )
+ (i32.shl
+ (select
+ (i32.const -1)
+ (i32.const 0)
+ (i32.lt_s
+ (get_local $1)
+ (i32.const 0)
+ )
+ )
+ (i32.const 1)
+ )
+ )
+ )
+ (get_local $1)
+ )
+ (get_local $4)
+ (get_local $0)
+ )
+ )
+ (set_local $5
+ (i32.xor
+ (tee_local $1
+ (i32.or
+ (i32.shr_s
+ (get_local $3)
+ (i32.const 31)
+ )
+ (i32.shl
+ (select
+ (i32.const -1)
+ (i32.const 0)
+ (i32.lt_s
+ (get_local $3)
+ (i32.const 0)
+ )
+ )
+ (i32.const 1)
+ )
+ )
+ )
+ (get_local $4)
+ )
+ )
+ (set_local $0
+ (i32.xor
+ (tee_local $4
+ (i32.or
+ (i32.shr_s
+ (select
+ (i32.const -1)
+ (i32.const 0)
+ (i32.lt_s
+ (get_local $3)
+ (i32.const 0)
+ )
+ )
+ (i32.const 31)
+ )
+ (i32.shl
+ (select
+ (i32.const -1)
+ (i32.const 0)
+ (i32.lt_s
+ (get_local $3)
+ (i32.const 0)
+ )
+ )
+ (i32.const 1)
+ )
+ )
+ )
+ (get_local $0)
+ )
+ )
(call $_i64Subtract
(i32.xor
(call $___udivmoddi4
- (call $_i64Subtract
- (i32.xor
- (tee_local $4
- (i32.or
- (i32.shr_s
- (get_local $1)
- (i32.const 31)
- )
- (i32.shl
- (select
- (i32.const -1)
- (i32.const 0)
- (i32.lt_s
- (get_local $1)
- (i32.const 0)
- )
- )
- (i32.const 1)
- )
- )
- )
- (get_local $0)
- )
- (i32.xor
- (tee_local $0
- (i32.or
- (i32.shr_s
- (select
- (i32.const -1)
- (i32.const 0)
- (i32.lt_s
- (get_local $1)
- (i32.const 0)
- )
- )
- (i32.const 31)
- )
- (i32.shl
- (select
- (i32.const -1)
- (i32.const 0)
- (i32.lt_s
- (get_local $1)
- (i32.const 0)
- )
- )
- (i32.const 1)
- )
- )
- )
- (get_local $1)
- )
- (get_local $4)
- (get_local $0)
- )
+ (get_local $6)
(get_global $tempRet0)
(call $_i64Subtract
(i32.xor
- (tee_local $1
- (i32.or
- (i32.shr_s
- (get_local $3)
- (i32.const 31)
- )
- (i32.shl
- (select
- (i32.const -1)
- (i32.const 0)
- (i32.lt_s
- (get_local $3)
- (i32.const 0)
- )
- )
- (i32.const 1)
- )
- )
- )
+ (get_local $1)
(get_local $2)
)
(i32.xor
- (tee_local $2
- (i32.or
- (i32.shr_s
- (select
- (i32.const -1)
- (i32.const 0)
- (i32.lt_s
- (get_local $3)
- (i32.const 0)
- )
- )
- (i32.const 31)
- )
- (i32.shl
- (select
- (i32.const -1)
- (i32.const 0)
- (i32.lt_s
- (get_local $3)
- (i32.const 0)
- )
- )
- (i32.const 1)
- )
- )
- )
+ (get_local $4)
(get_local $3)
)
(get_local $1)
- (get_local $2)
+ (get_local $4)
)
(get_global $tempRet0)
(i32.const 0)
)
- (tee_local $1
- (i32.xor
- (get_local $1)
- (get_local $4)
- )
- )
+ (get_local $5)
)
(i32.xor
(get_global $tempRet0)
- (tee_local $0
- (i32.xor
- (get_local $2)
- (get_local $0)
- )
- )
+ (get_local $0)
)
- (get_local $1)
+ (get_local $5)
(get_local $0)
)
)
@@ -18262,15 +16491,9 @@
(get_local $5)
)
)
- (set_local $1
- (get_global $tempRet0)
- )
(set_global $STACKTOP
(get_local $6)
)
- (set_global $tempRet0
- (get_local $1)
- )
(get_local $0)
)
(func $___muldi3 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
@@ -18355,962 +16578,61 @@
(get_local $0)
)
)
- (func $___udivmoddi4 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32)
- (local $5 i32)
- (local $6 i32)
- (local $7 i32)
- (local $8 i32)
- (local $9 i32)
- (local $10 i32)
- (local $11 i32)
- (local $12 i32)
- (local $13 i32)
- (local $14 i32)
- (set_local $8
- (get_local $0)
- )
- (set_local $5
- (get_local $2)
- )
- (set_local $7
- (tee_local $14
- (get_local $3)
- )
- )
- (if
- (i32.eq
- (tee_local $6
- (tee_local $9
- (get_local $1)
- )
+ (func $___udivmoddi4 (param $xl i32) (param $xh i32) (param $yl i32) (param $yh i32) (param $r i32) (result i32)
+ (local $x64 i64)
+ (local $y64 i64)
+ (set_local $x64
+ (i64.or
+ (i64.extend_u/i32
+ (get_local $xl)
)
- (i32.const 0)
- )
- (block
- (set_local $2
- (i32.ne
- (get_local $4)
- (i32.const 0)
+ (i64.shl
+ (i64.extend_u/i32
+ (get_local $xh)
)
- )
- (if
- (i32.eq
- (get_local $7)
- (i32.const 0)
- )
- (block
- (if
- (get_local $2)
- (block
- (i32.store
- (get_local $4)
- (i32.rem_u
- (get_local $8)
- (get_local $5)
- )
- )
- (i32.store offset=4
- (get_local $4)
- (i32.const 0)
- )
- )
- )
- (set_global $tempRet0
- (i32.const 0)
- )
- (return
- (i32.div_u
- (get_local $8)
- (get_local $5)
- )
- )
- )
- (block
- (if
- (i32.eqz
- (get_local $2)
- )
- (block
- (set_global $tempRet0
- (i32.const 0)
- )
- (return
- (i32.const 0)
- )
- )
- )
- (i32.store
- (get_local $4)
- (i32.and
- (get_local $0)
- (i32.const -1)
- )
- )
- (i32.store offset=4
- (get_local $4)
- (i32.and
- (get_local $1)
- (i32.const 0)
- )
- )
- (set_global $tempRet0
- (i32.const 0)
- )
- (return
- (i32.const 0)
- )
- )
+ (i64.const 32)
)
)
)
- (set_local $10
- (i32.eq
- (get_local $7)
- (i32.const 0)
- )
- )
- (block $do-once$0
- (if
- (i32.eq
- (get_local $5)
- (i32.const 0)
+ (set_local $y64
+ (i64.or
+ (i64.extend_u/i32
+ (get_local $yl)
)
- (block
- (if
- (get_local $10)
- (block
- (if
- (i32.ne
- (get_local $4)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $4)
- (i32.rem_u
- (get_local $6)
- (get_local $5)
- )
- )
- (i32.store offset=4
- (get_local $4)
- (i32.const 0)
- )
- )
- )
- (set_global $tempRet0
- (i32.const 0)
- )
- (return
- (i32.div_u
- (get_local $6)
- (get_local $5)
- )
- )
- )
+ (i64.shl
+ (i64.extend_u/i32
+ (get_local $yh)
)
- (if
- (i32.eq
- (get_local $8)
- (i32.const 0)
- )
- (block
- (if
- (i32.ne
- (get_local $4)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $4)
- (i32.const 0)
- )
- (i32.store offset=4
- (get_local $4)
- (i32.rem_u
- (get_local $6)
- (get_local $7)
- )
- )
- )
- )
- (set_global $tempRet0
- (i32.const 0)
- )
- (return
- (i32.div_u
- (get_local $6)
- (get_local $7)
- )
- )
- )
- )
- (if
- (i32.eq
- (i32.and
- (tee_local $5
- (i32.sub
- (get_local $7)
- (i32.const 1)
- )
- )
- (get_local $7)
- )
- (i32.const 0)
- )
- (block
- (if
- (i32.ne
- (get_local $4)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $4)
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $0)
- (i32.const -1)
- )
- )
- )
- (i32.store offset=4
- (get_local $4)
- (i32.or
- (i32.and
- (get_local $5)
- (get_local $6)
- )
- (i32.and
- (get_local $1)
- (i32.const 0)
- )
- )
- )
- )
- )
- (set_global $tempRet0
- (i32.const 0)
- )
- (return
- (i32.shr_u
- (get_local $6)
- (i32.ctz
- (get_local $7)
- )
- )
- )
- )
- )
- (if
- (i32.le_u
- (tee_local $5
- (i32.sub
- (i32.clz
- (get_local $7)
- )
- (i32.clz
- (get_local $6)
- )
- )
- )
- (i32.const 30)
- )
- (block
- (set_local $12
- (tee_local $0
- (i32.add
- (get_local $5)
- (i32.const 1)
- )
- )
- )
- (set_local $11
- (i32.or
- (i32.shl
- (get_local $6)
- (tee_local $1
- (i32.sub
- (i32.const 31)
- (get_local $5)
- )
- )
- )
- (i32.shr_u
- (get_local $8)
- (get_local $0)
- )
- )
- )
- (set_local $13
- (i32.shr_u
- (get_local $6)
- (get_local $0)
- )
- )
- (set_local $10
- (i32.const 0)
- )
- (set_local $0
- (i32.shl
- (get_local $8)
- (get_local $1)
- )
- )
- (br $do-once$0)
- )
- )
- (if
- (i32.eq
- (get_local $4)
- (i32.const 0)
- )
- (block
- (set_global $tempRet0
- (i32.const 0)
- )
- (return
- (i32.const 0)
- )
- )
- )
- (i32.store
- (get_local $4)
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $0)
- (i32.const -1)
- )
- )
- )
- (i32.store offset=4
- (get_local $4)
- (i32.or
- (get_local $9)
- (i32.and
- (get_local $1)
- (i32.const 0)
- )
- )
- )
- (set_global $tempRet0
- (i32.const 0)
- )
- (return
- (i32.const 0)
- )
- )
- (block
- (if
- (i32.eqz
- (get_local $10)
- )
- (block
- (if
- (i32.le_u
- (tee_local $5
- (i32.sub
- (i32.clz
- (get_local $7)
- )
- (i32.clz
- (get_local $6)
- )
- )
- )
- (i32.const 31)
- )
- (block
- (set_local $12
- (tee_local $0
- (i32.add
- (get_local $5)
- (i32.const 1)
- )
- )
- )
- (set_local $11
- (i32.or
- (i32.and
- (i32.shr_u
- (get_local $8)
- (get_local $0)
- )
- (tee_local $9
- (i32.shr_s
- (i32.sub
- (get_local $5)
- (i32.const 31)
- )
- (i32.const 31)
- )
- )
- )
- (i32.shl
- (get_local $6)
- (tee_local $1
- (i32.sub
- (i32.const 31)
- (get_local $5)
- )
- )
- )
- )
- )
- (set_local $13
- (i32.and
- (i32.shr_u
- (get_local $6)
- (get_local $0)
- )
- (get_local $9)
- )
- )
- (set_local $10
- (i32.const 0)
- )
- (set_local $0
- (i32.shl
- (get_local $8)
- (get_local $1)
- )
- )
- (br $do-once$0)
- )
- )
- (if
- (i32.eq
- (get_local $4)
- (i32.const 0)
- )
- (block
- (set_global $tempRet0
- (i32.const 0)
- )
- (return
- (i32.const 0)
- )
- )
- )
- (i32.store
- (get_local $4)
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $0)
- (i32.const -1)
- )
- )
- )
- (i32.store offset=4
- (get_local $4)
- (i32.or
- (get_local $9)
- (i32.and
- (get_local $1)
- (i32.const 0)
- )
- )
- )
- (set_global $tempRet0
- (i32.const 0)
- )
- (return
- (i32.const 0)
- )
- )
- )
- (if
- (i32.ne
- (i32.and
- (tee_local $7
- (i32.sub
- (get_local $5)
- (i32.const 1)
- )
- )
- (get_local $5)
- )
- (i32.const 0)
- )
- (block
- (set_local $1
- (i32.sub
- (i32.const 64)
- (tee_local $0
- (i32.sub
- (i32.add
- (i32.clz
- (get_local $5)
- )
- (i32.const 33)
- )
- (i32.clz
- (get_local $6)
- )
- )
- )
- )
- )
- (set_local $5
- (i32.shr_s
- (tee_local $9
- (i32.sub
- (i32.const 32)
- (get_local $0)
- )
- )
- (i32.const 31)
- )
- )
- (set_local $10
- (i32.shr_s
- (tee_local $7
- (i32.sub
- (get_local $0)
- (i32.const 32)
- )
- )
- (i32.const 31)
- )
- )
- (set_local $12
- (get_local $0)
- )
- (set_local $11
- (i32.or
- (i32.and
- (i32.shr_s
- (i32.sub
- (get_local $9)
- (i32.const 1)
- )
- (i32.const 31)
- )
- (i32.shr_u
- (get_local $6)
- (get_local $7)
- )
- )
- (i32.and
- (i32.or
- (i32.shl
- (get_local $6)
- (get_local $9)
- )
- (i32.shr_u
- (get_local $8)
- (get_local $0)
- )
- )
- (get_local $10)
- )
- )
- )
- (set_local $13
- (i32.and
- (get_local $10)
- (i32.shr_u
- (get_local $6)
- (get_local $0)
- )
- )
- )
- (set_local $10
- (i32.and
- (i32.shl
- (get_local $8)
- (get_local $1)
- )
- (get_local $5)
- )
- )
- (set_local $0
- (i32.or
- (i32.and
- (i32.or
- (i32.shl
- (get_local $6)
- (get_local $1)
- )
- (i32.shr_u
- (get_local $8)
- (get_local $7)
- )
- )
- (get_local $5)
- )
- (i32.and
- (i32.shl
- (get_local $8)
- (get_local $9)
- )
- (i32.shr_s
- (i32.sub
- (get_local $0)
- (i32.const 33)
- )
- (i32.const 31)
- )
- )
- )
- )
- (br $do-once$0)
- )
- )
- (if
- (i32.ne
- (get_local $4)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $4)
- (i32.and
- (get_local $7)
- (get_local $8)
- )
- )
- (i32.store offset=4
- (get_local $4)
- (i32.const 0)
- )
- )
- )
- (if
- (i32.eq
- (get_local $5)
- (i32.const 1)
- )
- (block
- (set_global $tempRet0
- (i32.or
- (get_local $9)
- (i32.and
- (get_local $1)
- (i32.const 0)
- )
- )
- )
- (return
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $0)
- (i32.const -1)
- )
- )
- )
- )
- (block
- (set_global $tempRet0
- (i32.or
- (i32.const 0)
- (i32.shr_u
- (get_local $6)
- (tee_local $0
- (i32.ctz
- (get_local $5)
- )
- )
- )
- )
- )
- (return
- (i32.or
- (i32.shl
- (get_local $6)
- (i32.sub
- (i32.const 32)
- (get_local $0)
- )
- )
- (i32.shr_u
- (get_local $8)
- (get_local $0)
- )
- )
- )
- )
- )
- )
- )
- )
- (set_local $0
- (if
- (i32.eq
- (get_local $12)
- (i32.const 0)
- )
- (block
- (set_local $6
- (get_local $0)
- )
- (set_local $1
- (i32.const 0)
- )
- (i32.const 0)
- )
- (block
- (set_local $3
- (call $_i64Add
- (tee_local $1
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $2)
- (i32.const -1)
- )
- )
- )
- (tee_local $2
- (i32.or
- (get_local $14)
- (i32.and
- (get_local $3)
- (i32.const 0)
- )
- )
- )
- (i32.const -1)
- (i32.const -1)
- )
- )
- (set_local $8
- (get_global $tempRet0)
- )
- (set_local $9
- (get_local $0)
- )
- (set_local $0
- (i32.const 0)
- )
- (loop $while-in$3
- (block $while-out$2
- (set_local $6
- (i32.or
- (i32.shr_u
- (get_local $10)
- (i32.const 31)
- )
- (i32.shl
- (get_local $9)
- (i32.const 1)
- )
- )
- )
- (set_local $10
- (i32.or
- (get_local $0)
- (i32.shl
- (get_local $10)
- (i32.const 1)
- )
- )
- )
- (drop
- (call $_i64Subtract
- (get_local $3)
- (get_local $8)
- (tee_local $0
- (i32.or
- (i32.const 0)
- (i32.or
- (i32.shl
- (get_local $11)
- (i32.const 1)
- )
- (i32.shr_u
- (get_local $9)
- (i32.const 31)
- )
- )
- )
- )
- (tee_local $9
- (i32.or
- (i32.shr_u
- (get_local $11)
- (i32.const 31)
- )
- (i32.shl
- (get_local $13)
- (i32.const 1)
- )
- )
- )
- )
- )
- (set_local $7
- (i32.and
- (tee_local $14
- (i32.or
- (i32.shr_s
- (tee_local $5
- (get_global $tempRet0)
- )
- (i32.const 31)
- )
- (i32.shl
- (select
- (i32.const -1)
- (i32.const 0)
- (i32.lt_s
- (get_local $5)
- (i32.const 0)
- )
- )
- (i32.const 1)
- )
- )
- )
- (i32.const 1)
- )
- )
- (set_local $11
- (call $_i64Subtract
- (get_local $0)
- (get_local $9)
- (i32.and
- (get_local $14)
- (get_local $1)
- )
- (i32.and
- (i32.or
- (i32.shr_s
- (select
- (i32.const -1)
- (i32.const 0)
- (i32.lt_s
- (get_local $5)
- (i32.const 0)
- )
- )
- (i32.const 31)
- )
- (i32.shl
- (select
- (i32.const -1)
- (i32.const 0)
- (i32.lt_s
- (get_local $5)
- (i32.const 0)
- )
- )
- (i32.const 1)
- )
- )
- (get_local $2)
- )
- )
- )
- (set_local $13
- (get_global $tempRet0)
- )
- (if
- (i32.eq
- (tee_local $12
- (i32.sub
- (get_local $12)
- (i32.const 1)
- )
- )
- (i32.const 0)
- )
- (br $while-out$2)
- (block
- (set_local $9
- (get_local $6)
- )
- (set_local $0
- (get_local $7)
- )
- )
- )
- (br $while-in$3)
- )
- )
- (set_local $1
- (i32.const 0)
- )
- (get_local $7)
- )
- )
- )
- (set_local $3
- (i32.or
- (get_local $6)
- (tee_local $2
- (i32.const 0)
+ (i64.const 32)
)
)
)
(if
- (i32.ne
- (get_local $4)
- (i32.const 0)
+ (get_local $r)
+ (i64.store
+ (get_local $r)
+ (i64.rem_u
+ (get_local $x64)
+ (get_local $y64)
+ )
)
- (block
- (i32.store
- (get_local $4)
- (i32.or
- (i32.const 0)
- (get_local $11)
- )
- )
- (i32.store offset=4
- (get_local $4)
- (get_local $13)
- )
+ )
+ (set_local $x64
+ (i64.div_u
+ (get_local $x64)
+ (get_local $y64)
)
)
(set_global $tempRet0
- (i32.or
- (i32.or
- (i32.or
- (i32.shr_u
- (i32.or
- (i32.const 0)
- (get_local $10)
- )
- (i32.const 31)
- )
- (i32.shl
- (get_local $3)
- (i32.const 1)
- )
- )
- (i32.and
- (i32.or
- (i32.shl
- (get_local $2)
- (i32.const 1)
- )
- (i32.shr_u
- (get_local $10)
- (i32.const 31)
- )
- )
- (i32.const 0)
- )
+ (i32.wrap/i64
+ (i64.shr_u
+ (get_local $x64)
+ (i64.const 32)
)
- (get_local $1)
)
)
- (i32.or
- (i32.and
- (i32.or
- (i32.shl
- (get_local $10)
- (i32.const 1)
- )
- (i32.const 0)
- )
- (i32.const -2)
- )
- (get_local $0)
+ (i32.wrap/i64
+ (get_local $x64)
)
)
(func $dynCall_ii (param $0 i32) (param $1 i32) (result i32)
diff --git a/test/emcc_hello_world.fromasm.imprecise.no-opts b/test/emcc_hello_world.fromasm.imprecise.no-opts
index 45f19f2..d7bbe58 100644
--- a/test/emcc_hello_world.fromasm.imprecise.no-opts
+++ b/test/emcc_hello_world.fromasm.imprecise.no-opts
@@ -6156,10 +6156,12 @@
)
(if
(get_local $$tobool$i)
- (call $___fwritex
- (get_local $$incdec$ptr169275)
- (get_local $$sub$ptr$sub)
- (get_local $$f)
+ (drop
+ (call $___fwritex
+ (get_local $$incdec$ptr169275)
+ (get_local $$sub$ptr$sub)
+ (get_local $$f)
+ )
)
)
)
@@ -9623,10 +9625,12 @@
)
(if
(get_local $$tobool$i$419$i)
- (call $___fwritex
- (get_local $$prefix$0$add$ptr65$i)
- (get_local $$add67$i)
- (get_local $$f)
+ (drop
+ (call $___fwritex
+ (get_local $$prefix$0$add$ptr65$i)
+ (get_local $$add67$i)
+ (get_local $$f)
+ )
)
)
(set_local $$xor167$i
@@ -9667,10 +9671,12 @@
)
(if
(get_local $$tobool$i$425$i)
- (call $___fwritex
- (get_local $$buf$i)
- (get_local $$sub$ptr$sub172$i)
- (get_local $$f)
+ (drop
+ (call $___fwritex
+ (get_local $$buf$i)
+ (get_local $$sub$ptr$sub172$i)
+ (get_local $$f)
+ )
)
)
(set_local $$sub$ptr$rhs$cast174$i
@@ -9720,10 +9726,12 @@
)
(if
(get_local $$tobool$i$431$i)
- (call $___fwritex
- (get_local $$incdec$ptr115$i)
- (get_local $$sub$ptr$sub175$i)
- (get_local $$f)
+ (drop
+ (call $___fwritex
+ (get_local $$incdec$ptr115$i)
+ (get_local $$sub$ptr$sub175$i)
+ (get_local $$f)
+ )
)
)
(set_local $$xor186$i
@@ -12090,10 +12098,12 @@
)
(if
(get_local $$tobool$i$437$i)
- (call $___fwritex
- (get_local $$prefix$0$i)
- (get_local $$pl$0$i)
- (get_local $$f)
+ (drop
+ (call $___fwritex
+ (get_local $$prefix$0$i)
+ (get_local $$pl$0$i)
+ (get_local $$f)
+ )
)
)
(set_local $$xor655$i
@@ -12650,10 +12660,12 @@
)
(if
(get_local $$tobool$i$461$i)
- (call $___fwritex
- (get_local $$s753$0$i)
- (i32.const 1)
- (get_local $$f)
+ (drop
+ (call $___fwritex
+ (get_local $$s753$0$i)
+ (i32.const 1)
+ (get_local $$f)
+ )
)
)
(set_local $$cmp777$i
@@ -13082,10 +13094,12 @@
)
(if
(get_local $$tobool$i$413$i)
- (call $___fwritex
- (get_local $$s35$0$i)
- (i32.const 3)
- (get_local $$f)
+ (drop
+ (call $___fwritex
+ (get_local $$s35$0$i)
+ (i32.const 3)
+ (get_local $$f)
+ )
)
)
(set_local $$xor$i
@@ -13839,10 +13853,12 @@
)
(if
(get_local $$tobool$i$232)
- (call $___fwritex
- (get_local $$mb)
- (get_local $$call411)
- (get_local $$f)
+ (drop
+ (call $___fwritex
+ (get_local $$mb)
+ (get_local $$call411)
+ (get_local $$f)
+ )
)
)
(set_local $$cmp404
@@ -14170,10 +14186,12 @@
)
(if
(get_local $$tobool$i$245)
- (call $___fwritex
- (get_local $$prefix$2)
- (get_local $$pl$2)
- (get_local $$f)
+ (drop
+ (call $___fwritex
+ (get_local $$prefix$2)
+ (get_local $$pl$2)
+ (get_local $$f)
+ )
)
)
(set_local $$xor449
@@ -14215,10 +14233,12 @@
)
(if
(get_local $$tobool$i$217)
- (call $___fwritex
- (get_local $$a$2)
- (get_local $$sub$ptr$sub433)
- (get_local $$f)
+ (drop
+ (call $___fwritex
+ (get_local $$a$2)
+ (get_local $$sub$ptr$sub433)
+ (get_local $$f)
+ )
)
)
(set_local $$xor457
@@ -31428,1303 +31448,61 @@
)
)
)
- (func $___udivmoddi4 (param $$a$0 i32) (param $$a$1 i32) (param $$b$0 i32) (param $$b$1 i32) (param $$rem i32) (result i32)
- (local $$n_sroa_0_0_extract_trunc i32)
- (local $$n_sroa_1_4_extract_shift$0 i32)
- (local $$n_sroa_1_4_extract_trunc i32)
- (local $$d_sroa_0_0_extract_trunc i32)
- (local $$d_sroa_1_4_extract_shift$0 i32)
- (local $$d_sroa_1_4_extract_trunc i32)
- (local $$4 i32)
- (local $$17 i32)
- (local $$37 i32)
- (local $$49 i32)
- (local $$51 i32)
- (local $$57 i32)
- (local $$58 i32)
- (local $$66 i32)
- (local $$78 i32)
- (local $$86 i32)
- (local $$88 i32)
- (local $$89 i32)
- (local $$91 i32)
- (local $$92 i32)
- (local $$95 i32)
- (local $$105 i32)
- (local $$117 i32)
- (local $$119 i32)
- (local $$125 i32)
- (local $$126 i32)
- (local $$130 i32)
- (local $$q_sroa_1_1_ph i32)
- (local $$q_sroa_0_1_ph i32)
- (local $$r_sroa_1_1_ph i32)
- (local $$r_sroa_0_1_ph i32)
- (local $$sr_1_ph i32)
- (local $$d_sroa_0_0_insert_insert99$0 i32)
- (local $$d_sroa_0_0_insert_insert99$1 i32)
- (local $$137$0 i32)
- (local $$137$1 i32)
- (local $$carry_0203 i32)
- (local $$sr_1202 i32)
- (local $$r_sroa_0_1201 i32)
- (local $$r_sroa_1_1200 i32)
- (local $$q_sroa_0_1199 i32)
- (local $$q_sroa_1_1198 i32)
- (local $$147 i32)
- (local $$149 i32)
- (local $$r_sroa_0_0_insert_insert42$0 i32)
- (local $$r_sroa_0_0_insert_insert42$1 i32)
- (local $$150$1 i32)
- (local $$151$0 i32)
- (local $$152 i32)
- (local $$154$0 i32)
- (local $$r_sroa_0_0_extract_trunc i32)
- (local $$r_sroa_1_4_extract_trunc i32)
- (local $$155 i32)
- (local $$carry_0_lcssa$0 i32)
- (local $$carry_0_lcssa$1 i32)
- (local $$r_sroa_0_1_lcssa i32)
- (local $$r_sroa_1_1_lcssa i32)
- (local $$q_sroa_0_1_lcssa i32)
- (local $$q_sroa_1_1_lcssa i32)
- (local $$q_sroa_0_0_insert_ext75$0 i32)
- (local $$q_sroa_0_0_insert_ext75$1 i32)
- (local $$q_sroa_0_0_insert_insert77$1 i32)
- (local $$_0$0 i32)
- (local $$_0$1 i32)
- (set_local $$n_sroa_0_0_extract_trunc
- (get_local $$a$0)
- )
- (set_local $$n_sroa_1_4_extract_shift$0
- (get_local $$a$1)
- )
- (set_local $$n_sroa_1_4_extract_trunc
- (get_local $$n_sroa_1_4_extract_shift$0)
- )
- (set_local $$d_sroa_0_0_extract_trunc
- (get_local $$b$0)
- )
- (set_local $$d_sroa_1_4_extract_shift$0
- (get_local $$b$1)
- )
- (set_local $$d_sroa_1_4_extract_trunc
- (get_local $$d_sroa_1_4_extract_shift$0)
- )
- (if
- (i32.eq
- (get_local $$n_sroa_1_4_extract_trunc)
- (i32.const 0)
- )
- (block
- (set_local $$4
- (i32.ne
- (get_local $$rem)
- (i32.const 0)
- )
+ (func $___udivmoddi4 (param $xl i32) (param $xh i32) (param $yl i32) (param $yh i32) (param $r i32) (result i32)
+ (local $x64 i64)
+ (local $y64 i64)
+ (set_local $x64
+ (i64.or
+ (i64.extend_u/i32
+ (get_local $xl)
)
- (if
- (i32.eq
- (get_local $$d_sroa_1_4_extract_trunc)
- (i32.const 0)
+ (i64.shl
+ (i64.extend_u/i32
+ (get_local $xh)
)
- (block
- (if
- (get_local $$4)
- (block
- (i32.store
- (get_local $$rem)
- (i32.rem_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- )
- (i32.store
- (i32.add
- (get_local $$rem)
- (i32.const 4)
- )
- (i32.const 0)
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.div_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
- (block
- (if
- (i32.eqz
- (get_local $$4)
- )
- (block
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (i32.store
- (get_local $$rem)
- (i32.and
- (get_local $$a$0)
- (i32.const -1)
- )
- )
- (i32.store
- (i32.add
- (get_local $$rem)
- (i32.const 4)
- )
- (i32.and
- (get_local $$a$1)
- (i32.const 0)
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
+ (i64.const 32)
)
)
)
- (set_local $$17
- (i32.eq
- (get_local $$d_sroa_1_4_extract_trunc)
- (i32.const 0)
- )
- )
- (block $do-once$0
- (if
- (i32.eq
- (get_local $$d_sroa_0_0_extract_trunc)
- (i32.const 0)
+ (set_local $y64
+ (i64.or
+ (i64.extend_u/i32
+ (get_local $yl)
)
- (block
- (if
- (get_local $$17)
- (block
- (if
- (i32.ne
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $$rem)
- (i32.rem_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- )
- (i32.store
- (i32.add
- (get_local $$rem)
- (i32.const 4)
- )
- (i32.const 0)
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.div_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
+ (i64.shl
+ (i64.extend_u/i32
+ (get_local $yh)
)
- (if
- (i32.eq
- (get_local $$n_sroa_0_0_extract_trunc)
- (i32.const 0)
- )
- (block
- (if
- (i32.ne
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $$rem)
- (i32.const 0)
- )
- (i32.store
- (i32.add
- (get_local $$rem)
- (i32.const 4)
- )
- (i32.rem_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.div_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (set_local $$37
- (i32.sub
- (get_local $$d_sroa_1_4_extract_trunc)
- (i32.const 1)
- )
- )
- (if
- (i32.eq
- (i32.and
- (get_local $$37)
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- (i32.const 0)
- )
- (block
- (if
- (i32.ne
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $$rem)
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $$a$0)
- (i32.const -1)
- )
- )
- )
- (i32.store
- (i32.add
- (get_local $$rem)
- (i32.const 4)
- )
- (i32.or
- (i32.and
- (get_local $$37)
- (get_local $$n_sroa_1_4_extract_trunc)
- )
- (i32.and
- (get_local $$a$1)
- (i32.const 0)
- )
- )
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (i32.ctz
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- )
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (set_local $$49
- (i32.clz
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- )
- (set_local $$51
- (i32.sub
- (get_local $$49)
- (i32.clz
- (get_local $$n_sroa_1_4_extract_trunc)
- )
- )
- )
- (if
- (i32.le_u
- (get_local $$51)
- (i32.const 30)
- )
- (block
- (set_local $$57
- (i32.add
- (get_local $$51)
- (i32.const 1)
- )
- )
- (set_local $$58
- (i32.sub
- (i32.const 31)
- (get_local $$51)
- )
- )
- (set_local $$sr_1_ph
- (get_local $$57)
- )
- (set_local $$r_sroa_0_1_ph
- (i32.or
- (i32.shl
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$58)
- )
- (i32.shr_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$57)
- )
- )
- )
- (set_local $$r_sroa_1_1_ph
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$57)
- )
- )
- (set_local $$q_sroa_0_1_ph
- (i32.const 0)
- )
- (set_local $$q_sroa_1_1_ph
- (i32.shl
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$58)
- )
- )
- (br $do-once$0)
- )
- )
- (if
- (i32.eq
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (i32.store
- (get_local $$rem)
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $$a$0)
- (i32.const -1)
- )
- )
- )
- (i32.store
- (i32.add
- (get_local $$rem)
- (i32.const 4)
- )
- (i32.or
- (get_local $$n_sroa_1_4_extract_shift$0)
- (i32.and
- (get_local $$a$1)
- (i32.const 0)
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
- (block
- (if
- (i32.eqz
- (get_local $$17)
- )
- (block
- (set_local $$117
- (i32.clz
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- )
- (set_local $$119
- (i32.sub
- (get_local $$117)
- (i32.clz
- (get_local $$n_sroa_1_4_extract_trunc)
- )
- )
- )
- (if
- (i32.le_u
- (get_local $$119)
- (i32.const 31)
- )
- (block
- (set_local $$125
- (i32.add
- (get_local $$119)
- (i32.const 1)
- )
- )
- (set_local $$126
- (i32.sub
- (i32.const 31)
- (get_local $$119)
- )
- )
- (set_local $$130
- (i32.shr_s
- (i32.sub
- (get_local $$119)
- (i32.const 31)
- )
- (i32.const 31)
- )
- )
- (set_local $$sr_1_ph
- (get_local $$125)
- )
- (set_local $$r_sroa_0_1_ph
- (i32.or
- (i32.and
- (i32.shr_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$125)
- )
- (get_local $$130)
- )
- (i32.shl
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$126)
- )
- )
- )
- (set_local $$r_sroa_1_1_ph
- (i32.and
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$125)
- )
- (get_local $$130)
- )
- )
- (set_local $$q_sroa_0_1_ph
- (i32.const 0)
- )
- (set_local $$q_sroa_1_1_ph
- (i32.shl
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$126)
- )
- )
- (br $do-once$0)
- )
- )
- (if
- (i32.eq
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (i32.store
- (get_local $$rem)
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $$a$0)
- (i32.const -1)
- )
- )
- )
- (i32.store
- (i32.add
- (get_local $$rem)
- (i32.const 4)
- )
- (i32.or
- (get_local $$n_sroa_1_4_extract_shift$0)
- (i32.and
- (get_local $$a$1)
- (i32.const 0)
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (set_local $$66
- (i32.sub
- (get_local $$d_sroa_0_0_extract_trunc)
- (i32.const 1)
- )
- )
- (if
- (i32.ne
- (i32.and
- (get_local $$66)
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- (i32.const 0)
- )
- (block
- (set_local $$86
- (i32.add
- (i32.clz
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- (i32.const 33)
- )
- )
- (set_local $$88
- (i32.sub
- (get_local $$86)
- (i32.clz
- (get_local $$n_sroa_1_4_extract_trunc)
- )
- )
- )
- (set_local $$89
- (i32.sub
- (i32.const 64)
- (get_local $$88)
- )
- )
- (set_local $$91
- (i32.sub
- (i32.const 32)
- (get_local $$88)
- )
- )
- (set_local $$92
- (i32.shr_s
- (get_local $$91)
- (i32.const 31)
- )
- )
- (set_local $$95
- (i32.sub
- (get_local $$88)
- (i32.const 32)
- )
- )
- (set_local $$105
- (i32.shr_s
- (get_local $$95)
- (i32.const 31)
- )
- )
- (set_local $$sr_1_ph
- (get_local $$88)
- )
- (set_local $$r_sroa_0_1_ph
- (i32.or
- (i32.and
- (i32.shr_s
- (i32.sub
- (get_local $$91)
- (i32.const 1)
- )
- (i32.const 31)
- )
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$95)
- )
- )
- (i32.and
- (i32.or
- (i32.shl
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$91)
- )
- (i32.shr_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$88)
- )
- )
- (get_local $$105)
- )
- )
- )
- (set_local $$r_sroa_1_1_ph
- (i32.and
- (get_local $$105)
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$88)
- )
- )
- )
- (set_local $$q_sroa_0_1_ph
- (i32.and
- (i32.shl
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$89)
- )
- (get_local $$92)
- )
- )
- (set_local $$q_sroa_1_1_ph
- (i32.or
- (i32.and
- (i32.or
- (i32.shl
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$89)
- )
- (i32.shr_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$95)
- )
- )
- (get_local $$92)
- )
- (i32.and
- (i32.shl
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$91)
- )
- (i32.shr_s
- (i32.sub
- (get_local $$88)
- (i32.const 33)
- )
- (i32.const 31)
- )
- )
- )
- )
- (br $do-once$0)
- )
- )
- (if
- (i32.ne
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $$rem)
- (i32.and
- (get_local $$66)
- (get_local $$n_sroa_0_0_extract_trunc)
- )
- )
- (i32.store
- (i32.add
- (get_local $$rem)
- (i32.const 4)
- )
- (i32.const 0)
- )
- )
- )
- (if
- (i32.eq
- (get_local $$d_sroa_0_0_extract_trunc)
- (i32.const 1)
- )
- (block
- (set_local $$_0$1
- (i32.or
- (get_local $$n_sroa_1_4_extract_shift$0)
- (i32.and
- (get_local $$a$1)
- (i32.const 0)
- )
- )
- )
- (set_local $$_0$0
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $$a$0)
- (i32.const -1)
- )
- )
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
- (block
- (set_local $$78
- (i32.ctz
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- )
- (set_local $$_0$1
- (i32.or
- (i32.const 0)
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$78)
- )
- )
- )
- (set_local $$_0$0
- (i32.or
- (i32.shl
- (get_local $$n_sroa_1_4_extract_trunc)
- (i32.sub
- (i32.const 32)
- (get_local $$78)
- )
- )
- (i32.shr_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$78)
- )
- )
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
- )
+ (i64.const 32)
)
)
)
(if
- (i32.eq
- (get_local $$sr_1_ph)
- (i32.const 0)
- )
- (block
- (set_local $$q_sroa_1_1_lcssa
- (get_local $$q_sroa_1_1_ph)
- )
- (set_local $$q_sroa_0_1_lcssa
- (get_local $$q_sroa_0_1_ph)
- )
- (set_local $$r_sroa_1_1_lcssa
- (get_local $$r_sroa_1_1_ph)
- )
- (set_local $$r_sroa_0_1_lcssa
- (get_local $$r_sroa_0_1_ph)
- )
- (set_local $$carry_0_lcssa$1
- (i32.const 0)
- )
- (set_local $$carry_0_lcssa$0
- (i32.const 0)
- )
- )
- (block
- (set_local $$d_sroa_0_0_insert_insert99$0
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $$b$0)
- (i32.const -1)
- )
- )
- )
- (set_local $$d_sroa_0_0_insert_insert99$1
- (i32.or
- (get_local $$d_sroa_1_4_extract_shift$0)
- (i32.and
- (get_local $$b$1)
- (i32.const 0)
- )
- )
- )
- (set_local $$137$0
- (call $_i64Add
- (get_local $$d_sroa_0_0_insert_insert99$0)
- (get_local $$d_sroa_0_0_insert_insert99$1)
- (i32.const -1)
- (i32.const -1)
- )
- )
- (set_local $$137$1
- (get_global $tempRet0)
- )
- (set_local $$q_sroa_1_1198
- (get_local $$q_sroa_1_1_ph)
- )
- (set_local $$q_sroa_0_1199
- (get_local $$q_sroa_0_1_ph)
- )
- (set_local $$r_sroa_1_1200
- (get_local $$r_sroa_1_1_ph)
- )
- (set_local $$r_sroa_0_1201
- (get_local $$r_sroa_0_1_ph)
- )
- (set_local $$sr_1202
- (get_local $$sr_1_ph)
- )
- (set_local $$carry_0203
- (i32.const 0)
- )
- (loop $while-in$3
- (block $while-out$2
- (set_local $$147
- (i32.or
- (i32.shr_u
- (get_local $$q_sroa_0_1199)
- (i32.const 31)
- )
- (i32.shl
- (get_local $$q_sroa_1_1198)
- (i32.const 1)
- )
- )
- )
- (set_local $$149
- (i32.or
- (get_local $$carry_0203)
- (i32.shl
- (get_local $$q_sroa_0_1199)
- (i32.const 1)
- )
- )
- )
- (set_local $$r_sroa_0_0_insert_insert42$0
- (i32.or
- (i32.const 0)
- (i32.or
- (i32.shl
- (get_local $$r_sroa_0_1201)
- (i32.const 1)
- )
- (i32.shr_u
- (get_local $$q_sroa_1_1198)
- (i32.const 31)
- )
- )
- )
- )
- (set_local $$r_sroa_0_0_insert_insert42$1
- (i32.or
- (i32.shr_u
- (get_local $$r_sroa_0_1201)
- (i32.const 31)
- )
- (i32.shl
- (get_local $$r_sroa_1_1200)
- (i32.const 1)
- )
- )
- )
- (drop
- (call $_i64Subtract
- (get_local $$137$0)
- (get_local $$137$1)
- (get_local $$r_sroa_0_0_insert_insert42$0)
- (get_local $$r_sroa_0_0_insert_insert42$1)
- )
- )
- (set_local $$150$1
- (get_global $tempRet0)
- )
- (set_local $$151$0
- (i32.or
- (i32.shr_s
- (get_local $$150$1)
- (i32.const 31)
- )
- (i32.shl
- (if
- (i32.lt_s
- (get_local $$150$1)
- (i32.const 0)
- )
- (i32.const -1)
- (i32.const 0)
- )
- (i32.const 1)
- )
- )
- )
- (set_local $$152
- (i32.and
- (get_local $$151$0)
- (i32.const 1)
- )
- )
- (set_local $$154$0
- (call $_i64Subtract
- (get_local $$r_sroa_0_0_insert_insert42$0)
- (get_local $$r_sroa_0_0_insert_insert42$1)
- (i32.and
- (get_local $$151$0)
- (get_local $$d_sroa_0_0_insert_insert99$0)
- )
- (i32.and
- (i32.or
- (i32.shr_s
- (if
- (i32.lt_s
- (get_local $$150$1)
- (i32.const 0)
- )
- (i32.const -1)
- (i32.const 0)
- )
- (i32.const 31)
- )
- (i32.shl
- (if
- (i32.lt_s
- (get_local $$150$1)
- (i32.const 0)
- )
- (i32.const -1)
- (i32.const 0)
- )
- (i32.const 1)
- )
- )
- (get_local $$d_sroa_0_0_insert_insert99$1)
- )
- )
- )
- (set_local $$r_sroa_0_0_extract_trunc
- (get_local $$154$0)
- )
- (set_local $$r_sroa_1_4_extract_trunc
- (get_global $tempRet0)
- )
- (set_local $$155
- (i32.sub
- (get_local $$sr_1202)
- (i32.const 1)
- )
- )
- (if
- (i32.eq
- (get_local $$155)
- (i32.const 0)
- )
- (br $while-out$2)
- (block
- (set_local $$q_sroa_1_1198
- (get_local $$147)
- )
- (set_local $$q_sroa_0_1199
- (get_local $$149)
- )
- (set_local $$r_sroa_1_1200
- (get_local $$r_sroa_1_4_extract_trunc)
- )
- (set_local $$r_sroa_0_1201
- (get_local $$r_sroa_0_0_extract_trunc)
- )
- (set_local $$sr_1202
- (get_local $$155)
- )
- (set_local $$carry_0203
- (get_local $$152)
- )
- )
- )
- (br $while-in$3)
- )
- )
- (set_local $$q_sroa_1_1_lcssa
- (get_local $$147)
- )
- (set_local $$q_sroa_0_1_lcssa
- (get_local $$149)
- )
- (set_local $$r_sroa_1_1_lcssa
- (get_local $$r_sroa_1_4_extract_trunc)
- )
- (set_local $$r_sroa_0_1_lcssa
- (get_local $$r_sroa_0_0_extract_trunc)
- )
- (set_local $$carry_0_lcssa$1
- (i32.const 0)
- )
- (set_local $$carry_0_lcssa$0
- (get_local $$152)
+ (get_local $r)
+ (i64.store
+ (get_local $r)
+ (i64.rem_u
+ (get_local $x64)
+ (get_local $y64)
)
)
)
- (set_local $$q_sroa_0_0_insert_ext75$0
- (get_local $$q_sroa_0_1_lcssa)
- )
- (set_local $$q_sroa_0_0_insert_ext75$1
- (i32.const 0)
- )
- (set_local $$q_sroa_0_0_insert_insert77$1
- (i32.or
- (get_local $$q_sroa_1_1_lcssa)
- (get_local $$q_sroa_0_0_insert_ext75$1)
+ (set_local $x64
+ (i64.div_u
+ (get_local $x64)
+ (get_local $y64)
)
)
- (if
- (i32.ne
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $$rem)
- (i32.or
- (i32.const 0)
- (get_local $$r_sroa_0_1_lcssa)
- )
- )
- (i32.store
- (i32.add
- (get_local $$rem)
- (i32.const 4)
- )
- (get_local $$r_sroa_1_1_lcssa)
+ (set_global $tempRet0
+ (i32.wrap/i64
+ (i64.shr_u
+ (get_local $x64)
+ (i64.const 32)
)
)
)
- (set_local $$_0$1
- (i32.or
- (i32.or
- (i32.or
- (i32.shr_u
- (i32.or
- (i32.const 0)
- (get_local $$q_sroa_0_0_insert_ext75$0)
- )
- (i32.const 31)
- )
- (i32.shl
- (get_local $$q_sroa_0_0_insert_insert77$1)
- (i32.const 1)
- )
- )
- (i32.and
- (i32.or
- (i32.shl
- (get_local $$q_sroa_0_0_insert_ext75$1)
- (i32.const 1)
- )
- (i32.shr_u
- (get_local $$q_sroa_0_0_insert_ext75$0)
- (i32.const 31)
- )
- )
- (i32.const 0)
- )
- )
- (get_local $$carry_0_lcssa$1)
- )
- )
- (set_local $$_0$0
- (i32.or
- (i32.and
- (i32.or
- (i32.shl
- (get_local $$q_sroa_0_0_insert_ext75$0)
- (i32.const 1)
- )
- (i32.shr_u
- (i32.const 0)
- (i32.const 31)
- )
- )
- (i32.const -2)
- )
- (get_local $$carry_0_lcssa$0)
- )
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
+ (i32.wrap/i64
+ (get_local $x64)
)
)
(func $dynCall_ii (param $index i32) (param $a1 i32) (result i32)
diff --git a/test/emcc_hello_world.fromasm.no-opts b/test/emcc_hello_world.fromasm.no-opts
index ea2bb88..0231444 100644
--- a/test/emcc_hello_world.fromasm.no-opts
+++ b/test/emcc_hello_world.fromasm.no-opts
@@ -6162,10 +6162,12 @@
)
(if
(get_local $$tobool$i)
- (call $___fwritex
- (get_local $$incdec$ptr169275)
- (get_local $$sub$ptr$sub)
- (get_local $$f)
+ (drop
+ (call $___fwritex
+ (get_local $$incdec$ptr169275)
+ (get_local $$sub$ptr$sub)
+ (get_local $$f)
+ )
)
)
)
@@ -9629,10 +9631,12 @@
)
(if
(get_local $$tobool$i$419$i)
- (call $___fwritex
- (get_local $$prefix$0$add$ptr65$i)
- (get_local $$add67$i)
- (get_local $$f)
+ (drop
+ (call $___fwritex
+ (get_local $$prefix$0$add$ptr65$i)
+ (get_local $$add67$i)
+ (get_local $$f)
+ )
)
)
(set_local $$xor167$i
@@ -9673,10 +9677,12 @@
)
(if
(get_local $$tobool$i$425$i)
- (call $___fwritex
- (get_local $$buf$i)
- (get_local $$sub$ptr$sub172$i)
- (get_local $$f)
+ (drop
+ (call $___fwritex
+ (get_local $$buf$i)
+ (get_local $$sub$ptr$sub172$i)
+ (get_local $$f)
+ )
)
)
(set_local $$sub$ptr$rhs$cast174$i
@@ -9726,10 +9732,12 @@
)
(if
(get_local $$tobool$i$431$i)
- (call $___fwritex
- (get_local $$incdec$ptr115$i)
- (get_local $$sub$ptr$sub175$i)
- (get_local $$f)
+ (drop
+ (call $___fwritex
+ (get_local $$incdec$ptr115$i)
+ (get_local $$sub$ptr$sub175$i)
+ (get_local $$f)
+ )
)
)
(set_local $$xor186$i
@@ -12096,10 +12104,12 @@
)
(if
(get_local $$tobool$i$437$i)
- (call $___fwritex
- (get_local $$prefix$0$i)
- (get_local $$pl$0$i)
- (get_local $$f)
+ (drop
+ (call $___fwritex
+ (get_local $$prefix$0$i)
+ (get_local $$pl$0$i)
+ (get_local $$f)
+ )
)
)
(set_local $$xor655$i
@@ -12656,10 +12666,12 @@
)
(if
(get_local $$tobool$i$461$i)
- (call $___fwritex
- (get_local $$s753$0$i)
- (i32.const 1)
- (get_local $$f)
+ (drop
+ (call $___fwritex
+ (get_local $$s753$0$i)
+ (i32.const 1)
+ (get_local $$f)
+ )
)
)
(set_local $$cmp777$i
@@ -13088,10 +13100,12 @@
)
(if
(get_local $$tobool$i$413$i)
- (call $___fwritex
- (get_local $$s35$0$i)
- (i32.const 3)
- (get_local $$f)
+ (drop
+ (call $___fwritex
+ (get_local $$s35$0$i)
+ (i32.const 3)
+ (get_local $$f)
+ )
)
)
(set_local $$xor$i
@@ -13845,10 +13859,12 @@
)
(if
(get_local $$tobool$i$232)
- (call $___fwritex
- (get_local $$mb)
- (get_local $$call411)
- (get_local $$f)
+ (drop
+ (call $___fwritex
+ (get_local $$mb)
+ (get_local $$call411)
+ (get_local $$f)
+ )
)
)
(set_local $$cmp404
@@ -14176,10 +14192,12 @@
)
(if
(get_local $$tobool$i$245)
- (call $___fwritex
- (get_local $$prefix$2)
- (get_local $$pl$2)
- (get_local $$f)
+ (drop
+ (call $___fwritex
+ (get_local $$prefix$2)
+ (get_local $$pl$2)
+ (get_local $$f)
+ )
)
)
(set_local $$xor449
@@ -14221,10 +14239,12 @@
)
(if
(get_local $$tobool$i$217)
- (call $___fwritex
- (get_local $$a$2)
- (get_local $$sub$ptr$sub433)
- (get_local $$f)
+ (drop
+ (call $___fwritex
+ (get_local $$a$2)
+ (get_local $$sub$ptr$sub433)
+ (get_local $$f)
+ )
)
)
(set_local $$xor457
@@ -31434,1303 +31454,61 @@
)
)
)
- (func $___udivmoddi4 (param $$a$0 i32) (param $$a$1 i32) (param $$b$0 i32) (param $$b$1 i32) (param $$rem i32) (result i32)
- (local $$n_sroa_0_0_extract_trunc i32)
- (local $$n_sroa_1_4_extract_shift$0 i32)
- (local $$n_sroa_1_4_extract_trunc i32)
- (local $$d_sroa_0_0_extract_trunc i32)
- (local $$d_sroa_1_4_extract_shift$0 i32)
- (local $$d_sroa_1_4_extract_trunc i32)
- (local $$4 i32)
- (local $$17 i32)
- (local $$37 i32)
- (local $$49 i32)
- (local $$51 i32)
- (local $$57 i32)
- (local $$58 i32)
- (local $$66 i32)
- (local $$78 i32)
- (local $$86 i32)
- (local $$88 i32)
- (local $$89 i32)
- (local $$91 i32)
- (local $$92 i32)
- (local $$95 i32)
- (local $$105 i32)
- (local $$117 i32)
- (local $$119 i32)
- (local $$125 i32)
- (local $$126 i32)
- (local $$130 i32)
- (local $$q_sroa_1_1_ph i32)
- (local $$q_sroa_0_1_ph i32)
- (local $$r_sroa_1_1_ph i32)
- (local $$r_sroa_0_1_ph i32)
- (local $$sr_1_ph i32)
- (local $$d_sroa_0_0_insert_insert99$0 i32)
- (local $$d_sroa_0_0_insert_insert99$1 i32)
- (local $$137$0 i32)
- (local $$137$1 i32)
- (local $$carry_0203 i32)
- (local $$sr_1202 i32)
- (local $$r_sroa_0_1201 i32)
- (local $$r_sroa_1_1200 i32)
- (local $$q_sroa_0_1199 i32)
- (local $$q_sroa_1_1198 i32)
- (local $$147 i32)
- (local $$149 i32)
- (local $$r_sroa_0_0_insert_insert42$0 i32)
- (local $$r_sroa_0_0_insert_insert42$1 i32)
- (local $$150$1 i32)
- (local $$151$0 i32)
- (local $$152 i32)
- (local $$154$0 i32)
- (local $$r_sroa_0_0_extract_trunc i32)
- (local $$r_sroa_1_4_extract_trunc i32)
- (local $$155 i32)
- (local $$carry_0_lcssa$0 i32)
- (local $$carry_0_lcssa$1 i32)
- (local $$r_sroa_0_1_lcssa i32)
- (local $$r_sroa_1_1_lcssa i32)
- (local $$q_sroa_0_1_lcssa i32)
- (local $$q_sroa_1_1_lcssa i32)
- (local $$q_sroa_0_0_insert_ext75$0 i32)
- (local $$q_sroa_0_0_insert_ext75$1 i32)
- (local $$q_sroa_0_0_insert_insert77$1 i32)
- (local $$_0$0 i32)
- (local $$_0$1 i32)
- (set_local $$n_sroa_0_0_extract_trunc
- (get_local $$a$0)
- )
- (set_local $$n_sroa_1_4_extract_shift$0
- (get_local $$a$1)
- )
- (set_local $$n_sroa_1_4_extract_trunc
- (get_local $$n_sroa_1_4_extract_shift$0)
- )
- (set_local $$d_sroa_0_0_extract_trunc
- (get_local $$b$0)
- )
- (set_local $$d_sroa_1_4_extract_shift$0
- (get_local $$b$1)
- )
- (set_local $$d_sroa_1_4_extract_trunc
- (get_local $$d_sroa_1_4_extract_shift$0)
- )
- (if
- (i32.eq
- (get_local $$n_sroa_1_4_extract_trunc)
- (i32.const 0)
- )
- (block
- (set_local $$4
- (i32.ne
- (get_local $$rem)
- (i32.const 0)
- )
+ (func $___udivmoddi4 (param $xl i32) (param $xh i32) (param $yl i32) (param $yh i32) (param $r i32) (result i32)
+ (local $x64 i64)
+ (local $y64 i64)
+ (set_local $x64
+ (i64.or
+ (i64.extend_u/i32
+ (get_local $xl)
)
- (if
- (i32.eq
- (get_local $$d_sroa_1_4_extract_trunc)
- (i32.const 0)
+ (i64.shl
+ (i64.extend_u/i32
+ (get_local $xh)
)
- (block
- (if
- (get_local $$4)
- (block
- (i32.store
- (get_local $$rem)
- (call_import $i32u-rem
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- )
- (i32.store
- (i32.add
- (get_local $$rem)
- (i32.const 4)
- )
- (i32.const 0)
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (call_import $i32u-div
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
- (block
- (if
- (i32.eqz
- (get_local $$4)
- )
- (block
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (i32.store
- (get_local $$rem)
- (i32.and
- (get_local $$a$0)
- (i32.const -1)
- )
- )
- (i32.store
- (i32.add
- (get_local $$rem)
- (i32.const 4)
- )
- (i32.and
- (get_local $$a$1)
- (i32.const 0)
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
+ (i64.const 32)
)
)
)
- (set_local $$17
- (i32.eq
- (get_local $$d_sroa_1_4_extract_trunc)
- (i32.const 0)
- )
- )
- (block $do-once$0
- (if
- (i32.eq
- (get_local $$d_sroa_0_0_extract_trunc)
- (i32.const 0)
+ (set_local $y64
+ (i64.or
+ (i64.extend_u/i32
+ (get_local $yl)
)
- (block
- (if
- (get_local $$17)
- (block
- (if
- (i32.ne
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $$rem)
- (call_import $i32u-rem
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- )
- (i32.store
- (i32.add
- (get_local $$rem)
- (i32.const 4)
- )
- (i32.const 0)
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (call_import $i32u-div
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
+ (i64.shl
+ (i64.extend_u/i32
+ (get_local $yh)
)
- (if
- (i32.eq
- (get_local $$n_sroa_0_0_extract_trunc)
- (i32.const 0)
- )
- (block
- (if
- (i32.ne
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $$rem)
- (i32.const 0)
- )
- (i32.store
- (i32.add
- (get_local $$rem)
- (i32.const 4)
- )
- (call_import $i32u-rem
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (call_import $i32u-div
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (set_local $$37
- (i32.sub
- (get_local $$d_sroa_1_4_extract_trunc)
- (i32.const 1)
- )
- )
- (if
- (i32.eq
- (i32.and
- (get_local $$37)
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- (i32.const 0)
- )
- (block
- (if
- (i32.ne
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $$rem)
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $$a$0)
- (i32.const -1)
- )
- )
- )
- (i32.store
- (i32.add
- (get_local $$rem)
- (i32.const 4)
- )
- (i32.or
- (i32.and
- (get_local $$37)
- (get_local $$n_sroa_1_4_extract_trunc)
- )
- (i32.and
- (get_local $$a$1)
- (i32.const 0)
- )
- )
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (i32.ctz
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- )
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (set_local $$49
- (i32.clz
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- )
- (set_local $$51
- (i32.sub
- (get_local $$49)
- (i32.clz
- (get_local $$n_sroa_1_4_extract_trunc)
- )
- )
- )
- (if
- (i32.le_u
- (get_local $$51)
- (i32.const 30)
- )
- (block
- (set_local $$57
- (i32.add
- (get_local $$51)
- (i32.const 1)
- )
- )
- (set_local $$58
- (i32.sub
- (i32.const 31)
- (get_local $$51)
- )
- )
- (set_local $$sr_1_ph
- (get_local $$57)
- )
- (set_local $$r_sroa_0_1_ph
- (i32.or
- (i32.shl
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$58)
- )
- (i32.shr_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$57)
- )
- )
- )
- (set_local $$r_sroa_1_1_ph
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$57)
- )
- )
- (set_local $$q_sroa_0_1_ph
- (i32.const 0)
- )
- (set_local $$q_sroa_1_1_ph
- (i32.shl
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$58)
- )
- )
- (br $do-once$0)
- )
- )
- (if
- (i32.eq
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (i32.store
- (get_local $$rem)
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $$a$0)
- (i32.const -1)
- )
- )
- )
- (i32.store
- (i32.add
- (get_local $$rem)
- (i32.const 4)
- )
- (i32.or
- (get_local $$n_sroa_1_4_extract_shift$0)
- (i32.and
- (get_local $$a$1)
- (i32.const 0)
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
- (block
- (if
- (i32.eqz
- (get_local $$17)
- )
- (block
- (set_local $$117
- (i32.clz
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- )
- (set_local $$119
- (i32.sub
- (get_local $$117)
- (i32.clz
- (get_local $$n_sroa_1_4_extract_trunc)
- )
- )
- )
- (if
- (i32.le_u
- (get_local $$119)
- (i32.const 31)
- )
- (block
- (set_local $$125
- (i32.add
- (get_local $$119)
- (i32.const 1)
- )
- )
- (set_local $$126
- (i32.sub
- (i32.const 31)
- (get_local $$119)
- )
- )
- (set_local $$130
- (i32.shr_s
- (i32.sub
- (get_local $$119)
- (i32.const 31)
- )
- (i32.const 31)
- )
- )
- (set_local $$sr_1_ph
- (get_local $$125)
- )
- (set_local $$r_sroa_0_1_ph
- (i32.or
- (i32.and
- (i32.shr_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$125)
- )
- (get_local $$130)
- )
- (i32.shl
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$126)
- )
- )
- )
- (set_local $$r_sroa_1_1_ph
- (i32.and
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$125)
- )
- (get_local $$130)
- )
- )
- (set_local $$q_sroa_0_1_ph
- (i32.const 0)
- )
- (set_local $$q_sroa_1_1_ph
- (i32.shl
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$126)
- )
- )
- (br $do-once$0)
- )
- )
- (if
- (i32.eq
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (i32.store
- (get_local $$rem)
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $$a$0)
- (i32.const -1)
- )
- )
- )
- (i32.store
- (i32.add
- (get_local $$rem)
- (i32.const 4)
- )
- (i32.or
- (get_local $$n_sroa_1_4_extract_shift$0)
- (i32.and
- (get_local $$a$1)
- (i32.const 0)
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (set_local $$66
- (i32.sub
- (get_local $$d_sroa_0_0_extract_trunc)
- (i32.const 1)
- )
- )
- (if
- (i32.ne
- (i32.and
- (get_local $$66)
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- (i32.const 0)
- )
- (block
- (set_local $$86
- (i32.add
- (i32.clz
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- (i32.const 33)
- )
- )
- (set_local $$88
- (i32.sub
- (get_local $$86)
- (i32.clz
- (get_local $$n_sroa_1_4_extract_trunc)
- )
- )
- )
- (set_local $$89
- (i32.sub
- (i32.const 64)
- (get_local $$88)
- )
- )
- (set_local $$91
- (i32.sub
- (i32.const 32)
- (get_local $$88)
- )
- )
- (set_local $$92
- (i32.shr_s
- (get_local $$91)
- (i32.const 31)
- )
- )
- (set_local $$95
- (i32.sub
- (get_local $$88)
- (i32.const 32)
- )
- )
- (set_local $$105
- (i32.shr_s
- (get_local $$95)
- (i32.const 31)
- )
- )
- (set_local $$sr_1_ph
- (get_local $$88)
- )
- (set_local $$r_sroa_0_1_ph
- (i32.or
- (i32.and
- (i32.shr_s
- (i32.sub
- (get_local $$91)
- (i32.const 1)
- )
- (i32.const 31)
- )
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$95)
- )
- )
- (i32.and
- (i32.or
- (i32.shl
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$91)
- )
- (i32.shr_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$88)
- )
- )
- (get_local $$105)
- )
- )
- )
- (set_local $$r_sroa_1_1_ph
- (i32.and
- (get_local $$105)
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$88)
- )
- )
- )
- (set_local $$q_sroa_0_1_ph
- (i32.and
- (i32.shl
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$89)
- )
- (get_local $$92)
- )
- )
- (set_local $$q_sroa_1_1_ph
- (i32.or
- (i32.and
- (i32.or
- (i32.shl
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$89)
- )
- (i32.shr_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$95)
- )
- )
- (get_local $$92)
- )
- (i32.and
- (i32.shl
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$91)
- )
- (i32.shr_s
- (i32.sub
- (get_local $$88)
- (i32.const 33)
- )
- (i32.const 31)
- )
- )
- )
- )
- (br $do-once$0)
- )
- )
- (if
- (i32.ne
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $$rem)
- (i32.and
- (get_local $$66)
- (get_local $$n_sroa_0_0_extract_trunc)
- )
- )
- (i32.store
- (i32.add
- (get_local $$rem)
- (i32.const 4)
- )
- (i32.const 0)
- )
- )
- )
- (if
- (i32.eq
- (get_local $$d_sroa_0_0_extract_trunc)
- (i32.const 1)
- )
- (block
- (set_local $$_0$1
- (i32.or
- (get_local $$n_sroa_1_4_extract_shift$0)
- (i32.and
- (get_local $$a$1)
- (i32.const 0)
- )
- )
- )
- (set_local $$_0$0
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $$a$0)
- (i32.const -1)
- )
- )
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
- (block
- (set_local $$78
- (i32.ctz
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- )
- (set_local $$_0$1
- (i32.or
- (i32.const 0)
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$78)
- )
- )
- )
- (set_local $$_0$0
- (i32.or
- (i32.shl
- (get_local $$n_sroa_1_4_extract_trunc)
- (i32.sub
- (i32.const 32)
- (get_local $$78)
- )
- )
- (i32.shr_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$78)
- )
- )
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
- )
- )
- )
+ (i64.const 32)
)
)
)
(if
- (i32.eq
- (get_local $$sr_1_ph)
- (i32.const 0)
- )
- (block
- (set_local $$q_sroa_1_1_lcssa
- (get_local $$q_sroa_1_1_ph)
- )
- (set_local $$q_sroa_0_1_lcssa
- (get_local $$q_sroa_0_1_ph)
- )
- (set_local $$r_sroa_1_1_lcssa
- (get_local $$r_sroa_1_1_ph)
- )
- (set_local $$r_sroa_0_1_lcssa
- (get_local $$r_sroa_0_1_ph)
- )
- (set_local $$carry_0_lcssa$1
- (i32.const 0)
- )
- (set_local $$carry_0_lcssa$0
- (i32.const 0)
- )
- )
- (block
- (set_local $$d_sroa_0_0_insert_insert99$0
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $$b$0)
- (i32.const -1)
- )
- )
- )
- (set_local $$d_sroa_0_0_insert_insert99$1
- (i32.or
- (get_local $$d_sroa_1_4_extract_shift$0)
- (i32.and
- (get_local $$b$1)
- (i32.const 0)
- )
- )
- )
- (set_local $$137$0
- (call $_i64Add
- (get_local $$d_sroa_0_0_insert_insert99$0)
- (get_local $$d_sroa_0_0_insert_insert99$1)
- (i32.const -1)
- (i32.const -1)
- )
- )
- (set_local $$137$1
- (get_global $tempRet0)
- )
- (set_local $$q_sroa_1_1198
- (get_local $$q_sroa_1_1_ph)
- )
- (set_local $$q_sroa_0_1199
- (get_local $$q_sroa_0_1_ph)
- )
- (set_local $$r_sroa_1_1200
- (get_local $$r_sroa_1_1_ph)
- )
- (set_local $$r_sroa_0_1201
- (get_local $$r_sroa_0_1_ph)
- )
- (set_local $$sr_1202
- (get_local $$sr_1_ph)
- )
- (set_local $$carry_0203
- (i32.const 0)
- )
- (loop $while-in$3
- (block $while-out$2
- (set_local $$147
- (i32.or
- (i32.shr_u
- (get_local $$q_sroa_0_1199)
- (i32.const 31)
- )
- (i32.shl
- (get_local $$q_sroa_1_1198)
- (i32.const 1)
- )
- )
- )
- (set_local $$149
- (i32.or
- (get_local $$carry_0203)
- (i32.shl
- (get_local $$q_sroa_0_1199)
- (i32.const 1)
- )
- )
- )
- (set_local $$r_sroa_0_0_insert_insert42$0
- (i32.or
- (i32.const 0)
- (i32.or
- (i32.shl
- (get_local $$r_sroa_0_1201)
- (i32.const 1)
- )
- (i32.shr_u
- (get_local $$q_sroa_1_1198)
- (i32.const 31)
- )
- )
- )
- )
- (set_local $$r_sroa_0_0_insert_insert42$1
- (i32.or
- (i32.shr_u
- (get_local $$r_sroa_0_1201)
- (i32.const 31)
- )
- (i32.shl
- (get_local $$r_sroa_1_1200)
- (i32.const 1)
- )
- )
- )
- (drop
- (call $_i64Subtract
- (get_local $$137$0)
- (get_local $$137$1)
- (get_local $$r_sroa_0_0_insert_insert42$0)
- (get_local $$r_sroa_0_0_insert_insert42$1)
- )
- )
- (set_local $$150$1
- (get_global $tempRet0)
- )
- (set_local $$151$0
- (i32.or
- (i32.shr_s
- (get_local $$150$1)
- (i32.const 31)
- )
- (i32.shl
- (if
- (i32.lt_s
- (get_local $$150$1)
- (i32.const 0)
- )
- (i32.const -1)
- (i32.const 0)
- )
- (i32.const 1)
- )
- )
- )
- (set_local $$152
- (i32.and
- (get_local $$151$0)
- (i32.const 1)
- )
- )
- (set_local $$154$0
- (call $_i64Subtract
- (get_local $$r_sroa_0_0_insert_insert42$0)
- (get_local $$r_sroa_0_0_insert_insert42$1)
- (i32.and
- (get_local $$151$0)
- (get_local $$d_sroa_0_0_insert_insert99$0)
- )
- (i32.and
- (i32.or
- (i32.shr_s
- (if
- (i32.lt_s
- (get_local $$150$1)
- (i32.const 0)
- )
- (i32.const -1)
- (i32.const 0)
- )
- (i32.const 31)
- )
- (i32.shl
- (if
- (i32.lt_s
- (get_local $$150$1)
- (i32.const 0)
- )
- (i32.const -1)
- (i32.const 0)
- )
- (i32.const 1)
- )
- )
- (get_local $$d_sroa_0_0_insert_insert99$1)
- )
- )
- )
- (set_local $$r_sroa_0_0_extract_trunc
- (get_local $$154$0)
- )
- (set_local $$r_sroa_1_4_extract_trunc
- (get_global $tempRet0)
- )
- (set_local $$155
- (i32.sub
- (get_local $$sr_1202)
- (i32.const 1)
- )
- )
- (if
- (i32.eq
- (get_local $$155)
- (i32.const 0)
- )
- (br $while-out$2)
- (block
- (set_local $$q_sroa_1_1198
- (get_local $$147)
- )
- (set_local $$q_sroa_0_1199
- (get_local $$149)
- )
- (set_local $$r_sroa_1_1200
- (get_local $$r_sroa_1_4_extract_trunc)
- )
- (set_local $$r_sroa_0_1201
- (get_local $$r_sroa_0_0_extract_trunc)
- )
- (set_local $$sr_1202
- (get_local $$155)
- )
- (set_local $$carry_0203
- (get_local $$152)
- )
- )
- )
- (br $while-in$3)
- )
- )
- (set_local $$q_sroa_1_1_lcssa
- (get_local $$147)
- )
- (set_local $$q_sroa_0_1_lcssa
- (get_local $$149)
- )
- (set_local $$r_sroa_1_1_lcssa
- (get_local $$r_sroa_1_4_extract_trunc)
- )
- (set_local $$r_sroa_0_1_lcssa
- (get_local $$r_sroa_0_0_extract_trunc)
- )
- (set_local $$carry_0_lcssa$1
- (i32.const 0)
- )
- (set_local $$carry_0_lcssa$0
- (get_local $$152)
+ (get_local $r)
+ (i64.store
+ (get_local $r)
+ (i64.rem_u
+ (get_local $x64)
+ (get_local $y64)
)
)
)
- (set_local $$q_sroa_0_0_insert_ext75$0
- (get_local $$q_sroa_0_1_lcssa)
- )
- (set_local $$q_sroa_0_0_insert_ext75$1
- (i32.const 0)
- )
- (set_local $$q_sroa_0_0_insert_insert77$1
- (i32.or
- (get_local $$q_sroa_1_1_lcssa)
- (get_local $$q_sroa_0_0_insert_ext75$1)
+ (set_local $x64
+ (i64.div_u
+ (get_local $x64)
+ (get_local $y64)
)
)
- (if
- (i32.ne
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $$rem)
- (i32.or
- (i32.const 0)
- (get_local $$r_sroa_0_1_lcssa)
- )
- )
- (i32.store
- (i32.add
- (get_local $$rem)
- (i32.const 4)
- )
- (get_local $$r_sroa_1_1_lcssa)
+ (set_global $tempRet0
+ (i32.wrap/i64
+ (i64.shr_u
+ (get_local $x64)
+ (i64.const 32)
)
)
)
- (set_local $$_0$1
- (i32.or
- (i32.or
- (i32.or
- (i32.shr_u
- (i32.or
- (i32.const 0)
- (get_local $$q_sroa_0_0_insert_ext75$0)
- )
- (i32.const 31)
- )
- (i32.shl
- (get_local $$q_sroa_0_0_insert_insert77$1)
- (i32.const 1)
- )
- )
- (i32.and
- (i32.or
- (i32.shl
- (get_local $$q_sroa_0_0_insert_ext75$1)
- (i32.const 1)
- )
- (i32.shr_u
- (get_local $$q_sroa_0_0_insert_ext75$0)
- (i32.const 31)
- )
- )
- (i32.const 0)
- )
- )
- (get_local $$carry_0_lcssa$1)
- )
- )
- (set_local $$_0$0
- (i32.or
- (i32.and
- (i32.or
- (i32.shl
- (get_local $$q_sroa_0_0_insert_ext75$0)
- (i32.const 1)
- )
- (i32.shr_u
- (i32.const 0)
- (i32.const 31)
- )
- )
- (i32.const -2)
- )
- (get_local $$carry_0_lcssa$0)
- )
- )
- (return
- (block
- (block
- (set_global $tempRet0
- (get_local $$_0$1)
- )
- (drop
- (get_global $tempRet0)
- )
- )
- (get_local $$_0$0)
- )
+ (i32.wrap/i64
+ (get_local $x64)
)
)
(func $dynCall_ii (param $index i32) (param $a1 i32) (result i32)
diff --git a/test/example/c-api-kitchen-sink.txt b/test/example/c-api-kitchen-sink.txt
index 6544f9f..9f1021b 100644
--- a/test/example/c-api-kitchen-sink.txt
+++ b/test/example/c-api-kitchen-sink.txt
@@ -408,7 +408,9 @@
)
(if
(i32.const 4)
- (i32.const 5)
+ (drop
+ (i32.const 5)
+ )
)
(drop
(loop $in
@@ -1102,11 +1104,10 @@
(call_import $check
(i32.const 1)
)
- (if
+ (br_if $shape$0$continue
(i32.const 10)
- (br $shape$0$continue)
- (br $block$3$break)
)
+ (br $block$3$break)
)
)
(call_import $check
@@ -1129,11 +1130,10 @@
(call_import $check
(i32.const 2)
)
- (if
+ (br_if $block$4$break
(i32.const -6)
- (br $block$4$break)
- (br $shape$1$continue)
)
+ (br $shape$1$continue)
)
)
(call_import $check
@@ -1999,7 +1999,9 @@
)
(if
(i32.const 4)
- (i32.const 5)
+ (drop
+ (i32.const 5)
+ )
)
(drop
(loop $in
@@ -3157,11 +3159,10 @@
(call_import $check
(i32.const 1)
)
- (if
+ (br_if $shape$0$continue
(i32.const 10)
- (br $shape$0$continue)
- (br $block$3$break)
)
+ (br $block$3$break)
)
)
(call_import $check
@@ -3184,11 +3185,10 @@
(call_import $check
(i32.const 2)
)
- (if
+ (br_if $block$4$break
(i32.const -6)
- (br $block$4$break)
- (br $shape$1$continue)
)
+ (br $shape$1$continue)
)
)
(call_import $check
diff --git a/test/example/c-api-kitchen-sink.txt.txt b/test/example/c-api-kitchen-sink.txt.txt
index b37814f..022bcc2 100644
--- a/test/example/c-api-kitchen-sink.txt.txt
+++ b/test/example/c-api-kitchen-sink.txt.txt
@@ -403,7 +403,9 @@
)
(if
(i32.const 4)
- (i32.const 5)
+ (drop
+ (i32.const 5)
+ )
)
(drop
(loop $in
@@ -1095,11 +1097,10 @@
(call_import $check
(i32.const 1)
)
- (if
+ (br_if $shape$0$continue
(i32.const 10)
- (br $shape$0$continue)
- (br $block$3$break)
)
+ (br $block$3$break)
)
)
(call_import $check
@@ -1122,11 +1123,10 @@
(call_import $check
(i32.const 2)
)
- (if
+ (br_if $block$4$break
(i32.const -6)
- (br $block$4$break)
- (br $shape$1$continue)
)
+ (br $shape$1$continue)
)
)
(call_import $check
diff --git a/test/example/relooper-fuzz.txt b/test/example/relooper-fuzz.txt
index 1513603..5db33f2 100644
--- a/test/example/relooper-fuzz.txt
+++ b/test/example/relooper-fuzz.txt
@@ -449,15 +449,9 @@
(i32.const 0)
)
(if
- (i32.eq
- (i32.rem_u
- (call $check)
- (i32.const 2)
- )
- (i32.const 0)
- )
- (set_local $0
- (i32.const 6)
+ (i32.rem_u
+ (call $check)
+ (i32.const 2)
)
(block
(call_import $print
@@ -467,6 +461,9 @@
(call $check)
)
)
+ (set_local $0
+ (i32.const 6)
+ )
)
(loop $shape$3$continue
(if
@@ -481,52 +478,46 @@
(call_import $print
(i32.const 5)
)
- (if
- (i32.eq
+ (br_if $shape$3$continue
+ (i32.eqz
(i32.rem_u
(call $check)
(i32.const 2)
)
- (i32.const 0)
- )
- (br $shape$3$continue)
- (block
- (set_local $0
- (i32.const 6)
- )
- (br $shape$3$continue)
)
)
+ (set_local $0
+ (i32.const 6)
+ )
+ (br $shape$3$continue)
)
)
(call_import $print
(i32.const 4)
)
- (if
- (i32.eq
+ (br_if $shape$3$continue
+ (i32.eqz
(i32.rem_u
(tee_local $1
(call $check)
)
(i32.const 3)
)
- (i32.const 0)
)
- (br $shape$3$continue)
- (if
- (i32.eq
- (i32.rem_u
- (get_local $1)
- (i32.const 3)
- )
- (i32.const 1)
+ )
+ (if
+ (i32.eq
+ (i32.rem_u
+ (get_local $1)
+ (i32.const 3)
)
- (block
- (set_local $0
- (i32.const 6)
- )
- (br $shape$3$continue)
+ (i32.const 1)
+ )
+ (block
+ (set_local $0
+ (i32.const 6)
)
+ (br $shape$3$continue)
)
)
(call_import $print
diff --git a/test/example/relooper-fuzz1.txt b/test/example/relooper-fuzz1.txt
index be81302..b4ad8b5 100644
--- a/test/example/relooper-fuzz1.txt
+++ b/test/example/relooper-fuzz1.txt
@@ -438,14 +438,11 @@
(i32.const 0)
)
(if
- (i32.ne
- (i32.rem_u
- (tee_local $0
- (call $check)
- )
- (i32.const 4)
+ (i32.rem_u
+ (tee_local $0
+ (call $check)
)
- (i32.const 0)
+ (i32.const 4)
)
(if
(i32.eq
@@ -460,12 +457,9 @@
(i32.const 7)
)
(br_if $block$10$break
- (i32.ne
- (i32.rem_u
- (call $check)
- (i32.const 3)
- )
- (i32.const 0)
+ (i32.rem_u
+ (call $check)
+ (i32.const 3)
)
)
)
@@ -476,12 +470,9 @@
(i32.const 2)
)
(br_if $block$10$break
- (i32.ne
- (i32.rem_u
- (call $check)
- (i32.const 2)
- )
- (i32.const 0)
+ (i32.rem_u
+ (call $check)
+ (i32.const 2)
)
)
)
diff --git a/test/memorygrowth.fromasm b/test/memorygrowth.fromasm
index c0cce35..70ef836 100644
--- a/test/memorygrowth.fromasm
+++ b/test/memorygrowth.fromasm
@@ -131,7 +131,8 @@
(local $52 i32)
(local $53 i32)
(local $54 i32)
- (set_local $31
+ (local $55 i32)
+ (set_local $25
(get_global $r)
)
(set_global $r
@@ -140,8 +141,8 @@
(i32.const 16)
)
)
- (set_local $15
- (get_local $31)
+ (set_local $13
+ (get_local $25)
)
(block $do-once$0
(if
@@ -152,16 +153,16 @@
(block
(if
(i32.and
- (tee_local $12
+ (tee_local $5
(i32.shr_u
- (tee_local $16
+ (tee_local $6
(i32.load
(i32.const 1208)
)
)
- (tee_local $2
+ (tee_local $0
(i32.shr_u
- (tee_local $14
+ (tee_local $2
(select
(i32.const 16)
(i32.and
@@ -185,15 +186,15 @@
(i32.const 3)
)
(block
- (set_local $11
+ (set_local $7
(i32.load
- (tee_local $27
+ (tee_local $5
(i32.add
- (tee_local $29
+ (tee_local $2
(i32.load
- (tee_local $25
+ (tee_local $4
(i32.add
- (tee_local $5
+ (tee_local $8
(i32.add
(i32.const 1248)
(i32.shl
@@ -202,12 +203,12 @@
(i32.add
(i32.xor
(i32.and
- (get_local $12)
+ (get_local $5)
(i32.const 1)
)
(i32.const 1)
)
- (get_local $2)
+ (get_local $0)
)
)
(i32.const 1)
@@ -228,13 +229,13 @@
)
(if
(i32.eq
- (get_local $5)
- (get_local $11)
+ (get_local $8)
+ (get_local $7)
)
(i32.store
(i32.const 1208)
(i32.and
- (get_local $16)
+ (get_local $6)
(i32.xor
(i32.shl
(i32.const 1)
@@ -247,7 +248,7 @@
(block
(if
(i32.lt_u
- (get_local $11)
+ (get_local $7)
(i32.load
(i32.const 1224)
)
@@ -257,23 +258,23 @@
(if
(i32.eq
(i32.load
- (tee_local $19
+ (tee_local $17
(i32.add
- (get_local $11)
+ (get_local $7)
(i32.const 12)
)
)
)
- (get_local $29)
+ (get_local $2)
)
(block
(i32.store
- (get_local $19)
- (get_local $5)
+ (get_local $17)
+ (get_local $8)
)
(i32.store
- (get_local $25)
- (get_local $11)
+ (get_local $4)
+ (get_local $7)
)
)
(call_import $qa)
@@ -281,9 +282,9 @@
)
)
(i32.store offset=4
- (get_local $29)
+ (get_local $2)
(i32.or
- (tee_local $11
+ (tee_local $7
(i32.shl
(get_local $0)
(i32.const 3)
@@ -293,34 +294,34 @@
)
)
(i32.store
- (tee_local $25
+ (tee_local $4
(i32.add
(i32.add
- (get_local $29)
- (get_local $11)
+ (get_local $2)
+ (get_local $7)
)
(i32.const 4)
)
)
(i32.or
(i32.load
- (get_local $25)
+ (get_local $4)
)
(i32.const 1)
)
)
(set_global $r
- (get_local $31)
+ (get_local $25)
)
(return
- (get_local $27)
+ (get_local $5)
)
)
)
(if
(i32.gt_u
- (get_local $14)
- (tee_local $25
+ (get_local $2)
+ (tee_local $4
(i32.load
(i32.const 1216)
)
@@ -328,37 +329,37 @@
)
(block
(if
- (get_local $12)
+ (get_local $5)
(block
- (set_local $5
+ (set_local $8
(i32.and
(i32.shr_u
- (tee_local $11
+ (tee_local $7
(i32.add
(i32.and
- (tee_local $5
+ (tee_local $8
(i32.and
(i32.shl
- (get_local $12)
- (get_local $2)
+ (get_local $5)
+ (get_local $0)
)
(i32.or
- (tee_local $11
+ (tee_local $7
(i32.shl
(i32.const 2)
- (get_local $2)
+ (get_local $0)
)
)
(i32.sub
(i32.const 0)
- (get_local $11)
+ (get_local $7)
)
)
)
)
(i32.sub
(i32.const 0)
- (get_local $5)
+ (get_local $8)
)
)
(i32.const -1)
@@ -369,32 +370,32 @@
(i32.const 16)
)
)
- (set_local $5
+ (set_local $8
(i32.load
- (tee_local $19
+ (tee_local $17
(i32.add
- (tee_local $8
+ (tee_local $10
(i32.load
- (tee_local $0
+ (tee_local $15
(i32.add
(tee_local $3
(i32.add
(i32.const 1248)
(i32.shl
(i32.shl
- (tee_local $7
+ (tee_local $9
(i32.add
(i32.or
(i32.or
(i32.or
(i32.or
- (tee_local $11
+ (tee_local $7
(i32.and
(i32.shr_u
- (tee_local $19
+ (tee_local $17
(i32.shr_u
- (get_local $11)
- (get_local $5)
+ (get_local $7)
+ (get_local $8)
)
)
(i32.const 5)
@@ -402,15 +403,15 @@
(i32.const 8)
)
)
- (get_local $5)
+ (get_local $8)
)
- (tee_local $19
+ (tee_local $17
(i32.and
(i32.shr_u
- (tee_local $8
+ (tee_local $10
(i32.shr_u
- (get_local $19)
- (get_local $11)
+ (get_local $17)
+ (get_local $7)
)
)
(i32.const 2)
@@ -419,13 +420,13 @@
)
)
)
- (tee_local $8
+ (tee_local $10
(i32.and
(i32.shr_u
(tee_local $3
(i32.shr_u
- (get_local $8)
- (get_local $19)
+ (get_local $10)
+ (get_local $17)
)
)
(i32.const 1)
@@ -437,10 +438,10 @@
(tee_local $3
(i32.and
(i32.shr_u
- (tee_local $0
+ (tee_local $15
(i32.shr_u
(get_local $3)
- (get_local $8)
+ (get_local $10)
)
)
(i32.const 1)
@@ -450,7 +451,7 @@
)
)
(i32.shr_u
- (get_local $0)
+ (get_local $15)
(get_local $3)
)
)
@@ -474,30 +475,30 @@
(if
(i32.eq
(get_local $3)
- (get_local $5)
+ (get_local $8)
)
(block
(i32.store
(i32.const 1208)
(i32.and
- (get_local $16)
+ (get_local $6)
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $7)
+ (get_local $9)
)
(i32.const -1)
)
)
)
- (set_local $39
- (get_local $25)
+ (set_local $34
+ (get_local $4)
)
)
(block
(if
(i32.lt_u
- (get_local $5)
+ (get_local $8)
(i32.load
(i32.const 1224)
)
@@ -507,25 +508,25 @@
(if
(i32.eq
(i32.load
- (tee_local $11
+ (tee_local $7
(i32.add
- (get_local $5)
+ (get_local $8)
(i32.const 12)
)
)
)
- (get_local $8)
+ (get_local $10)
)
(block
(i32.store
- (get_local $11)
+ (get_local $7)
(get_local $3)
)
(i32.store
- (get_local $0)
- (get_local $5)
+ (get_local $15)
+ (get_local $8)
)
- (set_local $39
+ (set_local $34
(i32.load
(i32.const 1216)
)
@@ -536,27 +537,27 @@
)
)
(i32.store offset=4
- (get_local $8)
+ (get_local $10)
(i32.or
- (get_local $14)
+ (get_local $2)
(i32.const 3)
)
)
(i32.store offset=4
- (tee_local $0
+ (tee_local $15
(i32.add
- (get_local $8)
- (get_local $14)
+ (get_local $10)
+ (get_local $2)
)
)
(i32.or
- (tee_local $5
+ (tee_local $8
(i32.sub
(i32.shl
- (get_local $7)
+ (get_local $9)
(i32.const 3)
)
- (get_local $14)
+ (get_local $2)
)
)
(i32.const 1)
@@ -564,27 +565,27 @@
)
(i32.store
(i32.add
- (get_local $0)
- (get_local $5)
+ (get_local $15)
+ (get_local $8)
)
- (get_local $5)
+ (get_local $8)
)
(if
- (get_local $39)
+ (get_local $34)
(block
(set_local $3
(i32.load
(i32.const 1228)
)
)
- (set_local $16
+ (set_local $6
(i32.add
(i32.const 1248)
(i32.shl
(i32.shl
- (tee_local $25
+ (tee_local $4
(i32.shr_u
- (get_local $39)
+ (get_local $34)
(i32.const 3)
)
)
@@ -596,25 +597,25 @@
)
(if
(i32.and
- (tee_local $2
+ (tee_local $0
(i32.load
(i32.const 1208)
)
)
- (tee_local $12
+ (tee_local $5
(i32.shl
(i32.const 1)
- (get_local $25)
+ (get_local $4)
)
)
)
(if
(i32.lt_u
- (tee_local $2
+ (tee_local $0
(i32.load
- (tee_local $12
+ (tee_local $5
(i32.add
- (get_local $16)
+ (get_local $6)
(i32.const 8)
)
)
@@ -626,11 +627,11 @@
)
(call_import $qa)
(block
- (set_local $44
- (get_local $12)
+ (set_local $41
+ (get_local $5)
)
- (set_local $29
- (get_local $2)
+ (set_local $27
+ (get_local $0)
)
)
)
@@ -638,72 +639,72 @@
(i32.store
(i32.const 1208)
(i32.or
- (get_local $2)
- (get_local $12)
+ (get_local $0)
+ (get_local $5)
)
)
- (set_local $44
+ (set_local $41
(i32.add
- (get_local $16)
+ (get_local $6)
(i32.const 8)
)
)
- (set_local $29
- (get_local $16)
+ (set_local $27
+ (get_local $6)
)
)
)
(i32.store
- (get_local $44)
+ (get_local $41)
(get_local $3)
)
(i32.store offset=12
- (get_local $29)
+ (get_local $27)
(get_local $3)
)
(i32.store offset=8
(get_local $3)
- (get_local $29)
+ (get_local $27)
)
(i32.store offset=12
(get_local $3)
- (get_local $16)
+ (get_local $6)
)
)
)
(i32.store
(i32.const 1216)
- (get_local $5)
+ (get_local $8)
)
(i32.store
(i32.const 1228)
- (get_local $0)
+ (get_local $15)
)
(set_global $r
- (get_local $31)
+ (get_local $25)
)
(return
- (get_local $19)
+ (get_local $17)
)
)
)
(if
- (tee_local $0
+ (tee_local $15
(i32.load
(i32.const 1212)
)
)
(block
- (set_local $0
+ (set_local $15
(i32.and
(i32.shr_u
- (tee_local $5
+ (tee_local $8
(i32.add
(i32.and
- (get_local $0)
+ (get_local $15)
(i32.sub
(i32.const 0)
- (get_local $0)
+ (get_local $15)
)
)
(i32.const -1)
@@ -714,11 +715,11 @@
(i32.const 16)
)
)
- (set_local $2
+ (set_local $0
(i32.sub
(i32.and
(i32.load offset=4
- (tee_local $25
+ (tee_local $4
(i32.load
(i32.add
(i32.shl
@@ -727,13 +728,13 @@
(i32.or
(i32.or
(i32.or
- (tee_local $5
+ (tee_local $8
(i32.and
(i32.shr_u
- (tee_local $16
+ (tee_local $6
(i32.shr_u
- (get_local $5)
- (get_local $0)
+ (get_local $8)
+ (get_local $15)
)
)
(i32.const 5)
@@ -741,15 +742,15 @@
(i32.const 8)
)
)
- (get_local $0)
+ (get_local $15)
)
- (tee_local $16
+ (tee_local $6
(i32.and
(i32.shr_u
(tee_local $3
(i32.shr_u
- (get_local $16)
- (get_local $5)
+ (get_local $6)
+ (get_local $8)
)
)
(i32.const 2)
@@ -761,10 +762,10 @@
(tee_local $3
(i32.and
(i32.shr_u
- (tee_local $2
+ (tee_local $0
(i32.shr_u
(get_local $3)
- (get_local $16)
+ (get_local $6)
)
)
(i32.const 1)
@@ -773,12 +774,12 @@
)
)
)
- (tee_local $2
+ (tee_local $0
(i32.and
(i32.shr_u
- (tee_local $12
+ (tee_local $5
(i32.shr_u
- (get_local $2)
+ (get_local $0)
(get_local $3)
)
)
@@ -789,8 +790,8 @@
)
)
(i32.shr_u
- (get_local $12)
- (get_local $2)
+ (get_local $5)
+ (get_local $0)
)
)
(i32.const 2)
@@ -802,77 +803,77 @@
)
(i32.const -8)
)
- (get_local $14)
+ (get_local $2)
)
)
- (set_local $12
- (get_local $25)
+ (set_local $5
+ (get_local $4)
)
(set_local $3
- (get_local $25)
+ (get_local $4)
)
(loop $while-in$7
(block $while-out$6
(if
- (tee_local $25
+ (tee_local $4
(i32.load offset=16
- (get_local $12)
+ (get_local $5)
)
)
- (set_local $0
- (get_local $25)
+ (set_local $7
+ (get_local $4)
)
(if
- (tee_local $16
+ (tee_local $6
(i32.load offset=20
- (get_local $12)
+ (get_local $5)
)
)
- (set_local $0
- (get_local $16)
+ (set_local $7
+ (get_local $6)
)
(block
- (set_local $32
- (get_local $2)
+ (set_local $7
+ (get_local $0)
)
- (set_local $26
+ (set_local $1
(get_local $3)
)
(br $while-out$6)
)
)
)
- (set_local $16
+ (set_local $6
(i32.lt_u
- (tee_local $25
+ (tee_local $4
(i32.sub
(i32.and
(i32.load offset=4
- (get_local $0)
+ (get_local $7)
)
(i32.const -8)
)
- (get_local $14)
+ (get_local $2)
)
)
- (get_local $2)
+ (get_local $0)
)
)
- (set_local $2
+ (set_local $0
(select
- (get_local $25)
- (get_local $2)
- (get_local $16)
+ (get_local $4)
+ (get_local $0)
+ (get_local $6)
)
)
- (set_local $12
- (get_local $0)
+ (set_local $5
+ (get_local $7)
)
(set_local $3
(select
- (get_local $0)
+ (get_local $7)
(get_local $3)
- (get_local $16)
+ (get_local $6)
)
)
(br $while-in$7)
@@ -880,7 +881,7 @@
)
(if
(i32.lt_u
- (get_local $26)
+ (get_local $1)
(tee_local $3
(i32.load
(i32.const 1224)
@@ -891,72 +892,66 @@
)
(if
(i32.ge_u
- (get_local $26)
- (tee_local $12
+ (get_local $1)
+ (tee_local $5
(i32.add
- (get_local $26)
- (get_local $14)
+ (get_local $1)
+ (get_local $2)
)
)
)
(call_import $qa)
)
- (set_local $2
+ (set_local $0
(i32.load offset=24
- (get_local $26)
+ (get_local $1)
)
)
(block $do-once$8
(if
(i32.eq
- (tee_local $19
+ (tee_local $17
(i32.load offset=12
- (get_local $26)
+ (get_local $1)
)
)
- (get_local $26)
+ (get_local $1)
)
(block
(if
- (tee_local $7
+ (tee_local $9
(i32.load
- (tee_local $8
+ (tee_local $10
(i32.add
- (get_local $26)
+ (get_local $1)
(i32.const 20)
)
)
)
)
(block
- (set_local $11
- (get_local $7)
+ (set_local $4
+ (get_local $9)
)
- (set_local $0
- (get_local $8)
+ (set_local $6
+ (get_local $10)
)
)
(if
- (tee_local $25
- (i32.load
- (tee_local $16
- (i32.add
- (get_local $26)
- (i32.const 16)
+ (i32.eqz
+ (tee_local $4
+ (i32.load
+ (tee_local $6
+ (i32.add
+ (get_local $1)
+ (i32.const 16)
+ )
)
)
)
)
(block
- (set_local $11
- (get_local $25)
- )
- (set_local $0
- (get_local $16)
- )
- )
- (block
- (set_local $27
+ (set_local $23
(i32.const 0)
)
(br $do-once$8)
@@ -964,65 +959,62 @@
)
)
(loop $while-in$11
- (block $while-out$10
- (if
- (tee_local $7
- (i32.load
- (tee_local $8
- (i32.add
- (get_local $11)
- (i32.const 20)
- )
+ (if
+ (tee_local $9
+ (i32.load
+ (tee_local $10
+ (i32.add
+ (get_local $4)
+ (i32.const 20)
)
)
)
- (block
- (set_local $11
- (get_local $7)
- )
- (set_local $0
- (get_local $8)
- )
- (br $while-in$11)
- )
)
- (if
- (tee_local $7
- (i32.load
- (tee_local $8
- (i32.add
- (get_local $11)
- (i32.const 16)
- )
+ (block
+ (set_local $4
+ (get_local $9)
+ )
+ (set_local $6
+ (get_local $10)
+ )
+ (br $while-in$11)
+ )
+ )
+ (if
+ (tee_local $9
+ (i32.load
+ (tee_local $10
+ (i32.add
+ (get_local $4)
+ (i32.const 16)
)
)
)
- (block
- (set_local $11
- (get_local $7)
- )
- (set_local $0
- (get_local $8)
- )
- )
- (br $while-out$10)
)
- (br $while-in$11)
+ (block
+ (set_local $4
+ (get_local $9)
+ )
+ (set_local $6
+ (get_local $10)
+ )
+ (br $while-in$11)
+ )
)
)
(if
(i32.lt_u
- (get_local $0)
+ (get_local $6)
(get_local $3)
)
(call_import $qa)
(block
(i32.store
- (get_local $0)
+ (get_local $6)
(i32.const 0)
)
- (set_local $27
- (get_local $11)
+ (set_local $23
+ (get_local $4)
)
)
)
@@ -1030,9 +1022,9 @@
(block
(if
(i32.lt_u
- (tee_local $8
+ (tee_local $10
(i32.load offset=8
- (get_local $26)
+ (get_local $1)
)
)
(get_local $3)
@@ -1042,40 +1034,40 @@
(if
(i32.ne
(i32.load
- (tee_local $7
+ (tee_local $9
(i32.add
- (get_local $8)
+ (get_local $10)
(i32.const 12)
)
)
)
- (get_local $26)
+ (get_local $1)
)
(call_import $qa)
)
(if
(i32.eq
(i32.load
- (tee_local $16
+ (tee_local $6
(i32.add
- (get_local $19)
+ (get_local $17)
(i32.const 8)
)
)
)
- (get_local $26)
+ (get_local $1)
)
(block
(i32.store
- (get_local $7)
- (get_local $19)
+ (get_local $9)
+ (get_local $17)
)
(i32.store
- (get_local $16)
- (get_local $8)
+ (get_local $6)
+ (get_local $10)
)
- (set_local $27
- (get_local $19)
+ (set_local $23
+ (get_local $17)
)
)
(call_import $qa)
@@ -1085,19 +1077,19 @@
)
(block $do-once$12
(if
- (get_local $2)
+ (get_local $0)
(block
(if
(i32.eq
- (get_local $26)
+ (get_local $1)
(i32.load
(tee_local $3
(i32.add
(i32.const 1512)
(i32.shl
- (tee_local $19
+ (tee_local $17
(i32.load offset=28
- (get_local $26)
+ (get_local $1)
)
)
(i32.const 2)
@@ -1109,11 +1101,11 @@
(block
(i32.store
(get_local $3)
- (get_local $27)
+ (get_local $23)
)
(if
(i32.eqz
- (get_local $27)
+ (get_local $23)
)
(block
(i32.store
@@ -1125,7 +1117,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $19)
+ (get_local $17)
)
(i32.const -1)
)
@@ -1138,7 +1130,7 @@
(block
(if
(i32.lt_u
- (get_local $2)
+ (get_local $0)
(i32.load
(i32.const 1224)
)
@@ -1148,35 +1140,35 @@
(if
(i32.eq
(i32.load
- (tee_local $19
+ (tee_local $17
(i32.add
- (get_local $2)
+ (get_local $0)
(i32.const 16)
)
)
)
- (get_local $26)
+ (get_local $1)
)
(i32.store
- (get_local $19)
- (get_local $27)
+ (get_local $17)
+ (get_local $23)
)
(i32.store offset=20
- (get_local $2)
- (get_local $27)
+ (get_local $0)
+ (get_local $23)
)
)
(br_if $do-once$12
(i32.eqz
- (get_local $27)
+ (get_local $23)
)
)
)
)
(if
(i32.lt_u
- (get_local $27)
- (tee_local $19
+ (get_local $23)
+ (tee_local $17
(i32.load
(i32.const 1224)
)
@@ -1185,29 +1177,29 @@
(call_import $qa)
)
(i32.store offset=24
- (get_local $27)
- (get_local $2)
+ (get_local $23)
+ (get_local $0)
)
(if
(tee_local $3
(i32.load offset=16
- (get_local $26)
+ (get_local $1)
)
)
(if
(i32.lt_u
(get_local $3)
- (get_local $19)
+ (get_local $17)
)
(call_import $qa)
(block
(i32.store offset=16
- (get_local $27)
+ (get_local $23)
(get_local $3)
)
(i32.store offset=24
(get_local $3)
- (get_local $27)
+ (get_local $23)
)
)
)
@@ -1215,7 +1207,7 @@
(if
(tee_local $3
(i32.load offset=20
- (get_local $26)
+ (get_local $1)
)
)
(if
@@ -1228,12 +1220,12 @@
(call_import $qa)
(block
(i32.store offset=20
- (get_local $27)
+ (get_local $23)
(get_local $3)
)
(i32.store offset=24
(get_local $3)
- (get_local $27)
+ (get_local $23)
)
)
)
@@ -1243,17 +1235,17 @@
)
(if
(i32.lt_u
- (get_local $32)
+ (get_local $7)
(i32.const 16)
)
(block
(i32.store offset=4
- (get_local $26)
+ (get_local $1)
(i32.or
- (tee_local $2
+ (tee_local $0
(i32.add
- (get_local $32)
- (get_local $14)
+ (get_local $7)
+ (get_local $2)
)
)
(i32.const 3)
@@ -1263,8 +1255,8 @@
(tee_local $3
(i32.add
(i32.add
- (get_local $26)
- (get_local $2)
+ (get_local $1)
+ (get_local $0)
)
(i32.const 4)
)
@@ -1279,25 +1271,25 @@
)
(block
(i32.store offset=4
- (get_local $26)
+ (get_local $1)
(i32.or
- (get_local $14)
+ (get_local $2)
(i32.const 3)
)
)
(i32.store offset=4
- (get_local $12)
+ (get_local $5)
(i32.or
- (get_local $32)
+ (get_local $7)
(i32.const 1)
)
)
(i32.store
(i32.add
- (get_local $12)
- (get_local $32)
+ (get_local $5)
+ (get_local $7)
)
- (get_local $32)
+ (get_local $7)
)
(if
(tee_local $3
@@ -1306,7 +1298,7 @@
)
)
(block
- (set_local $2
+ (set_local $0
(i32.load
(i32.const 1228)
)
@@ -1316,7 +1308,7 @@
(i32.const 1248)
(i32.shl
(i32.shl
- (tee_local $19
+ (tee_local $17
(i32.shr_u
(get_local $3)
(i32.const 3)
@@ -1330,23 +1322,23 @@
)
(if
(i32.and
- (tee_local $8
+ (tee_local $10
(i32.load
(i32.const 1208)
)
)
- (tee_local $16
+ (tee_local $6
(i32.shl
(i32.const 1)
- (get_local $19)
+ (get_local $17)
)
)
)
(if
(i32.lt_u
- (tee_local $8
+ (tee_local $10
(i32.load
- (tee_local $16
+ (tee_local $6
(i32.add
(get_local $3)
(i32.const 8)
@@ -1360,11 +1352,11 @@
)
(call_import $qa)
(block
- (set_local $34
- (get_local $16)
+ (set_local $42
+ (get_local $6)
)
- (set_local $4
- (get_local $8)
+ (set_local $35
+ (get_local $10)
)
)
)
@@ -1372,66 +1364,66 @@
(i32.store
(i32.const 1208)
(i32.or
- (get_local $8)
- (get_local $16)
+ (get_local $10)
+ (get_local $6)
)
)
- (set_local $34
+ (set_local $42
(i32.add
(get_local $3)
(i32.const 8)
)
)
- (set_local $4
+ (set_local $35
(get_local $3)
)
)
)
(i32.store
- (get_local $34)
- (get_local $2)
+ (get_local $42)
+ (get_local $0)
)
(i32.store offset=12
- (get_local $4)
- (get_local $2)
+ (get_local $35)
+ (get_local $0)
)
(i32.store offset=8
- (get_local $2)
- (get_local $4)
+ (get_local $0)
+ (get_local $35)
)
(i32.store offset=12
- (get_local $2)
+ (get_local $0)
(get_local $3)
)
)
)
(i32.store
(i32.const 1216)
- (get_local $32)
+ (get_local $7)
)
(i32.store
(i32.const 1228)
- (get_local $12)
+ (get_local $5)
)
)
)
(set_global $r
- (get_local $31)
+ (get_local $25)
)
(return
(i32.add
- (get_local $26)
+ (get_local $1)
(i32.const 8)
)
)
)
- (set_local $18
- (get_local $14)
+ (set_local $6
+ (get_local $2)
)
)
)
- (set_local $18
- (get_local $14)
+ (set_local $6
+ (get_local $2)
)
)
)
@@ -1440,11 +1432,11 @@
(get_local $0)
(i32.const -65)
)
- (set_local $18
+ (set_local $6
(i32.const -1)
)
(block
- (set_local $2
+ (set_local $0
(i32.and
(tee_local $3
(i32.add
@@ -1456,27 +1448,27 @@
)
)
(if
- (tee_local $8
+ (tee_local $10
(i32.load
(i32.const 1212)
)
)
(block
- (set_local $16
+ (set_local $6
(i32.sub
(i32.const 0)
- (get_local $2)
+ (get_local $0)
)
)
(block $label$break$a
(if
- (tee_local $0
+ (tee_local $15
(i32.load
(i32.add
(i32.shl
- (tee_local $34
+ (tee_local $27
(if
- (tee_local $19
+ (tee_local $17
(i32.shr_u
(get_local $3)
(i32.const 8)
@@ -1484,33 +1476,33 @@
)
(if
(i32.gt_u
- (get_local $2)
+ (get_local $0)
(i32.const 16777215)
)
(i32.const 31)
(i32.or
(i32.and
(i32.shr_u
- (get_local $2)
+ (get_local $0)
(i32.add
- (tee_local $0
+ (tee_local $15
(i32.add
(i32.sub
(i32.const 14)
(i32.or
(i32.or
- (tee_local $19
+ (tee_local $17
(i32.and
(i32.shr_u
(i32.add
- (tee_local $7
+ (tee_local $9
(i32.shl
- (get_local $19)
+ (get_local $17)
(tee_local $3
(i32.and
(i32.shr_u
(i32.add
- (get_local $19)
+ (get_local $17)
(i32.const 1048320)
)
(i32.const 16)
@@ -1529,14 +1521,14 @@
)
(get_local $3)
)
- (tee_local $7
+ (tee_local $9
(i32.and
(i32.shr_u
(i32.add
- (tee_local $25
+ (tee_local $4
(i32.shl
- (get_local $7)
- (get_local $19)
+ (get_local $9)
+ (get_local $17)
)
)
(i32.const 245760)
@@ -1550,8 +1542,8 @@
)
(i32.shr_u
(i32.shl
- (get_local $25)
- (get_local $7)
+ (get_local $4)
+ (get_local $9)
)
(i32.const 15)
)
@@ -1563,7 +1555,7 @@
(i32.const 1)
)
(i32.shl
- (get_local $0)
+ (get_local $15)
(i32.const 1)
)
)
@@ -1578,123 +1570,112 @@
)
)
(block
- (set_local $7
- (get_local $16)
+ (set_local $9
+ (get_local $6)
)
- (set_local $25
+ (set_local $4
(i32.const 0)
)
(set_local $3
(i32.shl
- (get_local $2)
+ (get_local $0)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (get_local $34)
+ (get_local $27)
(i32.const 1)
)
)
(i32.eq
- (get_local $34)
+ (get_local $27)
(i32.const 31)
)
)
)
)
- (set_local $19
- (get_local $0)
+ (set_local $17
+ (get_local $15)
)
- (set_local $5
+ (set_local $8
(i32.const 0)
)
(loop $while-in$18
- (block $while-out$17
- (if
- (i32.lt_u
- (tee_local $29
- (i32.sub
- (tee_local $27
- (i32.and
- (i32.load offset=4
- (get_local $19)
- )
- (i32.const -8)
+ (if
+ (i32.lt_u
+ (tee_local $2
+ (i32.sub
+ (tee_local $5
+ (i32.and
+ (i32.load offset=4
+ (get_local $17)
)
+ (i32.const -8)
)
- (get_local $2)
)
+ (get_local $0)
)
- (get_local $7)
)
- (if
- (i32.eq
- (get_local $27)
+ (get_local $9)
+ )
+ (if
+ (i32.eq
+ (get_local $5)
+ (get_local $0)
+ )
+ (block
+ (set_local $29
(get_local $2)
)
- (block
- (set_local $36
- (get_local $29)
- )
- (set_local $18
- (get_local $19)
- )
- (set_local $17
- (get_local $19)
- )
- (set_local $7
- (i32.const 90)
- )
- (br $label$break$a)
+ (set_local $28
+ (get_local $17)
)
- (block
- (set_local $4
- (get_local $29)
- )
- (set_local $0
- (get_local $19)
- )
+ (set_local $32
+ (get_local $17)
)
+ (set_local $9
+ (i32.const 90)
+ )
+ (br $label$break$a)
)
(block
- (set_local $4
- (get_local $7)
+ (set_local $9
+ (get_local $2)
)
- (set_local $0
- (get_local $5)
+ (set_local $8
+ (get_local $17)
)
)
)
- (set_local $27
- (select
- (get_local $25)
- (tee_local $29
- (i32.load offset=20
- (get_local $19)
- )
+ )
+ (set_local $5
+ (select
+ (get_local $4)
+ (tee_local $2
+ (i32.load offset=20
+ (get_local $17)
)
- (i32.or
- (i32.eq
- (get_local $29)
- (i32.const 0)
- )
- (i32.eq
- (get_local $29)
- (tee_local $19
- (i32.load
+ )
+ (i32.or
+ (i32.eqz
+ (get_local $2)
+ )
+ (i32.eq
+ (get_local $2)
+ (tee_local $17
+ (i32.load
+ (i32.add
(i32.add
- (i32.add
- (get_local $19)
- (i32.const 16)
+ (get_local $17)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (get_local $3)
+ (i32.const 31)
)
- (i32.shl
- (i32.shr_u
- (get_local $3)
- (i32.const 31)
- )
- (i32.const 2)
- )
+ (i32.const 2)
)
)
)
@@ -1702,67 +1683,59 @@
)
)
)
- (if
- (tee_local $29
- (i32.eq
- (get_local $19)
- (i32.const 0)
- )
- )
- (block
- (set_local $40
- (get_local $4)
- )
- (set_local $12
- (get_local $27)
- )
- (set_local $38
- (get_local $0)
- )
- (set_local $7
- (i32.const 86)
- )
- (br $while-out$17)
- )
- (block
- (set_local $7
- (get_local $4)
- )
- (set_local $25
- (get_local $27)
- )
- (set_local $3
- (i32.shl
- (get_local $3)
- (i32.xor
- (i32.and
- (get_local $29)
- (i32.const 1)
- )
- (i32.const 1)
- )
- )
- )
- (set_local $5
- (get_local $0)
- )
+ )
+ (if
+ (tee_local $2
+ (i32.eqz
+ (get_local $17)
)
)
- (br $while-in$18)
+ (block
+ (set_local $36
+ (get_local $9)
+ )
+ (set_local $37
+ (get_local $5)
+ )
+ (set_local $33
+ (get_local $8)
+ )
+ (set_local $9
+ (i32.const 86)
+ )
+ )
+ (block
+ (set_local $4
+ (get_local $5)
+ )
+ (set_local $3
+ (i32.shl
+ (get_local $3)
+ (i32.xor
+ (i32.and
+ (get_local $2)
+ (i32.const 1)
+ )
+ (i32.const 1)
+ )
+ )
+ )
+ (br $while-in$18)
+ )
)
)
)
(block
- (set_local $40
- (get_local $16)
+ (set_local $36
+ (get_local $6)
)
- (set_local $12
+ (set_local $37
(i32.const 0)
)
- (set_local $38
+ (set_local $33
(i32.const 0)
)
- (set_local $7
+ (set_local $9
(i32.const 86)
)
)
@@ -1770,60 +1743,58 @@
)
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 86)
)
(if
- (tee_local $0
+ (tee_local $2
(if
(i32.and
- (i32.eq
- (get_local $12)
- (i32.const 0)
+ (i32.eqz
+ (get_local $37)
)
- (i32.eq
- (get_local $38)
- (i32.const 0)
+ (i32.eqz
+ (get_local $33)
)
)
(block
(if
(i32.eqz
- (tee_local $16
+ (tee_local $6
(i32.and
- (get_local $8)
+ (get_local $10)
(i32.or
- (tee_local $0
+ (tee_local $15
(i32.shl
(i32.const 2)
- (get_local $34)
+ (get_local $27)
)
)
(i32.sub
(i32.const 0)
- (get_local $0)
+ (get_local $15)
)
)
)
)
)
(block
- (set_local $18
- (get_local $2)
+ (set_local $6
+ (get_local $0)
)
(br $do-once$0)
)
)
- (set_local $16
+ (set_local $6
(i32.and
(i32.shr_u
- (tee_local $0
+ (tee_local $15
(i32.add
(i32.and
- (get_local $16)
+ (get_local $6)
(i32.sub
(i32.const 0)
- (get_local $16)
+ (get_local $6)
)
)
(i32.const -1)
@@ -1842,13 +1813,13 @@
(i32.or
(i32.or
(i32.or
- (tee_local $0
+ (tee_local $15
(i32.and
(i32.shr_u
- (tee_local $14
+ (tee_local $2
(i32.shr_u
- (get_local $0)
- (get_local $16)
+ (get_local $15)
+ (get_local $6)
)
)
(i32.const 5)
@@ -1856,15 +1827,15 @@
(i32.const 8)
)
)
- (get_local $16)
+ (get_local $6)
)
- (tee_local $14
+ (tee_local $2
(i32.and
(i32.shr_u
- (tee_local $12
+ (tee_local $5
(i32.shr_u
- (get_local $14)
- (get_local $0)
+ (get_local $2)
+ (get_local $15)
)
)
(i32.const 2)
@@ -1873,13 +1844,13 @@
)
)
)
- (tee_local $12
+ (tee_local $5
(i32.and
(i32.shr_u
- (tee_local $5
+ (tee_local $8
(i32.shr_u
- (get_local $12)
- (get_local $14)
+ (get_local $5)
+ (get_local $2)
)
)
(i32.const 1)
@@ -1888,13 +1859,13 @@
)
)
)
- (tee_local $5
+ (tee_local $8
(i32.and
(i32.shr_u
(tee_local $3
(i32.shr_u
+ (get_local $8)
(get_local $5)
- (get_local $12)
)
)
(i32.const 1)
@@ -1905,7 +1876,7 @@
)
(i32.shr_u
(get_local $3)
- (get_local $5)
+ (get_local $8)
)
)
(i32.const 2)
@@ -1914,137 +1885,134 @@
)
)
)
- (get_local $12)
+ (get_local $37)
)
)
(block
- (set_local $36
- (get_local $40)
+ (set_local $29
+ (get_local $36)
)
- (set_local $18
- (get_local $0)
+ (set_local $28
+ (get_local $2)
)
- (set_local $17
- (get_local $38)
+ (set_local $32
+ (get_local $33)
)
- (set_local $7
+ (set_local $9
(i32.const 90)
)
)
(block
- (set_local $22
- (get_local $40)
+ (set_local $16
+ (get_local $36)
)
- (set_local $9
- (get_local $38)
+ (set_local $11
+ (get_local $33)
)
)
)
)
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 90)
)
(loop $while-in$20
- (block $while-out$19
- (set_local $7
- (i32.const 0)
- )
- (set_local $3
- (i32.lt_u
- (tee_local $5
- (i32.sub
- (i32.and
- (i32.load offset=4
- (get_local $18)
- )
- (i32.const -8)
+ (set_local $9
+ (i32.const 0)
+ )
+ (set_local $3
+ (i32.lt_u
+ (tee_local $8
+ (i32.sub
+ (i32.and
+ (i32.load offset=4
+ (get_local $28)
)
- (get_local $2)
+ (i32.const -8)
)
+ (get_local $0)
)
- (get_local $36)
+ )
+ (get_local $29)
+ )
+ )
+ (set_local $5
+ (select
+ (get_local $8)
+ (get_local $29)
+ (get_local $3)
+ )
+ )
+ (set_local $8
+ (select
+ (get_local $28)
+ (get_local $32)
+ (get_local $3)
+ )
+ )
+ (if
+ (tee_local $3
+ (i32.load offset=16
+ (get_local $28)
)
)
- (set_local $12
- (select
+ (block
+ (set_local $29
(get_local $5)
- (get_local $36)
+ )
+ (set_local $28
(get_local $3)
)
+ (set_local $32
+ (get_local $8)
+ )
+ (br $while-in$20)
)
- (set_local $5
- (select
- (get_local $18)
- (get_local $17)
- (get_local $3)
+ )
+ (if
+ (tee_local $28
+ (i32.load offset=20
+ (get_local $28)
)
)
- (if
- (tee_local $3
- (i32.load offset=16
- (get_local $18)
- )
+ (block
+ (set_local $29
+ (get_local $5)
)
- (block
- (set_local $36
- (get_local $12)
- )
- (set_local $18
- (get_local $3)
- )
- (set_local $17
- (get_local $5)
- )
- (br $while-in$20)
+ (set_local $32
+ (get_local $8)
+ )
+ (br $while-in$20)
+ )
+ (block
+ (set_local $16
+ (get_local $5)
+ )
+ (set_local $11
+ (get_local $8)
)
)
- (if
- (tee_local $18
- (i32.load offset=20
- (get_local $18)
- )
- )
- (block
- (set_local $36
- (get_local $12)
- )
- (set_local $17
- (get_local $5)
- )
- )
- (block
- (set_local $22
- (get_local $12)
- )
- (set_local $9
- (get_local $5)
- )
- (br $while-out$19)
- )
- )
- (br $while-in$20)
)
)
)
(if
- (get_local $9)
+ (get_local $11)
(if
(i32.lt_u
- (get_local $22)
+ (get_local $16)
(i32.sub
(i32.load
(i32.const 1216)
)
- (get_local $2)
+ (get_local $0)
)
)
(block
(if
(i32.lt_u
- (get_local $9)
- (tee_local $8
+ (get_local $11)
+ (tee_local $10
(i32.load
(i32.const 1224)
)
@@ -2054,19 +2022,19 @@
)
(if
(i32.ge_u
- (get_local $9)
- (tee_local $5
+ (get_local $11)
+ (tee_local $8
(i32.add
- (get_local $9)
- (get_local $2)
+ (get_local $11)
+ (get_local $0)
)
)
)
(call_import $qa)
)
- (set_local $12
+ (set_local $5
(i32.load offset=24
- (get_local $9)
+ (get_local $11)
)
)
(block $do-once$21
@@ -2074,47 +2042,47 @@
(i32.eq
(tee_local $3
(i32.load offset=12
- (get_local $9)
+ (get_local $11)
)
)
- (get_local $9)
+ (get_local $11)
)
(block
(if
- (tee_local $16
+ (tee_local $6
(i32.load
- (tee_local $14
+ (tee_local $2
(i32.add
- (get_local $9)
+ (get_local $11)
(i32.const 20)
)
)
)
)
(block
- (set_local $11
- (get_local $16)
+ (set_local $4
+ (get_local $6)
)
- (set_local $0
- (get_local $14)
+ (set_local $3
+ (get_local $2)
)
)
(if
- (tee_local $25
+ (tee_local $4
(i32.load
- (tee_local $0
+ (tee_local $15
(i32.add
- (get_local $9)
+ (get_local $11)
(i32.const 16)
)
)
)
)
- (set_local $11
- (get_local $25)
+ (set_local $3
+ (get_local $15)
)
(block
- (set_local $20
+ (set_local $22
(i32.const 0)
)
(br $do-once$21)
@@ -2122,65 +2090,62 @@
)
)
(loop $while-in$24
- (block $while-out$23
- (if
- (tee_local $16
- (i32.load
- (tee_local $14
- (i32.add
- (get_local $11)
- (i32.const 20)
- )
+ (if
+ (tee_local $6
+ (i32.load
+ (tee_local $2
+ (i32.add
+ (get_local $4)
+ (i32.const 20)
)
)
)
- (block
- (set_local $11
- (get_local $16)
- )
- (set_local $0
- (get_local $14)
- )
- (br $while-in$24)
- )
)
- (if
- (tee_local $16
- (i32.load
- (tee_local $14
- (i32.add
- (get_local $11)
- (i32.const 16)
- )
+ (block
+ (set_local $4
+ (get_local $6)
+ )
+ (set_local $3
+ (get_local $2)
+ )
+ (br $while-in$24)
+ )
+ )
+ (if
+ (tee_local $6
+ (i32.load
+ (tee_local $2
+ (i32.add
+ (get_local $4)
+ (i32.const 16)
)
)
)
- (block
- (set_local $11
- (get_local $16)
- )
- (set_local $0
- (get_local $14)
- )
- )
- (br $while-out$23)
)
- (br $while-in$24)
+ (block
+ (set_local $4
+ (get_local $6)
+ )
+ (set_local $3
+ (get_local $2)
+ )
+ (br $while-in$24)
+ )
)
)
(if
(i32.lt_u
- (get_local $0)
- (get_local $8)
+ (get_local $3)
+ (get_local $10)
)
(call_import $qa)
(block
(i32.store
- (get_local $0)
+ (get_local $3)
(i32.const 0)
)
- (set_local $20
- (get_local $11)
+ (set_local $22
+ (get_local $4)
)
)
)
@@ -2188,51 +2153,51 @@
(block
(if
(i32.lt_u
- (tee_local $14
+ (tee_local $2
(i32.load offset=8
- (get_local $9)
+ (get_local $11)
)
)
- (get_local $8)
+ (get_local $10)
)
(call_import $qa)
)
(if
(i32.ne
(i32.load
- (tee_local $16
+ (tee_local $6
(i32.add
- (get_local $14)
+ (get_local $2)
(i32.const 12)
)
)
)
- (get_local $9)
+ (get_local $11)
)
(call_import $qa)
)
(if
(i32.eq
(i32.load
- (tee_local $0
+ (tee_local $15
(i32.add
(get_local $3)
(i32.const 8)
)
)
)
- (get_local $9)
+ (get_local $11)
)
(block
(i32.store
- (get_local $16)
+ (get_local $6)
(get_local $3)
)
(i32.store
- (get_local $0)
- (get_local $14)
+ (get_local $15)
+ (get_local $2)
)
- (set_local $20
+ (set_local $22
(get_local $3)
)
)
@@ -2243,19 +2208,19 @@
)
(block $do-once$25
(if
- (get_local $12)
+ (get_local $5)
(block
(if
(i32.eq
- (get_local $9)
+ (get_local $11)
(i32.load
- (tee_local $8
+ (tee_local $10
(i32.add
(i32.const 1512)
(i32.shl
(tee_local $3
(i32.load offset=28
- (get_local $9)
+ (get_local $11)
)
)
(i32.const 2)
@@ -2266,12 +2231,12 @@
)
(block
(i32.store
- (get_local $8)
- (get_local $20)
+ (get_local $10)
+ (get_local $22)
)
(if
(i32.eqz
- (get_local $20)
+ (get_local $22)
)
(block
(i32.store
@@ -2296,7 +2261,7 @@
(block
(if
(i32.lt_u
- (get_local $12)
+ (get_local $5)
(i32.load
(i32.const 1224)
)
@@ -2308,32 +2273,32 @@
(i32.load
(tee_local $3
(i32.add
- (get_local $12)
+ (get_local $5)
(i32.const 16)
)
)
)
- (get_local $9)
+ (get_local $11)
)
(i32.store
(get_local $3)
- (get_local $20)
+ (get_local $22)
)
(i32.store offset=20
- (get_local $12)
- (get_local $20)
+ (get_local $5)
+ (get_local $22)
)
)
(br_if $do-once$25
(i32.eqz
- (get_local $20)
+ (get_local $22)
)
)
)
)
(if
(i32.lt_u
- (get_local $20)
+ (get_local $22)
(tee_local $3
(i32.load
(i32.const 1224)
@@ -2343,42 +2308,42 @@
(call_import $qa)
)
(i32.store offset=24
- (get_local $20)
- (get_local $12)
+ (get_local $22)
+ (get_local $5)
)
(if
- (tee_local $8
+ (tee_local $10
(i32.load offset=16
- (get_local $9)
+ (get_local $11)
)
)
(if
(i32.lt_u
- (get_local $8)
+ (get_local $10)
(get_local $3)
)
(call_import $qa)
(block
(i32.store offset=16
- (get_local $20)
- (get_local $8)
+ (get_local $22)
+ (get_local $10)
)
(i32.store offset=24
- (get_local $8)
- (get_local $20)
+ (get_local $10)
+ (get_local $22)
)
)
)
)
(if
- (tee_local $8
+ (tee_local $10
(i32.load offset=20
- (get_local $9)
+ (get_local $11)
)
)
(if
(i32.lt_u
- (get_local $8)
+ (get_local $10)
(i32.load
(i32.const 1224)
)
@@ -2386,12 +2351,12 @@
(call_import $qa)
(block
(i32.store offset=20
- (get_local $20)
- (get_local $8)
+ (get_local $22)
+ (get_local $10)
)
(i32.store offset=24
- (get_local $8)
- (get_local $20)
+ (get_local $10)
+ (get_local $22)
)
)
)
@@ -2402,35 +2367,35 @@
(block $do-once$29
(if
(i32.lt_u
- (get_local $22)
+ (get_local $16)
(i32.const 16)
)
(block
(i32.store offset=4
- (get_local $9)
+ (get_local $11)
(i32.or
- (tee_local $12
+ (tee_local $5
(i32.add
- (get_local $22)
- (get_local $2)
+ (get_local $16)
+ (get_local $0)
)
)
(i32.const 3)
)
)
(i32.store
- (tee_local $8
+ (tee_local $10
(i32.add
(i32.add
- (get_local $9)
- (get_local $12)
+ (get_local $11)
+ (get_local $5)
)
(i32.const 4)
)
)
(i32.or
(i32.load
- (get_local $8)
+ (get_local $10)
)
(i32.const 1)
)
@@ -2438,44 +2403,44 @@
)
(block
(i32.store offset=4
- (get_local $9)
+ (get_local $11)
(i32.or
- (get_local $2)
+ (get_local $0)
(i32.const 3)
)
)
(i32.store offset=4
- (get_local $5)
+ (get_local $8)
(i32.or
- (get_local $22)
+ (get_local $16)
(i32.const 1)
)
)
(i32.store
(i32.add
- (get_local $5)
- (get_local $22)
+ (get_local $8)
+ (get_local $16)
)
- (get_local $22)
+ (get_local $16)
)
- (set_local $8
+ (set_local $10
(i32.shr_u
- (get_local $22)
+ (get_local $16)
(i32.const 3)
)
)
(if
(i32.lt_u
- (get_local $22)
+ (get_local $16)
(i32.const 256)
)
(block
- (set_local $12
+ (set_local $5
(i32.add
(i32.const 1248)
(i32.shl
(i32.shl
- (get_local $8)
+ (get_local $10)
(i32.const 1)
)
(i32.const 2)
@@ -2489,10 +2454,10 @@
(i32.const 1208)
)
)
- (tee_local $14
+ (tee_local $2
(i32.shl
(i32.const 1)
- (get_local $8)
+ (get_local $10)
)
)
)
@@ -2500,9 +2465,9 @@
(i32.lt_u
(tee_local $3
(i32.load
- (tee_local $14
+ (tee_local $2
(i32.add
- (get_local $12)
+ (get_local $5)
(i32.const 8)
)
)
@@ -2514,10 +2479,10 @@
)
(call_import $qa)
(block
- (set_local $23
- (get_local $14)
+ (set_local $19
+ (get_local $2)
)
- (set_local $13
+ (set_local $7
(get_local $3)
)
)
@@ -2527,80 +2492,80 @@
(i32.const 1208)
(i32.or
(get_local $3)
- (get_local $14)
+ (get_local $2)
)
)
- (set_local $23
+ (set_local $19
(i32.add
- (get_local $12)
+ (get_local $5)
(i32.const 8)
)
)
- (set_local $13
- (get_local $12)
+ (set_local $7
+ (get_local $5)
)
)
)
(i32.store
- (get_local $23)
- (get_local $5)
+ (get_local $19)
+ (get_local $8)
)
(i32.store offset=12
- (get_local $13)
- (get_local $5)
+ (get_local $7)
+ (get_local $8)
)
(i32.store offset=8
- (get_local $5)
- (get_local $13)
+ (get_local $8)
+ (get_local $7)
)
(i32.store offset=12
+ (get_local $8)
(get_local $5)
- (get_local $12)
)
(br $do-once$29)
)
)
- (set_local $0
+ (set_local $15
(i32.add
(i32.const 1512)
(i32.shl
- (tee_local $20
+ (tee_local $3
(if
- (tee_local $12
+ (tee_local $5
(i32.shr_u
- (get_local $22)
+ (get_local $16)
(i32.const 8)
)
)
(if
(i32.gt_u
- (get_local $22)
+ (get_local $16)
(i32.const 16777215)
)
(i32.const 31)
(i32.or
(i32.and
(i32.shr_u
- (get_local $22)
+ (get_local $16)
(i32.add
- (tee_local $0
+ (tee_local $15
(i32.add
(i32.sub
(i32.const 14)
(i32.or
(i32.or
- (tee_local $12
+ (tee_local $5
(i32.and
(i32.shr_u
(i32.add
- (tee_local $14
+ (tee_local $2
(i32.shl
- (get_local $12)
+ (get_local $5)
(tee_local $3
(i32.and
(i32.shr_u
(i32.add
- (get_local $12)
+ (get_local $5)
(i32.const 1048320)
)
(i32.const 16)
@@ -2619,14 +2584,14 @@
)
(get_local $3)
)
- (tee_local $14
+ (tee_local $2
(i32.and
(i32.shr_u
(i32.add
- (tee_local $8
+ (tee_local $10
(i32.shl
- (get_local $14)
- (get_local $12)
+ (get_local $2)
+ (get_local $5)
)
)
(i32.const 245760)
@@ -2640,8 +2605,8 @@
)
(i32.shr_u
(i32.shl
- (get_local $8)
- (get_local $14)
+ (get_local $10)
+ (get_local $2)
)
(i32.const 15)
)
@@ -2653,7 +2618,7 @@
(i32.const 1)
)
(i32.shl
- (get_local $0)
+ (get_local $15)
(i32.const 1)
)
)
@@ -2666,34 +2631,34 @@
)
)
(i32.store offset=28
- (get_local $5)
- (get_local $20)
+ (get_local $8)
+ (get_local $3)
)
(i32.store offset=4
- (tee_local $14
+ (tee_local $2
(i32.add
- (get_local $5)
+ (get_local $8)
(i32.const 16)
)
)
(i32.const 0)
)
(i32.store
- (get_local $14)
+ (get_local $2)
(i32.const 0)
)
(if
(i32.eqz
(i32.and
- (tee_local $14
+ (tee_local $2
(i32.load
(i32.const 1212)
)
)
- (tee_local $8
+ (tee_local $10
(i32.shl
(i32.const 1)
- (get_local $20)
+ (get_local $3)
)
)
)
@@ -2702,51 +2667,51 @@
(i32.store
(i32.const 1212)
(i32.or
- (get_local $14)
- (get_local $8)
+ (get_local $2)
+ (get_local $10)
)
)
(i32.store
- (get_local $0)
- (get_local $5)
+ (get_local $15)
+ (get_local $8)
)
(i32.store offset=24
- (get_local $5)
- (get_local $0)
+ (get_local $8)
+ (get_local $15)
)
(i32.store offset=12
- (get_local $5)
- (get_local $5)
+ (get_local $8)
+ (get_local $8)
)
(i32.store offset=8
- (get_local $5)
- (get_local $5)
+ (get_local $8)
+ (get_local $8)
)
(br $do-once$29)
)
)
- (set_local $8
+ (set_local $10
(i32.shl
- (get_local $22)
+ (get_local $16)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (get_local $20)
+ (get_local $3)
(i32.const 1)
)
)
(i32.eq
- (get_local $20)
+ (get_local $3)
(i32.const 31)
)
)
)
)
- (set_local $14
+ (set_local $2
(i32.load
- (get_local $0)
+ (get_local $15)
)
)
(loop $while-in$32
@@ -2755,17 +2720,17 @@
(i32.eq
(i32.and
(i32.load offset=4
- (get_local $14)
+ (get_local $2)
)
(i32.const -8)
)
- (get_local $22)
+ (get_local $16)
)
(block
- (set_local $21
- (get_local $14)
+ (set_local $18
+ (get_local $2)
)
- (set_local $7
+ (set_local $9
(i32.const 148)
)
(br $while-out$31)
@@ -2774,15 +2739,15 @@
(if
(tee_local $3
(i32.load
- (tee_local $0
+ (tee_local $15
(i32.add
(i32.add
- (get_local $14)
+ (get_local $2)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (get_local $8)
+ (get_local $10)
(i32.const 31)
)
(i32.const 2)
@@ -2792,40 +2757,39 @@
)
)
(block
- (set_local $8
+ (set_local $10
(i32.shl
- (get_local $8)
+ (get_local $10)
(i32.const 1)
)
)
- (set_local $14
+ (set_local $2
(get_local $3)
)
+ (br $while-in$32)
)
(block
- (set_local $6
- (get_local $0)
+ (set_local $21
+ (get_local $15)
)
- (set_local $24
- (get_local $14)
+ (set_local $14
+ (get_local $2)
)
- (set_local $7
+ (set_local $9
(i32.const 145)
)
- (br $while-out$31)
)
)
- (br $while-in$32)
)
)
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 145)
)
(if
(i32.lt_u
- (get_local $6)
+ (get_local $21)
(i32.load
(i32.const 1224)
)
@@ -2833,36 +2797,36 @@
(call_import $qa)
(block
(i32.store
- (get_local $6)
- (get_local $5)
+ (get_local $21)
+ (get_local $8)
)
(i32.store offset=24
- (get_local $5)
- (get_local $24)
+ (get_local $8)
+ (get_local $14)
)
(i32.store offset=12
- (get_local $5)
- (get_local $5)
+ (get_local $8)
+ (get_local $8)
)
(i32.store offset=8
- (get_local $5)
- (get_local $5)
+ (get_local $8)
+ (get_local $8)
)
)
)
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 148)
)
(if
(i32.and
(i32.ge_u
- (tee_local $8
+ (tee_local $10
(i32.load
- (tee_local $14
+ (tee_local $2
(i32.add
- (get_local $21)
+ (get_local $18)
(i32.const 8)
)
)
@@ -2875,29 +2839,29 @@
)
)
(i32.ge_u
- (get_local $21)
+ (get_local $18)
(get_local $3)
)
)
(block
(i32.store offset=12
+ (get_local $10)
(get_local $8)
- (get_local $5)
)
(i32.store
- (get_local $14)
- (get_local $5)
- )
- (i32.store offset=8
- (get_local $5)
+ (get_local $2)
(get_local $8)
)
+ (i32.store offset=8
+ (get_local $8)
+ (get_local $10)
+ )
(i32.store offset=12
- (get_local $5)
- (get_local $21)
+ (get_local $8)
+ (get_local $18)
)
(i32.store offset=24
- (get_local $5)
+ (get_local $8)
(i32.const 0)
)
)
@@ -2909,26 +2873,26 @@
)
)
(set_global $r
- (get_local $31)
+ (get_local $25)
)
(return
(i32.add
- (get_local $9)
+ (get_local $11)
(i32.const 8)
)
)
)
- (set_local $18
- (get_local $2)
+ (set_local $6
+ (get_local $0)
)
)
- (set_local $18
- (get_local $2)
+ (set_local $6
+ (get_local $0)
)
)
)
- (set_local $18
- (get_local $2)
+ (set_local $6
+ (get_local $0)
)
)
)
@@ -2937,25 +2901,25 @@
)
(if
(i32.ge_u
- (tee_local $9
+ (tee_local $11
(i32.load
(i32.const 1216)
)
)
- (get_local $18)
+ (get_local $6)
)
(block
- (set_local $24
+ (set_local $14
(i32.load
(i32.const 1228)
)
)
(if
(i32.gt_u
- (tee_local $21
+ (tee_local $18
(i32.sub
- (get_local $9)
- (get_local $18)
+ (get_local $11)
+ (get_local $6)
)
)
(i32.const 15)
@@ -2963,35 +2927,35 @@
(block
(i32.store
(i32.const 1228)
- (tee_local $6
+ (tee_local $21
(i32.add
- (get_local $24)
- (get_local $18)
+ (get_local $14)
+ (get_local $6)
)
)
)
(i32.store
(i32.const 1216)
- (get_local $21)
+ (get_local $18)
)
(i32.store offset=4
- (get_local $6)
+ (get_local $21)
(i32.or
- (get_local $21)
+ (get_local $18)
(i32.const 1)
)
)
(i32.store
(i32.add
- (get_local $6)
(get_local $21)
+ (get_local $18)
)
- (get_local $21)
+ (get_local $18)
)
(i32.store offset=4
- (get_local $24)
+ (get_local $14)
(i32.or
- (get_local $18)
+ (get_local $6)
(i32.const 3)
)
)
@@ -3006,25 +2970,25 @@
(i32.const 0)
)
(i32.store offset=4
- (get_local $24)
+ (get_local $14)
(i32.or
- (get_local $9)
+ (get_local $11)
(i32.const 3)
)
)
(i32.store
- (tee_local $21
+ (tee_local $18
(i32.add
(i32.add
- (get_local $24)
- (get_local $9)
+ (get_local $14)
+ (get_local $11)
)
(i32.const 4)
)
)
(i32.or
(i32.load
- (get_local $21)
+ (get_local $18)
)
(i32.const 1)
)
@@ -3032,11 +2996,11 @@
)
)
(set_global $r
- (get_local $31)
+ (get_local $25)
)
(return
(i32.add
- (get_local $24)
+ (get_local $14)
(i32.const 8)
)
)
@@ -3044,56 +3008,56 @@
)
(if
(i32.gt_u
- (tee_local $24
+ (tee_local $14
(i32.load
(i32.const 1220)
)
)
- (get_local $18)
+ (get_local $6)
)
(block
(i32.store
(i32.const 1220)
- (tee_local $21
+ (tee_local $18
(i32.sub
- (get_local $24)
- (get_local $18)
+ (get_local $14)
+ (get_local $6)
)
)
)
(i32.store
(i32.const 1232)
- (tee_local $9
+ (tee_local $11
(i32.add
- (tee_local $24
+ (tee_local $14
(i32.load
(i32.const 1232)
)
)
- (get_local $18)
+ (get_local $6)
)
)
)
(i32.store offset=4
- (get_local $9)
+ (get_local $11)
(i32.or
- (get_local $21)
+ (get_local $18)
(i32.const 1)
)
)
(i32.store offset=4
- (get_local $24)
+ (get_local $14)
(i32.or
- (get_local $18)
+ (get_local $6)
(i32.const 3)
)
)
(set_global $r
- (get_local $31)
+ (get_local $25)
)
(return
(i32.add
- (get_local $24)
+ (get_local $14)
(i32.const 8)
)
)
@@ -3131,11 +3095,11 @@
(i32.const 0)
)
(i32.store
- (get_local $15)
- (tee_local $24
+ (get_local $13)
+ (tee_local $14
(i32.xor
(i32.and
- (get_local $15)
+ (get_local $13)
(i32.const -16)
)
(i32.const 1431655768)
@@ -3144,48 +3108,48 @@
)
(i32.store
(i32.const 1680)
- (get_local $24)
+ (get_local $14)
)
)
)
- (set_local $24
+ (set_local $14
(i32.add
- (get_local $18)
+ (get_local $6)
(i32.const 48)
)
)
(if
(i32.le_u
- (tee_local $15
+ (tee_local $13
(i32.and
- (tee_local $9
+ (tee_local $11
(i32.add
- (tee_local $15
+ (tee_local $13
(i32.load
(i32.const 1688)
)
)
- (tee_local $21
+ (tee_local $18
(i32.add
- (get_local $18)
+ (get_local $6)
(i32.const 47)
)
)
)
)
- (tee_local $6
+ (tee_local $21
(i32.sub
(i32.const 0)
- (get_local $15)
+ (get_local $13)
)
)
)
)
- (get_local $18)
+ (get_local $6)
)
(block
(set_global $r
- (get_local $31)
+ (get_local $25)
)
(return
(i32.const 0)
@@ -3193,7 +3157,7 @@
)
)
(if
- (tee_local $22
+ (tee_local $16
(i32.load
(i32.const 1648)
)
@@ -3201,26 +3165,26 @@
(if
(i32.or
(i32.le_u
- (tee_local $13
+ (tee_local $7
(i32.add
- (tee_local $20
+ (tee_local $3
(i32.load
(i32.const 1640)
)
)
- (get_local $15)
+ (get_local $13)
)
)
- (get_local $20)
+ (get_local $3)
)
(i32.gt_u
- (get_local $13)
- (get_local $22)
+ (get_local $7)
+ (get_local $16)
)
)
(block
(set_global $r
- (get_local $31)
+ (get_local $25)
)
(return
(i32.const 0)
@@ -3230,7 +3194,7 @@
)
(if
(i32.eq
- (tee_local $7
+ (tee_local $9
(block $label$break$b
(if
(i32.and
@@ -3243,90 +3207,85 @@
(block
(block $label$break$c
(if
- (tee_local $22
+ (tee_local $16
(i32.load
(i32.const 1232)
)
)
(block
- (set_local $13
+ (set_local $7
(i32.const 1656)
)
(loop $while-in$36
(block $while-out$35
(if
(i32.le_u
- (tee_local $20
+ (tee_local $3
(i32.load
- (get_local $13)
+ (get_local $7)
)
)
- (get_local $22)
+ (get_local $16)
)
(if
(i32.gt_u
(i32.add
- (get_local $20)
+ (get_local $3)
(i32.load
- (tee_local $23
+ (tee_local $19
(i32.add
- (get_local $13)
+ (get_local $7)
(i32.const 4)
)
)
)
)
- (get_local $22)
+ (get_local $16)
)
(block
(set_local $0
- (get_local $13)
+ (get_local $7)
)
- (set_local $17
- (get_local $23)
+ (set_local $5
+ (get_local $19)
)
(br $while-out$35)
)
)
)
- (if
- (i32.eqz
- (tee_local $13
- (i32.load offset=8
- (get_local $13)
- )
+ (br_if $while-in$36
+ (tee_local $7
+ (i32.load offset=8
+ (get_local $7)
)
)
- (block
- (set_local $7
- (i32.const 171)
- )
- (br $label$break$c)
- )
)
- (br $while-in$36)
+ (set_local $9
+ (i32.const 171)
+ )
+ (br $label$break$c)
)
)
(if
(i32.lt_u
- (tee_local $13
+ (tee_local $7
(i32.and
(i32.sub
- (get_local $9)
+ (get_local $11)
(i32.load
(i32.const 1220)
)
)
- (get_local $6)
+ (get_local $21)
)
)
(i32.const 2147483647)
)
(if
(i32.eq
- (tee_local $23
+ (tee_local $19
(call_import $ta
- (get_local $13)
+ (get_local $7)
)
)
(i32.add
@@ -3334,21 +3293,21 @@
(get_local $0)
)
(i32.load
- (get_local $17)
+ (get_local $5)
)
)
)
(if
(i32.ne
- (get_local $23)
+ (get_local $19)
(i32.const -1)
)
(block
- (set_local $28
- (get_local $23)
+ (set_local $20
+ (get_local $19)
)
- (set_local $33
- (get_local $13)
+ (set_local $26
+ (get_local $7)
)
(br $label$break$b
(i32.const 191)
@@ -3356,20 +3315,20 @@
)
)
(block
- (set_local $10
- (get_local $23)
+ (set_local $12
+ (get_local $19)
)
(set_local $1
- (get_local $13)
+ (get_local $7)
)
- (set_local $7
+ (set_local $9
(i32.const 181)
)
)
)
)
)
- (set_local $7
+ (set_local $9
(i32.const 171)
)
)
@@ -3377,12 +3336,12 @@
(block $do-once$37
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 171)
)
(if
(i32.ne
- (tee_local $22
+ (tee_local $16
(call_import $ta
(i32.const 0)
)
@@ -3390,12 +3349,12 @@
(i32.const -1)
)
(block
- (set_local $6
+ (set_local $2
(if
(i32.and
- (tee_local $23
+ (tee_local $19
(i32.add
- (tee_local $13
+ (tee_local $7
(i32.load
(i32.const 1684)
)
@@ -3403,53 +3362,53 @@
(i32.const -1)
)
)
- (tee_local $2
- (get_local $22)
+ (tee_local $0
+ (get_local $16)
)
)
(i32.add
(i32.sub
- (get_local $15)
- (get_local $2)
+ (get_local $13)
+ (get_local $0)
)
(i32.and
(i32.add
- (get_local $23)
- (get_local $2)
+ (get_local $19)
+ (get_local $0)
)
(i32.sub
(i32.const 0)
- (get_local $13)
+ (get_local $7)
)
)
)
- (get_local $15)
+ (get_local $13)
)
)
- (set_local $2
+ (set_local $0
(i32.add
- (tee_local $13
+ (tee_local $7
(i32.load
(i32.const 1640)
)
)
- (get_local $6)
+ (get_local $2)
)
)
(if
(i32.and
(i32.gt_u
+ (get_local $2)
(get_local $6)
- (get_local $18)
)
(i32.lt_u
- (get_local $6)
+ (get_local $2)
(i32.const 2147483647)
)
)
(block
(if
- (tee_local $23
+ (tee_local $19
(i32.load
(i32.const 1648)
)
@@ -3457,44 +3416,44 @@
(br_if $do-once$37
(i32.or
(i32.le_u
- (get_local $2)
- (get_local $13)
+ (get_local $0)
+ (get_local $7)
)
(i32.gt_u
- (get_local $2)
- (get_local $23)
+ (get_local $0)
+ (get_local $19)
)
)
)
)
(if
(i32.eq
- (tee_local $23
+ (tee_local $19
(call_import $ta
- (get_local $6)
+ (get_local $2)
)
)
- (get_local $22)
+ (get_local $16)
)
(block
- (set_local $28
- (get_local $22)
+ (set_local $20
+ (get_local $16)
)
- (set_local $33
- (get_local $6)
+ (set_local $26
+ (get_local $2)
)
(br $label$break$b
(i32.const 191)
)
)
(block
- (set_local $10
- (get_local $23)
+ (set_local $12
+ (get_local $19)
)
(set_local $1
- (get_local $6)
+ (get_local $2)
)
- (set_local $7
+ (set_local $9
(i32.const 181)
)
)
@@ -3508,11 +3467,11 @@
(block $label$break$d
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 181)
)
(block
- (set_local $23
+ (set_local $19
(i32.sub
(i32.const 0)
(get_local $1)
@@ -3521,7 +3480,7 @@
(if
(i32.and
(i32.gt_u
- (get_local $24)
+ (get_local $14)
(get_local $1)
)
(i32.and
@@ -3530,21 +3489,21 @@
(i32.const 2147483647)
)
(i32.ne
- (get_local $10)
+ (get_local $12)
(i32.const -1)
)
)
)
(if
(i32.lt_u
- (tee_local $2
+ (tee_local $0
(i32.and
(i32.add
(i32.sub
- (get_local $21)
+ (get_local $18)
(get_local $1)
)
- (tee_local $22
+ (tee_local $16
(i32.load
(i32.const 1688)
)
@@ -3552,7 +3511,7 @@
)
(i32.sub
(i32.const 0)
- (get_local $22)
+ (get_local $16)
)
)
)
@@ -3561,21 +3520,21 @@
(if
(i32.eq
(call_import $ta
- (get_local $2)
+ (get_local $0)
)
(i32.const -1)
)
(block
(drop
(call_import $ta
- (get_local $23)
+ (get_local $19)
)
)
(br $label$break$d)
)
(set_local $4
(i32.add
- (get_local $2)
+ (get_local $0)
(get_local $1)
)
)
@@ -3590,14 +3549,14 @@
)
(if
(i32.ne
- (get_local $10)
+ (get_local $12)
(i32.const -1)
)
(block
- (set_local $28
- (get_local $10)
+ (set_local $20
+ (get_local $12)
)
- (set_local $33
+ (set_local $26
(get_local $4)
)
(br $label$break$b
@@ -3626,7 +3585,7 @@
)
(if
(i32.lt_u
- (get_local $15)
+ (get_local $13)
(i32.const 2147483647)
)
(if
@@ -3634,10 +3593,10 @@
(i32.lt_u
(tee_local $4
(call_import $ta
- (get_local $15)
+ (get_local $13)
)
)
- (tee_local $15
+ (tee_local $13
(call_import $ta
(i32.const 0)
)
@@ -3649,32 +3608,32 @@
(i32.const -1)
)
(i32.ne
- (get_local $15)
+ (get_local $13)
(i32.const -1)
)
)
)
(if
(i32.gt_u
- (tee_local $10
+ (tee_local $12
(i32.sub
- (get_local $15)
+ (get_local $13)
(get_local $4)
)
)
(i32.add
- (get_local $18)
+ (get_local $6)
(i32.const 40)
)
)
(block
- (set_local $28
+ (set_local $20
(get_local $4)
)
- (set_local $33
- (get_local $10)
+ (set_local $26
+ (get_local $12)
)
- (set_local $7
+ (set_local $9
(i32.const 191)
)
)
@@ -3684,36 +3643,36 @@
)
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 191)
)
(block
(i32.store
(i32.const 1640)
- (tee_local $10
+ (tee_local $12
(i32.add
(i32.load
(i32.const 1640)
)
- (get_local $33)
+ (get_local $26)
)
)
)
(if
(i32.gt_u
- (get_local $10)
+ (get_local $12)
(i32.load
(i32.const 1644)
)
)
(i32.store
(i32.const 1644)
- (get_local $10)
+ (get_local $12)
)
)
(block $do-once$42
(if
- (tee_local $10
+ (tee_local $12
(i32.load
(i32.const 1232)
)
@@ -3726,16 +3685,16 @@
(block $do-out$46
(if
(i32.eq
- (get_local $28)
+ (get_local $20)
(i32.add
(tee_local $4
(i32.load
(get_local $1)
)
)
- (tee_local $21
+ (tee_local $18
(i32.load
- (tee_local $15
+ (tee_local $13
(i32.add
(get_local $1)
(i32.const 4)
@@ -3746,19 +3705,19 @@
)
)
(block
- (set_local $50
+ (set_local $49
(get_local $4)
)
+ (set_local $50
+ (get_local $13)
+ )
(set_local $51
- (get_local $15)
+ (get_local $18)
)
(set_local $52
- (get_local $21)
- )
- (set_local $35
(get_local $1)
)
- (set_local $7
+ (set_local $9
(i32.const 201)
)
(br $do-out$46)
@@ -3778,14 +3737,14 @@
)
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 201)
)
(if
(i32.eqz
(i32.and
(i32.load offset=12
- (get_local $35)
+ (get_local $52)
)
(i32.const 8)
)
@@ -3793,56 +3752,53 @@
(if
(i32.and
(i32.lt_u
- (get_local $10)
- (get_local $28)
+ (get_local $12)
+ (get_local $20)
)
(i32.ge_u
- (get_local $10)
- (get_local $50)
+ (get_local $12)
+ (get_local $49)
)
)
(block
(i32.store
- (get_local $51)
+ (get_local $50)
(i32.add
- (get_local $52)
- (get_local $33)
+ (get_local $51)
+ (get_local $26)
)
)
(set_local $1
(i32.add
- (get_local $10)
- (tee_local $21
+ (get_local $12)
+ (tee_local $18
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
(tee_local $1
(i32.add
- (get_local $10)
+ (get_local $12)
(i32.const 8)
)
)
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $1)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $1)
+ (i32.const 7)
)
)
)
)
)
- (set_local $15
+ (set_local $13
(i32.add
(i32.sub
- (get_local $33)
- (get_local $21)
+ (get_local $26)
+ (get_local $18)
)
(i32.load
(i32.const 1220)
@@ -3855,19 +3811,19 @@
)
(i32.store
(i32.const 1220)
- (get_local $15)
+ (get_local $13)
)
(i32.store offset=4
(get_local $1)
(i32.or
- (get_local $15)
+ (get_local $13)
(i32.const 1)
)
)
(i32.store offset=4
(i32.add
(get_local $1)
- (get_local $15)
+ (get_local $13)
)
(i32.const 40)
)
@@ -3882,11 +3838,11 @@
)
)
)
- (set_local $35
+ (set_local $8
(if
(i32.lt_u
- (get_local $28)
- (tee_local $15
+ (get_local $20)
+ (tee_local $13
(i32.load
(i32.const 1224)
)
@@ -3895,17 +3851,17 @@
(block
(i32.store
(i32.const 1224)
- (get_local $28)
+ (get_local $20)
)
- (get_local $28)
+ (get_local $20)
)
- (get_local $15)
+ (get_local $13)
)
)
- (set_local $15
+ (set_local $13
(i32.add
- (get_local $28)
- (get_local $33)
+ (get_local $20)
+ (get_local $26)
)
)
(set_local $1
@@ -3918,63 +3874,57 @@
(i32.load
(get_local $1)
)
- (get_local $15)
+ (get_local $13)
)
(block
(set_local $53
(get_local $1)
)
- (set_local $45
+ (set_local $43
(get_local $1)
)
- (set_local $7
+ (set_local $9
(i32.const 209)
)
(br $while-out$48)
)
)
- (if
- (i32.eqz
- (tee_local $1
- (i32.load offset=8
- (get_local $1)
- )
+ (br_if $while-in$49
+ (tee_local $1
+ (i32.load offset=8
+ (get_local $1)
)
)
- (block
- (set_local $37
- (i32.const 1656)
- )
- (br $while-out$48)
- )
)
- (br $while-in$49)
+ (set_local $30
+ (i32.const 1656)
+ )
)
)
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 209)
)
(if
(i32.and
(i32.load offset=12
- (get_local $45)
+ (get_local $43)
)
(i32.const 8)
)
- (set_local $37
+ (set_local $30
(i32.const 1656)
)
(block
(i32.store
(get_local $53)
- (get_local $28)
+ (get_local $20)
)
(i32.store
(tee_local $1
(i32.add
- (get_local $45)
+ (get_local $43)
(i32.const 4)
)
)
@@ -3982,82 +3932,76 @@
(i32.load
(get_local $1)
)
- (get_local $33)
+ (get_local $26)
)
)
- (set_local $21
+ (set_local $18
(i32.add
- (get_local $28)
+ (get_local $20)
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
(tee_local $1
(i32.add
- (get_local $28)
+ (get_local $20)
(i32.const 8)
)
)
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $1)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $1)
+ (i32.const 7)
)
)
)
)
(set_local $4
(i32.add
- (get_local $15)
+ (get_local $13)
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
(tee_local $1
(i32.add
- (get_local $15)
+ (get_local $13)
(i32.const 8)
)
)
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $1)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $1)
+ (i32.const 7)
)
)
)
)
(set_local $1
(i32.add
- (get_local $21)
(get_local $18)
+ (get_local $6)
)
)
- (set_local $24
+ (set_local $14
(i32.sub
(i32.sub
(get_local $4)
- (get_local $21)
+ (get_local $18)
)
- (get_local $18)
+ (get_local $6)
)
)
(i32.store offset=4
- (get_local $21)
+ (get_local $18)
(i32.or
- (get_local $18)
+ (get_local $6)
(i32.const 3)
)
)
@@ -4065,17 +4009,17 @@
(if
(i32.eq
(get_local $4)
- (get_local $10)
+ (get_local $12)
)
(block
(i32.store
(i32.const 1220)
- (tee_local $6
+ (tee_local $2
(i32.add
(i32.load
(i32.const 1220)
)
- (get_local $24)
+ (get_local $14)
)
)
)
@@ -4086,7 +4030,7 @@
(i32.store offset=4
(get_local $1)
(i32.or
- (get_local $6)
+ (get_local $2)
(i32.const 1)
)
)
@@ -4102,12 +4046,12 @@
(block
(i32.store
(i32.const 1216)
- (tee_local $6
+ (tee_local $2
(i32.add
(i32.load
(i32.const 1216)
)
- (get_local $24)
+ (get_local $14)
)
)
)
@@ -4118,16 +4062,16 @@
(i32.store offset=4
(get_local $1)
(i32.or
- (get_local $6)
+ (get_local $2)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $1)
- (get_local $6)
+ (get_local $2)
)
- (get_local $6)
+ (get_local $2)
)
(br $do-once$50)
)
@@ -4138,7 +4082,7 @@
(if
(i32.eq
(i32.and
- (tee_local $6
+ (tee_local $2
(i32.load offset=4
(get_local $4)
)
@@ -4148,26 +4092,26 @@
(i32.const 1)
)
(block
- (set_local $17
+ (set_local $5
(i32.and
- (get_local $6)
+ (get_local $2)
(i32.const -8)
)
)
(set_local $0
(i32.shr_u
- (get_local $6)
+ (get_local $2)
(i32.const 3)
)
)
(block $label$break$e
(if
(i32.lt_u
- (get_local $6)
+ (get_local $2)
(i32.const 256)
)
(block
- (set_local $9
+ (set_local $11
(i32.load offset=12
(get_local $4)
)
@@ -4175,12 +4119,12 @@
(block $do-once$53
(if
(i32.ne
- (tee_local $6
+ (tee_local $21
(i32.load offset=8
(get_local $4)
)
)
- (tee_local $23
+ (tee_local $19
(i32.add
(i32.const 1248)
(i32.shl
@@ -4196,15 +4140,15 @@
(block
(if
(i32.lt_u
- (get_local $6)
- (get_local $35)
+ (get_local $21)
+ (get_local $8)
)
(call_import $qa)
)
(br_if $do-once$53
(i32.eq
(i32.load offset=12
- (get_local $6)
+ (get_local $21)
)
(get_local $4)
)
@@ -4215,8 +4159,8 @@
)
(if
(i32.eq
- (get_local $9)
- (get_local $6)
+ (get_local $11)
+ (get_local $21)
)
(block
(i32.store
@@ -4240,29 +4184,29 @@
(block $do-once$55
(if
(i32.eq
- (get_local $9)
- (get_local $23)
+ (get_local $11)
+ (get_local $19)
)
- (set_local $46
+ (set_local $44
(i32.add
- (get_local $9)
+ (get_local $11)
(i32.const 8)
)
)
(block
(if
(i32.lt_u
- (get_local $9)
- (get_local $35)
+ (get_local $11)
+ (get_local $8)
)
(call_import $qa)
)
(if
(i32.eq
(i32.load
- (tee_local $2
+ (tee_local $0
(i32.add
- (get_local $9)
+ (get_local $11)
(i32.const 8)
)
)
@@ -4270,8 +4214,8 @@
(get_local $4)
)
(block
- (set_local $46
- (get_local $2)
+ (set_local $44
+ (get_local $0)
)
(br $do-once$55)
)
@@ -4281,16 +4225,16 @@
)
)
(i32.store offset=12
- (get_local $6)
- (get_local $9)
+ (get_local $21)
+ (get_local $11)
)
(i32.store
- (get_local $46)
- (get_local $6)
+ (get_local $44)
+ (get_local $21)
)
)
(block
- (set_local $23
+ (set_local $19
(i32.load offset=24
(get_local $4)
)
@@ -4298,7 +4242,7 @@
(block $do-once$57
(if
(i32.eq
- (tee_local $2
+ (tee_local $0
(i32.load offset=12
(get_local $4)
)
@@ -4307,11 +4251,11 @@
)
(block
(if
- (tee_local $20
+ (tee_local $3
(i32.load
- (tee_local $13
+ (tee_local $7
(i32.add
- (tee_local $22
+ (tee_local $16
(i32.add
(get_local $4)
(i32.const 16)
@@ -4323,29 +4267,24 @@
)
)
(block
- (set_local $11
- (get_local $20)
- )
(set_local $0
- (get_local $13)
+ (get_local $3)
+ )
+ (set_local $16
+ (get_local $7)
)
)
(if
- (tee_local $20
+ (tee_local $22
(i32.load
- (get_local $22)
+ (get_local $16)
)
)
- (block
- (set_local $11
- (get_local $20)
- )
- (set_local $0
- (get_local $22)
- )
+ (set_local $0
+ (get_local $22)
)
(block
- (set_local $30
+ (set_local $24
(i32.const 0)
)
(br $do-once$57)
@@ -4353,65 +4292,62 @@
)
)
(loop $while-in$60
- (block $while-out$59
- (if
- (tee_local $20
- (i32.load
- (tee_local $13
- (i32.add
- (get_local $11)
- (i32.const 20)
- )
+ (if
+ (tee_local $3
+ (i32.load
+ (tee_local $7
+ (i32.add
+ (get_local $0)
+ (i32.const 20)
)
)
)
- (block
- (set_local $11
- (get_local $20)
- )
- (set_local $0
- (get_local $13)
- )
- (br $while-in$60)
- )
)
- (if
- (tee_local $20
- (i32.load
- (tee_local $13
- (i32.add
- (get_local $11)
- (i32.const 16)
- )
+ (block
+ (set_local $0
+ (get_local $3)
+ )
+ (set_local $16
+ (get_local $7)
+ )
+ (br $while-in$60)
+ )
+ )
+ (if
+ (tee_local $3
+ (i32.load
+ (tee_local $7
+ (i32.add
+ (get_local $0)
+ (i32.const 16)
)
)
)
- (block
- (set_local $11
- (get_local $20)
- )
- (set_local $0
- (get_local $13)
- )
- )
- (br $while-out$59)
)
- (br $while-in$60)
+ (block
+ (set_local $0
+ (get_local $3)
+ )
+ (set_local $16
+ (get_local $7)
+ )
+ (br $while-in$60)
+ )
)
)
(if
(i32.lt_u
- (get_local $0)
- (get_local $35)
+ (get_local $16)
+ (get_local $8)
)
(call_import $qa)
(block
(i32.store
- (get_local $0)
+ (get_local $16)
(i32.const 0)
)
- (set_local $30
- (get_local $11)
+ (set_local $24
+ (get_local $0)
)
)
)
@@ -4419,21 +4355,21 @@
(block
(if
(i32.lt_u
- (tee_local $13
+ (tee_local $7
(i32.load offset=8
(get_local $4)
)
)
- (get_local $35)
+ (get_local $8)
)
(call_import $qa)
)
(if
(i32.ne
(i32.load
- (tee_local $20
+ (tee_local $3
(i32.add
- (get_local $13)
+ (get_local $7)
(i32.const 12)
)
)
@@ -4445,9 +4381,9 @@
(if
(i32.eq
(i32.load
- (tee_local $22
+ (tee_local $16
(i32.add
- (get_local $2)
+ (get_local $0)
(i32.const 8)
)
)
@@ -4456,15 +4392,15 @@
)
(block
(i32.store
- (get_local $20)
- (get_local $2)
+ (get_local $3)
+ (get_local $0)
)
(i32.store
- (get_local $22)
- (get_local $13)
+ (get_local $16)
+ (get_local $7)
)
- (set_local $30
- (get_local $2)
+ (set_local $24
+ (get_local $0)
)
)
(call_import $qa)
@@ -4474,7 +4410,7 @@
)
(br_if $label$break$e
(i32.eqz
- (get_local $23)
+ (get_local $19)
)
)
(block $do-once$61
@@ -4482,11 +4418,11 @@
(i32.eq
(get_local $4)
(i32.load
- (tee_local $6
+ (tee_local $21
(i32.add
(i32.const 1512)
(i32.shl
- (tee_local $2
+ (tee_local $0
(i32.load offset=28
(get_local $4)
)
@@ -4499,11 +4435,11 @@
)
(block
(i32.store
- (get_local $6)
- (get_local $30)
+ (get_local $21)
+ (get_local $24)
)
(br_if $do-once$61
- (get_local $30)
+ (get_local $24)
)
(i32.store
(i32.const 1212)
@@ -4514,7 +4450,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $2)
+ (get_local $0)
)
(i32.const -1)
)
@@ -4525,7 +4461,7 @@
(block
(if
(i32.lt_u
- (get_local $23)
+ (get_local $19)
(i32.load
(i32.const 1224)
)
@@ -4535,9 +4471,9 @@
(if
(i32.eq
(i32.load
- (tee_local $9
+ (tee_local $11
(i32.add
- (get_local $23)
+ (get_local $19)
(i32.const 16)
)
)
@@ -4545,17 +4481,17 @@
(get_local $4)
)
(i32.store
- (get_local $9)
- (get_local $30)
+ (get_local $11)
+ (get_local $24)
)
(i32.store offset=20
- (get_local $23)
- (get_local $30)
+ (get_local $19)
+ (get_local $24)
)
)
(br_if $label$break$e
(i32.eqz
- (get_local $30)
+ (get_local $24)
)
)
)
@@ -4563,8 +4499,8 @@
)
(if
(i32.lt_u
- (get_local $30)
- (tee_local $2
+ (get_local $24)
+ (tee_local $0
(i32.load
(i32.const 1224)
)
@@ -4573,13 +4509,13 @@
(call_import $qa)
)
(i32.store offset=24
- (get_local $30)
- (get_local $23)
+ (get_local $24)
+ (get_local $19)
)
(if
- (tee_local $9
+ (tee_local $11
(i32.load
- (tee_local $6
+ (tee_local $21
(i32.add
(get_local $4)
(i32.const 16)
@@ -4589,34 +4525,34 @@
)
(if
(i32.lt_u
- (get_local $9)
- (get_local $2)
+ (get_local $11)
+ (get_local $0)
)
(call_import $qa)
(block
(i32.store offset=16
- (get_local $30)
- (get_local $9)
+ (get_local $24)
+ (get_local $11)
)
(i32.store offset=24
- (get_local $9)
- (get_local $30)
+ (get_local $11)
+ (get_local $24)
)
)
)
)
(br_if $label$break$e
(i32.eqz
- (tee_local $9
+ (tee_local $11
(i32.load offset=4
- (get_local $6)
+ (get_local $21)
)
)
)
)
(if
(i32.lt_u
- (get_local $9)
+ (get_local $11)
(i32.load
(i32.const 1224)
)
@@ -4624,35 +4560,30 @@
(call_import $qa)
(block
(i32.store offset=20
- (get_local $30)
- (get_local $9)
+ (get_local $24)
+ (get_local $11)
)
(i32.store offset=24
- (get_local $9)
- (get_local $30)
+ (get_local $11)
+ (get_local $24)
)
)
)
)
)
)
- (set_local $11
+ (set_local $14
(i32.add
- (get_local $17)
- (get_local $24)
+ (get_local $5)
+ (get_local $14)
)
)
(i32.add
(get_local $4)
- (get_local $17)
+ (get_local $5)
)
)
- (block
- (set_local $11
- (get_local $24)
- )
- (get_local $4)
- )
+ (get_local $4)
)
(i32.const 4)
)
@@ -4667,30 +4598,30 @@
(i32.store offset=4
(get_local $1)
(i32.or
- (get_local $11)
+ (get_local $14)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $1)
- (get_local $11)
+ (get_local $14)
)
- (get_local $11)
+ (get_local $14)
)
(set_local $0
(i32.shr_u
- (get_local $11)
+ (get_local $14)
(i32.const 3)
)
)
(if
(i32.lt_u
- (get_local $11)
+ (get_local $14)
(i32.const 256)
)
(block
- (set_local $6
+ (set_local $2
(i32.add
(i32.const 1248)
(i32.shl
@@ -4705,12 +4636,12 @@
(block $do-once$65
(if
(i32.and
- (tee_local $9
+ (tee_local $11
(i32.load
(i32.const 1208)
)
)
- (tee_local $2
+ (tee_local $0
(i32.shl
(i32.const 1)
(get_local $0)
@@ -4720,11 +4651,11 @@
(block
(if
(i32.ge_u
- (tee_local $23
+ (tee_local $19
(i32.load
(tee_local $0
(i32.add
- (get_local $6)
+ (get_local $2)
(i32.const 8)
)
)
@@ -4735,11 +4666,11 @@
)
)
(block
- (set_local $47
+ (set_local $45
(get_local $0)
)
- (set_local $41
- (get_local $23)
+ (set_local $38
+ (get_local $19)
)
(br $do-once$65)
)
@@ -4750,51 +4681,51 @@
(i32.store
(i32.const 1208)
(i32.or
- (get_local $9)
- (get_local $2)
+ (get_local $11)
+ (get_local $0)
)
)
- (set_local $47
+ (set_local $45
(i32.add
- (get_local $6)
+ (get_local $2)
(i32.const 8)
)
)
- (set_local $41
- (get_local $6)
+ (set_local $38
+ (get_local $2)
)
)
)
)
(i32.store
- (get_local $47)
+ (get_local $45)
(get_local $1)
)
(i32.store offset=12
- (get_local $41)
+ (get_local $38)
(get_local $1)
)
(i32.store offset=8
(get_local $1)
- (get_local $41)
+ (get_local $38)
)
(i32.store offset=12
(get_local $1)
- (get_local $6)
+ (get_local $2)
)
(br $do-once$50)
)
)
- (set_local $2
+ (set_local $0
(i32.add
(i32.const 1512)
(i32.shl
- (tee_local $0
+ (tee_local $6
(block $do-once$67
(if
- (tee_local $2
+ (tee_local $0
(i32.shr_u
- (get_local $11)
+ (get_local $14)
(i32.const 8)
)
)
@@ -4802,33 +4733,33 @@
(br_if $do-once$67
(i32.const 31)
(i32.gt_u
- (get_local $11)
+ (get_local $14)
(i32.const 16777215)
)
)
(i32.or
(i32.and
(i32.shr_u
- (get_local $11)
+ (get_local $14)
(i32.add
- (tee_local $13
+ (tee_local $7
(i32.add
(i32.sub
(i32.const 14)
(i32.or
(i32.or
- (tee_local $23
+ (tee_local $19
(i32.and
(i32.shr_u
(i32.add
- (tee_local $17
+ (tee_local $5
(i32.shl
- (get_local $2)
- (tee_local $9
+ (get_local $0)
+ (tee_local $11
(i32.and
(i32.shr_u
(i32.add
- (get_local $2)
+ (get_local $0)
(i32.const 1048320)
)
(i32.const 16)
@@ -4845,16 +4776,16 @@
(i32.const 4)
)
)
- (get_local $9)
+ (get_local $11)
)
- (tee_local $17
+ (tee_local $5
(i32.and
(i32.shr_u
(i32.add
(tee_local $0
(i32.shl
- (get_local $17)
- (get_local $23)
+ (get_local $5)
+ (get_local $19)
)
)
(i32.const 245760)
@@ -4869,7 +4800,7 @@
(i32.shr_u
(i32.shl
(get_local $0)
- (get_local $17)
+ (get_local $5)
)
(i32.const 15)
)
@@ -4881,7 +4812,7 @@
(i32.const 1)
)
(i32.shl
- (get_local $13)
+ (get_local $7)
(i32.const 1)
)
)
@@ -4896,10 +4827,10 @@
)
(i32.store offset=28
(get_local $1)
- (get_local $0)
+ (get_local $6)
)
(i32.store offset=4
- (tee_local $6
+ (tee_local $2
(i32.add
(get_local $1)
(i32.const 16)
@@ -4908,21 +4839,21 @@
(i32.const 0)
)
(i32.store
- (get_local $6)
+ (get_local $2)
(i32.const 0)
)
(if
(i32.eqz
(i32.and
- (tee_local $6
+ (tee_local $2
(i32.load
(i32.const 1212)
)
)
- (tee_local $13
+ (tee_local $7
(i32.shl
(i32.const 1)
- (get_local $0)
+ (get_local $6)
)
)
)
@@ -4931,17 +4862,17 @@
(i32.store
(i32.const 1212)
(i32.or
- (get_local $6)
- (get_local $13)
+ (get_local $2)
+ (get_local $7)
)
)
(i32.store
- (get_local $2)
+ (get_local $0)
(get_local $1)
)
(i32.store offset=24
(get_local $1)
- (get_local $2)
+ (get_local $0)
)
(i32.store offset=12
(get_local $1)
@@ -4954,28 +4885,28 @@
(br $do-once$50)
)
)
- (set_local $13
+ (set_local $7
(i32.shl
- (get_local $11)
+ (get_local $14)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (get_local $0)
+ (get_local $6)
(i32.const 1)
)
)
(i32.eq
- (get_local $0)
+ (get_local $6)
(i32.const 31)
)
)
)
)
- (set_local $6
+ (set_local $2
(i32.load
- (get_local $2)
+ (get_local $0)
)
)
(loop $while-in$70
@@ -4984,34 +4915,34 @@
(i32.eq
(i32.and
(i32.load offset=4
- (get_local $6)
+ (get_local $2)
)
(i32.const -8)
)
- (get_local $11)
+ (get_local $14)
)
(block
- (set_local $42
- (get_local $6)
+ (set_local $39
+ (get_local $2)
)
- (set_local $7
+ (set_local $9
(i32.const 279)
)
(br $while-out$69)
)
)
(if
- (tee_local $17
+ (tee_local $5
(i32.load
- (tee_local $2
+ (tee_local $0
(i32.add
(i32.add
- (get_local $6)
+ (get_local $2)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (get_local $13)
+ (get_local $7)
(i32.const 31)
)
(i32.const 2)
@@ -5021,40 +4952,39 @@
)
)
(block
- (set_local $13
+ (set_local $7
(i32.shl
- (get_local $13)
+ (get_local $7)
(i32.const 1)
)
)
- (set_local $6
- (get_local $17)
+ (set_local $2
+ (get_local $5)
)
+ (br $while-in$70)
)
(block
- (set_local $48
- (get_local $2)
+ (set_local $46
+ (get_local $0)
)
(set_local $54
- (get_local $6)
+ (get_local $2)
)
- (set_local $7
+ (set_local $9
(i32.const 276)
)
- (br $while-out$69)
)
)
- (br $while-in$70)
)
)
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 276)
)
(if
(i32.lt_u
- (get_local $48)
+ (get_local $46)
(i32.load
(i32.const 1224)
)
@@ -5062,7 +4992,7 @@
(call_import $qa)
(block
(i32.store
- (get_local $48)
+ (get_local $46)
(get_local $1)
)
(i32.store offset=24
@@ -5081,49 +5011,49 @@
)
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 279)
)
(if
(i32.and
(i32.ge_u
- (tee_local $13
+ (tee_local $7
(i32.load
- (tee_local $6
+ (tee_local $2
(i32.add
- (get_local $42)
+ (get_local $39)
(i32.const 8)
)
)
)
)
- (tee_local $17
+ (tee_local $5
(i32.load
(i32.const 1224)
)
)
)
(i32.ge_u
- (get_local $42)
- (get_local $17)
+ (get_local $39)
+ (get_local $5)
)
)
(block
(i32.store offset=12
- (get_local $13)
+ (get_local $7)
(get_local $1)
)
(i32.store
- (get_local $6)
+ (get_local $2)
(get_local $1)
)
(i32.store offset=8
(get_local $1)
- (get_local $13)
+ (get_local $7)
)
(i32.store offset=12
(get_local $1)
- (get_local $42)
+ (get_local $39)
)
(i32.store offset=24
(get_local $1)
@@ -5138,11 +5068,11 @@
)
)
(set_global $r
- (get_local $31)
+ (get_local $25)
)
(return
(i32.add
- (get_local $21)
+ (get_local $18)
(i32.const 8)
)
)
@@ -5155,42 +5085,42 @@
(i32.le_u
(tee_local $1
(i32.load
- (get_local $37)
+ (get_local $30)
)
)
- (get_local $10)
+ (get_local $12)
)
(if
(i32.gt_u
- (tee_local $24
+ (tee_local $14
(i32.add
(get_local $1)
(i32.load offset=4
- (get_local $37)
+ (get_local $30)
)
)
)
- (get_local $10)
+ (get_local $12)
)
(block
(set_local $0
- (get_local $24)
+ (get_local $14)
)
(br $while-out$71)
)
)
)
- (set_local $37
+ (set_local $30
(i32.load offset=8
- (get_local $37)
+ (get_local $30)
)
)
(br $while-in$72)
)
)
- (set_local $24
+ (set_local $14
(i32.add
- (tee_local $21
+ (tee_local $18
(i32.add
(get_local $0)
(i32.const -47)
@@ -5201,36 +5131,33 @@
)
(set_local $1
(i32.add
- (tee_local $21
+ (tee_local $18
(select
- (get_local $10)
+ (get_local $12)
(tee_local $1
(i32.add
- (get_local $21)
+ (get_local $18)
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
- (get_local $24)
+ (get_local $14)
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $24)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $14)
+ (i32.const 7)
)
)
)
)
(i32.lt_u
(get_local $1)
- (tee_local $24
+ (tee_local $14
(i32.add
- (get_local $10)
+ (get_local $12)
(i32.const 16)
)
)
@@ -5244,28 +5171,25 @@
(i32.const 1232)
(tee_local $4
(i32.add
- (get_local $28)
- (tee_local $15
+ (get_local $20)
+ (tee_local $13
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
(tee_local $4
(i32.add
- (get_local $28)
+ (get_local $20)
(i32.const 8)
)
)
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $4)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $4)
+ (i32.const 7)
)
)
)
@@ -5274,27 +5198,27 @@
)
(i32.store
(i32.const 1220)
- (tee_local $13
+ (tee_local $7
(i32.sub
(i32.add
- (get_local $33)
+ (get_local $26)
(i32.const -40)
)
- (get_local $15)
+ (get_local $13)
)
)
)
(i32.store offset=4
(get_local $4)
(i32.or
- (get_local $13)
+ (get_local $7)
(i32.const 1)
)
)
(i32.store offset=4
(i32.add
(get_local $4)
- (get_local $13)
+ (get_local $7)
)
(i32.const 40)
)
@@ -5305,9 +5229,9 @@
)
)
(i32.store
- (tee_local $13
+ (tee_local $7
(i32.add
- (get_local $21)
+ (get_local $18)
(i32.const 4)
)
)
@@ -5339,11 +5263,11 @@
)
(i32.store
(i32.const 1656)
- (get_local $28)
+ (get_local $20)
)
(i32.store
(i32.const 1660)
- (get_local $33)
+ (get_local $26)
)
(i32.store
(i32.const 1668)
@@ -5355,7 +5279,7 @@
)
(set_local $1
(i32.add
- (get_local $21)
+ (get_local $18)
(i32.const 24)
)
)
@@ -5381,33 +5305,33 @@
)
(if
(i32.ne
- (get_local $21)
- (get_local $10)
+ (get_local $18)
+ (get_local $12)
)
(block
(i32.store
- (get_local $13)
+ (get_local $7)
(i32.and
(i32.load
- (get_local $13)
+ (get_local $7)
)
(i32.const -2)
)
)
(i32.store offset=4
- (get_local $10)
+ (get_local $12)
(i32.or
(tee_local $1
(i32.sub
- (get_local $21)
- (get_local $10)
+ (get_local $18)
+ (get_local $12)
)
)
(i32.const 1)
)
)
(i32.store
- (get_local $21)
+ (get_local $18)
(get_local $1)
)
(set_local $4
@@ -5422,7 +5346,7 @@
(i32.const 256)
)
(block
- (set_local $15
+ (set_local $13
(i32.add
(i32.const 1248)
(i32.shl
@@ -5436,12 +5360,12 @@
)
(if
(i32.and
- (tee_local $6
+ (tee_local $2
(i32.load
(i32.const 1208)
)
)
- (tee_local $17
+ (tee_local $5
(i32.shl
(i32.const 1)
(get_local $4)
@@ -5450,11 +5374,11 @@
)
(if
(i32.lt_u
- (tee_local $6
+ (tee_local $2
(i32.load
- (tee_local $17
+ (tee_local $5
(i32.add
- (get_local $15)
+ (get_local $13)
(i32.const 8)
)
)
@@ -5466,11 +5390,11 @@
)
(call_import $qa)
(block
- (set_local $49
- (get_local $17)
+ (set_local $47
+ (get_local $5)
)
- (set_local $43
- (get_local $6)
+ (set_local $40
+ (get_local $2)
)
)
)
@@ -5478,47 +5402,47 @@
(i32.store
(i32.const 1208)
(i32.or
- (get_local $6)
- (get_local $17)
+ (get_local $2)
+ (get_local $5)
)
)
- (set_local $49
+ (set_local $47
(i32.add
- (get_local $15)
+ (get_local $13)
(i32.const 8)
)
)
- (set_local $43
- (get_local $15)
+ (set_local $40
+ (get_local $13)
)
)
)
(i32.store
- (get_local $49)
- (get_local $10)
+ (get_local $47)
+ (get_local $12)
)
(i32.store offset=12
- (get_local $43)
- (get_local $10)
+ (get_local $40)
+ (get_local $12)
)
(i32.store offset=8
- (get_local $10)
- (get_local $43)
+ (get_local $12)
+ (get_local $40)
)
(i32.store offset=12
- (get_local $10)
- (get_local $15)
+ (get_local $12)
+ (get_local $13)
)
(br $do-once$42)
)
)
- (set_local $2
+ (set_local $0
(i32.add
(i32.const 1512)
(i32.shl
- (tee_local $0
+ (tee_local $2
(if
- (tee_local $15
+ (tee_local $13
(i32.shr_u
(get_local $1)
(i32.const 8)
@@ -5535,24 +5459,24 @@
(i32.shr_u
(get_local $1)
(i32.add
- (tee_local $2
+ (tee_local $0
(i32.add
(i32.sub
(i32.const 14)
(i32.or
(i32.or
- (tee_local $15
+ (tee_local $13
(i32.and
(i32.shr_u
(i32.add
- (tee_local $17
+ (tee_local $5
(i32.shl
- (get_local $15)
- (tee_local $6
+ (get_local $13)
+ (tee_local $2
(i32.and
(i32.shr_u
(i32.add
- (get_local $15)
+ (get_local $13)
(i32.const 1048320)
)
(i32.const 16)
@@ -5569,16 +5493,16 @@
(i32.const 4)
)
)
- (get_local $6)
+ (get_local $2)
)
- (tee_local $17
+ (tee_local $5
(i32.and
(i32.shr_u
(i32.add
(tee_local $4
(i32.shl
- (get_local $17)
- (get_local $15)
+ (get_local $5)
+ (get_local $13)
)
)
(i32.const 245760)
@@ -5593,7 +5517,7 @@
(i32.shr_u
(i32.shl
(get_local $4)
- (get_local $17)
+ (get_local $5)
)
(i32.const 15)
)
@@ -5605,7 +5529,7 @@
(i32.const 1)
)
(i32.shl
- (get_local $2)
+ (get_local $0)
(i32.const 1)
)
)
@@ -5618,21 +5542,21 @@
)
)
(i32.store offset=28
- (get_local $10)
- (get_local $0)
+ (get_local $12)
+ (get_local $2)
)
(i32.store offset=20
- (get_local $10)
+ (get_local $12)
(i32.const 0)
)
(i32.store
- (get_local $24)
+ (get_local $14)
(i32.const 0)
)
(if
(i32.eqz
(i32.and
- (tee_local $17
+ (tee_local $5
(i32.load
(i32.const 1212)
)
@@ -5640,7 +5564,7 @@
(tee_local $4
(i32.shl
(i32.const 1)
- (get_local $0)
+ (get_local $2)
)
)
)
@@ -5649,25 +5573,25 @@
(i32.store
(i32.const 1212)
(i32.or
- (get_local $17)
+ (get_local $5)
(get_local $4)
)
)
(i32.store
- (get_local $2)
- (get_local $10)
+ (get_local $0)
+ (get_local $12)
)
(i32.store offset=24
- (get_local $10)
- (get_local $2)
+ (get_local $12)
+ (get_local $0)
)
(i32.store offset=12
- (get_local $10)
- (get_local $10)
+ (get_local $12)
+ (get_local $12)
)
(i32.store offset=8
- (get_local $10)
- (get_local $10)
+ (get_local $12)
+ (get_local $12)
)
(br $do-once$42)
)
@@ -5680,20 +5604,20 @@
(i32.sub
(i32.const 25)
(i32.shr_u
- (get_local $0)
+ (get_local $2)
(i32.const 1)
)
)
(i32.eq
- (get_local $0)
+ (get_local $2)
(i32.const 31)
)
)
)
)
- (set_local $17
+ (set_local $5
(i32.load
- (get_local $2)
+ (get_local $0)
)
)
(loop $while-in$76
@@ -5702,29 +5626,29 @@
(i32.eq
(i32.and
(i32.load offset=4
- (get_local $17)
+ (get_local $5)
)
(i32.const -8)
)
(get_local $1)
)
(block
- (set_local $32
- (get_local $17)
+ (set_local $31
+ (get_local $5)
)
- (set_local $7
+ (set_local $9
(i32.const 305)
)
(br $while-out$75)
)
)
(if
- (tee_local $6
+ (tee_local $2
(i32.load
- (tee_local $2
+ (tee_local $0
(i32.add
(i32.add
- (get_local $17)
+ (get_local $5)
(i32.const 16)
)
(i32.shl
@@ -5745,34 +5669,33 @@
(i32.const 1)
)
)
- (set_local $17
- (get_local $6)
- )
- )
- (block
- (set_local $26
+ (set_local $5
(get_local $2)
)
- (set_local $11
- (get_local $17)
+ (br $while-in$76)
+ )
+ (block
+ (set_local $48
+ (get_local $0)
)
- (set_local $7
+ (set_local $55
+ (get_local $5)
+ )
+ (set_local $9
(i32.const 302)
)
- (br $while-out$75)
)
)
- (br $while-in$76)
)
)
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 302)
)
(if
(i32.lt_u
- (get_local $26)
+ (get_local $48)
(i32.load
(i32.const 1224)
)
@@ -5780,26 +5703,26 @@
(call_import $qa)
(block
(i32.store
- (get_local $26)
- (get_local $10)
+ (get_local $48)
+ (get_local $12)
)
(i32.store offset=24
- (get_local $10)
- (get_local $11)
+ (get_local $12)
+ (get_local $55)
)
(i32.store offset=12
- (get_local $10)
- (get_local $10)
+ (get_local $12)
+ (get_local $12)
)
(i32.store offset=8
- (get_local $10)
- (get_local $10)
+ (get_local $12)
+ (get_local $12)
)
)
)
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 305)
)
(if
@@ -5807,9 +5730,9 @@
(i32.ge_u
(tee_local $4
(i32.load
- (tee_local $17
+ (tee_local $5
(i32.add
- (get_local $32)
+ (get_local $31)
(i32.const 8)
)
)
@@ -5822,29 +5745,29 @@
)
)
(i32.ge_u
- (get_local $32)
+ (get_local $31)
(get_local $1)
)
)
(block
(i32.store offset=12
(get_local $4)
- (get_local $10)
+ (get_local $12)
)
(i32.store
- (get_local $17)
- (get_local $10)
+ (get_local $5)
+ (get_local $12)
)
(i32.store offset=8
- (get_local $10)
+ (get_local $12)
(get_local $4)
)
(i32.store offset=12
- (get_local $10)
- (get_local $32)
+ (get_local $12)
+ (get_local $31)
)
(i32.store offset=24
- (get_local $10)
+ (get_local $12)
(i32.const 0)
)
)
@@ -5858,31 +5781,30 @@
(block
(if
(i32.or
- (i32.eq
+ (i32.eqz
(tee_local $4
(i32.load
(i32.const 1224)
)
)
- (i32.const 0)
)
(i32.lt_u
- (get_local $28)
+ (get_local $20)
(get_local $4)
)
)
(i32.store
(i32.const 1224)
- (get_local $28)
+ (get_local $20)
)
)
(i32.store
(i32.const 1656)
- (get_local $28)
+ (get_local $20)
)
(i32.store
(i32.const 1660)
- (get_local $33)
+ (get_local $26)
)
(i32.store
(i32.const 1668)
@@ -5903,7 +5825,7 @@
)
(loop $do-in$45
(i32.store offset=12
- (tee_local $15
+ (tee_local $13
(i32.add
(i32.const 1248)
(i32.shl
@@ -5915,11 +5837,11 @@
)
)
)
- (get_local $15)
+ (get_local $13)
)
(i32.store offset=8
- (get_local $15)
- (get_local $15)
+ (get_local $13)
+ (get_local $13)
)
(br_if $do-in$45
(i32.ne
@@ -5937,28 +5859,25 @@
(i32.const 1232)
(tee_local $4
(i32.add
- (get_local $28)
- (tee_local $15
+ (get_local $20)
+ (tee_local $13
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
(tee_local $4
(i32.add
- (get_local $28)
+ (get_local $20)
(i32.const 8)
)
)
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $4)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $4)
+ (i32.const 7)
)
)
)
@@ -5970,10 +5889,10 @@
(tee_local $1
(i32.sub
(i32.add
- (get_local $33)
+ (get_local $26)
(i32.const -40)
)
- (get_local $15)
+ (get_local $13)
)
)
)
@@ -6002,56 +5921,56 @@
)
(if
(i32.gt_u
- (tee_local $10
+ (tee_local $12
(i32.load
(i32.const 1220)
)
)
- (get_local $18)
+ (get_local $6)
)
(block
(i32.store
(i32.const 1220)
- (tee_local $32
+ (tee_local $31
(i32.sub
- (get_local $10)
- (get_local $18)
+ (get_local $12)
+ (get_local $6)
)
)
)
(i32.store
(i32.const 1232)
- (tee_local $7
+ (tee_local $9
(i32.add
- (tee_local $10
+ (tee_local $12
(i32.load
(i32.const 1232)
)
)
- (get_local $18)
+ (get_local $6)
)
)
)
(i32.store offset=4
- (get_local $7)
+ (get_local $9)
(i32.or
- (get_local $32)
+ (get_local $31)
(i32.const 1)
)
)
(i32.store offset=4
- (get_local $10)
+ (get_local $12)
(i32.or
- (get_local $18)
+ (get_local $6)
(i32.const 3)
)
)
(set_global $r
- (get_local $31)
+ (get_local $25)
)
(return
(i32.add
- (get_local $10)
+ (get_local $12)
(i32.const 8)
)
)
@@ -6064,7 +5983,7 @@
(i32.const 12)
)
(set_global $r
- (get_local $31)
+ (get_local $25)
)
(i32.const 0)
)
@@ -6114,7 +6033,7 @@
(i32.eq
(tee_local $0
(i32.and
- (tee_local $9
+ (tee_local $3
(i32.load
(i32.add
(get_local $0)
@@ -6129,12 +6048,12 @@
)
(call_import $qa)
)
- (set_local $7
+ (set_local $8
(i32.add
(get_local $1)
(tee_local $5
(i32.and
- (get_local $9)
+ (get_local $3)
(i32.const -8)
)
)
@@ -6143,19 +6062,19 @@
(block $do-once$0
(if
(i32.and
- (get_local $9)
+ (get_local $3)
(i32.const 1)
)
(block
(set_local $2
(get_local $1)
)
- (set_local $8
+ (set_local $7
(get_local $5)
)
)
(block
- (set_local $9
+ (set_local $11
(i32.load
(get_local $1)
)
@@ -6168,7 +6087,7 @@
)
(set_local $5
(i32.add
- (get_local $9)
+ (get_local $11)
(get_local $5)
)
)
@@ -6179,7 +6098,7 @@
(get_local $1)
(i32.sub
(i32.const 0)
- (get_local $9)
+ (get_local $11)
)
)
)
@@ -6202,7 +6121,7 @@
(i32.load
(tee_local $1
(i32.add
- (get_local $7)
+ (get_local $8)
(i32.const 4)
)
)
@@ -6216,7 +6135,7 @@
(set_local $2
(get_local $0)
)
- (set_local $8
+ (set_local $7
(get_local $5)
)
(br $do-once$0)
@@ -6252,13 +6171,13 @@
)
(set_local $6
(i32.shr_u
- (get_local $9)
+ (get_local $11)
(i32.const 3)
)
)
(if
(i32.lt_u
- (get_local $9)
+ (get_local $11)
(i32.const 256)
)
(block
@@ -6269,12 +6188,12 @@
)
(if
(i32.ne
- (tee_local $9
+ (tee_local $11
(i32.load offset=8
(get_local $0)
)
)
- (tee_local $4
+ (tee_local $3
(i32.add
(i32.const 1248)
(i32.shl
@@ -6290,7 +6209,7 @@
(block
(if
(i32.lt_u
- (get_local $9)
+ (get_local $11)
(get_local $14)
)
(call_import $qa)
@@ -6298,7 +6217,7 @@
(if
(i32.ne
(i32.load offset=12
- (get_local $9)
+ (get_local $11)
)
(get_local $0)
)
@@ -6309,7 +6228,7 @@
(if
(i32.eq
(get_local $1)
- (get_local $9)
+ (get_local $11)
)
(block
(i32.store
@@ -6330,7 +6249,7 @@
(set_local $2
(get_local $0)
)
- (set_local $8
+ (set_local $7
(get_local $5)
)
(br $do-once$0)
@@ -6339,9 +6258,9 @@
(if
(i32.eq
(get_local $1)
- (get_local $4)
+ (get_local $3)
)
- (set_local $11
+ (set_local $10
(i32.add
(get_local $1)
(i32.const 8)
@@ -6358,7 +6277,7 @@
(if
(i32.eq
(i32.load
- (tee_local $4
+ (tee_local $3
(i32.add
(get_local $1)
(i32.const 8)
@@ -6367,31 +6286,31 @@
)
(get_local $0)
)
- (set_local $11
- (get_local $4)
+ (set_local $10
+ (get_local $3)
)
(call_import $qa)
)
)
)
(i32.store offset=12
- (get_local $9)
+ (get_local $11)
(get_local $1)
)
(i32.store
+ (get_local $10)
(get_local $11)
- (get_local $9)
)
(set_local $2
(get_local $0)
)
- (set_local $8
+ (set_local $7
(get_local $5)
)
(br $do-once$0)
)
)
- (set_local $9
+ (set_local $11
(i32.load offset=24
(get_local $0)
)
@@ -6408,11 +6327,11 @@
)
(block
(if
- (tee_local $11
+ (tee_local $10
(i32.load
(tee_local $6
(i32.add
- (tee_local $4
+ (tee_local $3
(i32.add
(get_local $0)
(i32.const 16)
@@ -6425,9 +6344,9 @@
)
(block
(set_local $1
- (get_local $11)
+ (get_local $10)
)
- (set_local $4
+ (set_local $3
(get_local $6)
)
)
@@ -6435,12 +6354,12 @@
(i32.eqz
(tee_local $1
(i32.load
- (get_local $4)
+ (get_local $3)
)
)
)
(block
- (set_local $3
+ (set_local $4
(i32.const 0)
)
(br $do-once$2)
@@ -6448,72 +6367,69 @@
)
)
(loop $while-in$5
- (block $while-out$4
- (if
- (tee_local $11
- (i32.load
- (tee_local $6
- (i32.add
- (get_local $1)
- (i32.const 20)
- )
+ (if
+ (tee_local $10
+ (i32.load
+ (tee_local $6
+ (i32.add
+ (get_local $1)
+ (i32.const 20)
)
)
)
- (block
- (set_local $1
- (get_local $11)
- )
- (set_local $4
- (get_local $6)
- )
- (br $while-in$5)
- )
)
- (if
- (tee_local $11
- (i32.load
- (tee_local $6
- (i32.add
- (get_local $1)
- (i32.const 16)
- )
+ (block
+ (set_local $1
+ (get_local $10)
+ )
+ (set_local $3
+ (get_local $6)
+ )
+ (br $while-in$5)
+ )
+ )
+ (if
+ (tee_local $10
+ (i32.load
+ (tee_local $6
+ (i32.add
+ (get_local $1)
+ (i32.const 16)
)
)
)
- (block
- (set_local $1
- (get_local $11)
- )
- (set_local $4
- (get_local $6)
- )
+ )
+ (block
+ (set_local $1
+ (get_local $10)
)
- (block
- (set_local $6
- (get_local $1)
- )
- (set_local $10
- (get_local $4)
- )
- (br $while-out$4)
+ (set_local $3
+ (get_local $6)
+ )
+ (br $while-in$5)
+ )
+ (block
+ (set_local $6
+ (get_local $1)
+ )
+ (set_local $9
+ (get_local $3)
)
)
- (br $while-in$5)
)
)
(if
(i32.lt_u
- (get_local $10)
+ (get_local $9)
(get_local $14)
)
(call_import $qa)
(block
(i32.store
- (get_local $10)
+ (get_local $9)
(i32.const 0)
)
- (set_local $3
+ (set_local $4
(get_local $6)
)
)
@@ -6534,7 +6450,7 @@
(if
(i32.ne
(i32.load
- (tee_local $11
+ (tee_local $10
(i32.add
(get_local $6)
(i32.const 12)
@@ -6548,7 +6464,7 @@
(if
(i32.eq
(i32.load
- (tee_local $4
+ (tee_local $3
(i32.add
(get_local $1)
(i32.const 8)
@@ -6559,14 +6475,14 @@
)
(block
(i32.store
- (get_local $11)
+ (get_local $10)
(get_local $1)
)
(i32.store
- (get_local $4)
+ (get_local $3)
(get_local $6)
)
- (set_local $3
+ (set_local $4
(get_local $1)
)
)
@@ -6576,7 +6492,7 @@
)
)
(if
- (get_local $9)
+ (get_local $11)
(block
(if
(i32.eq
@@ -6600,11 +6516,11 @@
(block
(i32.store
(get_local $6)
- (get_local $3)
+ (get_local $4)
)
(if
(i32.eqz
- (get_local $3)
+ (get_local $4)
)
(block
(i32.store
@@ -6625,7 +6541,7 @@
(set_local $2
(get_local $0)
)
- (set_local $8
+ (set_local $7
(get_local $5)
)
(br $do-once$0)
@@ -6635,7 +6551,7 @@
(block
(if
(i32.lt_u
- (get_local $9)
+ (get_local $11)
(i32.load
(i32.const 1224)
)
@@ -6647,7 +6563,7 @@
(i32.load
(tee_local $1
(i32.add
- (get_local $9)
+ (get_local $11)
(i32.const 16)
)
)
@@ -6656,22 +6572,22 @@
)
(i32.store
(get_local $1)
- (get_local $3)
+ (get_local $4)
)
(i32.store offset=20
- (get_local $9)
- (get_local $3)
+ (get_local $11)
+ (get_local $4)
)
)
(if
(i32.eqz
- (get_local $3)
+ (get_local $4)
)
(block
(set_local $2
(get_local $0)
)
- (set_local $8
+ (set_local $7
(get_local $5)
)
(br $do-once$0)
@@ -6681,7 +6597,7 @@
)
(if
(i32.lt_u
- (get_local $3)
+ (get_local $4)
(tee_local $1
(i32.load
(i32.const 1224)
@@ -6691,11 +6607,11 @@
(call_import $qa)
)
(i32.store offset=24
- (get_local $3)
- (get_local $9)
+ (get_local $4)
+ (get_local $11)
)
(if
- (tee_local $4
+ (tee_local $3
(i32.load
(tee_local $6
(i32.add
@@ -6707,31 +6623,31 @@
)
(if
(i32.lt_u
- (get_local $4)
+ (get_local $3)
(get_local $1)
)
(call_import $qa)
(block
(i32.store offset=16
- (get_local $3)
(get_local $4)
+ (get_local $3)
)
(i32.store offset=24
- (get_local $4)
(get_local $3)
+ (get_local $4)
)
)
)
)
(if
- (tee_local $4
+ (tee_local $3
(i32.load offset=4
(get_local $6)
)
)
(if
(i32.lt_u
- (get_local $4)
+ (get_local $3)
(i32.load
(i32.const 1224)
)
@@ -6739,17 +6655,17 @@
(call_import $qa)
(block
(i32.store offset=20
- (get_local $3)
(get_local $4)
+ (get_local $3)
)
(i32.store offset=24
- (get_local $4)
(get_local $3)
+ (get_local $4)
)
(set_local $2
(get_local $0)
)
- (set_local $8
+ (set_local $7
(get_local $5)
)
)
@@ -6758,7 +6674,7 @@
(set_local $2
(get_local $0)
)
- (set_local $8
+ (set_local $7
(get_local $5)
)
)
@@ -6768,7 +6684,7 @@
(set_local $2
(get_local $0)
)
- (set_local $8
+ (set_local $7
(get_local $5)
)
)
@@ -6779,7 +6695,7 @@
(if
(i32.ge_u
(get_local $2)
- (get_local $7)
+ (get_local $8)
)
(call_import $qa)
)
@@ -6790,7 +6706,7 @@
(i32.load
(tee_local $5
(i32.add
- (get_local $7)
+ (get_local $8)
(i32.const 4)
)
)
@@ -6817,25 +6733,25 @@
(i32.store offset=4
(get_local $2)
(i32.or
- (get_local $8)
+ (get_local $7)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $2)
- (get_local $8)
+ (get_local $7)
)
- (get_local $8)
+ (get_local $7)
)
(set_local $0
- (get_local $8)
+ (get_local $7)
)
)
(block
(if
(i32.eq
- (get_local $7)
+ (get_local $8)
(i32.load
(i32.const 1232)
)
@@ -6843,12 +6759,12 @@
(block
(i32.store
(i32.const 1220)
- (tee_local $3
+ (tee_local $4
(i32.add
(i32.load
(i32.const 1220)
)
- (get_local $8)
+ (get_local $7)
)
)
)
@@ -6859,7 +6775,7 @@
(i32.store offset=4
(get_local $2)
(i32.or
- (get_local $3)
+ (get_local $4)
(i32.const 1)
)
)
@@ -6885,7 +6801,7 @@
)
(if
(i32.eq
- (get_local $7)
+ (get_local $8)
(i32.load
(i32.const 1228)
)
@@ -6893,12 +6809,12 @@
(block
(i32.store
(i32.const 1216)
- (tee_local $3
+ (tee_local $4
(i32.add
(i32.load
(i32.const 1216)
)
- (get_local $8)
+ (get_local $7)
)
)
)
@@ -6909,27 +6825,27 @@
(i32.store offset=4
(get_local $2)
(i32.or
- (get_local $3)
+ (get_local $4)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $2)
- (get_local $3)
+ (get_local $4)
)
- (get_local $3)
+ (get_local $4)
)
(return)
)
)
- (set_local $3
+ (set_local $4
(i32.add
(i32.and
(get_local $1)
(i32.const -8)
)
- (get_local $8)
+ (get_local $7)
)
)
(set_local $14
@@ -6945,19 +6861,19 @@
(i32.const 256)
)
(block
- (set_local $10
+ (set_local $9
(i32.load offset=12
- (get_local $7)
+ (get_local $8)
)
)
(if
(i32.ne
(tee_local $6
(i32.load offset=8
- (get_local $7)
+ (get_local $8)
)
)
- (tee_local $4
+ (tee_local $3
(i32.add
(i32.const 1248)
(i32.shl
@@ -6985,7 +6901,7 @@
(i32.load offset=12
(get_local $6)
)
- (get_local $7)
+ (get_local $8)
)
(call_import $qa)
)
@@ -6993,7 +6909,7 @@
)
(if
(i32.eq
- (get_local $10)
+ (get_local $9)
(get_local $6)
)
(block
@@ -7017,19 +6933,19 @@
)
(if
(i32.eq
- (get_local $10)
- (get_local $4)
+ (get_local $9)
+ (get_local $3)
)
(set_local $17
(i32.add
- (get_local $10)
+ (get_local $9)
(i32.const 8)
)
)
(block
(if
(i32.lt_u
- (get_local $10)
+ (get_local $9)
(i32.load
(i32.const 1224)
)
@@ -7039,17 +6955,17 @@
(if
(i32.eq
(i32.load
- (tee_local $4
+ (tee_local $3
(i32.add
- (get_local $10)
+ (get_local $9)
(i32.const 8)
)
)
)
- (get_local $7)
+ (get_local $8)
)
(set_local $17
- (get_local $4)
+ (get_local $3)
)
(call_import $qa)
)
@@ -7057,7 +6973,7 @@
)
(i32.store offset=12
(get_local $6)
- (get_local $10)
+ (get_local $9)
)
(i32.store
(get_local $17)
@@ -7067,28 +6983,28 @@
(block
(set_local $6
(i32.load offset=24
- (get_local $7)
+ (get_local $8)
)
)
(block $do-once$10
(if
(i32.eq
- (tee_local $10
+ (tee_local $9
(i32.load offset=12
- (get_local $7)
+ (get_local $8)
)
)
- (get_local $7)
+ (get_local $8)
)
(block
(if
- (tee_local $11
+ (tee_local $10
(i32.load
(tee_local $1
(i32.add
- (tee_local $4
+ (tee_local $3
(i32.add
- (get_local $7)
+ (get_local $8)
(i32.const 16)
)
)
@@ -7099,9 +7015,9 @@
)
(block
(set_local $0
- (get_local $11)
+ (get_local $10)
)
- (set_local $4
+ (set_local $3
(get_local $1)
)
)
@@ -7109,7 +7025,7 @@
(i32.eqz
(tee_local $0
(i32.load
- (get_local $4)
+ (get_local $3)
)
)
)
@@ -7122,55 +7038,52 @@
)
)
(loop $while-in$13
- (block $while-out$12
- (if
- (tee_local $11
- (i32.load
- (tee_local $1
- (i32.add
- (get_local $0)
- (i32.const 20)
- )
+ (if
+ (tee_local $10
+ (i32.load
+ (tee_local $1
+ (i32.add
+ (get_local $0)
+ (i32.const 20)
)
)
)
- (block
- (set_local $0
- (get_local $11)
- )
- (set_local $4
- (get_local $1)
- )
- (br $while-in$13)
- )
)
- (if
- (tee_local $11
- (i32.load
- (tee_local $1
- (i32.add
- (get_local $0)
- (i32.const 16)
- )
+ (block
+ (set_local $0
+ (get_local $10)
+ )
+ (set_local $3
+ (get_local $1)
+ )
+ (br $while-in$13)
+ )
+ )
+ (if
+ (tee_local $10
+ (i32.load
+ (tee_local $1
+ (i32.add
+ (get_local $0)
+ (i32.const 16)
)
)
)
- (block
- (set_local $0
- (get_local $11)
- )
- (set_local $4
- (get_local $1)
- )
- )
- (br $while-out$12)
)
- (br $while-in$13)
+ (block
+ (set_local $0
+ (get_local $10)
+ )
+ (set_local $3
+ (get_local $1)
+ )
+ (br $while-in$13)
+ )
)
)
(if
(i32.lt_u
- (get_local $4)
+ (get_local $3)
(i32.load
(i32.const 1224)
)
@@ -7178,7 +7091,7 @@
(call_import $qa)
(block
(i32.store
- (get_local $4)
+ (get_local $3)
(i32.const 0)
)
(set_local $12
@@ -7192,7 +7105,7 @@
(i32.lt_u
(tee_local $1
(i32.load offset=8
- (get_local $7)
+ (get_local $8)
)
)
(i32.load
@@ -7204,40 +7117,40 @@
(if
(i32.ne
(i32.load
- (tee_local $11
+ (tee_local $10
(i32.add
(get_local $1)
(i32.const 12)
)
)
)
- (get_local $7)
+ (get_local $8)
)
(call_import $qa)
)
(if
(i32.eq
(i32.load
- (tee_local $4
+ (tee_local $3
(i32.add
- (get_local $10)
+ (get_local $9)
(i32.const 8)
)
)
)
- (get_local $7)
+ (get_local $8)
)
(block
(i32.store
- (get_local $11)
(get_local $10)
+ (get_local $9)
)
(i32.store
- (get_local $4)
+ (get_local $3)
(get_local $1)
)
(set_local $12
- (get_local $10)
+ (get_local $9)
)
)
(call_import $qa)
@@ -7250,15 +7163,15 @@
(block
(if
(i32.eq
- (get_local $7)
+ (get_local $8)
(i32.load
(tee_local $5
(i32.add
(i32.const 1512)
(i32.shl
- (tee_local $10
+ (tee_local $9
(i32.load offset=28
- (get_local $7)
+ (get_local $8)
)
)
(i32.const 2)
@@ -7286,7 +7199,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $10)
+ (get_local $9)
)
(i32.const -1)
)
@@ -7309,17 +7222,17 @@
(if
(i32.eq
(i32.load
- (tee_local $10
+ (tee_local $9
(i32.add
(get_local $6)
(i32.const 16)
)
)
)
- (get_local $7)
+ (get_local $8)
)
(i32.store
- (get_local $10)
+ (get_local $9)
(get_local $12)
)
(i32.store offset=20
@@ -7337,7 +7250,7 @@
(if
(i32.lt_u
(get_local $12)
- (tee_local $10
+ (tee_local $9
(i32.load
(i32.const 1224)
)
@@ -7354,7 +7267,7 @@
(i32.load
(tee_local $5
(i32.add
- (get_local $7)
+ (get_local $8)
(i32.const 16)
)
)
@@ -7363,7 +7276,7 @@
(if
(i32.lt_u
(get_local $0)
- (get_local $10)
+ (get_local $9)
)
(call_import $qa)
(block
@@ -7412,16 +7325,16 @@
(i32.store offset=4
(get_local $2)
(i32.or
- (get_local $3)
+ (get_local $4)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $2)
- (get_local $3)
+ (get_local $4)
)
- (get_local $3)
+ (get_local $4)
)
(if
(i32.eq
@@ -7433,17 +7346,17 @@
(block
(i32.store
(i32.const 1216)
- (get_local $3)
+ (get_local $4)
)
(return)
)
(set_local $0
- (get_local $3)
+ (get_local $4)
)
)
)
)
- (set_local $8
+ (set_local $7
(i32.shr_u
(get_local $0)
(i32.const 3)
@@ -7460,7 +7373,7 @@
(i32.const 1248)
(i32.shl
(i32.shl
- (get_local $8)
+ (get_local $7)
(i32.const 1)
)
(i32.const 2)
@@ -7474,10 +7387,10 @@
(i32.const 1208)
)
)
- (tee_local $3
+ (tee_local $4
(i32.shl
(i32.const 1)
- (get_local $8)
+ (get_local $7)
)
)
)
@@ -7485,7 +7398,7 @@
(i32.lt_u
(tee_local $5
(i32.load
- (tee_local $3
+ (tee_local $4
(i32.add
(get_local $1)
(i32.const 8)
@@ -7500,7 +7413,7 @@
(call_import $qa)
(block
(set_local $15
- (get_local $3)
+ (get_local $4)
)
(set_local $13
(get_local $5)
@@ -7512,7 +7425,7 @@
(i32.const 1208)
(i32.or
(get_local $5)
- (get_local $3)
+ (get_local $4)
)
)
(set_local $15
@@ -7545,11 +7458,11 @@
(return)
)
)
- (set_local $3
+ (set_local $4
(i32.add
(i32.const 1512)
(i32.shl
- (tee_local $1
+ (tee_local $7
(if
(tee_local $1
(i32.shr_u
@@ -7568,7 +7481,7 @@
(i32.shr_u
(get_local $0)
(i32.add
- (tee_local $3
+ (tee_local $4
(i32.add
(i32.sub
(i32.const 14)
@@ -7638,7 +7551,7 @@
(i32.const 1)
)
(i32.shl
- (get_local $3)
+ (get_local $4)
(i32.const 1)
)
)
@@ -7652,7 +7565,7 @@
)
(i32.store offset=28
(get_local $2)
- (get_local $1)
+ (get_local $7)
)
(i32.store offset=20
(get_local $2)
@@ -7672,7 +7585,7 @@
(tee_local $5
(i32.shl
(i32.const 1)
- (get_local $1)
+ (get_local $7)
)
)
)
@@ -7685,12 +7598,12 @@
(i32.sub
(i32.const 25)
(i32.shr_u
- (get_local $1)
+ (get_local $7)
(i32.const 1)
)
)
(i32.eq
- (get_local $1)
+ (get_local $7)
(i32.const 31)
)
)
@@ -7698,7 +7611,7 @@
)
(set_local $1
(i32.load
- (get_local $3)
+ (get_local $4)
)
)
(loop $while-in$19
@@ -7726,7 +7639,7 @@
(if
(tee_local $12
(i32.load
- (tee_local $8
+ (tee_local $7
(i32.add
(i32.add
(get_local $1)
@@ -7753,10 +7666,11 @@
(set_local $1
(get_local $12)
)
+ (br $while-in$19)
)
(block
(set_local $18
- (get_local $8)
+ (get_local $7)
)
(set_local $19
(get_local $1)
@@ -7764,10 +7678,8 @@
(set_local $0
(i32.const 127)
)
- (br $while-out$18)
)
)
- (br $while-in$19)
)
)
(if
@@ -7867,12 +7779,12 @@
)
)
(i32.store
- (get_local $3)
+ (get_local $4)
(get_local $2)
)
(i32.store offset=24
(get_local $2)
- (get_local $3)
+ (get_local $4)
)
(i32.store offset=12
(get_local $2)
@@ -7903,22 +7815,21 @@
)
)
(loop $while-in$21
- (block $while-out$20
- (if
- (tee_local $2
- (i32.load
- (get_local $0)
- )
+ (if
+ (tee_local $2
+ (i32.load
+ (get_local $0)
)
+ )
+ (block
(set_local $0
(i32.add
(get_local $2)
(i32.const 8)
)
)
- (br $while-out$20)
+ (br $while-in$21)
)
- (br $while-in$21)
)
)
(i32.store
@@ -7942,8 +7853,7 @@
(local $15 i32)
(local $16 i32)
(local $17 i32)
- (local $18 i32)
- (set_local $11
+ (set_local $10
(get_global $r)
)
(set_global $r
@@ -7952,25 +7862,25 @@
(i32.const 48)
)
)
- (set_local $12
+ (set_local $11
(i32.add
- (get_local $11)
+ (get_local $10)
(i32.const 16)
)
)
- (set_local $13
- (get_local $11)
+ (set_local $12
+ (get_local $10)
)
(i32.store
- (tee_local $3
+ (tee_local $4
(i32.add
- (get_local $11)
+ (get_local $10)
(i32.const 32)
)
)
- (tee_local $8
+ (tee_local $7
(i32.load
- (tee_local $9
+ (tee_local $8
(i32.add
(get_local $0)
(i32.const 28)
@@ -7980,27 +7890,27 @@
)
)
(i32.store offset=4
- (get_local $3)
- (tee_local $10
+ (get_local $4)
+ (tee_local $9
(i32.sub
(i32.load
- (tee_local $14
+ (tee_local $13
(i32.add
(get_local $0)
(i32.const 20)
)
)
)
- (get_local $8)
+ (get_local $7)
)
)
)
(i32.store offset=8
- (get_local $3)
+ (get_local $4)
(get_local $1)
)
(i32.store offset=12
- (get_local $3)
+ (get_local $4)
(get_local $2)
)
(set_local $1
@@ -8009,21 +7919,21 @@
(i32.const 60)
)
)
- (set_local $8
+ (set_local $7
(i32.add
(get_local $0)
(i32.const 44)
)
)
- (set_local $4
- (get_local $3)
+ (set_local $5
+ (get_local $4)
)
- (set_local $3
+ (set_local $4
(i32.const 2)
)
- (set_local $5
+ (set_local $3
(i32.add
- (get_local $10)
+ (get_local $9)
(get_local $2)
)
)
@@ -8031,7 +7941,7 @@
(block $while-out$0
(if
(i32.eq
- (get_local $5)
+ (get_local $3)
(tee_local $6
(if
(i32.load
@@ -8043,51 +7953,51 @@
(get_local $0)
)
(i32.store
- (get_local $13)
+ (get_local $12)
(i32.load
(get_local $1)
)
)
(i32.store offset=4
- (get_local $13)
- (get_local $4)
+ (get_local $12)
+ (get_local $5)
)
(i32.store offset=8
- (get_local $13)
- (get_local $3)
+ (get_local $12)
+ (get_local $4)
)
- (set_local $10
+ (set_local $9
(call $Pa
(call_import $ya
(i32.const 146)
- (get_local $13)
+ (get_local $12)
)
)
)
(call_import $oa
(i32.const 0)
)
- (get_local $10)
+ (get_local $9)
)
(block
(i32.store
- (get_local $12)
+ (get_local $11)
(i32.load
(get_local $1)
)
)
(i32.store offset=4
- (get_local $12)
- (get_local $4)
+ (get_local $11)
+ (get_local $5)
)
(i32.store offset=8
- (get_local $12)
- (get_local $3)
+ (get_local $11)
+ (get_local $4)
)
(call $Pa
(call_import $ya
(i32.const 146)
- (get_local $12)
+ (get_local $11)
)
)
)
@@ -8107,130 +8017,125 @@
(i32.const 0)
)
(block
+ (set_local $16
+ (get_local $5)
+ )
(set_local $17
(get_local $4)
)
- (set_local $18
- (get_local $3)
- )
(set_local $1
(i32.const 8)
)
- (br $while-out$0)
)
- )
- (set_local $10
- (i32.sub
- (get_local $5)
- (get_local $6)
- )
- )
- (set_local $3
- (if
- (i32.gt_u
- (get_local $6)
- (tee_local $5
- (i32.load offset=4
- (get_local $4)
- )
- )
- )
- (block
- (i32.store
- (get_local $9)
- (tee_local $7
- (i32.load
- (get_local $8)
- )
- )
- )
- (i32.store
- (get_local $14)
- (get_local $7)
- )
- (set_local $6
- (i32.sub
- (get_local $6)
- (get_local $5)
- )
- )
- (set_local $7
- (i32.add
- (get_local $4)
- (i32.const 8)
- )
- )
- (set_local $15
- (i32.add
- (get_local $3)
- (i32.const -1)
- )
- )
- (i32.load offset=12
- (get_local $4)
- )
- )
- (if
- (i32.eq
+ (block
+ (set_local $9
+ (i32.sub
(get_local $3)
- (i32.const 2)
+ (get_local $6)
)
- (block
- (i32.store
- (get_local $9)
- (i32.add
- (i32.load
- (get_local $9)
+ )
+ (set_local $5
+ (if
+ (i32.gt_u
+ (get_local $6)
+ (tee_local $14
+ (i32.load offset=4
+ (get_local $5)
)
- (get_local $6)
)
)
- (set_local $7
- (get_local $4)
+ (block
+ (i32.store
+ (get_local $8)
+ (tee_local $3
+ (i32.load
+ (get_local $7)
+ )
+ )
+ )
+ (i32.store
+ (get_local $13)
+ (get_local $3)
+ )
+ (set_local $6
+ (i32.sub
+ (get_local $6)
+ (get_local $14)
+ )
+ )
+ (set_local $3
+ (i32.add
+ (get_local $5)
+ (i32.const 8)
+ )
+ )
+ (set_local $4
+ (i32.add
+ (get_local $4)
+ (i32.const -1)
+ )
+ )
+ (i32.load offset=12
+ (get_local $5)
+ )
)
- (set_local $15
- (i32.const 2)
+ (if
+ (i32.eq
+ (get_local $4)
+ (i32.const 2)
+ )
+ (block
+ (i32.store
+ (get_local $8)
+ (i32.add
+ (i32.load
+ (get_local $8)
+ )
+ (get_local $6)
+ )
+ )
+ (set_local $3
+ (get_local $5)
+ )
+ (set_local $4
+ (i32.const 2)
+ )
+ (get_local $14)
+ )
+ (block
+ (set_local $3
+ (get_local $5)
+ )
+ (get_local $14)
+ )
)
- (get_local $5)
)
- (block
- (set_local $7
- (get_local $4)
- )
- (set_local $15
+ )
+ (i32.store
+ (get_local $3)
+ (i32.add
+ (i32.load
(get_local $3)
)
- (get_local $5)
+ (get_local $6)
)
)
- )
- )
- (i32.store
- (get_local $7)
- (i32.add
- (i32.load
- (get_local $7)
+ (i32.store offset=4
+ (get_local $3)
+ (i32.sub
+ (get_local $5)
+ (get_local $6)
+ )
)
- (get_local $6)
+ (set_local $5
+ (get_local $3)
+ )
+ (set_local $3
+ (get_local $9)
+ )
+ (br $while-in$1)
)
)
- (i32.store offset=4
- (get_local $7)
- (i32.sub
- (get_local $3)
- (get_local $6)
- )
- )
- (set_local $4
- (get_local $7)
- )
- (set_local $3
- (get_local $15)
- )
- (set_local $5
- (get_local $10)
- )
- (br $while-in$1)
)
)
(if
@@ -8242,9 +8147,9 @@
(i32.store offset=16
(get_local $0)
(i32.add
- (tee_local $5
+ (tee_local $3
(i32.load
- (get_local $8)
+ (get_local $7)
)
)
(i32.load offset=48
@@ -8253,16 +8158,16 @@
)
)
(i32.store
- (get_local $9)
- (tee_local $8
- (get_local $5)
+ (get_local $8)
+ (tee_local $7
+ (get_local $3)
)
)
(i32.store
- (get_local $14)
- (get_local $8)
+ (get_local $13)
+ (get_local $7)
)
- (set_local $16
+ (set_local $15
(get_local $2)
)
)
@@ -8277,11 +8182,11 @@
(i32.const 0)
)
(i32.store
- (get_local $9)
+ (get_local $8)
(i32.const 0)
)
(i32.store
- (get_local $14)
+ (get_local $13)
(i32.const 0)
)
(i32.store
@@ -8293,17 +8198,17 @@
(i32.const 32)
)
)
- (set_local $16
+ (set_local $15
(select
(i32.const 0)
(i32.sub
(get_local $2)
(i32.load offset=4
- (get_local $17)
+ (get_local $16)
)
)
(i32.eq
- (get_local $18)
+ (get_local $17)
(i32.const 2)
)
)
@@ -8312,9 +8217,9 @@
)
)
(set_global $r
- (get_local $11)
+ (get_local $10)
)
- (get_local $16)
+ (get_local $15)
)
(func $Wa (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
@@ -8334,10 +8239,10 @@
)
)
(block
- (set_local $7
+ (set_local $6
(get_local $5)
)
- (set_local $6
+ (set_local $7
(i32.const 5)
)
)
@@ -8349,12 +8254,12 @@
(i32.const 0)
)
(block
- (set_local $7
+ (set_local $6
(i32.load
(get_local $3)
)
)
- (set_local $6
+ (set_local $7
(i32.const 5)
)
)
@@ -8363,11 +8268,11 @@
(block $label$break$a
(if
(i32.eq
- (get_local $6)
+ (get_local $7)
(i32.const 5)
)
(block
- (set_local $6
+ (set_local $4
(tee_local $3
(i32.load
(tee_local $5
@@ -8382,7 +8287,7 @@
(if
(i32.lt_u
(i32.sub
- (get_local $7)
+ (get_local $6)
(get_local $3)
)
(get_local $1)
@@ -8407,7 +8312,7 @@
(br $label$break$a)
)
)
- (set_local $0
+ (set_local $1
(block $label$break$b
(if
(i32.gt_s
@@ -8421,57 +8326,48 @@
(get_local $1)
)
(loop $while-in$3
- (block $while-out$2
- (if
- (i32.eqz
- (get_local $3)
+ (if
+ (i32.eqz
+ (get_local $3)
+ )
+ (block
+ (set_local $2
+ (i32.const 0)
)
- (block
- (set_local $2
- (get_local $0)
- )
- (set_local $3
- (i32.const 0)
- )
- (br $label$break$b
- (get_local $1)
- )
+ (br $label$break$b
+ (get_local $1)
)
)
- (if
- (i32.eq
- (i32.load8_s
- (i32.add
- (get_local $0)
- (tee_local $7
- (i32.add
- (get_local $3)
- (i32.const -1)
- )
+ )
+ (if
+ (i32.ne
+ (i32.load8_s
+ (i32.add
+ (get_local $0)
+ (tee_local $6
+ (i32.add
+ (get_local $3)
+ (i32.const -1)
)
)
)
- (i32.const 10)
)
- (block
- (set_local $4
- (get_local $3)
- )
- (br $while-out$2)
- )
- (set_local $3
- (get_local $7)
- )
+ (i32.const 10)
)
- (br $while-in$3)
+ (block
+ (set_local $3
+ (get_local $6)
+ )
+ (br $while-in$3)
+ )
)
)
- (br_if $label$break$a
+ (if
(i32.lt_u
(call_indirect $FUNCSIG$iiii
(get_local $2)
(get_local $0)
- (get_local $4)
+ (get_local $3)
(i32.add
(i32.and
(i32.load offset=36
@@ -8482,33 +8378,36 @@
(i32.const 2)
)
)
- (get_local $4)
+ (get_local $3)
+ )
+ (block
+ (set_local $4
+ (get_local $3)
+ )
+ (br $label$break$a)
)
)
- (set_local $2
+ (set_local $0
(i32.add
(get_local $0)
- (get_local $4)
+ (get_local $3)
)
)
- (set_local $6
+ (set_local $4
(i32.load
(get_local $5)
)
)
- (set_local $3
- (get_local $4)
+ (set_local $2
+ (get_local $3)
)
(i32.sub
(get_local $1)
- (get_local $4)
+ (get_local $3)
)
)
(block
(set_local $2
- (get_local $0)
- )
- (set_local $3
(i32.const 0)
)
(get_local $1)
@@ -8518,9 +8417,9 @@
)
(drop
(call $jb
- (get_local $6)
- (get_local $2)
+ (get_local $4)
(get_local $0)
+ (get_local $1)
)
)
(i32.store
@@ -8529,13 +8428,13 @@
(i32.load
(get_local $5)
)
- (get_local $0)
+ (get_local $1)
)
)
(set_local $4
(i32.add
- (get_local $3)
- (get_local $0)
+ (get_local $2)
+ (get_local $1)
)
)
)
@@ -8562,53 +8461,47 @@
(get_local $3)
)
(loop $while-in$2
- (block $while-out$1
- (if
- (i32.eqz
- (i32.load8_s
- (get_local $0)
- )
- )
- (block
- (set_local $5
- (get_local $4)
- )
- (br $label$break$a)
+ (if
+ (i32.eqz
+ (i32.load8_s
+ (get_local $0)
)
)
- (if
- (i32.eqz
- (i32.and
- (tee_local $4
- (tee_local $0
- (i32.add
- (get_local $0)
- (i32.const 1)
- )
- )
+ (block
+ (set_local $5
+ (get_local $4)
+ )
+ (br $label$break$a)
+ )
+ )
+ (br_if $while-in$2
+ (i32.and
+ (tee_local $4
+ (tee_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
)
- (i32.const 3)
)
)
- (block
- (set_local $2
- (get_local $0)
- )
- (set_local $1
- (i32.const 4)
- )
- (br $while-out$1)
- )
+ (i32.const 3)
)
- (br $while-in$2)
+ )
+ (block
+ (set_local $1
+ (get_local $0)
+ )
+ (set_local $2
+ (i32.const 4)
+ )
)
)
)
(block
- (set_local $2
+ (set_local $1
(get_local $0)
)
- (set_local $1
+ (set_local $2
(i32.const 4)
)
)
@@ -8616,49 +8509,51 @@
)
(if
(i32.eq
- (get_local $1)
+ (get_local $2)
(i32.const 4)
)
(block
- (set_local $1
- (get_local $2)
+ (set_local $2
+ (get_local $1)
)
(loop $while-in$4
- (block $while-out$3
- (if
- (i32.and
- (i32.xor
- (i32.and
- (tee_local $2
- (i32.load
- (get_local $1)
- )
+ (if
+ (i32.and
+ (i32.xor
+ (i32.and
+ (tee_local $1
+ (i32.load
+ (get_local $2)
)
- (i32.const -2139062144)
)
(i32.const -2139062144)
)
+ (i32.const -2139062144)
+ )
+ (i32.add
+ (get_local $1)
+ (i32.const -16843009)
+ )
+ )
+ (set_local $0
+ (get_local $2)
+ )
+ (block
+ (set_local $2
(i32.add
(get_local $2)
- (i32.const -16843009)
- )
- )
- (br $while-out$3)
- (set_local $1
- (i32.add
- (get_local $1)
(i32.const 4)
)
)
+ (br $while-in$4)
)
- (br $while-in$4)
)
)
(if
(i32.shr_s
(i32.shl
(i32.and
- (get_local $2)
+ (get_local $1)
(i32.const 255)
)
(i32.const 24)
@@ -8666,32 +8561,31 @@
(i32.const 24)
)
(block
- (set_local $2
- (get_local $1)
+ (set_local $1
+ (get_local $0)
)
(loop $while-in$6
- (block $while-out$5
- (if
- (i32.load8_s
- (tee_local $1
- (i32.add
- (get_local $2)
- (i32.const 1)
- )
+ (if
+ (i32.load8_s
+ (tee_local $0
+ (i32.add
+ (get_local $1)
+ (i32.const 1)
)
)
- (set_local $2
- (get_local $1)
- )
- (br $while-out$5)
)
- (br $while-in$6)
+ (block
+ (set_local $1
+ (get_local $0)
+ )
+ (br $while-in$6)
+ )
)
)
)
)
(set_local $5
- (get_local $1)
+ (get_local $0)
)
)
)
@@ -8721,11 +8615,10 @@
)
)
(set_local $2
- (i32.eq
+ (i32.eqz
(call $Ya
(get_local $0)
)
- (i32.const 0)
)
)
(set_local $1
@@ -8775,70 +8668,62 @@
(get_local $0)
)
(loop $while-in$3
- (block $while-out$2
- (set_local $0
- (if
- (i32.gt_s
- (i32.load offset=76
- (get_local $1)
- )
- (i32.const -1)
- )
- (call $Ya
+ (set_local $0
+ (if
+ (i32.gt_s
+ (i32.load offset=76
(get_local $1)
)
- (i32.const 0)
+ (i32.const -1)
)
+ (call $Ya
+ (get_local $1)
+ )
+ (i32.const 0)
)
- (set_local $2
- (if
- (i32.gt_u
- (i32.load offset=20
- (get_local $1)
- )
- (i32.load offset=28
- (get_local $1)
- )
+ )
+ (set_local $2
+ (if
+ (i32.gt_u
+ (i32.load offset=20
+ (get_local $1)
)
- (i32.or
- (call $$a
- (get_local $1)
- )
- (get_local $2)
+ (i32.load offset=28
+ (get_local $1)
+ )
+ )
+ (i32.or
+ (call $$a
+ (get_local $1)
)
(get_local $2)
)
+ (get_local $2)
)
- (if
- (get_local $0)
- (call $Ta
+ )
+ (if
+ (get_local $0)
+ (call $Ta
+ (get_local $1)
+ )
+ )
+ (br_if $while-in$3
+ (tee_local $1
+ (i32.load offset=56
(get_local $1)
)
)
- (if
- (i32.eqz
- (tee_local $1
- (i32.load offset=56
- (get_local $1)
- )
- )
- )
- (block
- (set_local $0
- (get_local $2)
- )
- (br $while-out$2)
- )
- )
- (br $while-in$3)
)
)
)
+ (set_local $2
+ (get_local $0)
+ )
)
(call_import $xa
(i32.const 1188)
)
- (get_local $0)
+ (get_local $2)
)
)
)
@@ -9080,21 +8965,23 @@
)
)
)
- (call_indirect $FUNCSIG$iiii
- (get_local $0)
- (i32.sub
- (get_local $2)
- (get_local $6)
- )
- (i32.const 1)
- (i32.add
- (i32.and
- (i32.load offset=40
- (get_local $0)
- )
- (i32.const 3)
+ (drop
+ (call_indirect $FUNCSIG$iiii
+ (get_local $0)
+ (i32.sub
+ (get_local $2)
+ (get_local $6)
)
- (i32.const 2)
+ (i32.const 1)
+ (i32.add
+ (i32.and
+ (i32.load offset=40
+ (get_local $0)
+ )
+ (i32.const 3)
+ )
+ (i32.const 2)
+ )
)
)
)
@@ -9201,75 +9088,75 @@
)
)
(loop $while-in$3
- (block $while-out$2
- (br_if $while-out$2
- (i32.lt_s
- (get_local $2)
- (i32.const 4)
- )
+ (if
+ (i32.ge_s
+ (get_local $2)
+ (i32.const 4)
)
- (i32.store
- (get_local $0)
- (i32.load
- (get_local $1)
- )
- )
- (set_local $0
- (i32.add
+ (block
+ (i32.store
(get_local $0)
- (i32.const 4)
+ (i32.load
+ (get_local $1)
+ )
)
- )
- (set_local $1
- (i32.add
- (get_local $1)
- (i32.const 4)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 4)
+ )
)
- )
- (set_local $2
- (i32.sub
- (get_local $2)
- (i32.const 4)
+ (set_local $1
+ (i32.add
+ (get_local $1)
+ (i32.const 4)
+ )
)
+ (set_local $2
+ (i32.sub
+ (get_local $2)
+ (i32.const 4)
+ )
+ )
+ (br $while-in$3)
)
- (br $while-in$3)
)
)
)
)
(loop $while-in$5
- (block $while-out$4
- (br_if $while-out$4
- (i32.le_s
- (get_local $2)
- (i32.const 0)
- )
+ (if
+ (i32.gt_s
+ (get_local $2)
+ (i32.const 0)
)
- (i32.store8
- (get_local $0)
- (i32.load8_s
- (get_local $1)
- )
- )
- (set_local $0
- (i32.add
+ (block
+ (i32.store8
(get_local $0)
- (i32.const 1)
+ (i32.load8_s
+ (get_local $1)
+ )
)
- )
- (set_local $1
- (i32.add
- (get_local $1)
- (i32.const 1)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
)
- )
- (set_local $2
- (i32.sub
- (get_local $2)
- (i32.const 1)
+ (set_local $1
+ (i32.add
+ (get_local $1)
+ (i32.const 1)
+ )
)
+ (set_local $2
+ (i32.sub
+ (get_local $2)
+ (i32.const 1)
+ )
+ )
+ (br $while-in$5)
)
- (br $while-in$5)
)
)
(get_local $3)
@@ -9344,70 +9231,70 @@
)
)
(loop $while-in$1
- (block $while-out$0
- (br_if $while-out$0
- (i32.ge_s
- (get_local $0)
- (get_local $3)
- )
- )
- (i32.store8
+ (if
+ (i32.lt_s
(get_local $0)
- (get_local $1)
+ (get_local $3)
)
- (set_local $0
- (i32.add
+ (block
+ (i32.store8
(get_local $0)
- (i32.const 1)
+ (get_local $1)
)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ (br $while-in$1)
)
- (br $while-in$1)
)
)
)
)
(loop $while-in$3
- (block $while-out$2
- (br_if $while-out$2
- (i32.ge_s
- (get_local $0)
- (get_local $6)
- )
- )
- (i32.store
+ (if
+ (i32.lt_s
(get_local $0)
- (get_local $5)
+ (get_local $6)
)
- (set_local $0
- (i32.add
+ (block
+ (i32.store
(get_local $0)
- (i32.const 4)
+ (get_local $5)
)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 4)
+ )
+ )
+ (br $while-in$3)
)
- (br $while-in$3)
)
)
)
)
(loop $while-in$5
- (block $while-out$4
- (br_if $while-out$4
- (i32.ge_s
- (get_local $0)
- (get_local $4)
- )
- )
- (i32.store8
+ (if
+ (i32.lt_s
(get_local $0)
- (get_local $1)
+ (get_local $4)
)
- (set_local $0
- (i32.add
+ (block
+ (i32.store8
(get_local $0)
- (i32.const 1)
+ (get_local $1)
)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ (br $while-in$5)
)
- (br $while-in$5)
)
)
(i32.sub
@@ -9612,11 +9499,10 @@
)
(block
(set_local $5
- (i32.eq
+ (i32.eqz
(call $Ya
(get_local $3)
)
- (i32.const 0)
)
)
(set_local $0
diff --git a/test/memorygrowth.fromasm.imprecise b/test/memorygrowth.fromasm.imprecise
index aea1276..4e4891a 100644
--- a/test/memorygrowth.fromasm.imprecise
+++ b/test/memorygrowth.fromasm.imprecise
@@ -129,7 +129,8 @@
(local $52 i32)
(local $53 i32)
(local $54 i32)
- (set_local $31
+ (local $55 i32)
+ (set_local $25
(get_global $r)
)
(set_global $r
@@ -138,8 +139,8 @@
(i32.const 16)
)
)
- (set_local $15
- (get_local $31)
+ (set_local $13
+ (get_local $25)
)
(block $do-once$0
(if
@@ -150,16 +151,16 @@
(block
(if
(i32.and
- (tee_local $12
+ (tee_local $5
(i32.shr_u
- (tee_local $16
+ (tee_local $6
(i32.load
(i32.const 1208)
)
)
- (tee_local $2
+ (tee_local $0
(i32.shr_u
- (tee_local $14
+ (tee_local $2
(select
(i32.const 16)
(i32.and
@@ -183,15 +184,15 @@
(i32.const 3)
)
(block
- (set_local $11
+ (set_local $7
(i32.load
- (tee_local $27
+ (tee_local $5
(i32.add
- (tee_local $29
+ (tee_local $2
(i32.load
- (tee_local $25
+ (tee_local $4
(i32.add
- (tee_local $5
+ (tee_local $8
(i32.add
(i32.const 1248)
(i32.shl
@@ -200,12 +201,12 @@
(i32.add
(i32.xor
(i32.and
- (get_local $12)
+ (get_local $5)
(i32.const 1)
)
(i32.const 1)
)
- (get_local $2)
+ (get_local $0)
)
)
(i32.const 1)
@@ -226,13 +227,13 @@
)
(if
(i32.eq
- (get_local $5)
- (get_local $11)
+ (get_local $8)
+ (get_local $7)
)
(i32.store
(i32.const 1208)
(i32.and
- (get_local $16)
+ (get_local $6)
(i32.xor
(i32.shl
(i32.const 1)
@@ -245,7 +246,7 @@
(block
(if
(i32.lt_u
- (get_local $11)
+ (get_local $7)
(i32.load
(i32.const 1224)
)
@@ -255,23 +256,23 @@
(if
(i32.eq
(i32.load
- (tee_local $19
+ (tee_local $17
(i32.add
- (get_local $11)
+ (get_local $7)
(i32.const 12)
)
)
)
- (get_local $29)
+ (get_local $2)
)
(block
(i32.store
- (get_local $19)
- (get_local $5)
+ (get_local $17)
+ (get_local $8)
)
(i32.store
- (get_local $25)
- (get_local $11)
+ (get_local $4)
+ (get_local $7)
)
)
(call_import $qa)
@@ -279,9 +280,9 @@
)
)
(i32.store offset=4
- (get_local $29)
+ (get_local $2)
(i32.or
- (tee_local $11
+ (tee_local $7
(i32.shl
(get_local $0)
(i32.const 3)
@@ -291,34 +292,34 @@
)
)
(i32.store
- (tee_local $25
+ (tee_local $4
(i32.add
(i32.add
- (get_local $29)
- (get_local $11)
+ (get_local $2)
+ (get_local $7)
)
(i32.const 4)
)
)
(i32.or
(i32.load
- (get_local $25)
+ (get_local $4)
)
(i32.const 1)
)
)
(set_global $r
- (get_local $31)
+ (get_local $25)
)
(return
- (get_local $27)
+ (get_local $5)
)
)
)
(if
(i32.gt_u
- (get_local $14)
- (tee_local $25
+ (get_local $2)
+ (tee_local $4
(i32.load
(i32.const 1216)
)
@@ -326,37 +327,37 @@
)
(block
(if
- (get_local $12)
+ (get_local $5)
(block
- (set_local $5
+ (set_local $8
(i32.and
(i32.shr_u
- (tee_local $11
+ (tee_local $7
(i32.add
(i32.and
- (tee_local $5
+ (tee_local $8
(i32.and
(i32.shl
- (get_local $12)
- (get_local $2)
+ (get_local $5)
+ (get_local $0)
)
(i32.or
- (tee_local $11
+ (tee_local $7
(i32.shl
(i32.const 2)
- (get_local $2)
+ (get_local $0)
)
)
(i32.sub
(i32.const 0)
- (get_local $11)
+ (get_local $7)
)
)
)
)
(i32.sub
(i32.const 0)
- (get_local $5)
+ (get_local $8)
)
)
(i32.const -1)
@@ -367,32 +368,32 @@
(i32.const 16)
)
)
- (set_local $5
+ (set_local $8
(i32.load
- (tee_local $19
+ (tee_local $17
(i32.add
- (tee_local $8
+ (tee_local $10
(i32.load
- (tee_local $0
+ (tee_local $15
(i32.add
(tee_local $3
(i32.add
(i32.const 1248)
(i32.shl
(i32.shl
- (tee_local $7
+ (tee_local $9
(i32.add
(i32.or
(i32.or
(i32.or
(i32.or
- (tee_local $11
+ (tee_local $7
(i32.and
(i32.shr_u
- (tee_local $19
+ (tee_local $17
(i32.shr_u
- (get_local $11)
- (get_local $5)
+ (get_local $7)
+ (get_local $8)
)
)
(i32.const 5)
@@ -400,15 +401,15 @@
(i32.const 8)
)
)
- (get_local $5)
+ (get_local $8)
)
- (tee_local $19
+ (tee_local $17
(i32.and
(i32.shr_u
- (tee_local $8
+ (tee_local $10
(i32.shr_u
- (get_local $19)
- (get_local $11)
+ (get_local $17)
+ (get_local $7)
)
)
(i32.const 2)
@@ -417,13 +418,13 @@
)
)
)
- (tee_local $8
+ (tee_local $10
(i32.and
(i32.shr_u
(tee_local $3
(i32.shr_u
- (get_local $8)
- (get_local $19)
+ (get_local $10)
+ (get_local $17)
)
)
(i32.const 1)
@@ -435,10 +436,10 @@
(tee_local $3
(i32.and
(i32.shr_u
- (tee_local $0
+ (tee_local $15
(i32.shr_u
(get_local $3)
- (get_local $8)
+ (get_local $10)
)
)
(i32.const 1)
@@ -448,7 +449,7 @@
)
)
(i32.shr_u
- (get_local $0)
+ (get_local $15)
(get_local $3)
)
)
@@ -472,30 +473,30 @@
(if
(i32.eq
(get_local $3)
- (get_local $5)
+ (get_local $8)
)
(block
(i32.store
(i32.const 1208)
(i32.and
- (get_local $16)
+ (get_local $6)
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $7)
+ (get_local $9)
)
(i32.const -1)
)
)
)
- (set_local $39
- (get_local $25)
+ (set_local $34
+ (get_local $4)
)
)
(block
(if
(i32.lt_u
- (get_local $5)
+ (get_local $8)
(i32.load
(i32.const 1224)
)
@@ -505,25 +506,25 @@
(if
(i32.eq
(i32.load
- (tee_local $11
+ (tee_local $7
(i32.add
- (get_local $5)
+ (get_local $8)
(i32.const 12)
)
)
)
- (get_local $8)
+ (get_local $10)
)
(block
(i32.store
- (get_local $11)
+ (get_local $7)
(get_local $3)
)
(i32.store
- (get_local $0)
- (get_local $5)
+ (get_local $15)
+ (get_local $8)
)
- (set_local $39
+ (set_local $34
(i32.load
(i32.const 1216)
)
@@ -534,27 +535,27 @@
)
)
(i32.store offset=4
- (get_local $8)
+ (get_local $10)
(i32.or
- (get_local $14)
+ (get_local $2)
(i32.const 3)
)
)
(i32.store offset=4
- (tee_local $0
+ (tee_local $15
(i32.add
- (get_local $8)
- (get_local $14)
+ (get_local $10)
+ (get_local $2)
)
)
(i32.or
- (tee_local $5
+ (tee_local $8
(i32.sub
(i32.shl
- (get_local $7)
+ (get_local $9)
(i32.const 3)
)
- (get_local $14)
+ (get_local $2)
)
)
(i32.const 1)
@@ -562,27 +563,27 @@
)
(i32.store
(i32.add
- (get_local $0)
- (get_local $5)
+ (get_local $15)
+ (get_local $8)
)
- (get_local $5)
+ (get_local $8)
)
(if
- (get_local $39)
+ (get_local $34)
(block
(set_local $3
(i32.load
(i32.const 1228)
)
)
- (set_local $16
+ (set_local $6
(i32.add
(i32.const 1248)
(i32.shl
(i32.shl
- (tee_local $25
+ (tee_local $4
(i32.shr_u
- (get_local $39)
+ (get_local $34)
(i32.const 3)
)
)
@@ -594,25 +595,25 @@
)
(if
(i32.and
- (tee_local $2
+ (tee_local $0
(i32.load
(i32.const 1208)
)
)
- (tee_local $12
+ (tee_local $5
(i32.shl
(i32.const 1)
- (get_local $25)
+ (get_local $4)
)
)
)
(if
(i32.lt_u
- (tee_local $2
+ (tee_local $0
(i32.load
- (tee_local $12
+ (tee_local $5
(i32.add
- (get_local $16)
+ (get_local $6)
(i32.const 8)
)
)
@@ -624,11 +625,11 @@
)
(call_import $qa)
(block
- (set_local $44
- (get_local $12)
+ (set_local $41
+ (get_local $5)
)
- (set_local $29
- (get_local $2)
+ (set_local $27
+ (get_local $0)
)
)
)
@@ -636,72 +637,72 @@
(i32.store
(i32.const 1208)
(i32.or
- (get_local $2)
- (get_local $12)
+ (get_local $0)
+ (get_local $5)
)
)
- (set_local $44
+ (set_local $41
(i32.add
- (get_local $16)
+ (get_local $6)
(i32.const 8)
)
)
- (set_local $29
- (get_local $16)
+ (set_local $27
+ (get_local $6)
)
)
)
(i32.store
- (get_local $44)
+ (get_local $41)
(get_local $3)
)
(i32.store offset=12
- (get_local $29)
+ (get_local $27)
(get_local $3)
)
(i32.store offset=8
(get_local $3)
- (get_local $29)
+ (get_local $27)
)
(i32.store offset=12
(get_local $3)
- (get_local $16)
+ (get_local $6)
)
)
)
(i32.store
(i32.const 1216)
- (get_local $5)
+ (get_local $8)
)
(i32.store
(i32.const 1228)
- (get_local $0)
+ (get_local $15)
)
(set_global $r
- (get_local $31)
+ (get_local $25)
)
(return
- (get_local $19)
+ (get_local $17)
)
)
)
(if
- (tee_local $0
+ (tee_local $15
(i32.load
(i32.const 1212)
)
)
(block
- (set_local $0
+ (set_local $15
(i32.and
(i32.shr_u
- (tee_local $5
+ (tee_local $8
(i32.add
(i32.and
- (get_local $0)
+ (get_local $15)
(i32.sub
(i32.const 0)
- (get_local $0)
+ (get_local $15)
)
)
(i32.const -1)
@@ -712,11 +713,11 @@
(i32.const 16)
)
)
- (set_local $2
+ (set_local $0
(i32.sub
(i32.and
(i32.load offset=4
- (tee_local $25
+ (tee_local $4
(i32.load
(i32.add
(i32.shl
@@ -725,13 +726,13 @@
(i32.or
(i32.or
(i32.or
- (tee_local $5
+ (tee_local $8
(i32.and
(i32.shr_u
- (tee_local $16
+ (tee_local $6
(i32.shr_u
- (get_local $5)
- (get_local $0)
+ (get_local $8)
+ (get_local $15)
)
)
(i32.const 5)
@@ -739,15 +740,15 @@
(i32.const 8)
)
)
- (get_local $0)
+ (get_local $15)
)
- (tee_local $16
+ (tee_local $6
(i32.and
(i32.shr_u
(tee_local $3
(i32.shr_u
- (get_local $16)
- (get_local $5)
+ (get_local $6)
+ (get_local $8)
)
)
(i32.const 2)
@@ -759,10 +760,10 @@
(tee_local $3
(i32.and
(i32.shr_u
- (tee_local $2
+ (tee_local $0
(i32.shr_u
(get_local $3)
- (get_local $16)
+ (get_local $6)
)
)
(i32.const 1)
@@ -771,12 +772,12 @@
)
)
)
- (tee_local $2
+ (tee_local $0
(i32.and
(i32.shr_u
- (tee_local $12
+ (tee_local $5
(i32.shr_u
- (get_local $2)
+ (get_local $0)
(get_local $3)
)
)
@@ -787,8 +788,8 @@
)
)
(i32.shr_u
- (get_local $12)
- (get_local $2)
+ (get_local $5)
+ (get_local $0)
)
)
(i32.const 2)
@@ -800,77 +801,77 @@
)
(i32.const -8)
)
- (get_local $14)
+ (get_local $2)
)
)
- (set_local $12
- (get_local $25)
+ (set_local $5
+ (get_local $4)
)
(set_local $3
- (get_local $25)
+ (get_local $4)
)
(loop $while-in$7
(block $while-out$6
(if
- (tee_local $25
+ (tee_local $4
(i32.load offset=16
- (get_local $12)
+ (get_local $5)
)
)
- (set_local $0
- (get_local $25)
+ (set_local $7
+ (get_local $4)
)
(if
- (tee_local $16
+ (tee_local $6
(i32.load offset=20
- (get_local $12)
+ (get_local $5)
)
)
- (set_local $0
- (get_local $16)
+ (set_local $7
+ (get_local $6)
)
(block
- (set_local $32
- (get_local $2)
+ (set_local $7
+ (get_local $0)
)
- (set_local $26
+ (set_local $1
(get_local $3)
)
(br $while-out$6)
)
)
)
- (set_local $16
+ (set_local $6
(i32.lt_u
- (tee_local $25
+ (tee_local $4
(i32.sub
(i32.and
(i32.load offset=4
- (get_local $0)
+ (get_local $7)
)
(i32.const -8)
)
- (get_local $14)
+ (get_local $2)
)
)
- (get_local $2)
+ (get_local $0)
)
)
- (set_local $2
+ (set_local $0
(select
- (get_local $25)
- (get_local $2)
- (get_local $16)
+ (get_local $4)
+ (get_local $0)
+ (get_local $6)
)
)
- (set_local $12
- (get_local $0)
+ (set_local $5
+ (get_local $7)
)
(set_local $3
(select
- (get_local $0)
+ (get_local $7)
(get_local $3)
- (get_local $16)
+ (get_local $6)
)
)
(br $while-in$7)
@@ -878,7 +879,7 @@
)
(if
(i32.lt_u
- (get_local $26)
+ (get_local $1)
(tee_local $3
(i32.load
(i32.const 1224)
@@ -889,72 +890,66 @@
)
(if
(i32.ge_u
- (get_local $26)
- (tee_local $12
+ (get_local $1)
+ (tee_local $5
(i32.add
- (get_local $26)
- (get_local $14)
+ (get_local $1)
+ (get_local $2)
)
)
)
(call_import $qa)
)
- (set_local $2
+ (set_local $0
(i32.load offset=24
- (get_local $26)
+ (get_local $1)
)
)
(block $do-once$8
(if
(i32.eq
- (tee_local $19
+ (tee_local $17
(i32.load offset=12
- (get_local $26)
+ (get_local $1)
)
)
- (get_local $26)
+ (get_local $1)
)
(block
(if
- (tee_local $7
+ (tee_local $9
(i32.load
- (tee_local $8
+ (tee_local $10
(i32.add
- (get_local $26)
+ (get_local $1)
(i32.const 20)
)
)
)
)
(block
- (set_local $11
- (get_local $7)
+ (set_local $4
+ (get_local $9)
)
- (set_local $0
- (get_local $8)
+ (set_local $6
+ (get_local $10)
)
)
(if
- (tee_local $25
- (i32.load
- (tee_local $16
- (i32.add
- (get_local $26)
- (i32.const 16)
+ (i32.eqz
+ (tee_local $4
+ (i32.load
+ (tee_local $6
+ (i32.add
+ (get_local $1)
+ (i32.const 16)
+ )
)
)
)
)
(block
- (set_local $11
- (get_local $25)
- )
- (set_local $0
- (get_local $16)
- )
- )
- (block
- (set_local $27
+ (set_local $23
(i32.const 0)
)
(br $do-once$8)
@@ -962,65 +957,62 @@
)
)
(loop $while-in$11
- (block $while-out$10
- (if
- (tee_local $7
- (i32.load
- (tee_local $8
- (i32.add
- (get_local $11)
- (i32.const 20)
- )
+ (if
+ (tee_local $9
+ (i32.load
+ (tee_local $10
+ (i32.add
+ (get_local $4)
+ (i32.const 20)
)
)
)
- (block
- (set_local $11
- (get_local $7)
- )
- (set_local $0
- (get_local $8)
- )
- (br $while-in$11)
- )
)
- (if
- (tee_local $7
- (i32.load
- (tee_local $8
- (i32.add
- (get_local $11)
- (i32.const 16)
- )
+ (block
+ (set_local $4
+ (get_local $9)
+ )
+ (set_local $6
+ (get_local $10)
+ )
+ (br $while-in$11)
+ )
+ )
+ (if
+ (tee_local $9
+ (i32.load
+ (tee_local $10
+ (i32.add
+ (get_local $4)
+ (i32.const 16)
)
)
)
- (block
- (set_local $11
- (get_local $7)
- )
- (set_local $0
- (get_local $8)
- )
- )
- (br $while-out$10)
)
- (br $while-in$11)
+ (block
+ (set_local $4
+ (get_local $9)
+ )
+ (set_local $6
+ (get_local $10)
+ )
+ (br $while-in$11)
+ )
)
)
(if
(i32.lt_u
- (get_local $0)
+ (get_local $6)
(get_local $3)
)
(call_import $qa)
(block
(i32.store
- (get_local $0)
+ (get_local $6)
(i32.const 0)
)
- (set_local $27
- (get_local $11)
+ (set_local $23
+ (get_local $4)
)
)
)
@@ -1028,9 +1020,9 @@
(block
(if
(i32.lt_u
- (tee_local $8
+ (tee_local $10
(i32.load offset=8
- (get_local $26)
+ (get_local $1)
)
)
(get_local $3)
@@ -1040,40 +1032,40 @@
(if
(i32.ne
(i32.load
- (tee_local $7
+ (tee_local $9
(i32.add
- (get_local $8)
+ (get_local $10)
(i32.const 12)
)
)
)
- (get_local $26)
+ (get_local $1)
)
(call_import $qa)
)
(if
(i32.eq
(i32.load
- (tee_local $16
+ (tee_local $6
(i32.add
- (get_local $19)
+ (get_local $17)
(i32.const 8)
)
)
)
- (get_local $26)
+ (get_local $1)
)
(block
(i32.store
- (get_local $7)
- (get_local $19)
+ (get_local $9)
+ (get_local $17)
)
(i32.store
- (get_local $16)
- (get_local $8)
+ (get_local $6)
+ (get_local $10)
)
- (set_local $27
- (get_local $19)
+ (set_local $23
+ (get_local $17)
)
)
(call_import $qa)
@@ -1083,19 +1075,19 @@
)
(block $do-once$12
(if
- (get_local $2)
+ (get_local $0)
(block
(if
(i32.eq
- (get_local $26)
+ (get_local $1)
(i32.load
(tee_local $3
(i32.add
(i32.const 1512)
(i32.shl
- (tee_local $19
+ (tee_local $17
(i32.load offset=28
- (get_local $26)
+ (get_local $1)
)
)
(i32.const 2)
@@ -1107,11 +1099,11 @@
(block
(i32.store
(get_local $3)
- (get_local $27)
+ (get_local $23)
)
(if
(i32.eqz
- (get_local $27)
+ (get_local $23)
)
(block
(i32.store
@@ -1123,7 +1115,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $19)
+ (get_local $17)
)
(i32.const -1)
)
@@ -1136,7 +1128,7 @@
(block
(if
(i32.lt_u
- (get_local $2)
+ (get_local $0)
(i32.load
(i32.const 1224)
)
@@ -1146,35 +1138,35 @@
(if
(i32.eq
(i32.load
- (tee_local $19
+ (tee_local $17
(i32.add
- (get_local $2)
+ (get_local $0)
(i32.const 16)
)
)
)
- (get_local $26)
+ (get_local $1)
)
(i32.store
- (get_local $19)
- (get_local $27)
+ (get_local $17)
+ (get_local $23)
)
(i32.store offset=20
- (get_local $2)
- (get_local $27)
+ (get_local $0)
+ (get_local $23)
)
)
(br_if $do-once$12
(i32.eqz
- (get_local $27)
+ (get_local $23)
)
)
)
)
(if
(i32.lt_u
- (get_local $27)
- (tee_local $19
+ (get_local $23)
+ (tee_local $17
(i32.load
(i32.const 1224)
)
@@ -1183,29 +1175,29 @@
(call_import $qa)
)
(i32.store offset=24
- (get_local $27)
- (get_local $2)
+ (get_local $23)
+ (get_local $0)
)
(if
(tee_local $3
(i32.load offset=16
- (get_local $26)
+ (get_local $1)
)
)
(if
(i32.lt_u
(get_local $3)
- (get_local $19)
+ (get_local $17)
)
(call_import $qa)
(block
(i32.store offset=16
- (get_local $27)
+ (get_local $23)
(get_local $3)
)
(i32.store offset=24
(get_local $3)
- (get_local $27)
+ (get_local $23)
)
)
)
@@ -1213,7 +1205,7 @@
(if
(tee_local $3
(i32.load offset=20
- (get_local $26)
+ (get_local $1)
)
)
(if
@@ -1226,12 +1218,12 @@
(call_import $qa)
(block
(i32.store offset=20
- (get_local $27)
+ (get_local $23)
(get_local $3)
)
(i32.store offset=24
(get_local $3)
- (get_local $27)
+ (get_local $23)
)
)
)
@@ -1241,17 +1233,17 @@
)
(if
(i32.lt_u
- (get_local $32)
+ (get_local $7)
(i32.const 16)
)
(block
(i32.store offset=4
- (get_local $26)
+ (get_local $1)
(i32.or
- (tee_local $2
+ (tee_local $0
(i32.add
- (get_local $32)
- (get_local $14)
+ (get_local $7)
+ (get_local $2)
)
)
(i32.const 3)
@@ -1261,8 +1253,8 @@
(tee_local $3
(i32.add
(i32.add
- (get_local $26)
- (get_local $2)
+ (get_local $1)
+ (get_local $0)
)
(i32.const 4)
)
@@ -1277,25 +1269,25 @@
)
(block
(i32.store offset=4
- (get_local $26)
+ (get_local $1)
(i32.or
- (get_local $14)
+ (get_local $2)
(i32.const 3)
)
)
(i32.store offset=4
- (get_local $12)
+ (get_local $5)
(i32.or
- (get_local $32)
+ (get_local $7)
(i32.const 1)
)
)
(i32.store
(i32.add
- (get_local $12)
- (get_local $32)
+ (get_local $5)
+ (get_local $7)
)
- (get_local $32)
+ (get_local $7)
)
(if
(tee_local $3
@@ -1304,7 +1296,7 @@
)
)
(block
- (set_local $2
+ (set_local $0
(i32.load
(i32.const 1228)
)
@@ -1314,7 +1306,7 @@
(i32.const 1248)
(i32.shl
(i32.shl
- (tee_local $19
+ (tee_local $17
(i32.shr_u
(get_local $3)
(i32.const 3)
@@ -1328,23 +1320,23 @@
)
(if
(i32.and
- (tee_local $8
+ (tee_local $10
(i32.load
(i32.const 1208)
)
)
- (tee_local $16
+ (tee_local $6
(i32.shl
(i32.const 1)
- (get_local $19)
+ (get_local $17)
)
)
)
(if
(i32.lt_u
- (tee_local $8
+ (tee_local $10
(i32.load
- (tee_local $16
+ (tee_local $6
(i32.add
(get_local $3)
(i32.const 8)
@@ -1358,11 +1350,11 @@
)
(call_import $qa)
(block
- (set_local $34
- (get_local $16)
+ (set_local $42
+ (get_local $6)
)
- (set_local $4
- (get_local $8)
+ (set_local $35
+ (get_local $10)
)
)
)
@@ -1370,66 +1362,66 @@
(i32.store
(i32.const 1208)
(i32.or
- (get_local $8)
- (get_local $16)
+ (get_local $10)
+ (get_local $6)
)
)
- (set_local $34
+ (set_local $42
(i32.add
(get_local $3)
(i32.const 8)
)
)
- (set_local $4
+ (set_local $35
(get_local $3)
)
)
)
(i32.store
- (get_local $34)
- (get_local $2)
+ (get_local $42)
+ (get_local $0)
)
(i32.store offset=12
- (get_local $4)
- (get_local $2)
+ (get_local $35)
+ (get_local $0)
)
(i32.store offset=8
- (get_local $2)
- (get_local $4)
+ (get_local $0)
+ (get_local $35)
)
(i32.store offset=12
- (get_local $2)
+ (get_local $0)
(get_local $3)
)
)
)
(i32.store
(i32.const 1216)
- (get_local $32)
+ (get_local $7)
)
(i32.store
(i32.const 1228)
- (get_local $12)
+ (get_local $5)
)
)
)
(set_global $r
- (get_local $31)
+ (get_local $25)
)
(return
(i32.add
- (get_local $26)
+ (get_local $1)
(i32.const 8)
)
)
)
- (set_local $18
- (get_local $14)
+ (set_local $6
+ (get_local $2)
)
)
)
- (set_local $18
- (get_local $14)
+ (set_local $6
+ (get_local $2)
)
)
)
@@ -1438,11 +1430,11 @@
(get_local $0)
(i32.const -65)
)
- (set_local $18
+ (set_local $6
(i32.const -1)
)
(block
- (set_local $2
+ (set_local $0
(i32.and
(tee_local $3
(i32.add
@@ -1454,27 +1446,27 @@
)
)
(if
- (tee_local $8
+ (tee_local $10
(i32.load
(i32.const 1212)
)
)
(block
- (set_local $16
+ (set_local $6
(i32.sub
(i32.const 0)
- (get_local $2)
+ (get_local $0)
)
)
(block $label$break$a
(if
- (tee_local $0
+ (tee_local $15
(i32.load
(i32.add
(i32.shl
- (tee_local $34
+ (tee_local $27
(if
- (tee_local $19
+ (tee_local $17
(i32.shr_u
(get_local $3)
(i32.const 8)
@@ -1482,33 +1474,33 @@
)
(if
(i32.gt_u
- (get_local $2)
+ (get_local $0)
(i32.const 16777215)
)
(i32.const 31)
(i32.or
(i32.and
(i32.shr_u
- (get_local $2)
+ (get_local $0)
(i32.add
- (tee_local $0
+ (tee_local $15
(i32.add
(i32.sub
(i32.const 14)
(i32.or
(i32.or
- (tee_local $19
+ (tee_local $17
(i32.and
(i32.shr_u
(i32.add
- (tee_local $7
+ (tee_local $9
(i32.shl
- (get_local $19)
+ (get_local $17)
(tee_local $3
(i32.and
(i32.shr_u
(i32.add
- (get_local $19)
+ (get_local $17)
(i32.const 1048320)
)
(i32.const 16)
@@ -1527,14 +1519,14 @@
)
(get_local $3)
)
- (tee_local $7
+ (tee_local $9
(i32.and
(i32.shr_u
(i32.add
- (tee_local $25
+ (tee_local $4
(i32.shl
- (get_local $7)
- (get_local $19)
+ (get_local $9)
+ (get_local $17)
)
)
(i32.const 245760)
@@ -1548,8 +1540,8 @@
)
(i32.shr_u
(i32.shl
- (get_local $25)
- (get_local $7)
+ (get_local $4)
+ (get_local $9)
)
(i32.const 15)
)
@@ -1561,7 +1553,7 @@
(i32.const 1)
)
(i32.shl
- (get_local $0)
+ (get_local $15)
(i32.const 1)
)
)
@@ -1576,123 +1568,112 @@
)
)
(block
- (set_local $7
- (get_local $16)
+ (set_local $9
+ (get_local $6)
)
- (set_local $25
+ (set_local $4
(i32.const 0)
)
(set_local $3
(i32.shl
- (get_local $2)
+ (get_local $0)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (get_local $34)
+ (get_local $27)
(i32.const 1)
)
)
(i32.eq
- (get_local $34)
+ (get_local $27)
(i32.const 31)
)
)
)
)
- (set_local $19
- (get_local $0)
+ (set_local $17
+ (get_local $15)
)
- (set_local $5
+ (set_local $8
(i32.const 0)
)
(loop $while-in$18
- (block $while-out$17
- (if
- (i32.lt_u
- (tee_local $29
- (i32.sub
- (tee_local $27
- (i32.and
- (i32.load offset=4
- (get_local $19)
- )
- (i32.const -8)
+ (if
+ (i32.lt_u
+ (tee_local $2
+ (i32.sub
+ (tee_local $5
+ (i32.and
+ (i32.load offset=4
+ (get_local $17)
)
+ (i32.const -8)
)
- (get_local $2)
)
+ (get_local $0)
)
- (get_local $7)
)
- (if
- (i32.eq
- (get_local $27)
+ (get_local $9)
+ )
+ (if
+ (i32.eq
+ (get_local $5)
+ (get_local $0)
+ )
+ (block
+ (set_local $29
(get_local $2)
)
- (block
- (set_local $36
- (get_local $29)
- )
- (set_local $18
- (get_local $19)
- )
- (set_local $17
- (get_local $19)
- )
- (set_local $7
- (i32.const 90)
- )
- (br $label$break$a)
+ (set_local $28
+ (get_local $17)
)
- (block
- (set_local $4
- (get_local $29)
- )
- (set_local $0
- (get_local $19)
- )
+ (set_local $32
+ (get_local $17)
)
+ (set_local $9
+ (i32.const 90)
+ )
+ (br $label$break$a)
)
(block
- (set_local $4
- (get_local $7)
+ (set_local $9
+ (get_local $2)
)
- (set_local $0
- (get_local $5)
+ (set_local $8
+ (get_local $17)
)
)
)
- (set_local $27
- (select
- (get_local $25)
- (tee_local $29
- (i32.load offset=20
- (get_local $19)
- )
+ )
+ (set_local $5
+ (select
+ (get_local $4)
+ (tee_local $2
+ (i32.load offset=20
+ (get_local $17)
)
- (i32.or
- (i32.eq
- (get_local $29)
- (i32.const 0)
- )
- (i32.eq
- (get_local $29)
- (tee_local $19
- (i32.load
+ )
+ (i32.or
+ (i32.eqz
+ (get_local $2)
+ )
+ (i32.eq
+ (get_local $2)
+ (tee_local $17
+ (i32.load
+ (i32.add
(i32.add
- (i32.add
- (get_local $19)
- (i32.const 16)
+ (get_local $17)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (get_local $3)
+ (i32.const 31)
)
- (i32.shl
- (i32.shr_u
- (get_local $3)
- (i32.const 31)
- )
- (i32.const 2)
- )
+ (i32.const 2)
)
)
)
@@ -1700,67 +1681,59 @@
)
)
)
- (if
- (tee_local $29
- (i32.eq
- (get_local $19)
- (i32.const 0)
- )
- )
- (block
- (set_local $40
- (get_local $4)
- )
- (set_local $12
- (get_local $27)
- )
- (set_local $38
- (get_local $0)
- )
- (set_local $7
- (i32.const 86)
- )
- (br $while-out$17)
- )
- (block
- (set_local $7
- (get_local $4)
- )
- (set_local $25
- (get_local $27)
- )
- (set_local $3
- (i32.shl
- (get_local $3)
- (i32.xor
- (i32.and
- (get_local $29)
- (i32.const 1)
- )
- (i32.const 1)
- )
- )
- )
- (set_local $5
- (get_local $0)
- )
+ )
+ (if
+ (tee_local $2
+ (i32.eqz
+ (get_local $17)
)
)
- (br $while-in$18)
+ (block
+ (set_local $36
+ (get_local $9)
+ )
+ (set_local $37
+ (get_local $5)
+ )
+ (set_local $33
+ (get_local $8)
+ )
+ (set_local $9
+ (i32.const 86)
+ )
+ )
+ (block
+ (set_local $4
+ (get_local $5)
+ )
+ (set_local $3
+ (i32.shl
+ (get_local $3)
+ (i32.xor
+ (i32.and
+ (get_local $2)
+ (i32.const 1)
+ )
+ (i32.const 1)
+ )
+ )
+ )
+ (br $while-in$18)
+ )
)
)
)
(block
- (set_local $40
- (get_local $16)
+ (set_local $36
+ (get_local $6)
)
- (set_local $12
+ (set_local $37
(i32.const 0)
)
- (set_local $38
+ (set_local $33
(i32.const 0)
)
- (set_local $7
+ (set_local $9
(i32.const 86)
)
)
@@ -1768,60 +1741,58 @@
)
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 86)
)
(if
- (tee_local $0
+ (tee_local $2
(if
(i32.and
- (i32.eq
- (get_local $12)
- (i32.const 0)
+ (i32.eqz
+ (get_local $37)
)
- (i32.eq
- (get_local $38)
- (i32.const 0)
+ (i32.eqz
+ (get_local $33)
)
)
(block
(if
(i32.eqz
- (tee_local $16
+ (tee_local $6
(i32.and
- (get_local $8)
+ (get_local $10)
(i32.or
- (tee_local $0
+ (tee_local $15
(i32.shl
(i32.const 2)
- (get_local $34)
+ (get_local $27)
)
)
(i32.sub
(i32.const 0)
- (get_local $0)
+ (get_local $15)
)
)
)
)
)
(block
- (set_local $18
- (get_local $2)
+ (set_local $6
+ (get_local $0)
)
(br $do-once$0)
)
)
- (set_local $16
+ (set_local $6
(i32.and
(i32.shr_u
- (tee_local $0
+ (tee_local $15
(i32.add
(i32.and
- (get_local $16)
+ (get_local $6)
(i32.sub
(i32.const 0)
- (get_local $16)
+ (get_local $6)
)
)
(i32.const -1)
@@ -1840,13 +1811,13 @@
(i32.or
(i32.or
(i32.or
- (tee_local $0
+ (tee_local $15
(i32.and
(i32.shr_u
- (tee_local $14
+ (tee_local $2
(i32.shr_u
- (get_local $0)
- (get_local $16)
+ (get_local $15)
+ (get_local $6)
)
)
(i32.const 5)
@@ -1854,15 +1825,15 @@
(i32.const 8)
)
)
- (get_local $16)
+ (get_local $6)
)
- (tee_local $14
+ (tee_local $2
(i32.and
(i32.shr_u
- (tee_local $12
+ (tee_local $5
(i32.shr_u
- (get_local $14)
- (get_local $0)
+ (get_local $2)
+ (get_local $15)
)
)
(i32.const 2)
@@ -1871,13 +1842,13 @@
)
)
)
- (tee_local $12
+ (tee_local $5
(i32.and
(i32.shr_u
- (tee_local $5
+ (tee_local $8
(i32.shr_u
- (get_local $12)
- (get_local $14)
+ (get_local $5)
+ (get_local $2)
)
)
(i32.const 1)
@@ -1886,13 +1857,13 @@
)
)
)
- (tee_local $5
+ (tee_local $8
(i32.and
(i32.shr_u
(tee_local $3
(i32.shr_u
+ (get_local $8)
(get_local $5)
- (get_local $12)
)
)
(i32.const 1)
@@ -1903,7 +1874,7 @@
)
(i32.shr_u
(get_local $3)
- (get_local $5)
+ (get_local $8)
)
)
(i32.const 2)
@@ -1912,137 +1883,134 @@
)
)
)
- (get_local $12)
+ (get_local $37)
)
)
(block
- (set_local $36
- (get_local $40)
+ (set_local $29
+ (get_local $36)
)
- (set_local $18
- (get_local $0)
+ (set_local $28
+ (get_local $2)
)
- (set_local $17
- (get_local $38)
+ (set_local $32
+ (get_local $33)
)
- (set_local $7
+ (set_local $9
(i32.const 90)
)
)
(block
- (set_local $22
- (get_local $40)
+ (set_local $16
+ (get_local $36)
)
- (set_local $9
- (get_local $38)
+ (set_local $11
+ (get_local $33)
)
)
)
)
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 90)
)
(loop $while-in$20
- (block $while-out$19
- (set_local $7
- (i32.const 0)
- )
- (set_local $3
- (i32.lt_u
- (tee_local $5
- (i32.sub
- (i32.and
- (i32.load offset=4
- (get_local $18)
- )
- (i32.const -8)
+ (set_local $9
+ (i32.const 0)
+ )
+ (set_local $3
+ (i32.lt_u
+ (tee_local $8
+ (i32.sub
+ (i32.and
+ (i32.load offset=4
+ (get_local $28)
)
- (get_local $2)
+ (i32.const -8)
)
+ (get_local $0)
)
- (get_local $36)
+ )
+ (get_local $29)
+ )
+ )
+ (set_local $5
+ (select
+ (get_local $8)
+ (get_local $29)
+ (get_local $3)
+ )
+ )
+ (set_local $8
+ (select
+ (get_local $28)
+ (get_local $32)
+ (get_local $3)
+ )
+ )
+ (if
+ (tee_local $3
+ (i32.load offset=16
+ (get_local $28)
)
)
- (set_local $12
- (select
+ (block
+ (set_local $29
(get_local $5)
- (get_local $36)
+ )
+ (set_local $28
(get_local $3)
)
+ (set_local $32
+ (get_local $8)
+ )
+ (br $while-in$20)
)
- (set_local $5
- (select
- (get_local $18)
- (get_local $17)
- (get_local $3)
+ )
+ (if
+ (tee_local $28
+ (i32.load offset=20
+ (get_local $28)
)
)
- (if
- (tee_local $3
- (i32.load offset=16
- (get_local $18)
- )
+ (block
+ (set_local $29
+ (get_local $5)
)
- (block
- (set_local $36
- (get_local $12)
- )
- (set_local $18
- (get_local $3)
- )
- (set_local $17
- (get_local $5)
- )
- (br $while-in$20)
+ (set_local $32
+ (get_local $8)
+ )
+ (br $while-in$20)
+ )
+ (block
+ (set_local $16
+ (get_local $5)
+ )
+ (set_local $11
+ (get_local $8)
)
)
- (if
- (tee_local $18
- (i32.load offset=20
- (get_local $18)
- )
- )
- (block
- (set_local $36
- (get_local $12)
- )
- (set_local $17
- (get_local $5)
- )
- )
- (block
- (set_local $22
- (get_local $12)
- )
- (set_local $9
- (get_local $5)
- )
- (br $while-out$19)
- )
- )
- (br $while-in$20)
)
)
)
(if
- (get_local $9)
+ (get_local $11)
(if
(i32.lt_u
- (get_local $22)
+ (get_local $16)
(i32.sub
(i32.load
(i32.const 1216)
)
- (get_local $2)
+ (get_local $0)
)
)
(block
(if
(i32.lt_u
- (get_local $9)
- (tee_local $8
+ (get_local $11)
+ (tee_local $10
(i32.load
(i32.const 1224)
)
@@ -2052,19 +2020,19 @@
)
(if
(i32.ge_u
- (get_local $9)
- (tee_local $5
+ (get_local $11)
+ (tee_local $8
(i32.add
- (get_local $9)
- (get_local $2)
+ (get_local $11)
+ (get_local $0)
)
)
)
(call_import $qa)
)
- (set_local $12
+ (set_local $5
(i32.load offset=24
- (get_local $9)
+ (get_local $11)
)
)
(block $do-once$21
@@ -2072,47 +2040,47 @@
(i32.eq
(tee_local $3
(i32.load offset=12
- (get_local $9)
+ (get_local $11)
)
)
- (get_local $9)
+ (get_local $11)
)
(block
(if
- (tee_local $16
+ (tee_local $6
(i32.load
- (tee_local $14
+ (tee_local $2
(i32.add
- (get_local $9)
+ (get_local $11)
(i32.const 20)
)
)
)
)
(block
- (set_local $11
- (get_local $16)
+ (set_local $4
+ (get_local $6)
)
- (set_local $0
- (get_local $14)
+ (set_local $3
+ (get_local $2)
)
)
(if
- (tee_local $25
+ (tee_local $4
(i32.load
- (tee_local $0
+ (tee_local $15
(i32.add
- (get_local $9)
+ (get_local $11)
(i32.const 16)
)
)
)
)
- (set_local $11
- (get_local $25)
+ (set_local $3
+ (get_local $15)
)
(block
- (set_local $20
+ (set_local $22
(i32.const 0)
)
(br $do-once$21)
@@ -2120,65 +2088,62 @@
)
)
(loop $while-in$24
- (block $while-out$23
- (if
- (tee_local $16
- (i32.load
- (tee_local $14
- (i32.add
- (get_local $11)
- (i32.const 20)
- )
+ (if
+ (tee_local $6
+ (i32.load
+ (tee_local $2
+ (i32.add
+ (get_local $4)
+ (i32.const 20)
)
)
)
- (block
- (set_local $11
- (get_local $16)
- )
- (set_local $0
- (get_local $14)
- )
- (br $while-in$24)
- )
)
- (if
- (tee_local $16
- (i32.load
- (tee_local $14
- (i32.add
- (get_local $11)
- (i32.const 16)
- )
+ (block
+ (set_local $4
+ (get_local $6)
+ )
+ (set_local $3
+ (get_local $2)
+ )
+ (br $while-in$24)
+ )
+ )
+ (if
+ (tee_local $6
+ (i32.load
+ (tee_local $2
+ (i32.add
+ (get_local $4)
+ (i32.const 16)
)
)
)
- (block
- (set_local $11
- (get_local $16)
- )
- (set_local $0
- (get_local $14)
- )
- )
- (br $while-out$23)
)
- (br $while-in$24)
+ (block
+ (set_local $4
+ (get_local $6)
+ )
+ (set_local $3
+ (get_local $2)
+ )
+ (br $while-in$24)
+ )
)
)
(if
(i32.lt_u
- (get_local $0)
- (get_local $8)
+ (get_local $3)
+ (get_local $10)
)
(call_import $qa)
(block
(i32.store
- (get_local $0)
+ (get_local $3)
(i32.const 0)
)
- (set_local $20
- (get_local $11)
+ (set_local $22
+ (get_local $4)
)
)
)
@@ -2186,51 +2151,51 @@
(block
(if
(i32.lt_u
- (tee_local $14
+ (tee_local $2
(i32.load offset=8
- (get_local $9)
+ (get_local $11)
)
)
- (get_local $8)
+ (get_local $10)
)
(call_import $qa)
)
(if
(i32.ne
(i32.load
- (tee_local $16
+ (tee_local $6
(i32.add
- (get_local $14)
+ (get_local $2)
(i32.const 12)
)
)
)
- (get_local $9)
+ (get_local $11)
)
(call_import $qa)
)
(if
(i32.eq
(i32.load
- (tee_local $0
+ (tee_local $15
(i32.add
(get_local $3)
(i32.const 8)
)
)
)
- (get_local $9)
+ (get_local $11)
)
(block
(i32.store
- (get_local $16)
+ (get_local $6)
(get_local $3)
)
(i32.store
- (get_local $0)
- (get_local $14)
+ (get_local $15)
+ (get_local $2)
)
- (set_local $20
+ (set_local $22
(get_local $3)
)
)
@@ -2241,19 +2206,19 @@
)
(block $do-once$25
(if
- (get_local $12)
+ (get_local $5)
(block
(if
(i32.eq
- (get_local $9)
+ (get_local $11)
(i32.load
- (tee_local $8
+ (tee_local $10
(i32.add
(i32.const 1512)
(i32.shl
(tee_local $3
(i32.load offset=28
- (get_local $9)
+ (get_local $11)
)
)
(i32.const 2)
@@ -2264,12 +2229,12 @@
)
(block
(i32.store
- (get_local $8)
- (get_local $20)
+ (get_local $10)
+ (get_local $22)
)
(if
(i32.eqz
- (get_local $20)
+ (get_local $22)
)
(block
(i32.store
@@ -2294,7 +2259,7 @@
(block
(if
(i32.lt_u
- (get_local $12)
+ (get_local $5)
(i32.load
(i32.const 1224)
)
@@ -2306,32 +2271,32 @@
(i32.load
(tee_local $3
(i32.add
- (get_local $12)
+ (get_local $5)
(i32.const 16)
)
)
)
- (get_local $9)
+ (get_local $11)
)
(i32.store
(get_local $3)
- (get_local $20)
+ (get_local $22)
)
(i32.store offset=20
- (get_local $12)
- (get_local $20)
+ (get_local $5)
+ (get_local $22)
)
)
(br_if $do-once$25
(i32.eqz
- (get_local $20)
+ (get_local $22)
)
)
)
)
(if
(i32.lt_u
- (get_local $20)
+ (get_local $22)
(tee_local $3
(i32.load
(i32.const 1224)
@@ -2341,42 +2306,42 @@
(call_import $qa)
)
(i32.store offset=24
- (get_local $20)
- (get_local $12)
+ (get_local $22)
+ (get_local $5)
)
(if
- (tee_local $8
+ (tee_local $10
(i32.load offset=16
- (get_local $9)
+ (get_local $11)
)
)
(if
(i32.lt_u
- (get_local $8)
+ (get_local $10)
(get_local $3)
)
(call_import $qa)
(block
(i32.store offset=16
- (get_local $20)
- (get_local $8)
+ (get_local $22)
+ (get_local $10)
)
(i32.store offset=24
- (get_local $8)
- (get_local $20)
+ (get_local $10)
+ (get_local $22)
)
)
)
)
(if
- (tee_local $8
+ (tee_local $10
(i32.load offset=20
- (get_local $9)
+ (get_local $11)
)
)
(if
(i32.lt_u
- (get_local $8)
+ (get_local $10)
(i32.load
(i32.const 1224)
)
@@ -2384,12 +2349,12 @@
(call_import $qa)
(block
(i32.store offset=20
- (get_local $20)
- (get_local $8)
+ (get_local $22)
+ (get_local $10)
)
(i32.store offset=24
- (get_local $8)
- (get_local $20)
+ (get_local $10)
+ (get_local $22)
)
)
)
@@ -2400,35 +2365,35 @@
(block $do-once$29
(if
(i32.lt_u
- (get_local $22)
+ (get_local $16)
(i32.const 16)
)
(block
(i32.store offset=4
- (get_local $9)
+ (get_local $11)
(i32.or
- (tee_local $12
+ (tee_local $5
(i32.add
- (get_local $22)
- (get_local $2)
+ (get_local $16)
+ (get_local $0)
)
)
(i32.const 3)
)
)
(i32.store
- (tee_local $8
+ (tee_local $10
(i32.add
(i32.add
- (get_local $9)
- (get_local $12)
+ (get_local $11)
+ (get_local $5)
)
(i32.const 4)
)
)
(i32.or
(i32.load
- (get_local $8)
+ (get_local $10)
)
(i32.const 1)
)
@@ -2436,44 +2401,44 @@
)
(block
(i32.store offset=4
- (get_local $9)
+ (get_local $11)
(i32.or
- (get_local $2)
+ (get_local $0)
(i32.const 3)
)
)
(i32.store offset=4
- (get_local $5)
+ (get_local $8)
(i32.or
- (get_local $22)
+ (get_local $16)
(i32.const 1)
)
)
(i32.store
(i32.add
- (get_local $5)
- (get_local $22)
+ (get_local $8)
+ (get_local $16)
)
- (get_local $22)
+ (get_local $16)
)
- (set_local $8
+ (set_local $10
(i32.shr_u
- (get_local $22)
+ (get_local $16)
(i32.const 3)
)
)
(if
(i32.lt_u
- (get_local $22)
+ (get_local $16)
(i32.const 256)
)
(block
- (set_local $12
+ (set_local $5
(i32.add
(i32.const 1248)
(i32.shl
(i32.shl
- (get_local $8)
+ (get_local $10)
(i32.const 1)
)
(i32.const 2)
@@ -2487,10 +2452,10 @@
(i32.const 1208)
)
)
- (tee_local $14
+ (tee_local $2
(i32.shl
(i32.const 1)
- (get_local $8)
+ (get_local $10)
)
)
)
@@ -2498,9 +2463,9 @@
(i32.lt_u
(tee_local $3
(i32.load
- (tee_local $14
+ (tee_local $2
(i32.add
- (get_local $12)
+ (get_local $5)
(i32.const 8)
)
)
@@ -2512,10 +2477,10 @@
)
(call_import $qa)
(block
- (set_local $23
- (get_local $14)
+ (set_local $19
+ (get_local $2)
)
- (set_local $13
+ (set_local $7
(get_local $3)
)
)
@@ -2525,80 +2490,80 @@
(i32.const 1208)
(i32.or
(get_local $3)
- (get_local $14)
+ (get_local $2)
)
)
- (set_local $23
+ (set_local $19
(i32.add
- (get_local $12)
+ (get_local $5)
(i32.const 8)
)
)
- (set_local $13
- (get_local $12)
+ (set_local $7
+ (get_local $5)
)
)
)
(i32.store
- (get_local $23)
- (get_local $5)
+ (get_local $19)
+ (get_local $8)
)
(i32.store offset=12
- (get_local $13)
- (get_local $5)
+ (get_local $7)
+ (get_local $8)
)
(i32.store offset=8
- (get_local $5)
- (get_local $13)
+ (get_local $8)
+ (get_local $7)
)
(i32.store offset=12
+ (get_local $8)
(get_local $5)
- (get_local $12)
)
(br $do-once$29)
)
)
- (set_local $0
+ (set_local $15
(i32.add
(i32.const 1512)
(i32.shl
- (tee_local $20
+ (tee_local $3
(if
- (tee_local $12
+ (tee_local $5
(i32.shr_u
- (get_local $22)
+ (get_local $16)
(i32.const 8)
)
)
(if
(i32.gt_u
- (get_local $22)
+ (get_local $16)
(i32.const 16777215)
)
(i32.const 31)
(i32.or
(i32.and
(i32.shr_u
- (get_local $22)
+ (get_local $16)
(i32.add
- (tee_local $0
+ (tee_local $15
(i32.add
(i32.sub
(i32.const 14)
(i32.or
(i32.or
- (tee_local $12
+ (tee_local $5
(i32.and
(i32.shr_u
(i32.add
- (tee_local $14
+ (tee_local $2
(i32.shl
- (get_local $12)
+ (get_local $5)
(tee_local $3
(i32.and
(i32.shr_u
(i32.add
- (get_local $12)
+ (get_local $5)
(i32.const 1048320)
)
(i32.const 16)
@@ -2617,14 +2582,14 @@
)
(get_local $3)
)
- (tee_local $14
+ (tee_local $2
(i32.and
(i32.shr_u
(i32.add
- (tee_local $8
+ (tee_local $10
(i32.shl
- (get_local $14)
- (get_local $12)
+ (get_local $2)
+ (get_local $5)
)
)
(i32.const 245760)
@@ -2638,8 +2603,8 @@
)
(i32.shr_u
(i32.shl
- (get_local $8)
- (get_local $14)
+ (get_local $10)
+ (get_local $2)
)
(i32.const 15)
)
@@ -2651,7 +2616,7 @@
(i32.const 1)
)
(i32.shl
- (get_local $0)
+ (get_local $15)
(i32.const 1)
)
)
@@ -2664,34 +2629,34 @@
)
)
(i32.store offset=28
- (get_local $5)
- (get_local $20)
+ (get_local $8)
+ (get_local $3)
)
(i32.store offset=4
- (tee_local $14
+ (tee_local $2
(i32.add
- (get_local $5)
+ (get_local $8)
(i32.const 16)
)
)
(i32.const 0)
)
(i32.store
- (get_local $14)
+ (get_local $2)
(i32.const 0)
)
(if
(i32.eqz
(i32.and
- (tee_local $14
+ (tee_local $2
(i32.load
(i32.const 1212)
)
)
- (tee_local $8
+ (tee_local $10
(i32.shl
(i32.const 1)
- (get_local $20)
+ (get_local $3)
)
)
)
@@ -2700,51 +2665,51 @@
(i32.store
(i32.const 1212)
(i32.or
- (get_local $14)
- (get_local $8)
+ (get_local $2)
+ (get_local $10)
)
)
(i32.store
- (get_local $0)
- (get_local $5)
+ (get_local $15)
+ (get_local $8)
)
(i32.store offset=24
- (get_local $5)
- (get_local $0)
+ (get_local $8)
+ (get_local $15)
)
(i32.store offset=12
- (get_local $5)
- (get_local $5)
+ (get_local $8)
+ (get_local $8)
)
(i32.store offset=8
- (get_local $5)
- (get_local $5)
+ (get_local $8)
+ (get_local $8)
)
(br $do-once$29)
)
)
- (set_local $8
+ (set_local $10
(i32.shl
- (get_local $22)
+ (get_local $16)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (get_local $20)
+ (get_local $3)
(i32.const 1)
)
)
(i32.eq
- (get_local $20)
+ (get_local $3)
(i32.const 31)
)
)
)
)
- (set_local $14
+ (set_local $2
(i32.load
- (get_local $0)
+ (get_local $15)
)
)
(loop $while-in$32
@@ -2753,17 +2718,17 @@
(i32.eq
(i32.and
(i32.load offset=4
- (get_local $14)
+ (get_local $2)
)
(i32.const -8)
)
- (get_local $22)
+ (get_local $16)
)
(block
- (set_local $21
- (get_local $14)
+ (set_local $18
+ (get_local $2)
)
- (set_local $7
+ (set_local $9
(i32.const 148)
)
(br $while-out$31)
@@ -2772,15 +2737,15 @@
(if
(tee_local $3
(i32.load
- (tee_local $0
+ (tee_local $15
(i32.add
(i32.add
- (get_local $14)
+ (get_local $2)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (get_local $8)
+ (get_local $10)
(i32.const 31)
)
(i32.const 2)
@@ -2790,40 +2755,39 @@
)
)
(block
- (set_local $8
+ (set_local $10
(i32.shl
- (get_local $8)
+ (get_local $10)
(i32.const 1)
)
)
- (set_local $14
+ (set_local $2
(get_local $3)
)
+ (br $while-in$32)
)
(block
- (set_local $6
- (get_local $0)
+ (set_local $21
+ (get_local $15)
)
- (set_local $24
- (get_local $14)
+ (set_local $14
+ (get_local $2)
)
- (set_local $7
+ (set_local $9
(i32.const 145)
)
- (br $while-out$31)
)
)
- (br $while-in$32)
)
)
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 145)
)
(if
(i32.lt_u
- (get_local $6)
+ (get_local $21)
(i32.load
(i32.const 1224)
)
@@ -2831,36 +2795,36 @@
(call_import $qa)
(block
(i32.store
- (get_local $6)
- (get_local $5)
+ (get_local $21)
+ (get_local $8)
)
(i32.store offset=24
- (get_local $5)
- (get_local $24)
+ (get_local $8)
+ (get_local $14)
)
(i32.store offset=12
- (get_local $5)
- (get_local $5)
+ (get_local $8)
+ (get_local $8)
)
(i32.store offset=8
- (get_local $5)
- (get_local $5)
+ (get_local $8)
+ (get_local $8)
)
)
)
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 148)
)
(if
(i32.and
(i32.ge_u
- (tee_local $8
+ (tee_local $10
(i32.load
- (tee_local $14
+ (tee_local $2
(i32.add
- (get_local $21)
+ (get_local $18)
(i32.const 8)
)
)
@@ -2873,29 +2837,29 @@
)
)
(i32.ge_u
- (get_local $21)
+ (get_local $18)
(get_local $3)
)
)
(block
(i32.store offset=12
+ (get_local $10)
(get_local $8)
- (get_local $5)
)
(i32.store
- (get_local $14)
- (get_local $5)
- )
- (i32.store offset=8
- (get_local $5)
+ (get_local $2)
(get_local $8)
)
+ (i32.store offset=8
+ (get_local $8)
+ (get_local $10)
+ )
(i32.store offset=12
- (get_local $5)
- (get_local $21)
+ (get_local $8)
+ (get_local $18)
)
(i32.store offset=24
- (get_local $5)
+ (get_local $8)
(i32.const 0)
)
)
@@ -2907,26 +2871,26 @@
)
)
(set_global $r
- (get_local $31)
+ (get_local $25)
)
(return
(i32.add
- (get_local $9)
+ (get_local $11)
(i32.const 8)
)
)
)
- (set_local $18
- (get_local $2)
+ (set_local $6
+ (get_local $0)
)
)
- (set_local $18
- (get_local $2)
+ (set_local $6
+ (get_local $0)
)
)
)
- (set_local $18
- (get_local $2)
+ (set_local $6
+ (get_local $0)
)
)
)
@@ -2935,25 +2899,25 @@
)
(if
(i32.ge_u
- (tee_local $9
+ (tee_local $11
(i32.load
(i32.const 1216)
)
)
- (get_local $18)
+ (get_local $6)
)
(block
- (set_local $24
+ (set_local $14
(i32.load
(i32.const 1228)
)
)
(if
(i32.gt_u
- (tee_local $21
+ (tee_local $18
(i32.sub
- (get_local $9)
- (get_local $18)
+ (get_local $11)
+ (get_local $6)
)
)
(i32.const 15)
@@ -2961,35 +2925,35 @@
(block
(i32.store
(i32.const 1228)
- (tee_local $6
+ (tee_local $21
(i32.add
- (get_local $24)
- (get_local $18)
+ (get_local $14)
+ (get_local $6)
)
)
)
(i32.store
(i32.const 1216)
- (get_local $21)
+ (get_local $18)
)
(i32.store offset=4
- (get_local $6)
+ (get_local $21)
(i32.or
- (get_local $21)
+ (get_local $18)
(i32.const 1)
)
)
(i32.store
(i32.add
- (get_local $6)
(get_local $21)
+ (get_local $18)
)
- (get_local $21)
+ (get_local $18)
)
(i32.store offset=4
- (get_local $24)
+ (get_local $14)
(i32.or
- (get_local $18)
+ (get_local $6)
(i32.const 3)
)
)
@@ -3004,25 +2968,25 @@
(i32.const 0)
)
(i32.store offset=4
- (get_local $24)
+ (get_local $14)
(i32.or
- (get_local $9)
+ (get_local $11)
(i32.const 3)
)
)
(i32.store
- (tee_local $21
+ (tee_local $18
(i32.add
(i32.add
- (get_local $24)
- (get_local $9)
+ (get_local $14)
+ (get_local $11)
)
(i32.const 4)
)
)
(i32.or
(i32.load
- (get_local $21)
+ (get_local $18)
)
(i32.const 1)
)
@@ -3030,11 +2994,11 @@
)
)
(set_global $r
- (get_local $31)
+ (get_local $25)
)
(return
(i32.add
- (get_local $24)
+ (get_local $14)
(i32.const 8)
)
)
@@ -3042,56 +3006,56 @@
)
(if
(i32.gt_u
- (tee_local $24
+ (tee_local $14
(i32.load
(i32.const 1220)
)
)
- (get_local $18)
+ (get_local $6)
)
(block
(i32.store
(i32.const 1220)
- (tee_local $21
+ (tee_local $18
(i32.sub
- (get_local $24)
- (get_local $18)
+ (get_local $14)
+ (get_local $6)
)
)
)
(i32.store
(i32.const 1232)
- (tee_local $9
+ (tee_local $11
(i32.add
- (tee_local $24
+ (tee_local $14
(i32.load
(i32.const 1232)
)
)
- (get_local $18)
+ (get_local $6)
)
)
)
(i32.store offset=4
- (get_local $9)
+ (get_local $11)
(i32.or
- (get_local $21)
+ (get_local $18)
(i32.const 1)
)
)
(i32.store offset=4
- (get_local $24)
+ (get_local $14)
(i32.or
- (get_local $18)
+ (get_local $6)
(i32.const 3)
)
)
(set_global $r
- (get_local $31)
+ (get_local $25)
)
(return
(i32.add
- (get_local $24)
+ (get_local $14)
(i32.const 8)
)
)
@@ -3129,11 +3093,11 @@
(i32.const 0)
)
(i32.store
- (get_local $15)
- (tee_local $24
+ (get_local $13)
+ (tee_local $14
(i32.xor
(i32.and
- (get_local $15)
+ (get_local $13)
(i32.const -16)
)
(i32.const 1431655768)
@@ -3142,48 +3106,48 @@
)
(i32.store
(i32.const 1680)
- (get_local $24)
+ (get_local $14)
)
)
)
- (set_local $24
+ (set_local $14
(i32.add
- (get_local $18)
+ (get_local $6)
(i32.const 48)
)
)
(if
(i32.le_u
- (tee_local $15
+ (tee_local $13
(i32.and
- (tee_local $9
+ (tee_local $11
(i32.add
- (tee_local $15
+ (tee_local $13
(i32.load
(i32.const 1688)
)
)
- (tee_local $21
+ (tee_local $18
(i32.add
- (get_local $18)
+ (get_local $6)
(i32.const 47)
)
)
)
)
- (tee_local $6
+ (tee_local $21
(i32.sub
(i32.const 0)
- (get_local $15)
+ (get_local $13)
)
)
)
)
- (get_local $18)
+ (get_local $6)
)
(block
(set_global $r
- (get_local $31)
+ (get_local $25)
)
(return
(i32.const 0)
@@ -3191,7 +3155,7 @@
)
)
(if
- (tee_local $22
+ (tee_local $16
(i32.load
(i32.const 1648)
)
@@ -3199,26 +3163,26 @@
(if
(i32.or
(i32.le_u
- (tee_local $13
+ (tee_local $7
(i32.add
- (tee_local $20
+ (tee_local $3
(i32.load
(i32.const 1640)
)
)
- (get_local $15)
+ (get_local $13)
)
)
- (get_local $20)
+ (get_local $3)
)
(i32.gt_u
- (get_local $13)
- (get_local $22)
+ (get_local $7)
+ (get_local $16)
)
)
(block
(set_global $r
- (get_local $31)
+ (get_local $25)
)
(return
(i32.const 0)
@@ -3228,7 +3192,7 @@
)
(if
(i32.eq
- (tee_local $7
+ (tee_local $9
(block $label$break$b
(if
(i32.and
@@ -3241,90 +3205,85 @@
(block
(block $label$break$c
(if
- (tee_local $22
+ (tee_local $16
(i32.load
(i32.const 1232)
)
)
(block
- (set_local $13
+ (set_local $7
(i32.const 1656)
)
(loop $while-in$36
(block $while-out$35
(if
(i32.le_u
- (tee_local $20
+ (tee_local $3
(i32.load
- (get_local $13)
+ (get_local $7)
)
)
- (get_local $22)
+ (get_local $16)
)
(if
(i32.gt_u
(i32.add
- (get_local $20)
+ (get_local $3)
(i32.load
- (tee_local $23
+ (tee_local $19
(i32.add
- (get_local $13)
+ (get_local $7)
(i32.const 4)
)
)
)
)
- (get_local $22)
+ (get_local $16)
)
(block
(set_local $0
- (get_local $13)
+ (get_local $7)
)
- (set_local $17
- (get_local $23)
+ (set_local $5
+ (get_local $19)
)
(br $while-out$35)
)
)
)
- (if
- (i32.eqz
- (tee_local $13
- (i32.load offset=8
- (get_local $13)
- )
+ (br_if $while-in$36
+ (tee_local $7
+ (i32.load offset=8
+ (get_local $7)
)
)
- (block
- (set_local $7
- (i32.const 171)
- )
- (br $label$break$c)
- )
)
- (br $while-in$36)
+ (set_local $9
+ (i32.const 171)
+ )
+ (br $label$break$c)
)
)
(if
(i32.lt_u
- (tee_local $13
+ (tee_local $7
(i32.and
(i32.sub
- (get_local $9)
+ (get_local $11)
(i32.load
(i32.const 1220)
)
)
- (get_local $6)
+ (get_local $21)
)
)
(i32.const 2147483647)
)
(if
(i32.eq
- (tee_local $23
+ (tee_local $19
(call_import $ta
- (get_local $13)
+ (get_local $7)
)
)
(i32.add
@@ -3332,21 +3291,21 @@
(get_local $0)
)
(i32.load
- (get_local $17)
+ (get_local $5)
)
)
)
(if
(i32.ne
- (get_local $23)
+ (get_local $19)
(i32.const -1)
)
(block
- (set_local $28
- (get_local $23)
+ (set_local $20
+ (get_local $19)
)
- (set_local $33
- (get_local $13)
+ (set_local $26
+ (get_local $7)
)
(br $label$break$b
(i32.const 191)
@@ -3354,20 +3313,20 @@
)
)
(block
- (set_local $10
- (get_local $23)
+ (set_local $12
+ (get_local $19)
)
(set_local $1
- (get_local $13)
+ (get_local $7)
)
- (set_local $7
+ (set_local $9
(i32.const 181)
)
)
)
)
)
- (set_local $7
+ (set_local $9
(i32.const 171)
)
)
@@ -3375,12 +3334,12 @@
(block $do-once$37
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 171)
)
(if
(i32.ne
- (tee_local $22
+ (tee_local $16
(call_import $ta
(i32.const 0)
)
@@ -3388,12 +3347,12 @@
(i32.const -1)
)
(block
- (set_local $6
+ (set_local $2
(if
(i32.and
- (tee_local $23
+ (tee_local $19
(i32.add
- (tee_local $13
+ (tee_local $7
(i32.load
(i32.const 1684)
)
@@ -3401,53 +3360,53 @@
(i32.const -1)
)
)
- (tee_local $2
- (get_local $22)
+ (tee_local $0
+ (get_local $16)
)
)
(i32.add
(i32.sub
- (get_local $15)
- (get_local $2)
+ (get_local $13)
+ (get_local $0)
)
(i32.and
(i32.add
- (get_local $23)
- (get_local $2)
+ (get_local $19)
+ (get_local $0)
)
(i32.sub
(i32.const 0)
- (get_local $13)
+ (get_local $7)
)
)
)
- (get_local $15)
+ (get_local $13)
)
)
- (set_local $2
+ (set_local $0
(i32.add
- (tee_local $13
+ (tee_local $7
(i32.load
(i32.const 1640)
)
)
- (get_local $6)
+ (get_local $2)
)
)
(if
(i32.and
(i32.gt_u
+ (get_local $2)
(get_local $6)
- (get_local $18)
)
(i32.lt_u
- (get_local $6)
+ (get_local $2)
(i32.const 2147483647)
)
)
(block
(if
- (tee_local $23
+ (tee_local $19
(i32.load
(i32.const 1648)
)
@@ -3455,44 +3414,44 @@
(br_if $do-once$37
(i32.or
(i32.le_u
- (get_local $2)
- (get_local $13)
+ (get_local $0)
+ (get_local $7)
)
(i32.gt_u
- (get_local $2)
- (get_local $23)
+ (get_local $0)
+ (get_local $19)
)
)
)
)
(if
(i32.eq
- (tee_local $23
+ (tee_local $19
(call_import $ta
- (get_local $6)
+ (get_local $2)
)
)
- (get_local $22)
+ (get_local $16)
)
(block
- (set_local $28
- (get_local $22)
+ (set_local $20
+ (get_local $16)
)
- (set_local $33
- (get_local $6)
+ (set_local $26
+ (get_local $2)
)
(br $label$break$b
(i32.const 191)
)
)
(block
- (set_local $10
- (get_local $23)
+ (set_local $12
+ (get_local $19)
)
(set_local $1
- (get_local $6)
+ (get_local $2)
)
- (set_local $7
+ (set_local $9
(i32.const 181)
)
)
@@ -3506,11 +3465,11 @@
(block $label$break$d
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 181)
)
(block
- (set_local $23
+ (set_local $19
(i32.sub
(i32.const 0)
(get_local $1)
@@ -3519,7 +3478,7 @@
(if
(i32.and
(i32.gt_u
- (get_local $24)
+ (get_local $14)
(get_local $1)
)
(i32.and
@@ -3528,21 +3487,21 @@
(i32.const 2147483647)
)
(i32.ne
- (get_local $10)
+ (get_local $12)
(i32.const -1)
)
)
)
(if
(i32.lt_u
- (tee_local $2
+ (tee_local $0
(i32.and
(i32.add
(i32.sub
- (get_local $21)
+ (get_local $18)
(get_local $1)
)
- (tee_local $22
+ (tee_local $16
(i32.load
(i32.const 1688)
)
@@ -3550,7 +3509,7 @@
)
(i32.sub
(i32.const 0)
- (get_local $22)
+ (get_local $16)
)
)
)
@@ -3559,21 +3518,21 @@
(if
(i32.eq
(call_import $ta
- (get_local $2)
+ (get_local $0)
)
(i32.const -1)
)
(block
(drop
(call_import $ta
- (get_local $23)
+ (get_local $19)
)
)
(br $label$break$d)
)
(set_local $4
(i32.add
- (get_local $2)
+ (get_local $0)
(get_local $1)
)
)
@@ -3588,14 +3547,14 @@
)
(if
(i32.ne
- (get_local $10)
+ (get_local $12)
(i32.const -1)
)
(block
- (set_local $28
- (get_local $10)
+ (set_local $20
+ (get_local $12)
)
- (set_local $33
+ (set_local $26
(get_local $4)
)
(br $label$break$b
@@ -3624,7 +3583,7 @@
)
(if
(i32.lt_u
- (get_local $15)
+ (get_local $13)
(i32.const 2147483647)
)
(if
@@ -3632,10 +3591,10 @@
(i32.lt_u
(tee_local $4
(call_import $ta
- (get_local $15)
+ (get_local $13)
)
)
- (tee_local $15
+ (tee_local $13
(call_import $ta
(i32.const 0)
)
@@ -3647,32 +3606,32 @@
(i32.const -1)
)
(i32.ne
- (get_local $15)
+ (get_local $13)
(i32.const -1)
)
)
)
(if
(i32.gt_u
- (tee_local $10
+ (tee_local $12
(i32.sub
- (get_local $15)
+ (get_local $13)
(get_local $4)
)
)
(i32.add
- (get_local $18)
+ (get_local $6)
(i32.const 40)
)
)
(block
- (set_local $28
+ (set_local $20
(get_local $4)
)
- (set_local $33
- (get_local $10)
+ (set_local $26
+ (get_local $12)
)
- (set_local $7
+ (set_local $9
(i32.const 191)
)
)
@@ -3682,36 +3641,36 @@
)
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 191)
)
(block
(i32.store
(i32.const 1640)
- (tee_local $10
+ (tee_local $12
(i32.add
(i32.load
(i32.const 1640)
)
- (get_local $33)
+ (get_local $26)
)
)
)
(if
(i32.gt_u
- (get_local $10)
+ (get_local $12)
(i32.load
(i32.const 1644)
)
)
(i32.store
(i32.const 1644)
- (get_local $10)
+ (get_local $12)
)
)
(block $do-once$42
(if
- (tee_local $10
+ (tee_local $12
(i32.load
(i32.const 1232)
)
@@ -3724,16 +3683,16 @@
(block $do-out$46
(if
(i32.eq
- (get_local $28)
+ (get_local $20)
(i32.add
(tee_local $4
(i32.load
(get_local $1)
)
)
- (tee_local $21
+ (tee_local $18
(i32.load
- (tee_local $15
+ (tee_local $13
(i32.add
(get_local $1)
(i32.const 4)
@@ -3744,19 +3703,19 @@
)
)
(block
- (set_local $50
+ (set_local $49
(get_local $4)
)
+ (set_local $50
+ (get_local $13)
+ )
(set_local $51
- (get_local $15)
+ (get_local $18)
)
(set_local $52
- (get_local $21)
- )
- (set_local $35
(get_local $1)
)
- (set_local $7
+ (set_local $9
(i32.const 201)
)
(br $do-out$46)
@@ -3776,14 +3735,14 @@
)
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 201)
)
(if
(i32.eqz
(i32.and
(i32.load offset=12
- (get_local $35)
+ (get_local $52)
)
(i32.const 8)
)
@@ -3791,56 +3750,53 @@
(if
(i32.and
(i32.lt_u
- (get_local $10)
- (get_local $28)
+ (get_local $12)
+ (get_local $20)
)
(i32.ge_u
- (get_local $10)
- (get_local $50)
+ (get_local $12)
+ (get_local $49)
)
)
(block
(i32.store
- (get_local $51)
+ (get_local $50)
(i32.add
- (get_local $52)
- (get_local $33)
+ (get_local $51)
+ (get_local $26)
)
)
(set_local $1
(i32.add
- (get_local $10)
- (tee_local $21
+ (get_local $12)
+ (tee_local $18
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
(tee_local $1
(i32.add
- (get_local $10)
+ (get_local $12)
(i32.const 8)
)
)
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $1)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $1)
+ (i32.const 7)
)
)
)
)
)
- (set_local $15
+ (set_local $13
(i32.add
(i32.sub
- (get_local $33)
- (get_local $21)
+ (get_local $26)
+ (get_local $18)
)
(i32.load
(i32.const 1220)
@@ -3853,19 +3809,19 @@
)
(i32.store
(i32.const 1220)
- (get_local $15)
+ (get_local $13)
)
(i32.store offset=4
(get_local $1)
(i32.or
- (get_local $15)
+ (get_local $13)
(i32.const 1)
)
)
(i32.store offset=4
(i32.add
(get_local $1)
- (get_local $15)
+ (get_local $13)
)
(i32.const 40)
)
@@ -3880,11 +3836,11 @@
)
)
)
- (set_local $35
+ (set_local $8
(if
(i32.lt_u
- (get_local $28)
- (tee_local $15
+ (get_local $20)
+ (tee_local $13
(i32.load
(i32.const 1224)
)
@@ -3893,17 +3849,17 @@
(block
(i32.store
(i32.const 1224)
- (get_local $28)
+ (get_local $20)
)
- (get_local $28)
+ (get_local $20)
)
- (get_local $15)
+ (get_local $13)
)
)
- (set_local $15
+ (set_local $13
(i32.add
- (get_local $28)
- (get_local $33)
+ (get_local $20)
+ (get_local $26)
)
)
(set_local $1
@@ -3916,63 +3872,57 @@
(i32.load
(get_local $1)
)
- (get_local $15)
+ (get_local $13)
)
(block
(set_local $53
(get_local $1)
)
- (set_local $45
+ (set_local $43
(get_local $1)
)
- (set_local $7
+ (set_local $9
(i32.const 209)
)
(br $while-out$48)
)
)
- (if
- (i32.eqz
- (tee_local $1
- (i32.load offset=8
- (get_local $1)
- )
+ (br_if $while-in$49
+ (tee_local $1
+ (i32.load offset=8
+ (get_local $1)
)
)
- (block
- (set_local $37
- (i32.const 1656)
- )
- (br $while-out$48)
- )
)
- (br $while-in$49)
+ (set_local $30
+ (i32.const 1656)
+ )
)
)
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 209)
)
(if
(i32.and
(i32.load offset=12
- (get_local $45)
+ (get_local $43)
)
(i32.const 8)
)
- (set_local $37
+ (set_local $30
(i32.const 1656)
)
(block
(i32.store
(get_local $53)
- (get_local $28)
+ (get_local $20)
)
(i32.store
(tee_local $1
(i32.add
- (get_local $45)
+ (get_local $43)
(i32.const 4)
)
)
@@ -3980,82 +3930,76 @@
(i32.load
(get_local $1)
)
- (get_local $33)
+ (get_local $26)
)
)
- (set_local $21
+ (set_local $18
(i32.add
- (get_local $28)
+ (get_local $20)
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
(tee_local $1
(i32.add
- (get_local $28)
+ (get_local $20)
(i32.const 8)
)
)
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $1)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $1)
+ (i32.const 7)
)
)
)
)
(set_local $4
(i32.add
- (get_local $15)
+ (get_local $13)
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
(tee_local $1
(i32.add
- (get_local $15)
+ (get_local $13)
(i32.const 8)
)
)
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $1)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $1)
+ (i32.const 7)
)
)
)
)
(set_local $1
(i32.add
- (get_local $21)
(get_local $18)
+ (get_local $6)
)
)
- (set_local $24
+ (set_local $14
(i32.sub
(i32.sub
(get_local $4)
- (get_local $21)
+ (get_local $18)
)
- (get_local $18)
+ (get_local $6)
)
)
(i32.store offset=4
- (get_local $21)
+ (get_local $18)
(i32.or
- (get_local $18)
+ (get_local $6)
(i32.const 3)
)
)
@@ -4063,17 +4007,17 @@
(if
(i32.eq
(get_local $4)
- (get_local $10)
+ (get_local $12)
)
(block
(i32.store
(i32.const 1220)
- (tee_local $6
+ (tee_local $2
(i32.add
(i32.load
(i32.const 1220)
)
- (get_local $24)
+ (get_local $14)
)
)
)
@@ -4084,7 +4028,7 @@
(i32.store offset=4
(get_local $1)
(i32.or
- (get_local $6)
+ (get_local $2)
(i32.const 1)
)
)
@@ -4100,12 +4044,12 @@
(block
(i32.store
(i32.const 1216)
- (tee_local $6
+ (tee_local $2
(i32.add
(i32.load
(i32.const 1216)
)
- (get_local $24)
+ (get_local $14)
)
)
)
@@ -4116,16 +4060,16 @@
(i32.store offset=4
(get_local $1)
(i32.or
- (get_local $6)
+ (get_local $2)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $1)
- (get_local $6)
+ (get_local $2)
)
- (get_local $6)
+ (get_local $2)
)
(br $do-once$50)
)
@@ -4136,7 +4080,7 @@
(if
(i32.eq
(i32.and
- (tee_local $6
+ (tee_local $2
(i32.load offset=4
(get_local $4)
)
@@ -4146,26 +4090,26 @@
(i32.const 1)
)
(block
- (set_local $17
+ (set_local $5
(i32.and
- (get_local $6)
+ (get_local $2)
(i32.const -8)
)
)
(set_local $0
(i32.shr_u
- (get_local $6)
+ (get_local $2)
(i32.const 3)
)
)
(block $label$break$e
(if
(i32.lt_u
- (get_local $6)
+ (get_local $2)
(i32.const 256)
)
(block
- (set_local $9
+ (set_local $11
(i32.load offset=12
(get_local $4)
)
@@ -4173,12 +4117,12 @@
(block $do-once$53
(if
(i32.ne
- (tee_local $6
+ (tee_local $21
(i32.load offset=8
(get_local $4)
)
)
- (tee_local $23
+ (tee_local $19
(i32.add
(i32.const 1248)
(i32.shl
@@ -4194,15 +4138,15 @@
(block
(if
(i32.lt_u
- (get_local $6)
- (get_local $35)
+ (get_local $21)
+ (get_local $8)
)
(call_import $qa)
)
(br_if $do-once$53
(i32.eq
(i32.load offset=12
- (get_local $6)
+ (get_local $21)
)
(get_local $4)
)
@@ -4213,8 +4157,8 @@
)
(if
(i32.eq
- (get_local $9)
- (get_local $6)
+ (get_local $11)
+ (get_local $21)
)
(block
(i32.store
@@ -4238,29 +4182,29 @@
(block $do-once$55
(if
(i32.eq
- (get_local $9)
- (get_local $23)
+ (get_local $11)
+ (get_local $19)
)
- (set_local $46
+ (set_local $44
(i32.add
- (get_local $9)
+ (get_local $11)
(i32.const 8)
)
)
(block
(if
(i32.lt_u
- (get_local $9)
- (get_local $35)
+ (get_local $11)
+ (get_local $8)
)
(call_import $qa)
)
(if
(i32.eq
(i32.load
- (tee_local $2
+ (tee_local $0
(i32.add
- (get_local $9)
+ (get_local $11)
(i32.const 8)
)
)
@@ -4268,8 +4212,8 @@
(get_local $4)
)
(block
- (set_local $46
- (get_local $2)
+ (set_local $44
+ (get_local $0)
)
(br $do-once$55)
)
@@ -4279,16 +4223,16 @@
)
)
(i32.store offset=12
- (get_local $6)
- (get_local $9)
+ (get_local $21)
+ (get_local $11)
)
(i32.store
- (get_local $46)
- (get_local $6)
+ (get_local $44)
+ (get_local $21)
)
)
(block
- (set_local $23
+ (set_local $19
(i32.load offset=24
(get_local $4)
)
@@ -4296,7 +4240,7 @@
(block $do-once$57
(if
(i32.eq
- (tee_local $2
+ (tee_local $0
(i32.load offset=12
(get_local $4)
)
@@ -4305,11 +4249,11 @@
)
(block
(if
- (tee_local $20
+ (tee_local $3
(i32.load
- (tee_local $13
+ (tee_local $7
(i32.add
- (tee_local $22
+ (tee_local $16
(i32.add
(get_local $4)
(i32.const 16)
@@ -4321,29 +4265,24 @@
)
)
(block
- (set_local $11
- (get_local $20)
- )
(set_local $0
- (get_local $13)
+ (get_local $3)
+ )
+ (set_local $16
+ (get_local $7)
)
)
(if
- (tee_local $20
+ (tee_local $22
(i32.load
- (get_local $22)
+ (get_local $16)
)
)
- (block
- (set_local $11
- (get_local $20)
- )
- (set_local $0
- (get_local $22)
- )
+ (set_local $0
+ (get_local $22)
)
(block
- (set_local $30
+ (set_local $24
(i32.const 0)
)
(br $do-once$57)
@@ -4351,65 +4290,62 @@
)
)
(loop $while-in$60
- (block $while-out$59
- (if
- (tee_local $20
- (i32.load
- (tee_local $13
- (i32.add
- (get_local $11)
- (i32.const 20)
- )
+ (if
+ (tee_local $3
+ (i32.load
+ (tee_local $7
+ (i32.add
+ (get_local $0)
+ (i32.const 20)
)
)
)
- (block
- (set_local $11
- (get_local $20)
- )
- (set_local $0
- (get_local $13)
- )
- (br $while-in$60)
- )
)
- (if
- (tee_local $20
- (i32.load
- (tee_local $13
- (i32.add
- (get_local $11)
- (i32.const 16)
- )
+ (block
+ (set_local $0
+ (get_local $3)
+ )
+ (set_local $16
+ (get_local $7)
+ )
+ (br $while-in$60)
+ )
+ )
+ (if
+ (tee_local $3
+ (i32.load
+ (tee_local $7
+ (i32.add
+ (get_local $0)
+ (i32.const 16)
)
)
)
- (block
- (set_local $11
- (get_local $20)
- )
- (set_local $0
- (get_local $13)
- )
- )
- (br $while-out$59)
)
- (br $while-in$60)
+ (block
+ (set_local $0
+ (get_local $3)
+ )
+ (set_local $16
+ (get_local $7)
+ )
+ (br $while-in$60)
+ )
)
)
(if
(i32.lt_u
- (get_local $0)
- (get_local $35)
+ (get_local $16)
+ (get_local $8)
)
(call_import $qa)
(block
(i32.store
- (get_local $0)
+ (get_local $16)
(i32.const 0)
)
- (set_local $30
- (get_local $11)
+ (set_local $24
+ (get_local $0)
)
)
)
@@ -4417,21 +4353,21 @@
(block
(if
(i32.lt_u
- (tee_local $13
+ (tee_local $7
(i32.load offset=8
(get_local $4)
)
)
- (get_local $35)
+ (get_local $8)
)
(call_import $qa)
)
(if
(i32.ne
(i32.load
- (tee_local $20
+ (tee_local $3
(i32.add
- (get_local $13)
+ (get_local $7)
(i32.const 12)
)
)
@@ -4443,9 +4379,9 @@
(if
(i32.eq
(i32.load
- (tee_local $22
+ (tee_local $16
(i32.add
- (get_local $2)
+ (get_local $0)
(i32.const 8)
)
)
@@ -4454,15 +4390,15 @@
)
(block
(i32.store
- (get_local $20)
- (get_local $2)
+ (get_local $3)
+ (get_local $0)
)
(i32.store
- (get_local $22)
- (get_local $13)
+ (get_local $16)
+ (get_local $7)
)
- (set_local $30
- (get_local $2)
+ (set_local $24
+ (get_local $0)
)
)
(call_import $qa)
@@ -4472,7 +4408,7 @@
)
(br_if $label$break$e
(i32.eqz
- (get_local $23)
+ (get_local $19)
)
)
(block $do-once$61
@@ -4480,11 +4416,11 @@
(i32.eq
(get_local $4)
(i32.load
- (tee_local $6
+ (tee_local $21
(i32.add
(i32.const 1512)
(i32.shl
- (tee_local $2
+ (tee_local $0
(i32.load offset=28
(get_local $4)
)
@@ -4497,11 +4433,11 @@
)
(block
(i32.store
- (get_local $6)
- (get_local $30)
+ (get_local $21)
+ (get_local $24)
)
(br_if $do-once$61
- (get_local $30)
+ (get_local $24)
)
(i32.store
(i32.const 1212)
@@ -4512,7 +4448,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $2)
+ (get_local $0)
)
(i32.const -1)
)
@@ -4523,7 +4459,7 @@
(block
(if
(i32.lt_u
- (get_local $23)
+ (get_local $19)
(i32.load
(i32.const 1224)
)
@@ -4533,9 +4469,9 @@
(if
(i32.eq
(i32.load
- (tee_local $9
+ (tee_local $11
(i32.add
- (get_local $23)
+ (get_local $19)
(i32.const 16)
)
)
@@ -4543,17 +4479,17 @@
(get_local $4)
)
(i32.store
- (get_local $9)
- (get_local $30)
+ (get_local $11)
+ (get_local $24)
)
(i32.store offset=20
- (get_local $23)
- (get_local $30)
+ (get_local $19)
+ (get_local $24)
)
)
(br_if $label$break$e
(i32.eqz
- (get_local $30)
+ (get_local $24)
)
)
)
@@ -4561,8 +4497,8 @@
)
(if
(i32.lt_u
- (get_local $30)
- (tee_local $2
+ (get_local $24)
+ (tee_local $0
(i32.load
(i32.const 1224)
)
@@ -4571,13 +4507,13 @@
(call_import $qa)
)
(i32.store offset=24
- (get_local $30)
- (get_local $23)
+ (get_local $24)
+ (get_local $19)
)
(if
- (tee_local $9
+ (tee_local $11
(i32.load
- (tee_local $6
+ (tee_local $21
(i32.add
(get_local $4)
(i32.const 16)
@@ -4587,34 +4523,34 @@
)
(if
(i32.lt_u
- (get_local $9)
- (get_local $2)
+ (get_local $11)
+ (get_local $0)
)
(call_import $qa)
(block
(i32.store offset=16
- (get_local $30)
- (get_local $9)
+ (get_local $24)
+ (get_local $11)
)
(i32.store offset=24
- (get_local $9)
- (get_local $30)
+ (get_local $11)
+ (get_local $24)
)
)
)
)
(br_if $label$break$e
(i32.eqz
- (tee_local $9
+ (tee_local $11
(i32.load offset=4
- (get_local $6)
+ (get_local $21)
)
)
)
)
(if
(i32.lt_u
- (get_local $9)
+ (get_local $11)
(i32.load
(i32.const 1224)
)
@@ -4622,35 +4558,30 @@
(call_import $qa)
(block
(i32.store offset=20
- (get_local $30)
- (get_local $9)
+ (get_local $24)
+ (get_local $11)
)
(i32.store offset=24
- (get_local $9)
- (get_local $30)
+ (get_local $11)
+ (get_local $24)
)
)
)
)
)
)
- (set_local $11
+ (set_local $14
(i32.add
- (get_local $17)
- (get_local $24)
+ (get_local $5)
+ (get_local $14)
)
)
(i32.add
(get_local $4)
- (get_local $17)
+ (get_local $5)
)
)
- (block
- (set_local $11
- (get_local $24)
- )
- (get_local $4)
- )
+ (get_local $4)
)
(i32.const 4)
)
@@ -4665,30 +4596,30 @@
(i32.store offset=4
(get_local $1)
(i32.or
- (get_local $11)
+ (get_local $14)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $1)
- (get_local $11)
+ (get_local $14)
)
- (get_local $11)
+ (get_local $14)
)
(set_local $0
(i32.shr_u
- (get_local $11)
+ (get_local $14)
(i32.const 3)
)
)
(if
(i32.lt_u
- (get_local $11)
+ (get_local $14)
(i32.const 256)
)
(block
- (set_local $6
+ (set_local $2
(i32.add
(i32.const 1248)
(i32.shl
@@ -4703,12 +4634,12 @@
(block $do-once$65
(if
(i32.and
- (tee_local $9
+ (tee_local $11
(i32.load
(i32.const 1208)
)
)
- (tee_local $2
+ (tee_local $0
(i32.shl
(i32.const 1)
(get_local $0)
@@ -4718,11 +4649,11 @@
(block
(if
(i32.ge_u
- (tee_local $23
+ (tee_local $19
(i32.load
(tee_local $0
(i32.add
- (get_local $6)
+ (get_local $2)
(i32.const 8)
)
)
@@ -4733,11 +4664,11 @@
)
)
(block
- (set_local $47
+ (set_local $45
(get_local $0)
)
- (set_local $41
- (get_local $23)
+ (set_local $38
+ (get_local $19)
)
(br $do-once$65)
)
@@ -4748,51 +4679,51 @@
(i32.store
(i32.const 1208)
(i32.or
- (get_local $9)
- (get_local $2)
+ (get_local $11)
+ (get_local $0)
)
)
- (set_local $47
+ (set_local $45
(i32.add
- (get_local $6)
+ (get_local $2)
(i32.const 8)
)
)
- (set_local $41
- (get_local $6)
+ (set_local $38
+ (get_local $2)
)
)
)
)
(i32.store
- (get_local $47)
+ (get_local $45)
(get_local $1)
)
(i32.store offset=12
- (get_local $41)
+ (get_local $38)
(get_local $1)
)
(i32.store offset=8
(get_local $1)
- (get_local $41)
+ (get_local $38)
)
(i32.store offset=12
(get_local $1)
- (get_local $6)
+ (get_local $2)
)
(br $do-once$50)
)
)
- (set_local $2
+ (set_local $0
(i32.add
(i32.const 1512)
(i32.shl
- (tee_local $0
+ (tee_local $6
(block $do-once$67
(if
- (tee_local $2
+ (tee_local $0
(i32.shr_u
- (get_local $11)
+ (get_local $14)
(i32.const 8)
)
)
@@ -4800,33 +4731,33 @@
(br_if $do-once$67
(i32.const 31)
(i32.gt_u
- (get_local $11)
+ (get_local $14)
(i32.const 16777215)
)
)
(i32.or
(i32.and
(i32.shr_u
- (get_local $11)
+ (get_local $14)
(i32.add
- (tee_local $13
+ (tee_local $7
(i32.add
(i32.sub
(i32.const 14)
(i32.or
(i32.or
- (tee_local $23
+ (tee_local $19
(i32.and
(i32.shr_u
(i32.add
- (tee_local $17
+ (tee_local $5
(i32.shl
- (get_local $2)
- (tee_local $9
+ (get_local $0)
+ (tee_local $11
(i32.and
(i32.shr_u
(i32.add
- (get_local $2)
+ (get_local $0)
(i32.const 1048320)
)
(i32.const 16)
@@ -4843,16 +4774,16 @@
(i32.const 4)
)
)
- (get_local $9)
+ (get_local $11)
)
- (tee_local $17
+ (tee_local $5
(i32.and
(i32.shr_u
(i32.add
(tee_local $0
(i32.shl
- (get_local $17)
- (get_local $23)
+ (get_local $5)
+ (get_local $19)
)
)
(i32.const 245760)
@@ -4867,7 +4798,7 @@
(i32.shr_u
(i32.shl
(get_local $0)
- (get_local $17)
+ (get_local $5)
)
(i32.const 15)
)
@@ -4879,7 +4810,7 @@
(i32.const 1)
)
(i32.shl
- (get_local $13)
+ (get_local $7)
(i32.const 1)
)
)
@@ -4894,10 +4825,10 @@
)
(i32.store offset=28
(get_local $1)
- (get_local $0)
+ (get_local $6)
)
(i32.store offset=4
- (tee_local $6
+ (tee_local $2
(i32.add
(get_local $1)
(i32.const 16)
@@ -4906,21 +4837,21 @@
(i32.const 0)
)
(i32.store
- (get_local $6)
+ (get_local $2)
(i32.const 0)
)
(if
(i32.eqz
(i32.and
- (tee_local $6
+ (tee_local $2
(i32.load
(i32.const 1212)
)
)
- (tee_local $13
+ (tee_local $7
(i32.shl
(i32.const 1)
- (get_local $0)
+ (get_local $6)
)
)
)
@@ -4929,17 +4860,17 @@
(i32.store
(i32.const 1212)
(i32.or
- (get_local $6)
- (get_local $13)
+ (get_local $2)
+ (get_local $7)
)
)
(i32.store
- (get_local $2)
+ (get_local $0)
(get_local $1)
)
(i32.store offset=24
(get_local $1)
- (get_local $2)
+ (get_local $0)
)
(i32.store offset=12
(get_local $1)
@@ -4952,28 +4883,28 @@
(br $do-once$50)
)
)
- (set_local $13
+ (set_local $7
(i32.shl
- (get_local $11)
+ (get_local $14)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (get_local $0)
+ (get_local $6)
(i32.const 1)
)
)
(i32.eq
- (get_local $0)
+ (get_local $6)
(i32.const 31)
)
)
)
)
- (set_local $6
+ (set_local $2
(i32.load
- (get_local $2)
+ (get_local $0)
)
)
(loop $while-in$70
@@ -4982,34 +4913,34 @@
(i32.eq
(i32.and
(i32.load offset=4
- (get_local $6)
+ (get_local $2)
)
(i32.const -8)
)
- (get_local $11)
+ (get_local $14)
)
(block
- (set_local $42
- (get_local $6)
+ (set_local $39
+ (get_local $2)
)
- (set_local $7
+ (set_local $9
(i32.const 279)
)
(br $while-out$69)
)
)
(if
- (tee_local $17
+ (tee_local $5
(i32.load
- (tee_local $2
+ (tee_local $0
(i32.add
(i32.add
- (get_local $6)
+ (get_local $2)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (get_local $13)
+ (get_local $7)
(i32.const 31)
)
(i32.const 2)
@@ -5019,40 +4950,39 @@
)
)
(block
- (set_local $13
+ (set_local $7
(i32.shl
- (get_local $13)
+ (get_local $7)
(i32.const 1)
)
)
- (set_local $6
- (get_local $17)
+ (set_local $2
+ (get_local $5)
)
+ (br $while-in$70)
)
(block
- (set_local $48
- (get_local $2)
+ (set_local $46
+ (get_local $0)
)
(set_local $54
- (get_local $6)
+ (get_local $2)
)
- (set_local $7
+ (set_local $9
(i32.const 276)
)
- (br $while-out$69)
)
)
- (br $while-in$70)
)
)
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 276)
)
(if
(i32.lt_u
- (get_local $48)
+ (get_local $46)
(i32.load
(i32.const 1224)
)
@@ -5060,7 +4990,7 @@
(call_import $qa)
(block
(i32.store
- (get_local $48)
+ (get_local $46)
(get_local $1)
)
(i32.store offset=24
@@ -5079,49 +5009,49 @@
)
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 279)
)
(if
(i32.and
(i32.ge_u
- (tee_local $13
+ (tee_local $7
(i32.load
- (tee_local $6
+ (tee_local $2
(i32.add
- (get_local $42)
+ (get_local $39)
(i32.const 8)
)
)
)
)
- (tee_local $17
+ (tee_local $5
(i32.load
(i32.const 1224)
)
)
)
(i32.ge_u
- (get_local $42)
- (get_local $17)
+ (get_local $39)
+ (get_local $5)
)
)
(block
(i32.store offset=12
- (get_local $13)
+ (get_local $7)
(get_local $1)
)
(i32.store
- (get_local $6)
+ (get_local $2)
(get_local $1)
)
(i32.store offset=8
(get_local $1)
- (get_local $13)
+ (get_local $7)
)
(i32.store offset=12
(get_local $1)
- (get_local $42)
+ (get_local $39)
)
(i32.store offset=24
(get_local $1)
@@ -5136,11 +5066,11 @@
)
)
(set_global $r
- (get_local $31)
+ (get_local $25)
)
(return
(i32.add
- (get_local $21)
+ (get_local $18)
(i32.const 8)
)
)
@@ -5153,42 +5083,42 @@
(i32.le_u
(tee_local $1
(i32.load
- (get_local $37)
+ (get_local $30)
)
)
- (get_local $10)
+ (get_local $12)
)
(if
(i32.gt_u
- (tee_local $24
+ (tee_local $14
(i32.add
(get_local $1)
(i32.load offset=4
- (get_local $37)
+ (get_local $30)
)
)
)
- (get_local $10)
+ (get_local $12)
)
(block
(set_local $0
- (get_local $24)
+ (get_local $14)
)
(br $while-out$71)
)
)
)
- (set_local $37
+ (set_local $30
(i32.load offset=8
- (get_local $37)
+ (get_local $30)
)
)
(br $while-in$72)
)
)
- (set_local $24
+ (set_local $14
(i32.add
- (tee_local $21
+ (tee_local $18
(i32.add
(get_local $0)
(i32.const -47)
@@ -5199,36 +5129,33 @@
)
(set_local $1
(i32.add
- (tee_local $21
+ (tee_local $18
(select
- (get_local $10)
+ (get_local $12)
(tee_local $1
(i32.add
- (get_local $21)
+ (get_local $18)
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
- (get_local $24)
+ (get_local $14)
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $24)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $14)
+ (i32.const 7)
)
)
)
)
(i32.lt_u
(get_local $1)
- (tee_local $24
+ (tee_local $14
(i32.add
- (get_local $10)
+ (get_local $12)
(i32.const 16)
)
)
@@ -5242,28 +5169,25 @@
(i32.const 1232)
(tee_local $4
(i32.add
- (get_local $28)
- (tee_local $15
+ (get_local $20)
+ (tee_local $13
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
(tee_local $4
(i32.add
- (get_local $28)
+ (get_local $20)
(i32.const 8)
)
)
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $4)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $4)
+ (i32.const 7)
)
)
)
@@ -5272,27 +5196,27 @@
)
(i32.store
(i32.const 1220)
- (tee_local $13
+ (tee_local $7
(i32.sub
(i32.add
- (get_local $33)
+ (get_local $26)
(i32.const -40)
)
- (get_local $15)
+ (get_local $13)
)
)
)
(i32.store offset=4
(get_local $4)
(i32.or
- (get_local $13)
+ (get_local $7)
(i32.const 1)
)
)
(i32.store offset=4
(i32.add
(get_local $4)
- (get_local $13)
+ (get_local $7)
)
(i32.const 40)
)
@@ -5303,9 +5227,9 @@
)
)
(i32.store
- (tee_local $13
+ (tee_local $7
(i32.add
- (get_local $21)
+ (get_local $18)
(i32.const 4)
)
)
@@ -5337,11 +5261,11 @@
)
(i32.store
(i32.const 1656)
- (get_local $28)
+ (get_local $20)
)
(i32.store
(i32.const 1660)
- (get_local $33)
+ (get_local $26)
)
(i32.store
(i32.const 1668)
@@ -5353,7 +5277,7 @@
)
(set_local $1
(i32.add
- (get_local $21)
+ (get_local $18)
(i32.const 24)
)
)
@@ -5379,33 +5303,33 @@
)
(if
(i32.ne
- (get_local $21)
- (get_local $10)
+ (get_local $18)
+ (get_local $12)
)
(block
(i32.store
- (get_local $13)
+ (get_local $7)
(i32.and
(i32.load
- (get_local $13)
+ (get_local $7)
)
(i32.const -2)
)
)
(i32.store offset=4
- (get_local $10)
+ (get_local $12)
(i32.or
(tee_local $1
(i32.sub
- (get_local $21)
- (get_local $10)
+ (get_local $18)
+ (get_local $12)
)
)
(i32.const 1)
)
)
(i32.store
- (get_local $21)
+ (get_local $18)
(get_local $1)
)
(set_local $4
@@ -5420,7 +5344,7 @@
(i32.const 256)
)
(block
- (set_local $15
+ (set_local $13
(i32.add
(i32.const 1248)
(i32.shl
@@ -5434,12 +5358,12 @@
)
(if
(i32.and
- (tee_local $6
+ (tee_local $2
(i32.load
(i32.const 1208)
)
)
- (tee_local $17
+ (tee_local $5
(i32.shl
(i32.const 1)
(get_local $4)
@@ -5448,11 +5372,11 @@
)
(if
(i32.lt_u
- (tee_local $6
+ (tee_local $2
(i32.load
- (tee_local $17
+ (tee_local $5
(i32.add
- (get_local $15)
+ (get_local $13)
(i32.const 8)
)
)
@@ -5464,11 +5388,11 @@
)
(call_import $qa)
(block
- (set_local $49
- (get_local $17)
+ (set_local $47
+ (get_local $5)
)
- (set_local $43
- (get_local $6)
+ (set_local $40
+ (get_local $2)
)
)
)
@@ -5476,47 +5400,47 @@
(i32.store
(i32.const 1208)
(i32.or
- (get_local $6)
- (get_local $17)
+ (get_local $2)
+ (get_local $5)
)
)
- (set_local $49
+ (set_local $47
(i32.add
- (get_local $15)
+ (get_local $13)
(i32.const 8)
)
)
- (set_local $43
- (get_local $15)
+ (set_local $40
+ (get_local $13)
)
)
)
(i32.store
- (get_local $49)
- (get_local $10)
+ (get_local $47)
+ (get_local $12)
)
(i32.store offset=12
- (get_local $43)
- (get_local $10)
+ (get_local $40)
+ (get_local $12)
)
(i32.store offset=8
- (get_local $10)
- (get_local $43)
+ (get_local $12)
+ (get_local $40)
)
(i32.store offset=12
- (get_local $10)
- (get_local $15)
+ (get_local $12)
+ (get_local $13)
)
(br $do-once$42)
)
)
- (set_local $2
+ (set_local $0
(i32.add
(i32.const 1512)
(i32.shl
- (tee_local $0
+ (tee_local $2
(if
- (tee_local $15
+ (tee_local $13
(i32.shr_u
(get_local $1)
(i32.const 8)
@@ -5533,24 +5457,24 @@
(i32.shr_u
(get_local $1)
(i32.add
- (tee_local $2
+ (tee_local $0
(i32.add
(i32.sub
(i32.const 14)
(i32.or
(i32.or
- (tee_local $15
+ (tee_local $13
(i32.and
(i32.shr_u
(i32.add
- (tee_local $17
+ (tee_local $5
(i32.shl
- (get_local $15)
- (tee_local $6
+ (get_local $13)
+ (tee_local $2
(i32.and
(i32.shr_u
(i32.add
- (get_local $15)
+ (get_local $13)
(i32.const 1048320)
)
(i32.const 16)
@@ -5567,16 +5491,16 @@
(i32.const 4)
)
)
- (get_local $6)
+ (get_local $2)
)
- (tee_local $17
+ (tee_local $5
(i32.and
(i32.shr_u
(i32.add
(tee_local $4
(i32.shl
- (get_local $17)
- (get_local $15)
+ (get_local $5)
+ (get_local $13)
)
)
(i32.const 245760)
@@ -5591,7 +5515,7 @@
(i32.shr_u
(i32.shl
(get_local $4)
- (get_local $17)
+ (get_local $5)
)
(i32.const 15)
)
@@ -5603,7 +5527,7 @@
(i32.const 1)
)
(i32.shl
- (get_local $2)
+ (get_local $0)
(i32.const 1)
)
)
@@ -5616,21 +5540,21 @@
)
)
(i32.store offset=28
- (get_local $10)
- (get_local $0)
+ (get_local $12)
+ (get_local $2)
)
(i32.store offset=20
- (get_local $10)
+ (get_local $12)
(i32.const 0)
)
(i32.store
- (get_local $24)
+ (get_local $14)
(i32.const 0)
)
(if
(i32.eqz
(i32.and
- (tee_local $17
+ (tee_local $5
(i32.load
(i32.const 1212)
)
@@ -5638,7 +5562,7 @@
(tee_local $4
(i32.shl
(i32.const 1)
- (get_local $0)
+ (get_local $2)
)
)
)
@@ -5647,25 +5571,25 @@
(i32.store
(i32.const 1212)
(i32.or
- (get_local $17)
+ (get_local $5)
(get_local $4)
)
)
(i32.store
- (get_local $2)
- (get_local $10)
+ (get_local $0)
+ (get_local $12)
)
(i32.store offset=24
- (get_local $10)
- (get_local $2)
+ (get_local $12)
+ (get_local $0)
)
(i32.store offset=12
- (get_local $10)
- (get_local $10)
+ (get_local $12)
+ (get_local $12)
)
(i32.store offset=8
- (get_local $10)
- (get_local $10)
+ (get_local $12)
+ (get_local $12)
)
(br $do-once$42)
)
@@ -5678,20 +5602,20 @@
(i32.sub
(i32.const 25)
(i32.shr_u
- (get_local $0)
+ (get_local $2)
(i32.const 1)
)
)
(i32.eq
- (get_local $0)
+ (get_local $2)
(i32.const 31)
)
)
)
)
- (set_local $17
+ (set_local $5
(i32.load
- (get_local $2)
+ (get_local $0)
)
)
(loop $while-in$76
@@ -5700,29 +5624,29 @@
(i32.eq
(i32.and
(i32.load offset=4
- (get_local $17)
+ (get_local $5)
)
(i32.const -8)
)
(get_local $1)
)
(block
- (set_local $32
- (get_local $17)
+ (set_local $31
+ (get_local $5)
)
- (set_local $7
+ (set_local $9
(i32.const 305)
)
(br $while-out$75)
)
)
(if
- (tee_local $6
+ (tee_local $2
(i32.load
- (tee_local $2
+ (tee_local $0
(i32.add
(i32.add
- (get_local $17)
+ (get_local $5)
(i32.const 16)
)
(i32.shl
@@ -5743,34 +5667,33 @@
(i32.const 1)
)
)
- (set_local $17
- (get_local $6)
- )
- )
- (block
- (set_local $26
+ (set_local $5
(get_local $2)
)
- (set_local $11
- (get_local $17)
+ (br $while-in$76)
+ )
+ (block
+ (set_local $48
+ (get_local $0)
)
- (set_local $7
+ (set_local $55
+ (get_local $5)
+ )
+ (set_local $9
(i32.const 302)
)
- (br $while-out$75)
)
)
- (br $while-in$76)
)
)
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 302)
)
(if
(i32.lt_u
- (get_local $26)
+ (get_local $48)
(i32.load
(i32.const 1224)
)
@@ -5778,26 +5701,26 @@
(call_import $qa)
(block
(i32.store
- (get_local $26)
- (get_local $10)
+ (get_local $48)
+ (get_local $12)
)
(i32.store offset=24
- (get_local $10)
- (get_local $11)
+ (get_local $12)
+ (get_local $55)
)
(i32.store offset=12
- (get_local $10)
- (get_local $10)
+ (get_local $12)
+ (get_local $12)
)
(i32.store offset=8
- (get_local $10)
- (get_local $10)
+ (get_local $12)
+ (get_local $12)
)
)
)
(if
(i32.eq
- (get_local $7)
+ (get_local $9)
(i32.const 305)
)
(if
@@ -5805,9 +5728,9 @@
(i32.ge_u
(tee_local $4
(i32.load
- (tee_local $17
+ (tee_local $5
(i32.add
- (get_local $32)
+ (get_local $31)
(i32.const 8)
)
)
@@ -5820,29 +5743,29 @@
)
)
(i32.ge_u
- (get_local $32)
+ (get_local $31)
(get_local $1)
)
)
(block
(i32.store offset=12
(get_local $4)
- (get_local $10)
+ (get_local $12)
)
(i32.store
- (get_local $17)
- (get_local $10)
+ (get_local $5)
+ (get_local $12)
)
(i32.store offset=8
- (get_local $10)
+ (get_local $12)
(get_local $4)
)
(i32.store offset=12
- (get_local $10)
- (get_local $32)
+ (get_local $12)
+ (get_local $31)
)
(i32.store offset=24
- (get_local $10)
+ (get_local $12)
(i32.const 0)
)
)
@@ -5856,31 +5779,30 @@
(block
(if
(i32.or
- (i32.eq
+ (i32.eqz
(tee_local $4
(i32.load
(i32.const 1224)
)
)
- (i32.const 0)
)
(i32.lt_u
- (get_local $28)
+ (get_local $20)
(get_local $4)
)
)
(i32.store
(i32.const 1224)
- (get_local $28)
+ (get_local $20)
)
)
(i32.store
(i32.const 1656)
- (get_local $28)
+ (get_local $20)
)
(i32.store
(i32.const 1660)
- (get_local $33)
+ (get_local $26)
)
(i32.store
(i32.const 1668)
@@ -5901,7 +5823,7 @@
)
(loop $do-in$45
(i32.store offset=12
- (tee_local $15
+ (tee_local $13
(i32.add
(i32.const 1248)
(i32.shl
@@ -5913,11 +5835,11 @@
)
)
)
- (get_local $15)
+ (get_local $13)
)
(i32.store offset=8
- (get_local $15)
- (get_local $15)
+ (get_local $13)
+ (get_local $13)
)
(br_if $do-in$45
(i32.ne
@@ -5935,28 +5857,25 @@
(i32.const 1232)
(tee_local $4
(i32.add
- (get_local $28)
- (tee_local $15
+ (get_local $20)
+ (tee_local $13
(select
- (i32.const 0)
(i32.and
(i32.sub
(i32.const 0)
(tee_local $4
(i32.add
- (get_local $28)
+ (get_local $20)
(i32.const 8)
)
)
)
(i32.const 7)
)
- (i32.eq
- (i32.and
- (get_local $4)
- (i32.const 7)
- )
- (i32.const 0)
+ (i32.const 0)
+ (i32.and
+ (get_local $4)
+ (i32.const 7)
)
)
)
@@ -5968,10 +5887,10 @@
(tee_local $1
(i32.sub
(i32.add
- (get_local $33)
+ (get_local $26)
(i32.const -40)
)
- (get_local $15)
+ (get_local $13)
)
)
)
@@ -6000,56 +5919,56 @@
)
(if
(i32.gt_u
- (tee_local $10
+ (tee_local $12
(i32.load
(i32.const 1220)
)
)
- (get_local $18)
+ (get_local $6)
)
(block
(i32.store
(i32.const 1220)
- (tee_local $32
+ (tee_local $31
(i32.sub
- (get_local $10)
- (get_local $18)
+ (get_local $12)
+ (get_local $6)
)
)
)
(i32.store
(i32.const 1232)
- (tee_local $7
+ (tee_local $9
(i32.add
- (tee_local $10
+ (tee_local $12
(i32.load
(i32.const 1232)
)
)
- (get_local $18)
+ (get_local $6)
)
)
)
(i32.store offset=4
- (get_local $7)
+ (get_local $9)
(i32.or
- (get_local $32)
+ (get_local $31)
(i32.const 1)
)
)
(i32.store offset=4
- (get_local $10)
+ (get_local $12)
(i32.or
- (get_local $18)
+ (get_local $6)
(i32.const 3)
)
)
(set_global $r
- (get_local $31)
+ (get_local $25)
)
(return
(i32.add
- (get_local $10)
+ (get_local $12)
(i32.const 8)
)
)
@@ -6062,7 +5981,7 @@
(i32.const 12)
)
(set_global $r
- (get_local $31)
+ (get_local $25)
)
(i32.const 0)
)
@@ -6112,7 +6031,7 @@
(i32.eq
(tee_local $0
(i32.and
- (tee_local $9
+ (tee_local $3
(i32.load
(i32.add
(get_local $0)
@@ -6127,12 +6046,12 @@
)
(call_import $qa)
)
- (set_local $7
+ (set_local $8
(i32.add
(get_local $1)
(tee_local $5
(i32.and
- (get_local $9)
+ (get_local $3)
(i32.const -8)
)
)
@@ -6141,19 +6060,19 @@
(block $do-once$0
(if
(i32.and
- (get_local $9)
+ (get_local $3)
(i32.const 1)
)
(block
(set_local $2
(get_local $1)
)
- (set_local $8
+ (set_local $7
(get_local $5)
)
)
(block
- (set_local $9
+ (set_local $11
(i32.load
(get_local $1)
)
@@ -6166,7 +6085,7 @@
)
(set_local $5
(i32.add
- (get_local $9)
+ (get_local $11)
(get_local $5)
)
)
@@ -6177,7 +6096,7 @@
(get_local $1)
(i32.sub
(i32.const 0)
- (get_local $9)
+ (get_local $11)
)
)
)
@@ -6200,7 +6119,7 @@
(i32.load
(tee_local $1
(i32.add
- (get_local $7)
+ (get_local $8)
(i32.const 4)
)
)
@@ -6214,7 +6133,7 @@
(set_local $2
(get_local $0)
)
- (set_local $8
+ (set_local $7
(get_local $5)
)
(br $do-once$0)
@@ -6250,13 +6169,13 @@
)
(set_local $6
(i32.shr_u
- (get_local $9)
+ (get_local $11)
(i32.const 3)
)
)
(if
(i32.lt_u
- (get_local $9)
+ (get_local $11)
(i32.const 256)
)
(block
@@ -6267,12 +6186,12 @@
)
(if
(i32.ne
- (tee_local $9
+ (tee_local $11
(i32.load offset=8
(get_local $0)
)
)
- (tee_local $4
+ (tee_local $3
(i32.add
(i32.const 1248)
(i32.shl
@@ -6288,7 +6207,7 @@
(block
(if
(i32.lt_u
- (get_local $9)
+ (get_local $11)
(get_local $14)
)
(call_import $qa)
@@ -6296,7 +6215,7 @@
(if
(i32.ne
(i32.load offset=12
- (get_local $9)
+ (get_local $11)
)
(get_local $0)
)
@@ -6307,7 +6226,7 @@
(if
(i32.eq
(get_local $1)
- (get_local $9)
+ (get_local $11)
)
(block
(i32.store
@@ -6328,7 +6247,7 @@
(set_local $2
(get_local $0)
)
- (set_local $8
+ (set_local $7
(get_local $5)
)
(br $do-once$0)
@@ -6337,9 +6256,9 @@
(if
(i32.eq
(get_local $1)
- (get_local $4)
+ (get_local $3)
)
- (set_local $11
+ (set_local $10
(i32.add
(get_local $1)
(i32.const 8)
@@ -6356,7 +6275,7 @@
(if
(i32.eq
(i32.load
- (tee_local $4
+ (tee_local $3
(i32.add
(get_local $1)
(i32.const 8)
@@ -6365,31 +6284,31 @@
)
(get_local $0)
)
- (set_local $11
- (get_local $4)
+ (set_local $10
+ (get_local $3)
)
(call_import $qa)
)
)
)
(i32.store offset=12
- (get_local $9)
+ (get_local $11)
(get_local $1)
)
(i32.store
+ (get_local $10)
(get_local $11)
- (get_local $9)
)
(set_local $2
(get_local $0)
)
- (set_local $8
+ (set_local $7
(get_local $5)
)
(br $do-once$0)
)
)
- (set_local $9
+ (set_local $11
(i32.load offset=24
(get_local $0)
)
@@ -6406,11 +6325,11 @@
)
(block
(if
- (tee_local $11
+ (tee_local $10
(i32.load
(tee_local $6
(i32.add
- (tee_local $4
+ (tee_local $3
(i32.add
(get_local $0)
(i32.const 16)
@@ -6423,9 +6342,9 @@
)
(block
(set_local $1
- (get_local $11)
+ (get_local $10)
)
- (set_local $4
+ (set_local $3
(get_local $6)
)
)
@@ -6433,12 +6352,12 @@
(i32.eqz
(tee_local $1
(i32.load
- (get_local $4)
+ (get_local $3)
)
)
)
(block
- (set_local $3
+ (set_local $4
(i32.const 0)
)
(br $do-once$2)
@@ -6446,72 +6365,69 @@
)
)
(loop $while-in$5
- (block $while-out$4
- (if
- (tee_local $11
- (i32.load
- (tee_local $6
- (i32.add
- (get_local $1)
- (i32.const 20)
- )
+ (if
+ (tee_local $10
+ (i32.load
+ (tee_local $6
+ (i32.add
+ (get_local $1)
+ (i32.const 20)
)
)
)
- (block
- (set_local $1
- (get_local $11)
- )
- (set_local $4
- (get_local $6)
- )
- (br $while-in$5)
- )
)
- (if
- (tee_local $11
- (i32.load
- (tee_local $6
- (i32.add
- (get_local $1)
- (i32.const 16)
- )
+ (block
+ (set_local $1
+ (get_local $10)
+ )
+ (set_local $3
+ (get_local $6)
+ )
+ (br $while-in$5)
+ )
+ )
+ (if
+ (tee_local $10
+ (i32.load
+ (tee_local $6
+ (i32.add
+ (get_local $1)
+ (i32.const 16)
)
)
)
- (block
- (set_local $1
- (get_local $11)
- )
- (set_local $4
- (get_local $6)
- )
+ )
+ (block
+ (set_local $1
+ (get_local $10)
)
- (block
- (set_local $6
- (get_local $1)
- )
- (set_local $10
- (get_local $4)
- )
- (br $while-out$4)
+ (set_local $3
+ (get_local $6)
+ )
+ (br $while-in$5)
+ )
+ (block
+ (set_local $6
+ (get_local $1)
+ )
+ (set_local $9
+ (get_local $3)
)
)
- (br $while-in$5)
)
)
(if
(i32.lt_u
- (get_local $10)
+ (get_local $9)
(get_local $14)
)
(call_import $qa)
(block
(i32.store
- (get_local $10)
+ (get_local $9)
(i32.const 0)
)
- (set_local $3
+ (set_local $4
(get_local $6)
)
)
@@ -6532,7 +6448,7 @@
(if
(i32.ne
(i32.load
- (tee_local $11
+ (tee_local $10
(i32.add
(get_local $6)
(i32.const 12)
@@ -6546,7 +6462,7 @@
(if
(i32.eq
(i32.load
- (tee_local $4
+ (tee_local $3
(i32.add
(get_local $1)
(i32.const 8)
@@ -6557,14 +6473,14 @@
)
(block
(i32.store
- (get_local $11)
+ (get_local $10)
(get_local $1)
)
(i32.store
- (get_local $4)
+ (get_local $3)
(get_local $6)
)
- (set_local $3
+ (set_local $4
(get_local $1)
)
)
@@ -6574,7 +6490,7 @@
)
)
(if
- (get_local $9)
+ (get_local $11)
(block
(if
(i32.eq
@@ -6598,11 +6514,11 @@
(block
(i32.store
(get_local $6)
- (get_local $3)
+ (get_local $4)
)
(if
(i32.eqz
- (get_local $3)
+ (get_local $4)
)
(block
(i32.store
@@ -6623,7 +6539,7 @@
(set_local $2
(get_local $0)
)
- (set_local $8
+ (set_local $7
(get_local $5)
)
(br $do-once$0)
@@ -6633,7 +6549,7 @@
(block
(if
(i32.lt_u
- (get_local $9)
+ (get_local $11)
(i32.load
(i32.const 1224)
)
@@ -6645,7 +6561,7 @@
(i32.load
(tee_local $1
(i32.add
- (get_local $9)
+ (get_local $11)
(i32.const 16)
)
)
@@ -6654,22 +6570,22 @@
)
(i32.store
(get_local $1)
- (get_local $3)
+ (get_local $4)
)
(i32.store offset=20
- (get_local $9)
- (get_local $3)
+ (get_local $11)
+ (get_local $4)
)
)
(if
(i32.eqz
- (get_local $3)
+ (get_local $4)
)
(block
(set_local $2
(get_local $0)
)
- (set_local $8
+ (set_local $7
(get_local $5)
)
(br $do-once$0)
@@ -6679,7 +6595,7 @@
)
(if
(i32.lt_u
- (get_local $3)
+ (get_local $4)
(tee_local $1
(i32.load
(i32.const 1224)
@@ -6689,11 +6605,11 @@
(call_import $qa)
)
(i32.store offset=24
- (get_local $3)
- (get_local $9)
+ (get_local $4)
+ (get_local $11)
)
(if
- (tee_local $4
+ (tee_local $3
(i32.load
(tee_local $6
(i32.add
@@ -6705,31 +6621,31 @@
)
(if
(i32.lt_u
- (get_local $4)
+ (get_local $3)
(get_local $1)
)
(call_import $qa)
(block
(i32.store offset=16
- (get_local $3)
(get_local $4)
+ (get_local $3)
)
(i32.store offset=24
- (get_local $4)
(get_local $3)
+ (get_local $4)
)
)
)
)
(if
- (tee_local $4
+ (tee_local $3
(i32.load offset=4
(get_local $6)
)
)
(if
(i32.lt_u
- (get_local $4)
+ (get_local $3)
(i32.load
(i32.const 1224)
)
@@ -6737,17 +6653,17 @@
(call_import $qa)
(block
(i32.store offset=20
- (get_local $3)
(get_local $4)
+ (get_local $3)
)
(i32.store offset=24
- (get_local $4)
(get_local $3)
+ (get_local $4)
)
(set_local $2
(get_local $0)
)
- (set_local $8
+ (set_local $7
(get_local $5)
)
)
@@ -6756,7 +6672,7 @@
(set_local $2
(get_local $0)
)
- (set_local $8
+ (set_local $7
(get_local $5)
)
)
@@ -6766,7 +6682,7 @@
(set_local $2
(get_local $0)
)
- (set_local $8
+ (set_local $7
(get_local $5)
)
)
@@ -6777,7 +6693,7 @@
(if
(i32.ge_u
(get_local $2)
- (get_local $7)
+ (get_local $8)
)
(call_import $qa)
)
@@ -6788,7 +6704,7 @@
(i32.load
(tee_local $5
(i32.add
- (get_local $7)
+ (get_local $8)
(i32.const 4)
)
)
@@ -6815,25 +6731,25 @@
(i32.store offset=4
(get_local $2)
(i32.or
- (get_local $8)
+ (get_local $7)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $2)
- (get_local $8)
+ (get_local $7)
)
- (get_local $8)
+ (get_local $7)
)
(set_local $0
- (get_local $8)
+ (get_local $7)
)
)
(block
(if
(i32.eq
- (get_local $7)
+ (get_local $8)
(i32.load
(i32.const 1232)
)
@@ -6841,12 +6757,12 @@
(block
(i32.store
(i32.const 1220)
- (tee_local $3
+ (tee_local $4
(i32.add
(i32.load
(i32.const 1220)
)
- (get_local $8)
+ (get_local $7)
)
)
)
@@ -6857,7 +6773,7 @@
(i32.store offset=4
(get_local $2)
(i32.or
- (get_local $3)
+ (get_local $4)
(i32.const 1)
)
)
@@ -6883,7 +6799,7 @@
)
(if
(i32.eq
- (get_local $7)
+ (get_local $8)
(i32.load
(i32.const 1228)
)
@@ -6891,12 +6807,12 @@
(block
(i32.store
(i32.const 1216)
- (tee_local $3
+ (tee_local $4
(i32.add
(i32.load
(i32.const 1216)
)
- (get_local $8)
+ (get_local $7)
)
)
)
@@ -6907,27 +6823,27 @@
(i32.store offset=4
(get_local $2)
(i32.or
- (get_local $3)
+ (get_local $4)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $2)
- (get_local $3)
+ (get_local $4)
)
- (get_local $3)
+ (get_local $4)
)
(return)
)
)
- (set_local $3
+ (set_local $4
(i32.add
(i32.and
(get_local $1)
(i32.const -8)
)
- (get_local $8)
+ (get_local $7)
)
)
(set_local $14
@@ -6943,19 +6859,19 @@
(i32.const 256)
)
(block
- (set_local $10
+ (set_local $9
(i32.load offset=12
- (get_local $7)
+ (get_local $8)
)
)
(if
(i32.ne
(tee_local $6
(i32.load offset=8
- (get_local $7)
+ (get_local $8)
)
)
- (tee_local $4
+ (tee_local $3
(i32.add
(i32.const 1248)
(i32.shl
@@ -6983,7 +6899,7 @@
(i32.load offset=12
(get_local $6)
)
- (get_local $7)
+ (get_local $8)
)
(call_import $qa)
)
@@ -6991,7 +6907,7 @@
)
(if
(i32.eq
- (get_local $10)
+ (get_local $9)
(get_local $6)
)
(block
@@ -7015,19 +6931,19 @@
)
(if
(i32.eq
- (get_local $10)
- (get_local $4)
+ (get_local $9)
+ (get_local $3)
)
(set_local $17
(i32.add
- (get_local $10)
+ (get_local $9)
(i32.const 8)
)
)
(block
(if
(i32.lt_u
- (get_local $10)
+ (get_local $9)
(i32.load
(i32.const 1224)
)
@@ -7037,17 +6953,17 @@
(if
(i32.eq
(i32.load
- (tee_local $4
+ (tee_local $3
(i32.add
- (get_local $10)
+ (get_local $9)
(i32.const 8)
)
)
)
- (get_local $7)
+ (get_local $8)
)
(set_local $17
- (get_local $4)
+ (get_local $3)
)
(call_import $qa)
)
@@ -7055,7 +6971,7 @@
)
(i32.store offset=12
(get_local $6)
- (get_local $10)
+ (get_local $9)
)
(i32.store
(get_local $17)
@@ -7065,28 +6981,28 @@
(block
(set_local $6
(i32.load offset=24
- (get_local $7)
+ (get_local $8)
)
)
(block $do-once$10
(if
(i32.eq
- (tee_local $10
+ (tee_local $9
(i32.load offset=12
- (get_local $7)
+ (get_local $8)
)
)
- (get_local $7)
+ (get_local $8)
)
(block
(if
- (tee_local $11
+ (tee_local $10
(i32.load
(tee_local $1
(i32.add
- (tee_local $4
+ (tee_local $3
(i32.add
- (get_local $7)
+ (get_local $8)
(i32.const 16)
)
)
@@ -7097,9 +7013,9 @@
)
(block
(set_local $0
- (get_local $11)
+ (get_local $10)
)
- (set_local $4
+ (set_local $3
(get_local $1)
)
)
@@ -7107,7 +7023,7 @@
(i32.eqz
(tee_local $0
(i32.load
- (get_local $4)
+ (get_local $3)
)
)
)
@@ -7120,55 +7036,52 @@
)
)
(loop $while-in$13
- (block $while-out$12
- (if
- (tee_local $11
- (i32.load
- (tee_local $1
- (i32.add
- (get_local $0)
- (i32.const 20)
- )
+ (if
+ (tee_local $10
+ (i32.load
+ (tee_local $1
+ (i32.add
+ (get_local $0)
+ (i32.const 20)
)
)
)
- (block
- (set_local $0
- (get_local $11)
- )
- (set_local $4
- (get_local $1)
- )
- (br $while-in$13)
- )
)
- (if
- (tee_local $11
- (i32.load
- (tee_local $1
- (i32.add
- (get_local $0)
- (i32.const 16)
- )
+ (block
+ (set_local $0
+ (get_local $10)
+ )
+ (set_local $3
+ (get_local $1)
+ )
+ (br $while-in$13)
+ )
+ )
+ (if
+ (tee_local $10
+ (i32.load
+ (tee_local $1
+ (i32.add
+ (get_local $0)
+ (i32.const 16)
)
)
)
- (block
- (set_local $0
- (get_local $11)
- )
- (set_local $4
- (get_local $1)
- )
- )
- (br $while-out$12)
)
- (br $while-in$13)
+ (block
+ (set_local $0
+ (get_local $10)
+ )
+ (set_local $3
+ (get_local $1)
+ )
+ (br $while-in$13)
+ )
)
)
(if
(i32.lt_u
- (get_local $4)
+ (get_local $3)
(i32.load
(i32.const 1224)
)
@@ -7176,7 +7089,7 @@
(call_import $qa)
(block
(i32.store
- (get_local $4)
+ (get_local $3)
(i32.const 0)
)
(set_local $12
@@ -7190,7 +7103,7 @@
(i32.lt_u
(tee_local $1
(i32.load offset=8
- (get_local $7)
+ (get_local $8)
)
)
(i32.load
@@ -7202,40 +7115,40 @@
(if
(i32.ne
(i32.load
- (tee_local $11
+ (tee_local $10
(i32.add
(get_local $1)
(i32.const 12)
)
)
)
- (get_local $7)
+ (get_local $8)
)
(call_import $qa)
)
(if
(i32.eq
(i32.load
- (tee_local $4
+ (tee_local $3
(i32.add
- (get_local $10)
+ (get_local $9)
(i32.const 8)
)
)
)
- (get_local $7)
+ (get_local $8)
)
(block
(i32.store
- (get_local $11)
(get_local $10)
+ (get_local $9)
)
(i32.store
- (get_local $4)
+ (get_local $3)
(get_local $1)
)
(set_local $12
- (get_local $10)
+ (get_local $9)
)
)
(call_import $qa)
@@ -7248,15 +7161,15 @@
(block
(if
(i32.eq
- (get_local $7)
+ (get_local $8)
(i32.load
(tee_local $5
(i32.add
(i32.const 1512)
(i32.shl
- (tee_local $10
+ (tee_local $9
(i32.load offset=28
- (get_local $7)
+ (get_local $8)
)
)
(i32.const 2)
@@ -7284,7 +7197,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (get_local $10)
+ (get_local $9)
)
(i32.const -1)
)
@@ -7307,17 +7220,17 @@
(if
(i32.eq
(i32.load
- (tee_local $10
+ (tee_local $9
(i32.add
(get_local $6)
(i32.const 16)
)
)
)
- (get_local $7)
+ (get_local $8)
)
(i32.store
- (get_local $10)
+ (get_local $9)
(get_local $12)
)
(i32.store offset=20
@@ -7335,7 +7248,7 @@
(if
(i32.lt_u
(get_local $12)
- (tee_local $10
+ (tee_local $9
(i32.load
(i32.const 1224)
)
@@ -7352,7 +7265,7 @@
(i32.load
(tee_local $5
(i32.add
- (get_local $7)
+ (get_local $8)
(i32.const 16)
)
)
@@ -7361,7 +7274,7 @@
(if
(i32.lt_u
(get_local $0)
- (get_local $10)
+ (get_local $9)
)
(call_import $qa)
(block
@@ -7410,16 +7323,16 @@
(i32.store offset=4
(get_local $2)
(i32.or
- (get_local $3)
+ (get_local $4)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $2)
- (get_local $3)
+ (get_local $4)
)
- (get_local $3)
+ (get_local $4)
)
(if
(i32.eq
@@ -7431,17 +7344,17 @@
(block
(i32.store
(i32.const 1216)
- (get_local $3)
+ (get_local $4)
)
(return)
)
(set_local $0
- (get_local $3)
+ (get_local $4)
)
)
)
)
- (set_local $8
+ (set_local $7
(i32.shr_u
(get_local $0)
(i32.const 3)
@@ -7458,7 +7371,7 @@
(i32.const 1248)
(i32.shl
(i32.shl
- (get_local $8)
+ (get_local $7)
(i32.const 1)
)
(i32.const 2)
@@ -7472,10 +7385,10 @@
(i32.const 1208)
)
)
- (tee_local $3
+ (tee_local $4
(i32.shl
(i32.const 1)
- (get_local $8)
+ (get_local $7)
)
)
)
@@ -7483,7 +7396,7 @@
(i32.lt_u
(tee_local $5
(i32.load
- (tee_local $3
+ (tee_local $4
(i32.add
(get_local $1)
(i32.const 8)
@@ -7498,7 +7411,7 @@
(call_import $qa)
(block
(set_local $15
- (get_local $3)
+ (get_local $4)
)
(set_local $13
(get_local $5)
@@ -7510,7 +7423,7 @@
(i32.const 1208)
(i32.or
(get_local $5)
- (get_local $3)
+ (get_local $4)
)
)
(set_local $15
@@ -7543,11 +7456,11 @@
(return)
)
)
- (set_local $3
+ (set_local $4
(i32.add
(i32.const 1512)
(i32.shl
- (tee_local $1
+ (tee_local $7
(if
(tee_local $1
(i32.shr_u
@@ -7566,7 +7479,7 @@
(i32.shr_u
(get_local $0)
(i32.add
- (tee_local $3
+ (tee_local $4
(i32.add
(i32.sub
(i32.const 14)
@@ -7636,7 +7549,7 @@
(i32.const 1)
)
(i32.shl
- (get_local $3)
+ (get_local $4)
(i32.const 1)
)
)
@@ -7650,7 +7563,7 @@
)
(i32.store offset=28
(get_local $2)
- (get_local $1)
+ (get_local $7)
)
(i32.store offset=20
(get_local $2)
@@ -7670,7 +7583,7 @@
(tee_local $5
(i32.shl
(i32.const 1)
- (get_local $1)
+ (get_local $7)
)
)
)
@@ -7683,12 +7596,12 @@
(i32.sub
(i32.const 25)
(i32.shr_u
- (get_local $1)
+ (get_local $7)
(i32.const 1)
)
)
(i32.eq
- (get_local $1)
+ (get_local $7)
(i32.const 31)
)
)
@@ -7696,7 +7609,7 @@
)
(set_local $1
(i32.load
- (get_local $3)
+ (get_local $4)
)
)
(loop $while-in$19
@@ -7724,7 +7637,7 @@
(if
(tee_local $12
(i32.load
- (tee_local $8
+ (tee_local $7
(i32.add
(i32.add
(get_local $1)
@@ -7751,10 +7664,11 @@
(set_local $1
(get_local $12)
)
+ (br $while-in$19)
)
(block
(set_local $18
- (get_local $8)
+ (get_local $7)
)
(set_local $19
(get_local $1)
@@ -7762,10 +7676,8 @@
(set_local $0
(i32.const 127)
)
- (br $while-out$18)
)
)
- (br $while-in$19)
)
)
(if
@@ -7865,12 +7777,12 @@
)
)
(i32.store
- (get_local $3)
+ (get_local $4)
(get_local $2)
)
(i32.store offset=24
(get_local $2)
- (get_local $3)
+ (get_local $4)
)
(i32.store offset=12
(get_local $2)
@@ -7901,22 +7813,21 @@
)
)
(loop $while-in$21
- (block $while-out$20
- (if
- (tee_local $2
- (i32.load
- (get_local $0)
- )
+ (if
+ (tee_local $2
+ (i32.load
+ (get_local $0)
)
+ )
+ (block
(set_local $0
(i32.add
(get_local $2)
(i32.const 8)
)
)
- (br $while-out$20)
+ (br $while-in$21)
)
- (br $while-in$21)
)
)
(i32.store
@@ -7940,8 +7851,7 @@
(local $15 i32)
(local $16 i32)
(local $17 i32)
- (local $18 i32)
- (set_local $11
+ (set_local $10
(get_global $r)
)
(set_global $r
@@ -7950,25 +7860,25 @@
(i32.const 48)
)
)
- (set_local $12
+ (set_local $11
(i32.add
- (get_local $11)
+ (get_local $10)
(i32.const 16)
)
)
- (set_local $13
- (get_local $11)
+ (set_local $12
+ (get_local $10)
)
(i32.store
- (tee_local $3
+ (tee_local $4
(i32.add
- (get_local $11)
+ (get_local $10)
(i32.const 32)
)
)
- (tee_local $8
+ (tee_local $7
(i32.load
- (tee_local $9
+ (tee_local $8
(i32.add
(get_local $0)
(i32.const 28)
@@ -7978,27 +7888,27 @@
)
)
(i32.store offset=4
- (get_local $3)
- (tee_local $10
+ (get_local $4)
+ (tee_local $9
(i32.sub
(i32.load
- (tee_local $14
+ (tee_local $13
(i32.add
(get_local $0)
(i32.const 20)
)
)
)
- (get_local $8)
+ (get_local $7)
)
)
)
(i32.store offset=8
- (get_local $3)
+ (get_local $4)
(get_local $1)
)
(i32.store offset=12
- (get_local $3)
+ (get_local $4)
(get_local $2)
)
(set_local $1
@@ -8007,21 +7917,21 @@
(i32.const 60)
)
)
- (set_local $8
+ (set_local $7
(i32.add
(get_local $0)
(i32.const 44)
)
)
- (set_local $4
- (get_local $3)
+ (set_local $5
+ (get_local $4)
)
- (set_local $3
+ (set_local $4
(i32.const 2)
)
- (set_local $5
+ (set_local $3
(i32.add
- (get_local $10)
+ (get_local $9)
(get_local $2)
)
)
@@ -8029,7 +7939,7 @@
(block $while-out$0
(if
(i32.eq
- (get_local $5)
+ (get_local $3)
(tee_local $6
(if
(i32.load
@@ -8041,51 +7951,51 @@
(get_local $0)
)
(i32.store
- (get_local $13)
+ (get_local $12)
(i32.load
(get_local $1)
)
)
(i32.store offset=4
- (get_local $13)
- (get_local $4)
+ (get_local $12)
+ (get_local $5)
)
(i32.store offset=8
- (get_local $13)
- (get_local $3)
+ (get_local $12)
+ (get_local $4)
)
- (set_local $10
+ (set_local $9
(call $Pa
(call_import $ya
(i32.const 146)
- (get_local $13)
+ (get_local $12)
)
)
)
(call_import $oa
(i32.const 0)
)
- (get_local $10)
+ (get_local $9)
)
(block
(i32.store
- (get_local $12)
+ (get_local $11)
(i32.load
(get_local $1)
)
)
(i32.store offset=4
- (get_local $12)
- (get_local $4)
+ (get_local $11)
+ (get_local $5)
)
(i32.store offset=8
- (get_local $12)
- (get_local $3)
+ (get_local $11)
+ (get_local $4)
)
(call $Pa
(call_import $ya
(i32.const 146)
- (get_local $12)
+ (get_local $11)
)
)
)
@@ -8105,130 +8015,125 @@
(i32.const 0)
)
(block
+ (set_local $16
+ (get_local $5)
+ )
(set_local $17
(get_local $4)
)
- (set_local $18
- (get_local $3)
- )
(set_local $1
(i32.const 8)
)
- (br $while-out$0)
)
- )
- (set_local $10
- (i32.sub
- (get_local $5)
- (get_local $6)
- )
- )
- (set_local $3
- (if
- (i32.gt_u
- (get_local $6)
- (tee_local $5
- (i32.load offset=4
- (get_local $4)
- )
- )
- )
- (block
- (i32.store
- (get_local $9)
- (tee_local $7
- (i32.load
- (get_local $8)
- )
- )
- )
- (i32.store
- (get_local $14)
- (get_local $7)
- )
- (set_local $6
- (i32.sub
- (get_local $6)
- (get_local $5)
- )
- )
- (set_local $7
- (i32.add
- (get_local $4)
- (i32.const 8)
- )
- )
- (set_local $15
- (i32.add
- (get_local $3)
- (i32.const -1)
- )
- )
- (i32.load offset=12
- (get_local $4)
- )
- )
- (if
- (i32.eq
+ (block
+ (set_local $9
+ (i32.sub
(get_local $3)
- (i32.const 2)
+ (get_local $6)
)
- (block
- (i32.store
- (get_local $9)
- (i32.add
- (i32.load
- (get_local $9)
+ )
+ (set_local $5
+ (if
+ (i32.gt_u
+ (get_local $6)
+ (tee_local $14
+ (i32.load offset=4
+ (get_local $5)
)
- (get_local $6)
)
)
- (set_local $7
- (get_local $4)
+ (block
+ (i32.store
+ (get_local $8)
+ (tee_local $3
+ (i32.load
+ (get_local $7)
+ )
+ )
+ )
+ (i32.store
+ (get_local $13)
+ (get_local $3)
+ )
+ (set_local $6
+ (i32.sub
+ (get_local $6)
+ (get_local $14)
+ )
+ )
+ (set_local $3
+ (i32.add
+ (get_local $5)
+ (i32.const 8)
+ )
+ )
+ (set_local $4
+ (i32.add
+ (get_local $4)
+ (i32.const -1)
+ )
+ )
+ (i32.load offset=12
+ (get_local $5)
+ )
)
- (set_local $15
- (i32.const 2)
+ (if
+ (i32.eq
+ (get_local $4)
+ (i32.const 2)
+ )
+ (block
+ (i32.store
+ (get_local $8)
+ (i32.add
+ (i32.load
+ (get_local $8)
+ )
+ (get_local $6)
+ )
+ )
+ (set_local $3
+ (get_local $5)
+ )
+ (set_local $4
+ (i32.const 2)
+ )
+ (get_local $14)
+ )
+ (block
+ (set_local $3
+ (get_local $5)
+ )
+ (get_local $14)
+ )
)
- (get_local $5)
)
- (block
- (set_local $7
- (get_local $4)
- )
- (set_local $15
+ )
+ (i32.store
+ (get_local $3)
+ (i32.add
+ (i32.load
(get_local $3)
)
- (get_local $5)
+ (get_local $6)
)
)
- )
- )
- (i32.store
- (get_local $7)
- (i32.add
- (i32.load
- (get_local $7)
+ (i32.store offset=4
+ (get_local $3)
+ (i32.sub
+ (get_local $5)
+ (get_local $6)
+ )
)
- (get_local $6)
+ (set_local $5
+ (get_local $3)
+ )
+ (set_local $3
+ (get_local $9)
+ )
+ (br $while-in$1)
)
)
- (i32.store offset=4
- (get_local $7)
- (i32.sub
- (get_local $3)
- (get_local $6)
- )
- )
- (set_local $4
- (get_local $7)
- )
- (set_local $3
- (get_local $15)
- )
- (set_local $5
- (get_local $10)
- )
- (br $while-in$1)
)
)
(if
@@ -8240,9 +8145,9 @@
(i32.store offset=16
(get_local $0)
(i32.add
- (tee_local $5
+ (tee_local $3
(i32.load
- (get_local $8)
+ (get_local $7)
)
)
(i32.load offset=48
@@ -8251,16 +8156,16 @@
)
)
(i32.store
- (get_local $9)
- (tee_local $8
- (get_local $5)
+ (get_local $8)
+ (tee_local $7
+ (get_local $3)
)
)
(i32.store
- (get_local $14)
- (get_local $8)
+ (get_local $13)
+ (get_local $7)
)
- (set_local $16
+ (set_local $15
(get_local $2)
)
)
@@ -8275,11 +8180,11 @@
(i32.const 0)
)
(i32.store
- (get_local $9)
+ (get_local $8)
(i32.const 0)
)
(i32.store
- (get_local $14)
+ (get_local $13)
(i32.const 0)
)
(i32.store
@@ -8291,17 +8196,17 @@
(i32.const 32)
)
)
- (set_local $16
+ (set_local $15
(select
(i32.const 0)
(i32.sub
(get_local $2)
(i32.load offset=4
- (get_local $17)
+ (get_local $16)
)
)
(i32.eq
- (get_local $18)
+ (get_local $17)
(i32.const 2)
)
)
@@ -8310,9 +8215,9 @@
)
)
(set_global $r
- (get_local $11)
+ (get_local $10)
)
- (get_local $16)
+ (get_local $15)
)
(func $Wa (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
@@ -8332,10 +8237,10 @@
)
)
(block
- (set_local $7
+ (set_local $6
(get_local $5)
)
- (set_local $6
+ (set_local $7
(i32.const 5)
)
)
@@ -8347,12 +8252,12 @@
(i32.const 0)
)
(block
- (set_local $7
+ (set_local $6
(i32.load
(get_local $3)
)
)
- (set_local $6
+ (set_local $7
(i32.const 5)
)
)
@@ -8361,11 +8266,11 @@
(block $label$break$a
(if
(i32.eq
- (get_local $6)
+ (get_local $7)
(i32.const 5)
)
(block
- (set_local $6
+ (set_local $4
(tee_local $3
(i32.load
(tee_local $5
@@ -8380,7 +8285,7 @@
(if
(i32.lt_u
(i32.sub
- (get_local $7)
+ (get_local $6)
(get_local $3)
)
(get_local $1)
@@ -8405,7 +8310,7 @@
(br $label$break$a)
)
)
- (set_local $0
+ (set_local $1
(block $label$break$b
(if
(i32.gt_s
@@ -8419,57 +8324,48 @@
(get_local $1)
)
(loop $while-in$3
- (block $while-out$2
- (if
- (i32.eqz
- (get_local $3)
+ (if
+ (i32.eqz
+ (get_local $3)
+ )
+ (block
+ (set_local $2
+ (i32.const 0)
)
- (block
- (set_local $2
- (get_local $0)
- )
- (set_local $3
- (i32.const 0)
- )
- (br $label$break$b
- (get_local $1)
- )
+ (br $label$break$b
+ (get_local $1)
)
)
- (if
- (i32.eq
- (i32.load8_s
- (i32.add
- (get_local $0)
- (tee_local $7
- (i32.add
- (get_local $3)
- (i32.const -1)
- )
+ )
+ (if
+ (i32.ne
+ (i32.load8_s
+ (i32.add
+ (get_local $0)
+ (tee_local $6
+ (i32.add
+ (get_local $3)
+ (i32.const -1)
)
)
)
- (i32.const 10)
)
- (block
- (set_local $4
- (get_local $3)
- )
- (br $while-out$2)
- )
- (set_local $3
- (get_local $7)
- )
+ (i32.const 10)
)
- (br $while-in$3)
+ (block
+ (set_local $3
+ (get_local $6)
+ )
+ (br $while-in$3)
+ )
)
)
- (br_if $label$break$a
+ (if
(i32.lt_u
(call_indirect $FUNCSIG$iiii
(get_local $2)
(get_local $0)
- (get_local $4)
+ (get_local $3)
(i32.add
(i32.and
(i32.load offset=36
@@ -8480,33 +8376,36 @@
(i32.const 2)
)
)
- (get_local $4)
+ (get_local $3)
+ )
+ (block
+ (set_local $4
+ (get_local $3)
+ )
+ (br $label$break$a)
)
)
- (set_local $2
+ (set_local $0
(i32.add
(get_local $0)
- (get_local $4)
+ (get_local $3)
)
)
- (set_local $6
+ (set_local $4
(i32.load
(get_local $5)
)
)
- (set_local $3
- (get_local $4)
+ (set_local $2
+ (get_local $3)
)
(i32.sub
(get_local $1)
- (get_local $4)
+ (get_local $3)
)
)
(block
(set_local $2
- (get_local $0)
- )
- (set_local $3
(i32.const 0)
)
(get_local $1)
@@ -8516,9 +8415,9 @@
)
(drop
(call $jb
- (get_local $6)
- (get_local $2)
+ (get_local $4)
(get_local $0)
+ (get_local $1)
)
)
(i32.store
@@ -8527,13 +8426,13 @@
(i32.load
(get_local $5)
)
- (get_local $0)
+ (get_local $1)
)
)
(set_local $4
(i32.add
- (get_local $3)
- (get_local $0)
+ (get_local $2)
+ (get_local $1)
)
)
)
@@ -8560,53 +8459,47 @@
(get_local $3)
)
(loop $while-in$2
- (block $while-out$1
- (if
- (i32.eqz
- (i32.load8_s
- (get_local $0)
- )
- )
- (block
- (set_local $5
- (get_local $4)
- )
- (br $label$break$a)
+ (if
+ (i32.eqz
+ (i32.load8_s
+ (get_local $0)
)
)
- (if
- (i32.eqz
- (i32.and
- (tee_local $4
- (tee_local $0
- (i32.add
- (get_local $0)
- (i32.const 1)
- )
- )
+ (block
+ (set_local $5
+ (get_local $4)
+ )
+ (br $label$break$a)
+ )
+ )
+ (br_if $while-in$2
+ (i32.and
+ (tee_local $4
+ (tee_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
)
- (i32.const 3)
)
)
- (block
- (set_local $2
- (get_local $0)
- )
- (set_local $1
- (i32.const 4)
- )
- (br $while-out$1)
- )
+ (i32.const 3)
)
- (br $while-in$2)
+ )
+ (block
+ (set_local $1
+ (get_local $0)
+ )
+ (set_local $2
+ (i32.const 4)
+ )
)
)
)
(block
- (set_local $2
+ (set_local $1
(get_local $0)
)
- (set_local $1
+ (set_local $2
(i32.const 4)
)
)
@@ -8614,49 +8507,51 @@
)
(if
(i32.eq
- (get_local $1)
+ (get_local $2)
(i32.const 4)
)
(block
- (set_local $1
- (get_local $2)
+ (set_local $2
+ (get_local $1)
)
(loop $while-in$4
- (block $while-out$3
- (if
- (i32.and
- (i32.xor
- (i32.and
- (tee_local $2
- (i32.load
- (get_local $1)
- )
+ (if
+ (i32.and
+ (i32.xor
+ (i32.and
+ (tee_local $1
+ (i32.load
+ (get_local $2)
)
- (i32.const -2139062144)
)
(i32.const -2139062144)
)
+ (i32.const -2139062144)
+ )
+ (i32.add
+ (get_local $1)
+ (i32.const -16843009)
+ )
+ )
+ (set_local $0
+ (get_local $2)
+ )
+ (block
+ (set_local $2
(i32.add
(get_local $2)
- (i32.const -16843009)
- )
- )
- (br $while-out$3)
- (set_local $1
- (i32.add
- (get_local $1)
(i32.const 4)
)
)
+ (br $while-in$4)
)
- (br $while-in$4)
)
)
(if
(i32.shr_s
(i32.shl
(i32.and
- (get_local $2)
+ (get_local $1)
(i32.const 255)
)
(i32.const 24)
@@ -8664,32 +8559,31 @@
(i32.const 24)
)
(block
- (set_local $2
- (get_local $1)
+ (set_local $1
+ (get_local $0)
)
(loop $while-in$6
- (block $while-out$5
- (if
- (i32.load8_s
- (tee_local $1
- (i32.add
- (get_local $2)
- (i32.const 1)
- )
+ (if
+ (i32.load8_s
+ (tee_local $0
+ (i32.add
+ (get_local $1)
+ (i32.const 1)
)
)
- (set_local $2
- (get_local $1)
- )
- (br $while-out$5)
)
- (br $while-in$6)
+ (block
+ (set_local $1
+ (get_local $0)
+ )
+ (br $while-in$6)
+ )
)
)
)
)
(set_local $5
- (get_local $1)
+ (get_local $0)
)
)
)
@@ -8719,11 +8613,10 @@
)
)
(set_local $2
- (i32.eq
+ (i32.eqz
(call $Ya
(get_local $0)
)
- (i32.const 0)
)
)
(set_local $1
@@ -8773,70 +8666,62 @@
(get_local $0)
)
(loop $while-in$3
- (block $while-out$2
- (set_local $0
- (if
- (i32.gt_s
- (i32.load offset=76
- (get_local $1)
- )
- (i32.const -1)
- )
- (call $Ya
+ (set_local $0
+ (if
+ (i32.gt_s
+ (i32.load offset=76
(get_local $1)
)
- (i32.const 0)
+ (i32.const -1)
)
+ (call $Ya
+ (get_local $1)
+ )
+ (i32.const 0)
)
- (set_local $2
- (if
- (i32.gt_u
- (i32.load offset=20
- (get_local $1)
- )
- (i32.load offset=28
- (get_local $1)
- )
+ )
+ (set_local $2
+ (if
+ (i32.gt_u
+ (i32.load offset=20
+ (get_local $1)
)
- (i32.or
- (call $$a
- (get_local $1)
- )
- (get_local $2)
+ (i32.load offset=28
+ (get_local $1)
+ )
+ )
+ (i32.or
+ (call $$a
+ (get_local $1)
)
(get_local $2)
)
+ (get_local $2)
)
- (if
- (get_local $0)
- (call $Ta
+ )
+ (if
+ (get_local $0)
+ (call $Ta
+ (get_local $1)
+ )
+ )
+ (br_if $while-in$3
+ (tee_local $1
+ (i32.load offset=56
(get_local $1)
)
)
- (if
- (i32.eqz
- (tee_local $1
- (i32.load offset=56
- (get_local $1)
- )
- )
- )
- (block
- (set_local $0
- (get_local $2)
- )
- (br $while-out$2)
- )
- )
- (br $while-in$3)
)
)
)
+ (set_local $2
+ (get_local $0)
+ )
)
(call_import $xa
(i32.const 1188)
)
- (get_local $0)
+ (get_local $2)
)
)
)
@@ -9078,21 +8963,23 @@
)
)
)
- (call_indirect $FUNCSIG$iiii
- (get_local $0)
- (i32.sub
- (get_local $2)
- (get_local $6)
- )
- (i32.const 1)
- (i32.add
- (i32.and
- (i32.load offset=40
- (get_local $0)
- )
- (i32.const 3)
+ (drop
+ (call_indirect $FUNCSIG$iiii
+ (get_local $0)
+ (i32.sub
+ (get_local $2)
+ (get_local $6)
)
- (i32.const 2)
+ (i32.const 1)
+ (i32.add
+ (i32.and
+ (i32.load offset=40
+ (get_local $0)
+ )
+ (i32.const 3)
+ )
+ (i32.const 2)
+ )
)
)
)
@@ -9199,75 +9086,75 @@
)
)
(loop $while-in$3
- (block $while-out$2
- (br_if $while-out$2
- (i32.lt_s
- (get_local $2)
- (i32.const 4)
- )
+ (if
+ (i32.ge_s
+ (get_local $2)
+ (i32.const 4)
)
- (i32.store
- (get_local $0)
- (i32.load
- (get_local $1)
- )
- )
- (set_local $0
- (i32.add
+ (block
+ (i32.store
(get_local $0)
- (i32.const 4)
+ (i32.load
+ (get_local $1)
+ )
)
- )
- (set_local $1
- (i32.add
- (get_local $1)
- (i32.const 4)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 4)
+ )
)
- )
- (set_local $2
- (i32.sub
- (get_local $2)
- (i32.const 4)
+ (set_local $1
+ (i32.add
+ (get_local $1)
+ (i32.const 4)
+ )
)
+ (set_local $2
+ (i32.sub
+ (get_local $2)
+ (i32.const 4)
+ )
+ )
+ (br $while-in$3)
)
- (br $while-in$3)
)
)
)
)
(loop $while-in$5
- (block $while-out$4
- (br_if $while-out$4
- (i32.le_s
- (get_local $2)
- (i32.const 0)
- )
+ (if
+ (i32.gt_s
+ (get_local $2)
+ (i32.const 0)
)
- (i32.store8
- (get_local $0)
- (i32.load8_s
- (get_local $1)
- )
- )
- (set_local $0
- (i32.add
+ (block
+ (i32.store8
(get_local $0)
- (i32.const 1)
+ (i32.load8_s
+ (get_local $1)
+ )
)
- )
- (set_local $1
- (i32.add
- (get_local $1)
- (i32.const 1)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
)
- )
- (set_local $2
- (i32.sub
- (get_local $2)
- (i32.const 1)
+ (set_local $1
+ (i32.add
+ (get_local $1)
+ (i32.const 1)
+ )
)
+ (set_local $2
+ (i32.sub
+ (get_local $2)
+ (i32.const 1)
+ )
+ )
+ (br $while-in$5)
)
- (br $while-in$5)
)
)
(get_local $3)
@@ -9342,70 +9229,70 @@
)
)
(loop $while-in$1
- (block $while-out$0
- (br_if $while-out$0
- (i32.ge_s
- (get_local $0)
- (get_local $3)
- )
- )
- (i32.store8
+ (if
+ (i32.lt_s
(get_local $0)
- (get_local $1)
+ (get_local $3)
)
- (set_local $0
- (i32.add
+ (block
+ (i32.store8
(get_local $0)
- (i32.const 1)
+ (get_local $1)
)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ (br $while-in$1)
)
- (br $while-in$1)
)
)
)
)
(loop $while-in$3
- (block $while-out$2
- (br_if $while-out$2
- (i32.ge_s
- (get_local $0)
- (get_local $6)
- )
- )
- (i32.store
+ (if
+ (i32.lt_s
(get_local $0)
- (get_local $5)
+ (get_local $6)
)
- (set_local $0
- (i32.add
+ (block
+ (i32.store
(get_local $0)
- (i32.const 4)
+ (get_local $5)
)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 4)
+ )
+ )
+ (br $while-in$3)
)
- (br $while-in$3)
)
)
)
)
(loop $while-in$5
- (block $while-out$4
- (br_if $while-out$4
- (i32.ge_s
- (get_local $0)
- (get_local $4)
- )
- )
- (i32.store8
+ (if
+ (i32.lt_s
(get_local $0)
- (get_local $1)
+ (get_local $4)
)
- (set_local $0
- (i32.add
+ (block
+ (i32.store8
(get_local $0)
- (i32.const 1)
+ (get_local $1)
)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ (br $while-in$5)
)
- (br $while-in$5)
)
)
(i32.sub
@@ -9610,11 +9497,10 @@
)
(block
(set_local $5
- (i32.eq
+ (i32.eqz
(call $Ya
(get_local $3)
)
- (i32.const 0)
)
)
(set_local $0
diff --git a/test/memorygrowth.fromasm.imprecise.no-opts b/test/memorygrowth.fromasm.imprecise.no-opts
index 347eb43..064c1d8 100644
--- a/test/memorygrowth.fromasm.imprecise.no-opts
+++ b/test/memorygrowth.fromasm.imprecise.no-opts
@@ -10686,24 +10686,26 @@
(get_local $f)
(get_local $h)
)
- (call_indirect $FUNCSIG$iiii
- (get_local $a)
- (i32.sub
- (get_local $f)
- (get_local $h)
- )
- (i32.const 1)
- (i32.add
- (i32.and
- (i32.load
- (i32.add
- (get_local $a)
- (i32.const 40)
- )
- )
- (i32.const 3)
+ (drop
+ (call_indirect $FUNCSIG$iiii
+ (get_local $a)
+ (i32.sub
+ (get_local $f)
+ (get_local $h)
)
- (i32.const 2)
+ (i32.const 1)
+ (i32.add
+ (i32.and
+ (i32.load
+ (i32.add
+ (get_local $a)
+ (i32.const 40)
+ )
+ )
+ (i32.const 3)
+ )
+ (i32.const 2)
+ )
)
)
)
diff --git a/test/memorygrowth.fromasm.no-opts b/test/memorygrowth.fromasm.no-opts
index 9415b19..0639416 100644
--- a/test/memorygrowth.fromasm.no-opts
+++ b/test/memorygrowth.fromasm.no-opts
@@ -10687,24 +10687,26 @@
(get_local $f)
(get_local $h)
)
- (call_indirect $FUNCSIG$iiii
- (get_local $a)
- (i32.sub
- (get_local $f)
- (get_local $h)
- )
- (i32.const 1)
- (i32.add
- (i32.and
- (i32.load
- (i32.add
- (get_local $a)
- (i32.const 40)
- )
- )
- (i32.const 3)
+ (drop
+ (call_indirect $FUNCSIG$iiii
+ (get_local $a)
+ (i32.sub
+ (get_local $f)
+ (get_local $h)
)
- (i32.const 2)
+ (i32.const 1)
+ (i32.add
+ (i32.and
+ (i32.load
+ (i32.add
+ (get_local $a)
+ (i32.const 40)
+ )
+ )
+ (i32.const 3)
+ )
+ (i32.const 2)
+ )
)
)
)
diff --git a/test/passes/coalesce-locals.txt b/test/passes/coalesce-locals.txt
index 3836cfa..db7098a 100644
--- a/test/passes/coalesce-locals.txt
+++ b/test/passes/coalesce-locals.txt
@@ -881,21 +881,21 @@
(get_local $1)
)
)
- (func $prefer-remove-copies1 (type $2)
+ (func $prefer-remove-copies2 (type $2)
(local $0 i32)
(local $1 i32)
- (set_local $1
+ (set_local $0
(i32.const 0)
)
(nop)
- (set_local $0
+ (set_local $1
(i32.const 1)
)
(drop
- (get_local $0)
+ (get_local $1)
)
(drop
- (get_local $1)
+ (get_local $0)
)
)
)
diff --git a/test/passes/coalesce-locals.wast b/test/passes/coalesce-locals.wast
index 713fd7d..cd763af 100644
--- a/test/passes/coalesce-locals.wast
+++ b/test/passes/coalesce-locals.wast
@@ -905,7 +905,7 @@
(get_local $z)
)
)
- (func $prefer-remove-copies1 (type $2)
+ (func $prefer-remove-copies2 (type $2)
(local $y i32)
(local $z i32)
(local $x i32)
diff --git a/test/passes/optimize-instructions.txt b/test/passes/optimize-instructions.txt
index e7af484..ca5f028 100644
--- a/test/passes/optimize-instructions.txt
+++ b/test/passes/optimize-instructions.txt
@@ -166,5 +166,51 @@
(f64.const 2)
)
)
+ (drop
+ (i32.eqz
+ (i32.const 100)
+ )
+ )
+ (drop
+ (i32.eqz
+ (i32.const 100)
+ )
+ )
+ (drop
+ (i32.eqz
+ (i32.const 0)
+ )
+ )
+ (if
+ (i32.const 123)
+ (nop)
+ )
+ (drop
+ (select
+ (i32.const 102)
+ (i32.const 101)
+ (get_local $i1)
+ )
+ )
+ (drop
+ (select
+ (tee_local $i1
+ (i32.const 103)
+ )
+ (tee_local $i1
+ (i32.const 104)
+ )
+ (i32.eqz
+ (get_local $i1)
+ )
+ )
+ )
+ (drop
+ (select
+ (i32.const 0)
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
)
)
diff --git a/test/passes/optimize-instructions.wast b/test/passes/optimize-instructions.wast
index f06d99f..b1a7ab4 100644
--- a/test/passes/optimize-instructions.wast
+++ b/test/passes/optimize-instructions.wast
@@ -192,5 +192,64 @@
)
)
)
+ (drop
+ (i32.eq
+ (i32.const 100)
+ (i32.const 0)
+ )
+ )
+ (drop
+ (i32.eq
+ (i32.const 0)
+ (i32.const 100)
+ )
+ )
+ (drop
+ (i32.eq
+ (i32.const 0)
+ (i32.const 0)
+ )
+ )
+ (if
+ (i32.eqz
+ (i32.eqz
+ (i32.const 123)
+ )
+ )
+ (nop)
+ )
+ (drop
+ (select
+ (i32.const 101)
+ (i32.const 102)
+ (i32.eqz
+ (get_local $i1)
+ )
+ )
+ )
+ (drop
+ (select
+ (tee_local $i1
+ (i32.const 103)
+ ) ;; these conflict
+ (tee_local $i1
+ (i32.const 104)
+ )
+ (i32.eqz
+ (get_local $i1)
+ )
+ )
+ )
+ (drop
+ (select
+ (i32.const 0)
+ (i32.const 1)
+ (i32.eqz
+ (i32.eqz
+ (i32.const 2)
+ )
+ )
+ )
+ )
)
)
diff --git a/test/passes/remove-unused-brs.txt b/test/passes/remove-unused-brs.txt
index 1c5c8e7..94b2145 100644
--- a/test/passes/remove-unused-brs.txt
+++ b/test/passes/remove-unused-brs.txt
@@ -3,6 +3,7 @@
(type $0 (func (param i32)))
(type $1 (func))
(type $2 (func (result i32)))
+ (type $3 (func (param i32 i32) (result i32)))
(func $b0-yes (type $0) (param $i1 i32)
(block $topmost
)
@@ -108,7 +109,7 @@
(drop
(i32.const 0)
)
- (br_if $inner
+ (br_if $topmost
(i32.const 1)
)
)
@@ -419,4 +420,427 @@
(i32.const 1)
)
)
+ (func $loops (type $1)
+ (loop $in
+ (block $out
+ (br_if $in
+ (i32.eqz
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ (loop $in
+ (br $in)
+ )
+ (loop $loop-in1
+ (block $out
+ (br_if $out
+ (i32.const 0)
+ )
+ )
+ )
+ (loop $in
+ (block $out
+ (br_if $out
+ (i32.const 0)
+ )
+ )
+ )
+ (loop $in
+ (nop)
+ )
+ (loop $in
+ (block $out
+ )
+ )
+ (loop $in
+ (block $out
+ (br_if $out
+ (i32.const 0)
+ )
+ (br_if $in
+ (i32.const 1)
+ )
+ )
+ )
+ (loop $in
+ (block $out
+ (br_if $in
+ (i32.const 0)
+ )
+ )
+ )
+ (loop $in
+ (block $out
+ (if
+ (i32.const 0)
+ (unreachable)
+ )
+ (br $in)
+ )
+ )
+ (loop $in
+ (block $out
+ (br_if $in
+ (i32.eqz
+ (i32.const 0)
+ )
+ )
+ (block $block8
+ (call $loops)
+ )
+ )
+ )
+ (loop $in-todo
+ (block $out-todo
+ (if
+ (i32.const 0)
+ (nop)
+ (block
+ (call $loops)
+ (br $in-todo)
+ )
+ )
+ )
+ )
+ (loop $in
+ (block $out
+ (if
+ (i32.const 0)
+ (nop)
+ (block
+ (call $loops)
+ (br $in)
+ )
+ )
+ )
+ )
+ (loop $in
+ (block $out
+ (if
+ (i32.const 0)
+ (block
+ (call $loops)
+ (br $in)
+ )
+ (nop)
+ )
+ )
+ )
+ (loop $in
+ (block $out
+ (if
+ (i32.const 0)
+ (block $block15
+ (drop
+ (i32.const 1)
+ )
+ (call $loops)
+ (br $in)
+ )
+ (nop)
+ )
+ )
+ )
+ (loop $in
+ (block $out
+ (if
+ (i32.const 0)
+ (nop)
+ (block
+ (call $loops)
+ (drop
+ (i32.const 100)
+ )
+ (br $in)
+ )
+ )
+ )
+ )
+ (loop $in
+ (block $out
+ (if
+ (i32.const 0)
+ (block
+ (call $loops)
+ (drop
+ (i32.const 101)
+ )
+ (br $in)
+ )
+ (nop)
+ )
+ )
+ )
+ (loop $in
+ (block $out
+ (if
+ (i32.const 0)
+ (block $block22
+ (drop
+ (i32.const 1)
+ )
+ (call $loops)
+ (drop
+ (i32.const 102)
+ )
+ (br $in)
+ )
+ (nop)
+ )
+ )
+ )
+ (loop $in
+ (block $out
+ (br_if $out
+ (i32.const 0)
+ )
+ (call $loops)
+ (return)
+ (br $in)
+ )
+ )
+ (loop $in
+ (block $out
+ (br_if $out
+ (i32.const 0)
+ )
+ (call $loops)
+ (br $out)
+ (br $in)
+ )
+ )
+ (loop $in
+ (block $out
+ (if
+ (i32.const 0)
+ (nop)
+ (block
+ (call $loops)
+ (drop
+ (block $out2
+ (i32.const 1)
+ )
+ )
+ (br $in)
+ )
+ )
+ )
+ )
+ (loop $in
+ (block $out
+ (br_if $in
+ (i32.eqz
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ (loop $in-todo2
+ (block $out-todo2
+ (if
+ (i32.const 0)
+ (nop)
+ (block
+ (call $loops)
+ (br $in-todo2)
+ )
+ )
+ )
+ )
+ (loop $in
+ (block $out
+ (br $out)
+ (br $in)
+ )
+ )
+ (loop $in
+ (block $out
+ (br_if $in
+ (i32.const 0)
+ )
+ (br $in)
+ )
+ )
+ (loop $in-not
+ (block $out-not
+ (br_if $out-not
+ (i32.const -1)
+ )
+ (br_if $out-not
+ (i32.const 0)
+ )
+ (call $loops)
+ (br $in-not)
+ )
+ )
+ (loop $in-todo2
+ (block $out-todo2
+ (if
+ (i32.const 0)
+ (nop)
+ (block
+ (call $loops)
+ (drop
+ (i32.const 1)
+ )
+ (br $in-todo2)
+ )
+ )
+ )
+ )
+ )
+ (func $br_if_in_block (type $2) (result i32)
+ (block $outval
+ (block $in
+ (br_if $in
+ (i32.const 1)
+ )
+ (br $in)
+ (drop
+ (i32.const 2)
+ )
+ (br_if $in
+ (i32.eqz
+ (i32.const 3)
+ )
+ )
+ (unreachable)
+ (drop
+ (i32.const 4)
+ )
+ (br_if $in
+ (i32.const 5)
+ )
+ (unreachable)
+ (drop
+ (i32.const 6)
+ )
+ )
+ (if
+ (i32.const 6)
+ (br $outval
+ (i32.const 7)
+ )
+ (i32.const 8)
+ )
+ )
+ )
+ (func $threading (type $1)
+ (drop
+ (block $value-out
+ (block $value-in
+ (block $out
+ (block $in
+ (br_if $out
+ (i32.const 1)
+ )
+ (br_if $out
+ (i32.const 2)
+ )
+ (br $value-in
+ (i32.const 3)
+ )
+ )
+ )
+ (i32.const 4)
+ )
+ )
+ )
+ (block $stack1
+ (block $stack2
+ (block $stack3
+ (block $stack4
+ (br_if $stack1
+ (i32.const 1)
+ )
+ (unreachable)
+ )
+ )
+ )
+ )
+ )
+ (func $if-to-br_if-conflict (type $3) (param $x i32) (param $y i32) (result i32)
+ (block $leave
+ (set_local $y
+ (block $out
+ (if
+ (get_local $x)
+ (br $out
+ (block $block1
+ (set_local $x
+ (i32.const 0)
+ )
+ (i32.const 1)
+ )
+ )
+ (br_if $leave
+ (i32.const 1)
+ )
+ )
+ (unreachable)
+ )
+ )
+ )
+ (i32.add
+ (get_local $x)
+ (get_local $y)
+ )
+ )
+ (func $if-to-br_if-conflict2 (type $3) (param $x i32) (param $y i32) (result i32)
+ (block $leave
+ (set_local $y
+ (block $out
+ (if
+ (get_local $x)
+ (br_if $leave
+ (i32.const 1)
+ )
+ (br $out
+ (block $block2
+ (set_local $x
+ (i32.const 0)
+ )
+ (i32.const 1)
+ )
+ )
+ )
+ (unreachable)
+ )
+ )
+ )
+ (i32.add
+ (get_local $x)
+ (get_local $y)
+ )
+ )
+ (func $if-to-br_if-value-sideeffect (type $3) (param $x i32) (param $y i32) (result i32)
+ (block $leave
+ (set_local $y
+ (block $out
+ (if
+ (get_local $x)
+ (br $out
+ (block $block1
+ (drop
+ (call $if-to-br_if-value-sideeffect
+ (i32.const 0)
+ (i32.const 1)
+ )
+ )
+ (nop)
+ (i32.const 1)
+ )
+ )
+ )
+ (unreachable)
+ )
+ )
+ )
+ (i32.add
+ (get_local $x)
+ (get_local $y)
+ )
+ )
)
diff --git a/test/passes/remove-unused-brs.wast b/test/passes/remove-unused-brs.wast
index f3d20f5..ecbcb6c 100644
--- a/test/passes/remove-unused-brs.wast
+++ b/test/passes/remove-unused-brs.wast
@@ -452,4 +452,312 @@
(i32.const 1)
)
)
+ (func $loops
+ (loop $in
+ (block $out
+ (if (i32.const 0) (br $out))
+ (br $in) ;; we can conditionalize this, and then the br out can vanish
+ )
+ )
+ (loop $in
+ (br $in)
+ )
+ (loop
+ (block $out
+ (if (i32.const 0) (br $out))
+ (br $out)
+ )
+ )
+ (loop $in
+ (block $out
+ (if (i32.const 0) (br $out))
+ (br $out)
+ )
+ )
+ (loop $in)
+ (loop $in
+ (block $out)
+ )
+ (loop $in
+ (block $out
+ (if (i32.const 0) (br $out))
+ (br_if $in (i32.const 1))
+ )
+ )
+ (loop $in
+ (block $out
+ (if (i32.const 0) (br $in))
+ (br $out)
+ )
+ )
+ (loop $in
+ (block $out
+ (if (i32.const 0) (unreachable))
+ (br $in)
+ )
+ )
+ (loop $in
+ (block $out
+ (if (i32.const 0)
+ (block
+ (call $loops)
+ (br $out)
+ )
+ )
+ (br $in)
+ )
+ )
+ (loop $in-todo ;; br_if into if
+ (block $out-todo
+ (if (i32.const 0) (br $out-todo))
+ (call $loops)
+ (br $in-todo)
+ )
+ )
+ (loop $in
+ (block $out
+ (if (i32.const 0)
+ (br $out)
+ (call $loops)
+ )
+ (br $in)
+ )
+ )
+ (loop $in
+ (block $out
+ (if (i32.const 0)
+ (call $loops)
+ (br $out)
+ )
+ (br $in)
+ )
+ )
+ (loop $in
+ (block $out
+ (if (i32.const 0)
+ (block
+ (drop (i32.const 1))
+ (call $loops)
+ )
+ (br $out)
+ )
+ (br $in)
+ )
+ )
+ (loop $in
+ (block $out
+ (if (i32.const 0)
+ (br $out)
+ (call $loops)
+ )
+ (drop (i32.const 100))
+ (br $in)
+ )
+ )
+ (loop $in
+ (block $out
+ (if (i32.const 0)
+ (call $loops)
+ (br $out)
+ )
+ (drop (i32.const 101))
+ (br $in)
+ )
+ )
+ (loop $in
+ (block $out
+ (if (i32.const 0)
+ (block
+ (drop (i32.const 1))
+ (call $loops)
+ )
+ (br $out)
+ )
+ (drop (i32.const 102))
+ (br $in)
+ )
+ )
+ (loop $in
+ (block $out
+ (if (i32.const 0)
+ (br $out)
+ (call $loops)
+ )
+ (return)
+ (br $in)
+ )
+ )
+ (loop $in
+ (block $out
+ (if (i32.const 0)
+ (br $out)
+ (call $loops)
+ )
+ (br $out)
+ (br $in)
+ )
+ )
+ (loop $in
+ (block $out
+ (if (i32.const 0)
+ (br $out)
+ (call $loops)
+ )
+ (drop
+ (block $out2
+ (br $out2 (i32.const 1))
+ )
+ )
+ (br $in)
+ )
+ )
+ (loop $in
+ (block $out
+ (br_if $out (i32.const 0))
+ (br $in)
+ )
+ )
+ (loop $in-todo2 ;; if-ify
+ (block $out-todo2
+ (br_if $out-todo2 (i32.const 0))
+ (call $loops)
+ (br $in-todo2)
+ )
+ )
+ (loop $in
+ (block $out
+ (br $out)
+ (br $in)
+ )
+ )
+ (loop $in
+ (block $out
+ (br_if $in (i32.const 0))
+ (br $in)
+ )
+ )
+ (loop $in-not ;; do NOT if-ify, the block can't be removed
+ (block $out-not
+ (br_if $out-not (i32.const -1))
+ (br_if $out-not (i32.const 0))
+ (call $loops)
+ (br $in-not)
+ )
+ )
+ (loop $in-todo2 ;; if-ify a slice with 2 things
+ (block $out-todo2
+ (br_if $out-todo2 (i32.const 0))
+ (call $loops)
+ (drop (i32.const 1))
+ (br $in-todo2)
+ )
+ )
+ )
+ (func $br_if_in_block (result i32)
+ (block $outval
+ (block $in
+ (if (i32.const 1) (br $in) (br $in))
+ (drop (i32.const 2))
+ (if (i32.const 3) (unreachable) (br $in))
+ (drop (i32.const 4))
+ (if (i32.const 5) (br $in) (unreachable))
+ (drop (i32.const 6))
+ )
+ (if (i32.const 6) (br $outval (i32.const 7)) (i32.const 8))
+ )
+ )
+ (func $threading
+ (drop
+ (block $value-out
+ (block $value-in
+ (block $out
+ (block $in
+ (if (i32.const 1)
+ (br $in)
+ )
+ (br_if $in (i32.const 2))
+ (br $value-in (i32.const 3))
+ )
+ (br $out)
+ )
+ (i32.const 4)
+ )
+ )
+ )
+ (block $stack1
+ (block $stack2
+ (block $stack3
+ (block $stack4
+ (if (i32.const 1)
+ (br $stack4)
+ )
+ (unreachable)
+ )
+ (br $stack3)
+ )
+ (br $stack2)
+ )
+ (br $stack1)
+ )
+ )
+ (func $if-to-br_if-conflict (param $x i32) (param $y i32) (result i32)
+ (block $leave
+ (set_local $y
+ (block $out
+ (if
+ (get_local $x)
+ (br $out
+ (block
+ (set_local $x (i32.const 0))
+ (i32.const 1)
+ )
+ )
+ (br_if $leave (i32.const 1))
+ )
+ (unreachable)
+ )
+ )
+ )
+ (i32.add (get_local $x) (get_local $y))
+ )
+ (func $if-to-br_if-conflict2 (param $x i32) (param $y i32) (result i32)
+ (block $leave
+ (set_local $y
+ (block $out
+ (if
+ (get_local $x)
+ (br_if $leave (i32.const 1))
+ (br $out
+ (block
+ (set_local $x (i32.const 0))
+ (i32.const 1)
+ )
+ )
+ )
+ (unreachable)
+ )
+ )
+ )
+ (i32.add (get_local $x) (get_local $y))
+ )
+ (func $if-to-br_if-value-sideeffect (param $x i32) (param $y i32) (result i32)
+ (block $leave
+ (set_local $y
+ (block $out
+ (if
+ (get_local $x)
+ (br $out
+ (block
+ (drop (call $if-to-br_if-value-sideeffect (i32.const 0) (i32.const 1)))
+ (nop)
+ (i32.const 1)
+ )
+ )
+ )
+ (unreachable)
+ )
+ )
+ )
+ (i32.add (get_local $x) (get_local $y))
+ )
)
diff --git a/test/passes/simplify-locals.txt b/test/passes/simplify-locals.txt
index 72bd7aa..4b7cd2b 100644
--- a/test/passes/simplify-locals.txt
+++ b/test/passes/simplify-locals.txt
@@ -7,11 +7,13 @@
(type $4 (func (param i32)))
(type $5 (func (param i32) (result i32)))
(type $6 (func (param i32 i32 i32 i32 i32 i32)))
- (type $7 (func (param i32 i32)))
+ (type $FUNCSIG$iii (func (param i32 i32) (result i32)))
+ (type $8 (func (param i32 i32)))
(import "env" "waka" (func $waka))
(import "env" "waka_int" (func $waka_int (result i32)))
(import "env" "i64sub" (func $_i64Subtract (param i32 i32 i32 i32) (result i32)))
(import "env" "moddi" (func $___udivmoddi4 (param i32 i32 i32 i32 i32) (result i32)))
+ (import "env" "lp" (func $lp (param i32 i32) (result i32)))
(func $b0-yes (type $4) (param $i1 i32)
(local $x i32)
(local $y i32)
@@ -576,14 +578,18 @@
(block $out
(nop)
(br_if $out
- (block $waka
- (nop)
- (br_if $waka
- (i32.const 12)
- (i32.const 1)
+ (tee_local $x
+ (block $waka
+ (nop)
+ (br_if $waka
+ (tee_local $x
+ (i32.const 12)
+ )
+ (i32.const 1)
+ )
+ (nop)
+ (i32.const 34)
)
- (nop)
- (i32.const 34)
)
(i32.const 1)
)
@@ -607,15 +613,17 @@
(nop)
)
(br_if $out
- (if
- (i32.const 1)
- (block $block3
- (nop)
- (i32.const 14)
- )
- (block $block5
- (nop)
- (i32.const 25)
+ (tee_local $x
+ (if
+ (i32.const 1)
+ (block $block3
+ (nop)
+ (i32.const 14)
+ )
+ (block $block5
+ (nop)
+ (i32.const 25)
+ )
)
)
(i32.const 1)
@@ -674,7 +682,7 @@
(get_local $i1)
)
)
- (func $no-out-of-label (type $7) (param $x i32) (param $y i32)
+ (func $no-out-of-label (type $8) (param $x i32) (param $y i32)
(loop $moar
(set_local $x
(block $block0
@@ -702,4 +710,29 @@
(get_local $y)
)
)
+ (func $freetype-cd (type $5) (param $a i32) (result i32)
+ (local $e i32)
+ (loop $while-in$1
+ (set_local $a
+ (block $while-out$0
+ (set_local $e
+ (get_local $a)
+ )
+ (nop)
+ (br_if $while-out$0
+ (tee_local $a
+ (i32.const 4)
+ )
+ (get_local $e)
+ )
+ (nop)
+ (i32.add
+ (get_local $a)
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ (get_local $a)
+ )
)
diff --git a/test/passes/simplify-locals.wast b/test/passes/simplify-locals.wast
index 2b5b84a..b703613 100644
--- a/test/passes/simplify-locals.wast
+++ b/test/passes/simplify-locals.wast
@@ -11,6 +11,7 @@
(import $waka_int "env" "waka_int" (result i32))
(import $_i64Subtract "env" "i64sub" (param i32 i32 i32 i32) (result i32))
(import $___udivmoddi4 "env" "moddi" (param i32 i32 i32 i32 i32) (result i32))
+ (import $lp "env" "lp" (param i32 i32) (result i32))
(func $b0-yes (type $4) (param $i1 i32)
(local $x i32)
(local $y i32)
@@ -751,4 +752,27 @@
)
(drop (get_local $y))
)
+ (func $freetype-cd (param $a i32) (result i32)
+ (local $e i32)
+ (loop $while-in$1
+ (block $while-out$0
+ (set_local $e
+ (get_local $a)
+ )
+ (set_local $a ;; this set must happen, so that if the br_if does not break, we have the right $a later down - once we use a block return value, the $a set's outside the block
+ (i32.const 4)
+ )
+ (br_if $while-out$0
+ (get_local $e)
+ )
+ (set_local $a
+ (i32.add
+ (get_local $a)
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ (get_local $a)
+ )
)
diff --git a/test/passes/vacuum.txt b/test/passes/vacuum.txt
index 1adcc3e..04a04ef 100644
--- a/test/passes/vacuum.txt
+++ b/test/passes/vacuum.txt
@@ -7,6 +7,7 @@
(type $4 (func (param i32 f64 i32 i32)))
(type $FUNCSIG$i (func (result i32)))
(import "env" "int" (func $int (result i32)))
+ (global $Int i32 (i32.const 0))
(func $b (type $0)
(nop)
)
@@ -42,16 +43,10 @@
)
(func $binary (type $2) (result f32)
(drop
- (f32.add
- (unreachable)
- (f32.const 3)
- )
+ (unreachable)
)
(drop
- (f32.add
- (f32.const 4)
- (unreachable)
- )
+ (unreachable)
)
(f32.add
(unreachable)
@@ -64,25 +59,13 @@
)
(func $select (type $3) (result i32)
(drop
- (select
- (unreachable)
- (i32.const 4)
- (i32.const 5)
- )
+ (unreachable)
)
(drop
- (select
- (i32.const 6)
- (unreachable)
- (i32.const 7)
- )
+ (unreachable)
)
(drop
- (select
- (i32.const 8)
- (i32.const 9)
- (unreachable)
- )
+ (unreachable)
)
(select
(unreachable)
@@ -178,4 +161,50 @@
)
)
)
+ (func $drop-silly (type $0)
+ (drop
+ (call_import $int)
+ )
+ (drop
+ (call_import $int)
+ )
+ (drop
+ (call_import $int)
+ )
+ (drop
+ (i32.add
+ (call_import $int)
+ (call_import $int)
+ )
+ )
+ )
+ (func $drop-get-global (type $0)
+ (call $drop-get-global)
+ )
+ (func $relooperJumpThreading1 (type $0)
+ (local $$vararg_ptr5 i32)
+ (local $$11 i32)
+ (loop $while-in$1
+ (drop
+ (block $jumpthreading$outer$8
+ (block $jumpthreading$inner$8
+ (br $jumpthreading$outer$8
+ (i32.const 0)
+ )
+ )
+ (i32.store
+ (get_local $$vararg_ptr5)
+ (get_local $$11)
+ )
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ (func $relooperJumpThreading2 (type $0)
+ (nop)
+ )
+ (func $relooperJumpThreading3 (type $0)
+ (nop)
+ )
)
diff --git a/test/passes/vacuum.wast b/test/passes/vacuum.wast
index 3630512..84f3eeb 100644
--- a/test/passes/vacuum.wast
+++ b/test/passes/vacuum.wast
@@ -6,6 +6,7 @@
(type $3 (func (result i32)))
(type $4 (func (param i32 f64 i32 i32)))
(import $int "env" "int" (result i32))
+ (global $Int i32 (i32.const 0))
(func $b (type $0)
(drop
(i32.const 50)
@@ -314,4 +315,101 @@
)
)
)
+ (func $drop-silly
+ (drop
+ (i32.eqz
+ (i32.eqz
+ (i32.const 1)
+ )
+ )
+ )
+ (drop
+ (i32.eqz
+ (i32.eqz
+ (call_import $int)
+ )
+ )
+ )
+ (drop
+ (i32.add
+ (i32.const 2)
+ (i32.const 3)
+ )
+ )
+ (drop
+ (i32.add
+ (i32.const 4)
+ (call_import $int)
+ )
+ )
+ (drop
+ (i32.add
+ (call_import $int)
+ (i32.const 5)
+ )
+ )
+ (drop
+ (i32.add
+ (call_import $int)
+ (call_import $int)
+ )
+ )
+ )
+ (func $drop-get-global
+ (drop
+ (block
+ (call $drop-get-global)
+ (get_global $Int) ;; this is not needed due to the block being drop'd, but make sure the call is not then dropped either
+ )
+ )
+ )
+ (func $relooperJumpThreading1
+ (local $$vararg_ptr5 i32)
+ (local $$11 i32)
+ (loop $while-in$1
+ (drop
+ (block $jumpthreading$outer$8
+ (block $jumpthreading$inner$8
+ (br $jumpthreading$outer$8 ;; the rest is dead in the outer block, but be careful to leave the return value!
+ (i32.const 0)
+ )
+ )
+ (i32.store
+ (get_local $$vararg_ptr5)
+ (get_local $$11)
+ )
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ (func $relooperJumpThreading2
+ (loop $while-in$1
+ (drop
+ (block $jumpthreading$outer$8
+ (block $jumpthreading$inner$8
+ (br $jumpthreading$outer$8
+ (i32.const 0)
+ )
+ )
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ (func $relooperJumpThreading3
+ (loop $while-in$1
+ (drop
+ (block $jumpthreading$outer$8
+ (br $jumpthreading$outer$8 ;; code after this is dead, can kill it, but preserve the return value at the end!
+ (i32.const 0)
+ )
+ (drop (i32.const 3))
+ (drop (i32.const 2))
+ (drop (i32.const 1))
+ (i32.const 0)
+ )
+ )
+ )
+ )
)
diff --git a/test/unit.asm.js b/test/unit.asm.js
index e76ae1e..d4426bd 100644
--- a/test/unit.asm.js
+++ b/test/unit.asm.js
@@ -9,11 +9,13 @@
var Math_ceil = global.Math.ceil;
var tempDoublePtr = env.tempDoublePtr | 0;
var n = env.gb | 0;
+ var STACKTOP = env.STACKTOP | 0;
var setTempRet0=env.setTempRet0;
var abort = env.abort;
var print = env.print;
var h = env.h;
+ var return_int = env.return_int;
var HEAP8 = new global.Int8Array(buffer);
var HEAP16 = new global.Int16Array(buffer);
@@ -330,11 +332,246 @@
y = 3 ? +abort(7) : 4.5;
}
+ function loadSigned(x) {
+ x = x | 0;
+ loadSigned(HEAP8[x >> 0] << 24 >> 24);
+ loadSigned(HEAPU8[x >> 0] << 24 >> 24);
+ loadSigned(HEAP16[x >> 1] << 16 >> 16);
+ loadSigned(HEAPU16[x >> 1] << 16 >> 16);
+ loadSigned(HEAP8[x >> 0] << 24 >> 16);
+ loadSigned(HEAPU8[x >> 0] << 16 >> 24);
+ loadSigned(HEAP16[x >> 1] << 16 >> 24);
+ loadSigned(HEAPU16[x >> 1] << 24 >> 16);
+ }
+
function z() {
}
function w() {
}
+ function globalOpts() {
+ var x = 0, y = +0;
+ x = Int;
+ y = Double;
+ HEAP8[13] = HEAP32[3]; // access memory, should not confuse the global writes
+ Double = y;
+ Int = x;
+ globalOpts();
+ x = Int;
+ if (1) Int = 20; // but this does interfere
+ Int = x;
+ globalOpts();
+ x = Int;
+ globalOpts(); // this too
+ Int = x;
+ }
+
+ function dropCallImport() {
+ if (1) return_int() | 0;
+ }
+
+ function loophi(x, y) {
+ x = x | 0;
+ y = y | 0;
+ var temp = 0, inc = 0, loopvar = 0; // this order matters
+ loopvar = x;
+ while(1) {
+ loophi(loopvar | 0, 0);
+ temp = loopvar;
+ if (temp) {
+ if (temp) {
+ break;
+ }
+ }
+ inc = loopvar + 1 | 0;
+ if (inc == y) {
+ loopvar = inc;
+ } else {
+ break;
+ }
+ }
+ }
+
+ function loophi2() {
+ var jnc = 0, i = 0, i$lcssa = 0, temp = 0, j = 0;
+ i = 0;
+ L7: while(1) {
+ j = 0;
+ while(1) {
+ temp = j;
+ if (1) {
+ if (temp) {
+ i$lcssa = i;
+ break L7;
+ }
+ }
+ jnc = j + 1 | 0;
+ if (jnc) {
+ j = jnc;
+ } else {
+ break;
+ }
+ }
+ }
+ return i$lcssa | 0
+ }
+
+ function relooperJumpThreading(x) {
+ x = x | 0;
+ var label = 0;
+ // from if
+ if (x) {
+ h(0);
+ label = 1;
+ }
+ if ((label|0) == 1) {
+ h(1);
+ }
+ h(-1);
+ // from loop
+ while (1) {
+ x = x + 1;
+ if (x) {
+ h(2);
+ label = 2;
+ break;
+ }
+ }
+ if ((label|0) == 2) {
+ h(3);
+ }
+ h(-2);
+ // if-else afterward
+ if (x) {
+ h(4);
+ if (x == 3) {
+ label = 3;
+ } else {
+ label = 4;
+ }
+ }
+ if ((label|0) == 3) {
+ h(5);
+ } else if ((label|0) == 4) {
+ h(6);
+ }
+ h(-3);
+ // two ifs afterward
+ if (x) {
+ h(7);
+ if (x == 5) {
+ label = 5;
+ } else {
+ label = 6;
+ }
+ }
+ if ((label|0) == 5) {
+ h(8);
+ if (x == 6) {
+ label = 6;
+ }
+ }
+ if ((label|0) == 6) {
+ h(9);
+ }
+ h(-4);
+ // labeled if after
+ if (x) {
+ h(10);
+ label = 7;
+ }
+ L1: do {
+ if ((label|0) == 7) {
+ h(11);
+ break L1;
+ }
+ } while (0);
+ h(-5);
+ // labeled if after normal if
+ if (x) {
+ h(12);
+ if (x == 8) {
+ label = 8;
+ } else {
+ label = 9;
+ }
+ }
+ if ((label|0) == 8) {
+ h(13);
+ if (x) label = 9;
+ }
+ L1: do {
+ if ((label|0) == 9) {
+ h(14);
+ break L1;
+ }
+ } while (0);
+ h(-6);
+ // TODO
+ // labeled if after a first if
+ // do-enclosed if after (?)
+ // test multiple labels, some should be ignored initially by JumpUpdater
+ return x;
+ }
+
+ function relooperJumpThreading__ZN4game14preloadweaponsEv() {
+ var $12 = 0, $14 = 0, $or$cond8 = 0, $or$cond6 = 0, $vararg_ptr5 = 0, $11 = 0, $exitcond = 0, label = 0;
+ while(1) {
+ if ($14) {
+ if ($or$cond8) {
+ label = 7;
+ } else {
+ label = 8;
+ }
+ } else {
+ if ($or$cond6) {
+ label = 7;
+ } else {
+ label = 8;
+ }
+ }
+ if ((label|0) == 7) {
+ label = 0;
+ }
+ else if ((label|0) == 8) {
+ label = 0;
+ HEAP32[$vararg_ptr5>>2] = $11;
+ }
+ }
+ }
+
+ function __Z12multi_varargiz($0) {
+ $0 = $0|0;
+ var $2 = 0, $$06$i4 = 0, $exitcond$i6 = 0, $12 = 0, $20 = 0;
+ if ($2) {
+ while(1) {
+ $12 = $$06$i4;
+ if ($exitcond$i6) {
+ break;
+ } else {
+ $$06$i4 = $20;
+ }
+ }
+ } else {
+ lb(1) | 0; // returns a value, and the while is unreachable
+ }
+ }
+
+ function jumpThreadDrop() {
+ var label = 0, temp = 0;
+ temp = return_int() | 0;
+ while (1) {
+ label = 14;
+ break;
+ }
+ if ((label | 0) == 10) {
+ } else if ((label | 0) == 12) {
+ return_int() | 0; // drop in the middle of an if-else chain for threading
+ } else if ((label | 0) == 14) {
+ }
+ return temp | 0;
+ }
+
var FUNCTION_TABLE_a = [ z, big_negative, z, z ];
var FUNCTION_TABLE_b = [ w, w, importedDoubles, w ];
var FUNCTION_TABLE_c = [ z, cneg ];
diff --git a/test/unit.fromasm b/test/unit.fromasm
index 33dd153..6dd442a 100644
--- a/test/unit.fromasm
+++ b/test/unit.fromasm
@@ -8,14 +8,17 @@
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$dd (func (param f64) (result f64)))
+ (type $FUNCSIG$i (func (result i32)))
(import "global" "NaN" (global $t f64))
(import "global" "Infinity" (global $u f64))
(import "env" "tempDoublePtr" (global $tempDoublePtr i32))
(import "env" "gb" (global $n i32))
+ (import "env" "STACKTOP" (global $STACKTOP i32))
(import "env" "setTempRet0" (func $setTempRet0 (param i32) (result i32)))
(import "env" "abort" (func $abort (param f64) (result f64)))
(import "env" "print" (func $print (param i32)))
(import "env" "h" (func $h (param i32)))
+ (import "env" "return_int" (func $return_int (result i32)))
(import "asm2wasm" "f64-to-int" (func $f64-to-int (param f64) (result i32)))
(import "asm2wasm" "f64-rem" (func $f64-rem (param f64 f64) (result f64)))
(import "asm2wasm" "i32u-div" (func $i32u-div (param i32 i32) (result i32)))
@@ -109,14 +112,10 @@
(get_local $0)
)
)
- (drop
- (f64.convert_s/i32
- (tee_local $2
- (call_import $f64-to-int
- (f64.promote/f32
- (get_local $1)
- )
- )
+ (set_local $2
+ (call_import $f64-to-int
+ (f64.promote/f32
+ (get_local $1)
)
)
)
@@ -178,27 +177,24 @@
(block $label$break$L1
(loop $label$continue$L3
(block $label$break$L3
- (block $switch$17
- (block $switch-default$21
- (block $switch-case$20
- (block $switch-case$19
- (block $switch-case$18
- (br_table $switch-case$18 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-case$20 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-case$19 $switch-default$21
- (i32.sub
- (get_local $0)
- (i32.const -1)
- )
+ (block $switch-default$21
+ (block $switch-case$20
+ (block $switch-case$19
+ (block $switch-case$18
+ (br_table $switch-case$18 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-case$20 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-case$19 $switch-default$21
+ (i32.sub
+ (get_local $0)
+ (i32.const -1)
)
)
- (br $label$break$L1)
)
- (br $switch$17)
+ (br $label$break$L1)
)
- (br $label$break$L3)
+ (br $label$continue$L3)
)
- (br $label$break$L1)
+ (br $label$break$L3)
)
- (br $label$continue$L3)
+ (br $label$break$L1)
)
)
(call_import $h
@@ -295,23 +291,23 @@
(i32.const 1)
)
(loop $for-in$1
- (block $for-out$0
- (br_if $for-out$0
- (i32.ge_s
- (get_local $0)
- (i32.const 200)
- )
- )
- (call_import $h
+ (if
+ (i32.lt_s
(get_local $0)
+ (i32.const 200)
)
- (set_local $0
- (i32.add
+ (block
+ (call_import $h
(get_local $0)
- (i32.const 1)
)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ (br $for-in$1)
)
- (br $for-in$1)
)
)
)
@@ -488,8 +484,10 @@
(get_local $1)
(i32.const 3)
)
- (call $lb
- (i32.const 2)
+ (drop
+ (call $lb
+ (i32.const 2)
+ )
)
)
)
@@ -616,4 +614,408 @@
)
)
)
+ (func $loadSigned (param $0 i32)
+ (call $loadSigned
+ (i32.load8_s
+ (get_local $0)
+ )
+ )
+ (call $loadSigned
+ (i32.load8_s
+ (get_local $0)
+ )
+ )
+ (call $loadSigned
+ (i32.load16_s
+ (get_local $0)
+ )
+ )
+ (call $loadSigned
+ (i32.load16_s
+ (get_local $0)
+ )
+ )
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load8_s
+ (get_local $0)
+ )
+ (i32.const 24)
+ )
+ (i32.const 16)
+ )
+ )
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load8_u
+ (get_local $0)
+ )
+ (i32.const 16)
+ )
+ (i32.const 24)
+ )
+ )
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load16_s
+ (get_local $0)
+ )
+ (i32.const 16)
+ )
+ (i32.const 24)
+ )
+ )
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load16_u
+ (get_local $0)
+ )
+ (i32.const 24)
+ )
+ (i32.const 16)
+ )
+ )
+ )
+ (func $globalOpts
+ (local $0 i32)
+ (i32.store8
+ (i32.const 13)
+ (i32.load
+ (i32.const 12)
+ )
+ )
+ (call $globalOpts)
+ (set_local $0
+ (get_global $Int)
+ )
+ (if
+ (i32.const 1)
+ (set_global $Int
+ (i32.const 20)
+ )
+ )
+ (set_global $Int
+ (get_local $0)
+ )
+ (call $globalOpts)
+ (set_local $0
+ (get_global $Int)
+ )
+ (call $globalOpts)
+ (set_global $Int
+ (get_local $0)
+ )
+ )
+ (func $dropCallImport
+ (if
+ (i32.const 1)
+ (drop
+ (call_import $return_int)
+ )
+ )
+ )
+ (func $loophi (param $0 i32) (param $1 i32)
+ (local $2 i32)
+ (loop $while-in$1
+ (block $while-out$0
+ (call $loophi
+ (get_local $0)
+ (i32.const 0)
+ )
+ (if
+ (tee_local $2
+ (get_local $0)
+ )
+ (br_if $while-out$0
+ (get_local $2)
+ )
+ )
+ (br_if $while-in$1
+ (i32.eq
+ (tee_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ (get_local $1)
+ )
+ )
+ )
+ )
+ )
+ (func $loophi2 (result i32)
+ (local $0 i32)
+ (local $1 i32)
+ (local $2 i32)
+ (set_local $1
+ (i32.const 0)
+ )
+ (loop $label$continue$L7
+ (block $label$break$L7
+ (set_local $0
+ (i32.const 0)
+ )
+ (loop $while-in$1
+ (set_local $2
+ (get_local $0)
+ )
+ (if
+ (i32.const 1)
+ (br_if $label$break$L7
+ (get_local $2)
+ )
+ )
+ (br_if $while-in$1
+ (tee_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ )
+ )
+ (br $label$continue$L7)
+ )
+ )
+ (get_local $1)
+ )
+ (func $relooperJumpThreading (param $0 i32) (result i32)
+ (block $jumpthreading$outer$0
+ (block $jumpthreading$inner$0
+ (if
+ (get_local $0)
+ (block
+ (call_import $h
+ (i32.const 0)
+ )
+ (br $jumpthreading$inner$0)
+ )
+ )
+ (br $jumpthreading$outer$0)
+ )
+ (call_import $h
+ (i32.const 1)
+ )
+ )
+ (call_import $h
+ (i32.const -1)
+ )
+ (block $jumpthreading$inner$1
+ (loop $while-in$1
+ (br_if $while-in$1
+ (i32.eqz
+ (tee_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ )
+ )
+ (call_import $h
+ (i32.const 2)
+ )
+ (br $jumpthreading$inner$1)
+ )
+ )
+ (call_import $h
+ (i32.const 3)
+ )
+ (call_import $h
+ (i32.const -2)
+ )
+ (block $jumpthreading$outer$3
+ (block $jumpthreading$inner$3
+ (block $jumpthreading$inner$2
+ (if
+ (get_local $0)
+ (block
+ (call_import $h
+ (i32.const 4)
+ )
+ (br_if $jumpthreading$inner$2
+ (i32.eq
+ (get_local $0)
+ (i32.const 3)
+ )
+ )
+ (br $jumpthreading$inner$3)
+ )
+ )
+ (br $jumpthreading$outer$3)
+ )
+ (call_import $h
+ (i32.const 5)
+ )
+ (br $jumpthreading$outer$3)
+ )
+ (call_import $h
+ (i32.const 6)
+ )
+ )
+ (call_import $h
+ (i32.const -3)
+ )
+ (block $jumpthreading$outer$5
+ (block $jumpthreading$inner$5
+ (block $jumpthreading$inner$4
+ (if
+ (get_local $0)
+ (block
+ (call_import $h
+ (i32.const 7)
+ )
+ (br_if $jumpthreading$inner$4
+ (i32.eq
+ (get_local $0)
+ (i32.const 5)
+ )
+ )
+ (br $jumpthreading$inner$5)
+ )
+ )
+ (br $jumpthreading$outer$5)
+ )
+ (call_import $h
+ (i32.const 8)
+ )
+ (br_if $jumpthreading$inner$5
+ (i32.eq
+ (get_local $0)
+ (i32.const 6)
+ )
+ )
+ (br $jumpthreading$outer$5)
+ )
+ (call_import $h
+ (i32.const 9)
+ )
+ )
+ (call_import $h
+ (i32.const -4)
+ )
+ (block $jumpthreading$outer$6
+ (block $jumpthreading$inner$6
+ (if
+ (get_local $0)
+ (block
+ (call_import $h
+ (i32.const 10)
+ )
+ (br $jumpthreading$inner$6)
+ )
+ )
+ (br $jumpthreading$outer$6)
+ )
+ (call_import $h
+ (i32.const 11)
+ )
+ )
+ (call_import $h
+ (i32.const -5)
+ )
+ (block $jumpthreading$outer$8
+ (block $jumpthreading$inner$8
+ (block $jumpthreading$outer$7
+ (block $jumpthreading$inner$7
+ (if
+ (get_local $0)
+ (block
+ (call_import $h
+ (i32.const 12)
+ )
+ (br_if $jumpthreading$inner$7
+ (i32.eq
+ (get_local $0)
+ (i32.const 8)
+ )
+ )
+ (br $jumpthreading$inner$8)
+ )
+ )
+ (br $jumpthreading$outer$8)
+ )
+ (call_import $h
+ (i32.const 13)
+ )
+ (br_if $jumpthreading$inner$8
+ (get_local $0)
+ )
+ )
+ (br $jumpthreading$outer$8)
+ )
+ (call_import $h
+ (i32.const 14)
+ )
+ )
+ (call_import $h
+ (i32.const -6)
+ )
+ (get_local $0)
+ )
+ (func $relooperJumpThreading__ZN4game14preloadweaponsEv
+ (local $0 i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (loop $while-in$1
+ (block $jumpthreading$outer$1
+ (block $jumpthreading$inner$1
+ (if
+ (get_local $0)
+ (br_if $jumpthreading$inner$1
+ (i32.eqz
+ (get_local $1)
+ )
+ )
+ (br_if $jumpthreading$inner$1
+ (i32.eqz
+ (get_local $2)
+ )
+ )
+ )
+ (br $while-in$1)
+ )
+ (i32.store
+ (get_local $3)
+ (get_local $4)
+ )
+ )
+ (br $while-in$1)
+ )
+ )
+ (func $__Z12multi_varargiz (param $0 i32)
+ (local $1 i32)
+ (local $2 i32)
+ (if
+ (get_local $1)
+ (loop $while-in$1
+ (br_if $while-in$1
+ (i32.eqz
+ (get_local $2)
+ )
+ )
+ )
+ (drop
+ (call $lb
+ (i32.const 1)
+ )
+ )
+ )
+ )
+ (func $jumpThreadDrop (result i32)
+ (local $0 i32)
+ (set_local $0
+ (call_import $return_int)
+ )
+ (block $jumpthreading$outer$2
+ )
+ (get_local $0)
+ )
)
diff --git a/test/unit.fromasm.imprecise b/test/unit.fromasm.imprecise
index 35b8b17..d007a4d 100644
--- a/test/unit.fromasm.imprecise
+++ b/test/unit.fromasm.imprecise
@@ -5,14 +5,17 @@
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$dd (func (param f64) (result f64)))
+ (type $FUNCSIG$i (func (result i32)))
(import "global" "NaN" (global $t f64))
(import "global" "Infinity" (global $u f64))
(import "env" "tempDoublePtr" (global $tempDoublePtr i32))
(import "env" "gb" (global $n i32))
+ (import "env" "STACKTOP" (global $STACKTOP i32))
(import "env" "setTempRet0" (func $setTempRet0 (param i32) (result i32)))
(import "env" "abort" (func $abort (param f64) (result f64)))
(import "env" "print" (func $print (param i32)))
(import "env" "h" (func $h (param i32)))
+ (import "env" "return_int" (func $return_int (result i32)))
(import "asm2wasm" "f64-rem" (func $f64-rem (param f64 f64) (result f64)))
(import "env" "memory" (memory $memory))
(import "env" "table" (table $table))
@@ -98,13 +101,9 @@
(func $conversions
(local $0 f32)
(local $1 i32)
- (drop
- (f64.convert_s/i32
- (tee_local $1
- (i32.trunc_s/f32
- (get_local $0)
- )
- )
+ (set_local $1
+ (i32.trunc_s/f32
+ (get_local $0)
)
)
)
@@ -165,27 +164,24 @@
(block $label$break$L1
(loop $label$continue$L3
(block $label$break$L3
- (block $switch$17
- (block $switch-default$21
- (block $switch-case$20
- (block $switch-case$19
- (block $switch-case$18
- (br_table $switch-case$18 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-case$20 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-case$19 $switch-default$21
- (i32.sub
- (get_local $0)
- (i32.const -1)
- )
+ (block $switch-default$21
+ (block $switch-case$20
+ (block $switch-case$19
+ (block $switch-case$18
+ (br_table $switch-case$18 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-case$20 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-case$19 $switch-default$21
+ (i32.sub
+ (get_local $0)
+ (i32.const -1)
)
)
- (br $label$break$L1)
)
- (br $switch$17)
+ (br $label$break$L1)
)
- (br $label$break$L3)
+ (br $label$continue$L3)
)
- (br $label$break$L1)
+ (br $label$break$L3)
)
- (br $label$continue$L3)
+ (br $label$break$L1)
)
)
(call_import $h
@@ -276,23 +272,23 @@
(i32.const 1)
)
(loop $for-in$1
- (block $for-out$0
- (br_if $for-out$0
- (i32.ge_s
- (get_local $0)
- (i32.const 200)
- )
- )
- (call_import $h
+ (if
+ (i32.lt_s
(get_local $0)
+ (i32.const 200)
)
- (set_local $0
- (i32.add
+ (block
+ (call_import $h
(get_local $0)
- (i32.const 1)
)
+ (set_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ (br $for-in$1)
)
- (br $for-in$1)
)
)
)
@@ -469,8 +465,10 @@
(get_local $1)
(i32.const 3)
)
- (call $lb
- (i32.const 2)
+ (drop
+ (call $lb
+ (i32.const 2)
+ )
)
)
)
@@ -597,4 +595,408 @@
)
)
)
+ (func $loadSigned (param $0 i32)
+ (call $loadSigned
+ (i32.load8_s
+ (get_local $0)
+ )
+ )
+ (call $loadSigned
+ (i32.load8_s
+ (get_local $0)
+ )
+ )
+ (call $loadSigned
+ (i32.load16_s
+ (get_local $0)
+ )
+ )
+ (call $loadSigned
+ (i32.load16_s
+ (get_local $0)
+ )
+ )
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load8_s
+ (get_local $0)
+ )
+ (i32.const 24)
+ )
+ (i32.const 16)
+ )
+ )
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load8_u
+ (get_local $0)
+ )
+ (i32.const 16)
+ )
+ (i32.const 24)
+ )
+ )
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load16_s
+ (get_local $0)
+ )
+ (i32.const 16)
+ )
+ (i32.const 24)
+ )
+ )
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load16_u
+ (get_local $0)
+ )
+ (i32.const 24)
+ )
+ (i32.const 16)
+ )
+ )
+ )
+ (func $globalOpts
+ (local $0 i32)
+ (i32.store8
+ (i32.const 13)
+ (i32.load
+ (i32.const 12)
+ )
+ )
+ (call $globalOpts)
+ (set_local $0
+ (get_global $Int)
+ )
+ (if
+ (i32.const 1)
+ (set_global $Int
+ (i32.const 20)
+ )
+ )
+ (set_global $Int
+ (get_local $0)
+ )
+ (call $globalOpts)
+ (set_local $0
+ (get_global $Int)
+ )
+ (call $globalOpts)
+ (set_global $Int
+ (get_local $0)
+ )
+ )
+ (func $dropCallImport
+ (if
+ (i32.const 1)
+ (drop
+ (call_import $return_int)
+ )
+ )
+ )
+ (func $loophi (param $0 i32) (param $1 i32)
+ (local $2 i32)
+ (loop $while-in$1
+ (block $while-out$0
+ (call $loophi
+ (get_local $0)
+ (i32.const 0)
+ )
+ (if
+ (tee_local $2
+ (get_local $0)
+ )
+ (br_if $while-out$0
+ (get_local $2)
+ )
+ )
+ (br_if $while-in$1
+ (i32.eq
+ (tee_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ (get_local $1)
+ )
+ )
+ )
+ )
+ )
+ (func $loophi2 (result i32)
+ (local $0 i32)
+ (local $1 i32)
+ (local $2 i32)
+ (set_local $1
+ (i32.const 0)
+ )
+ (loop $label$continue$L7
+ (block $label$break$L7
+ (set_local $0
+ (i32.const 0)
+ )
+ (loop $while-in$1
+ (set_local $2
+ (get_local $0)
+ )
+ (if
+ (i32.const 1)
+ (br_if $label$break$L7
+ (get_local $2)
+ )
+ )
+ (br_if $while-in$1
+ (tee_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ )
+ )
+ (br $label$continue$L7)
+ )
+ )
+ (get_local $1)
+ )
+ (func $relooperJumpThreading (param $0 i32) (result i32)
+ (block $jumpthreading$outer$0
+ (block $jumpthreading$inner$0
+ (if
+ (get_local $0)
+ (block
+ (call_import $h
+ (i32.const 0)
+ )
+ (br $jumpthreading$inner$0)
+ )
+ )
+ (br $jumpthreading$outer$0)
+ )
+ (call_import $h
+ (i32.const 1)
+ )
+ )
+ (call_import $h
+ (i32.const -1)
+ )
+ (block $jumpthreading$inner$1
+ (loop $while-in$1
+ (br_if $while-in$1
+ (i32.eqz
+ (tee_local $0
+ (i32.add
+ (get_local $0)
+ (i32.const 1)
+ )
+ )
+ )
+ )
+ (call_import $h
+ (i32.const 2)
+ )
+ (br $jumpthreading$inner$1)
+ )
+ )
+ (call_import $h
+ (i32.const 3)
+ )
+ (call_import $h
+ (i32.const -2)
+ )
+ (block $jumpthreading$outer$3
+ (block $jumpthreading$inner$3
+ (block $jumpthreading$inner$2
+ (if
+ (get_local $0)
+ (block
+ (call_import $h
+ (i32.const 4)
+ )
+ (br_if $jumpthreading$inner$2
+ (i32.eq
+ (get_local $0)
+ (i32.const 3)
+ )
+ )
+ (br $jumpthreading$inner$3)
+ )
+ )
+ (br $jumpthreading$outer$3)
+ )
+ (call_import $h
+ (i32.const 5)
+ )
+ (br $jumpthreading$outer$3)
+ )
+ (call_import $h
+ (i32.const 6)
+ )
+ )
+ (call_import $h
+ (i32.const -3)
+ )
+ (block $jumpthreading$outer$5
+ (block $jumpthreading$inner$5
+ (block $jumpthreading$inner$4
+ (if
+ (get_local $0)
+ (block
+ (call_import $h
+ (i32.const 7)
+ )
+ (br_if $jumpthreading$inner$4
+ (i32.eq
+ (get_local $0)
+ (i32.const 5)
+ )
+ )
+ (br $jumpthreading$inner$5)
+ )
+ )
+ (br $jumpthreading$outer$5)
+ )
+ (call_import $h
+ (i32.const 8)
+ )
+ (br_if $jumpthreading$inner$5
+ (i32.eq
+ (get_local $0)
+ (i32.const 6)
+ )
+ )
+ (br $jumpthreading$outer$5)
+ )
+ (call_import $h
+ (i32.const 9)
+ )
+ )
+ (call_import $h
+ (i32.const -4)
+ )
+ (block $jumpthreading$outer$6
+ (block $jumpthreading$inner$6
+ (if
+ (get_local $0)
+ (block
+ (call_import $h
+ (i32.const 10)
+ )
+ (br $jumpthreading$inner$6)
+ )
+ )
+ (br $jumpthreading$outer$6)
+ )
+ (call_import $h
+ (i32.const 11)
+ )
+ )
+ (call_import $h
+ (i32.const -5)
+ )
+ (block $jumpthreading$outer$8
+ (block $jumpthreading$inner$8
+ (block $jumpthreading$outer$7
+ (block $jumpthreading$inner$7
+ (if
+ (get_local $0)
+ (block
+ (call_import $h
+ (i32.const 12)
+ )
+ (br_if $jumpthreading$inner$7
+ (i32.eq
+ (get_local $0)
+ (i32.const 8)
+ )
+ )
+ (br $jumpthreading$inner$8)
+ )
+ )
+ (br $jumpthreading$outer$8)
+ )
+ (call_import $h
+ (i32.const 13)
+ )
+ (br_if $jumpthreading$inner$8
+ (get_local $0)
+ )
+ )
+ (br $jumpthreading$outer$8)
+ )
+ (call_import $h
+ (i32.const 14)
+ )
+ )
+ (call_import $h
+ (i32.const -6)
+ )
+ (get_local $0)
+ )
+ (func $relooperJumpThreading__ZN4game14preloadweaponsEv
+ (local $0 i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (loop $while-in$1
+ (block $jumpthreading$outer$1
+ (block $jumpthreading$inner$1
+ (if
+ (get_local $0)
+ (br_if $jumpthreading$inner$1
+ (i32.eqz
+ (get_local $1)
+ )
+ )
+ (br_if $jumpthreading$inner$1
+ (i32.eqz
+ (get_local $2)
+ )
+ )
+ )
+ (br $while-in$1)
+ )
+ (i32.store
+ (get_local $3)
+ (get_local $4)
+ )
+ )
+ (br $while-in$1)
+ )
+ )
+ (func $__Z12multi_varargiz (param $0 i32)
+ (local $1 i32)
+ (local $2 i32)
+ (if
+ (get_local $1)
+ (loop $while-in$1
+ (br_if $while-in$1
+ (i32.eqz
+ (get_local $2)
+ )
+ )
+ )
+ (drop
+ (call $lb
+ (i32.const 1)
+ )
+ )
+ )
+ )
+ (func $jumpThreadDrop (result i32)
+ (local $0 i32)
+ (set_local $0
+ (call_import $return_int)
+ )
+ (block $jumpthreading$outer$2
+ )
+ (get_local $0)
+ )
)
diff --git a/test/unit.fromasm.imprecise.no-opts b/test/unit.fromasm.imprecise.no-opts
index c41075d..1e8b468 100644
--- a/test/unit.fromasm.imprecise.no-opts
+++ b/test/unit.fromasm.imprecise.no-opts
@@ -5,14 +5,17 @@
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$dd (func (param f64) (result f64)))
+ (type $FUNCSIG$i (func (result i32)))
(import "global" "NaN" (global $t f64))
(import "global" "Infinity" (global $u f64))
(import "env" "tempDoublePtr" (global $tempDoublePtr i32))
(import "env" "gb" (global $n i32))
+ (import "env" "STACKTOP" (global $STACKTOP i32))
(import "env" "setTempRet0" (func $setTempRet0 (param i32) (result i32)))
(import "env" "abort" (func $abort (param f64) (result f64)))
(import "env" "print" (func $print (param i32)))
(import "env" "h" (func $h (param i32)))
+ (import "env" "return_int" (func $return_int (result i32)))
(import "asm2wasm" "f64-rem" (func $f64-rem (param f64 f64) (result f64)))
(import "env" "memory" (memory $memory))
(import "env" "table" (table $table))
@@ -817,8 +820,10 @@
(get_local $y)
(i32.const 3)
)
- (call $lb
- (i32.const 2)
+ (drop
+ (call $lb
+ (i32.const 2)
+ )
)
)
)
@@ -1001,10 +1006,619 @@
)
)
)
+ (func $loadSigned (param $x i32)
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load8_s
+ (get_local $x)
+ )
+ (i32.const 24)
+ )
+ (i32.const 24)
+ )
+ )
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load8_u
+ (get_local $x)
+ )
+ (i32.const 24)
+ )
+ (i32.const 24)
+ )
+ )
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load16_s
+ (get_local $x)
+ )
+ (i32.const 16)
+ )
+ (i32.const 16)
+ )
+ )
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load16_u
+ (get_local $x)
+ )
+ (i32.const 16)
+ )
+ (i32.const 16)
+ )
+ )
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load8_s
+ (get_local $x)
+ )
+ (i32.const 24)
+ )
+ (i32.const 16)
+ )
+ )
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load8_u
+ (get_local $x)
+ )
+ (i32.const 16)
+ )
+ (i32.const 24)
+ )
+ )
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load16_s
+ (get_local $x)
+ )
+ (i32.const 16)
+ )
+ (i32.const 24)
+ )
+ )
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load16_u
+ (get_local $x)
+ )
+ (i32.const 24)
+ )
+ (i32.const 16)
+ )
+ )
+ )
(func $z
(nop)
)
(func $w
(nop)
)
+ (func $globalOpts
+ (local $x i32)
+ (local $y f64)
+ (set_local $x
+ (get_global $Int)
+ )
+ (set_local $y
+ (get_global $Double)
+ )
+ (i32.store8
+ (i32.const 13)
+ (i32.load
+ (i32.const 12)
+ )
+ )
+ (set_global $Double
+ (get_local $y)
+ )
+ (set_global $Int
+ (get_local $x)
+ )
+ (call $globalOpts)
+ (set_local $x
+ (get_global $Int)
+ )
+ (if
+ (i32.const 1)
+ (set_global $Int
+ (i32.const 20)
+ )
+ )
+ (set_global $Int
+ (get_local $x)
+ )
+ (call $globalOpts)
+ (set_local $x
+ (get_global $Int)
+ )
+ (call $globalOpts)
+ (set_global $Int
+ (get_local $x)
+ )
+ )
+ (func $dropCallImport
+ (if
+ (i32.const 1)
+ (drop
+ (call_import $return_int)
+ )
+ )
+ )
+ (func $loophi (param $x i32) (param $y i32)
+ (local $temp i32)
+ (local $inc i32)
+ (local $loopvar i32)
+ (set_local $loopvar
+ (get_local $x)
+ )
+ (loop $while-in$1
+ (block $while-out$0
+ (call $loophi
+ (get_local $loopvar)
+ (i32.const 0)
+ )
+ (set_local $temp
+ (get_local $loopvar)
+ )
+ (if
+ (get_local $temp)
+ (if
+ (get_local $temp)
+ (br $while-out$0)
+ )
+ )
+ (set_local $inc
+ (i32.add
+ (get_local $loopvar)
+ (i32.const 1)
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $inc)
+ (get_local $y)
+ )
+ (set_local $loopvar
+ (get_local $inc)
+ )
+ (br $while-out$0)
+ )
+ (br $while-in$1)
+ )
+ )
+ )
+ (func $loophi2 (result i32)
+ (local $jnc i32)
+ (local $i i32)
+ (local $i$lcssa i32)
+ (local $temp i32)
+ (local $j i32)
+ (set_local $i
+ (i32.const 0)
+ )
+ (loop $label$continue$L7
+ (block $label$break$L7
+ (set_local $j
+ (i32.const 0)
+ )
+ (loop $while-in$1
+ (block $while-out$0
+ (set_local $temp
+ (get_local $j)
+ )
+ (if
+ (i32.const 1)
+ (if
+ (get_local $temp)
+ (block
+ (set_local $i$lcssa
+ (get_local $i)
+ )
+ (br $label$break$L7)
+ )
+ )
+ )
+ (set_local $jnc
+ (i32.add
+ (get_local $j)
+ (i32.const 1)
+ )
+ )
+ (if
+ (get_local $jnc)
+ (set_local $j
+ (get_local $jnc)
+ )
+ (br $while-out$0)
+ )
+ (br $while-in$1)
+ )
+ )
+ (br $label$continue$L7)
+ )
+ )
+ (return
+ (get_local $i$lcssa)
+ )
+ )
+ (func $relooperJumpThreading (param $x i32) (result i32)
+ (local $label i32)
+ (if
+ (get_local $x)
+ (block
+ (call_import $h
+ (i32.const 0)
+ )
+ (set_local $label
+ (i32.const 1)
+ )
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 1)
+ )
+ (call_import $h
+ (i32.const 1)
+ )
+ )
+ (call_import $h
+ (i32.const -1)
+ )
+ (loop $while-in$1
+ (block $while-out$0
+ (set_local $x
+ (i32.add
+ (get_local $x)
+ (i32.const 1)
+ )
+ )
+ (if
+ (get_local $x)
+ (block
+ (call_import $h
+ (i32.const 2)
+ )
+ (set_local $label
+ (i32.const 2)
+ )
+ (br $while-out$0)
+ )
+ )
+ (br $while-in$1)
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 2)
+ )
+ (call_import $h
+ (i32.const 3)
+ )
+ )
+ (call_import $h
+ (i32.const -2)
+ )
+ (if
+ (get_local $x)
+ (block
+ (call_import $h
+ (i32.const 4)
+ )
+ (if
+ (i32.eq
+ (get_local $x)
+ (i32.const 3)
+ )
+ (set_local $label
+ (i32.const 3)
+ )
+ (set_local $label
+ (i32.const 4)
+ )
+ )
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 3)
+ )
+ (call_import $h
+ (i32.const 5)
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 4)
+ )
+ (call_import $h
+ (i32.const 6)
+ )
+ )
+ )
+ (call_import $h
+ (i32.const -3)
+ )
+ (if
+ (get_local $x)
+ (block
+ (call_import $h
+ (i32.const 7)
+ )
+ (if
+ (i32.eq
+ (get_local $x)
+ (i32.const 5)
+ )
+ (set_local $label
+ (i32.const 5)
+ )
+ (set_local $label
+ (i32.const 6)
+ )
+ )
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 5)
+ )
+ (block
+ (call_import $h
+ (i32.const 8)
+ )
+ (if
+ (i32.eq
+ (get_local $x)
+ (i32.const 6)
+ )
+ (set_local $label
+ (i32.const 6)
+ )
+ )
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 6)
+ )
+ (call_import $h
+ (i32.const 9)
+ )
+ )
+ (call_import $h
+ (i32.const -4)
+ )
+ (if
+ (get_local $x)
+ (block
+ (call_import $h
+ (i32.const 10)
+ )
+ (set_local $label
+ (i32.const 7)
+ )
+ )
+ )
+ (block $label$break$L1
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 7)
+ )
+ (block
+ (call_import $h
+ (i32.const 11)
+ )
+ (br $label$break$L1)
+ )
+ )
+ )
+ (call_import $h
+ (i32.const -5)
+ )
+ (if
+ (get_local $x)
+ (block
+ (call_import $h
+ (i32.const 12)
+ )
+ (if
+ (i32.eq
+ (get_local $x)
+ (i32.const 8)
+ )
+ (set_local $label
+ (i32.const 8)
+ )
+ (set_local $label
+ (i32.const 9)
+ )
+ )
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 8)
+ )
+ (block
+ (call_import $h
+ (i32.const 13)
+ )
+ (if
+ (get_local $x)
+ (set_local $label
+ (i32.const 9)
+ )
+ )
+ )
+ )
+ (block $label$break$L1
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 9)
+ )
+ (block
+ (call_import $h
+ (i32.const 14)
+ )
+ (br $label$break$L1)
+ )
+ )
+ )
+ (call_import $h
+ (i32.const -6)
+ )
+ (return
+ (get_local $x)
+ )
+ )
+ (func $relooperJumpThreading__ZN4game14preloadweaponsEv
+ (local $$12 i32)
+ (local $$14 i32)
+ (local $$or$cond8 i32)
+ (local $$or$cond6 i32)
+ (local $$vararg_ptr5 i32)
+ (local $$11 i32)
+ (local $$exitcond i32)
+ (local $label i32)
+ (loop $while-in$1
+ (block $while-out$0
+ (if
+ (get_local $$14)
+ (if
+ (get_local $$or$cond8)
+ (set_local $label
+ (i32.const 7)
+ )
+ (set_local $label
+ (i32.const 8)
+ )
+ )
+ (if
+ (get_local $$or$cond6)
+ (set_local $label
+ (i32.const 7)
+ )
+ (set_local $label
+ (i32.const 8)
+ )
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 7)
+ )
+ (set_local $label
+ (i32.const 0)
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 8)
+ )
+ (block
+ (set_local $label
+ (i32.const 0)
+ )
+ (i32.store
+ (get_local $$vararg_ptr5)
+ (get_local $$11)
+ )
+ )
+ )
+ )
+ (br $while-in$1)
+ )
+ )
+ )
+ (func $__Z12multi_varargiz (param $$0 i32)
+ (local $$2 i32)
+ (local $$$06$i4 i32)
+ (local $$exitcond$i6 i32)
+ (local $$12 i32)
+ (local $$20 i32)
+ (if
+ (get_local $$2)
+ (loop $while-in$1
+ (block $while-out$0
+ (set_local $$12
+ (get_local $$$06$i4)
+ )
+ (if
+ (get_local $$exitcond$i6)
+ (br $while-out$0)
+ (set_local $$$06$i4
+ (get_local $$20)
+ )
+ )
+ (br $while-in$1)
+ )
+ )
+ (drop
+ (call $lb
+ (i32.const 1)
+ )
+ )
+ )
+ )
+ (func $jumpThreadDrop (result i32)
+ (local $label i32)
+ (local $temp i32)
+ (set_local $temp
+ (call_import $return_int)
+ )
+ (loop $while-in$1
+ (block $while-out$0
+ (set_local $label
+ (i32.const 14)
+ )
+ (br $while-out$0)
+ (br $while-in$1)
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 10)
+ )
+ (nop)
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 12)
+ )
+ (drop
+ (call_import $return_int)
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 14)
+ )
+ (nop)
+ )
+ )
+ )
+ (return
+ (get_local $temp)
+ )
+ )
)
diff --git a/test/unit.fromasm.no-opts b/test/unit.fromasm.no-opts
index 2162d9e..846ef21 100644
--- a/test/unit.fromasm.no-opts
+++ b/test/unit.fromasm.no-opts
@@ -7,14 +7,17 @@
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$dd (func (param f64) (result f64)))
+ (type $FUNCSIG$i (func (result i32)))
(import "global" "NaN" (global $t f64))
(import "global" "Infinity" (global $u f64))
(import "env" "tempDoublePtr" (global $tempDoublePtr i32))
(import "env" "gb" (global $n i32))
+ (import "env" "STACKTOP" (global $STACKTOP i32))
(import "env" "setTempRet0" (func $setTempRet0 (param i32) (result i32)))
(import "env" "abort" (func $abort (param f64) (result f64)))
(import "env" "print" (func $print (param i32)))
(import "env" "h" (func $h (param i32)))
+ (import "env" "return_int" (func $return_int (result i32)))
(import "asm2wasm" "f64-to-int" (func $f64-to-int (param f64) (result i32)))
(import "asm2wasm" "f64-rem" (func $f64-rem (param f64 f64) (result f64)))
(import "asm2wasm" "i32u-div" (func $i32u-div (param i32 i32) (result i32)))
@@ -823,8 +826,10 @@
(get_local $y)
(i32.const 3)
)
- (call $lb
- (i32.const 2)
+ (drop
+ (call $lb
+ (i32.const 2)
+ )
)
)
)
@@ -1007,10 +1012,619 @@
)
)
)
+ (func $loadSigned (param $x i32)
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load8_s
+ (get_local $x)
+ )
+ (i32.const 24)
+ )
+ (i32.const 24)
+ )
+ )
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load8_u
+ (get_local $x)
+ )
+ (i32.const 24)
+ )
+ (i32.const 24)
+ )
+ )
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load16_s
+ (get_local $x)
+ )
+ (i32.const 16)
+ )
+ (i32.const 16)
+ )
+ )
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load16_u
+ (get_local $x)
+ )
+ (i32.const 16)
+ )
+ (i32.const 16)
+ )
+ )
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load8_s
+ (get_local $x)
+ )
+ (i32.const 24)
+ )
+ (i32.const 16)
+ )
+ )
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load8_u
+ (get_local $x)
+ )
+ (i32.const 16)
+ )
+ (i32.const 24)
+ )
+ )
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load16_s
+ (get_local $x)
+ )
+ (i32.const 16)
+ )
+ (i32.const 24)
+ )
+ )
+ (call $loadSigned
+ (i32.shr_s
+ (i32.shl
+ (i32.load16_u
+ (get_local $x)
+ )
+ (i32.const 24)
+ )
+ (i32.const 16)
+ )
+ )
+ )
(func $z
(nop)
)
(func $w
(nop)
)
+ (func $globalOpts
+ (local $x i32)
+ (local $y f64)
+ (set_local $x
+ (get_global $Int)
+ )
+ (set_local $y
+ (get_global $Double)
+ )
+ (i32.store8
+ (i32.const 13)
+ (i32.load
+ (i32.const 12)
+ )
+ )
+ (set_global $Double
+ (get_local $y)
+ )
+ (set_global $Int
+ (get_local $x)
+ )
+ (call $globalOpts)
+ (set_local $x
+ (get_global $Int)
+ )
+ (if
+ (i32.const 1)
+ (set_global $Int
+ (i32.const 20)
+ )
+ )
+ (set_global $Int
+ (get_local $x)
+ )
+ (call $globalOpts)
+ (set_local $x
+ (get_global $Int)
+ )
+ (call $globalOpts)
+ (set_global $Int
+ (get_local $x)
+ )
+ )
+ (func $dropCallImport
+ (if
+ (i32.const 1)
+ (drop
+ (call_import $return_int)
+ )
+ )
+ )
+ (func $loophi (param $x i32) (param $y i32)
+ (local $temp i32)
+ (local $inc i32)
+ (local $loopvar i32)
+ (set_local $loopvar
+ (get_local $x)
+ )
+ (loop $while-in$1
+ (block $while-out$0
+ (call $loophi
+ (get_local $loopvar)
+ (i32.const 0)
+ )
+ (set_local $temp
+ (get_local $loopvar)
+ )
+ (if
+ (get_local $temp)
+ (if
+ (get_local $temp)
+ (br $while-out$0)
+ )
+ )
+ (set_local $inc
+ (i32.add
+ (get_local $loopvar)
+ (i32.const 1)
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $inc)
+ (get_local $y)
+ )
+ (set_local $loopvar
+ (get_local $inc)
+ )
+ (br $while-out$0)
+ )
+ (br $while-in$1)
+ )
+ )
+ )
+ (func $loophi2 (result i32)
+ (local $jnc i32)
+ (local $i i32)
+ (local $i$lcssa i32)
+ (local $temp i32)
+ (local $j i32)
+ (set_local $i
+ (i32.const 0)
+ )
+ (loop $label$continue$L7
+ (block $label$break$L7
+ (set_local $j
+ (i32.const 0)
+ )
+ (loop $while-in$1
+ (block $while-out$0
+ (set_local $temp
+ (get_local $j)
+ )
+ (if
+ (i32.const 1)
+ (if
+ (get_local $temp)
+ (block
+ (set_local $i$lcssa
+ (get_local $i)
+ )
+ (br $label$break$L7)
+ )
+ )
+ )
+ (set_local $jnc
+ (i32.add
+ (get_local $j)
+ (i32.const 1)
+ )
+ )
+ (if
+ (get_local $jnc)
+ (set_local $j
+ (get_local $jnc)
+ )
+ (br $while-out$0)
+ )
+ (br $while-in$1)
+ )
+ )
+ (br $label$continue$L7)
+ )
+ )
+ (return
+ (get_local $i$lcssa)
+ )
+ )
+ (func $relooperJumpThreading (param $x i32) (result i32)
+ (local $label i32)
+ (if
+ (get_local $x)
+ (block
+ (call_import $h
+ (i32.const 0)
+ )
+ (set_local $label
+ (i32.const 1)
+ )
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 1)
+ )
+ (call_import $h
+ (i32.const 1)
+ )
+ )
+ (call_import $h
+ (i32.const -1)
+ )
+ (loop $while-in$1
+ (block $while-out$0
+ (set_local $x
+ (i32.add
+ (get_local $x)
+ (i32.const 1)
+ )
+ )
+ (if
+ (get_local $x)
+ (block
+ (call_import $h
+ (i32.const 2)
+ )
+ (set_local $label
+ (i32.const 2)
+ )
+ (br $while-out$0)
+ )
+ )
+ (br $while-in$1)
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 2)
+ )
+ (call_import $h
+ (i32.const 3)
+ )
+ )
+ (call_import $h
+ (i32.const -2)
+ )
+ (if
+ (get_local $x)
+ (block
+ (call_import $h
+ (i32.const 4)
+ )
+ (if
+ (i32.eq
+ (get_local $x)
+ (i32.const 3)
+ )
+ (set_local $label
+ (i32.const 3)
+ )
+ (set_local $label
+ (i32.const 4)
+ )
+ )
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 3)
+ )
+ (call_import $h
+ (i32.const 5)
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 4)
+ )
+ (call_import $h
+ (i32.const 6)
+ )
+ )
+ )
+ (call_import $h
+ (i32.const -3)
+ )
+ (if
+ (get_local $x)
+ (block
+ (call_import $h
+ (i32.const 7)
+ )
+ (if
+ (i32.eq
+ (get_local $x)
+ (i32.const 5)
+ )
+ (set_local $label
+ (i32.const 5)
+ )
+ (set_local $label
+ (i32.const 6)
+ )
+ )
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 5)
+ )
+ (block
+ (call_import $h
+ (i32.const 8)
+ )
+ (if
+ (i32.eq
+ (get_local $x)
+ (i32.const 6)
+ )
+ (set_local $label
+ (i32.const 6)
+ )
+ )
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 6)
+ )
+ (call_import $h
+ (i32.const 9)
+ )
+ )
+ (call_import $h
+ (i32.const -4)
+ )
+ (if
+ (get_local $x)
+ (block
+ (call_import $h
+ (i32.const 10)
+ )
+ (set_local $label
+ (i32.const 7)
+ )
+ )
+ )
+ (block $label$break$L1
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 7)
+ )
+ (block
+ (call_import $h
+ (i32.const 11)
+ )
+ (br $label$break$L1)
+ )
+ )
+ )
+ (call_import $h
+ (i32.const -5)
+ )
+ (if
+ (get_local $x)
+ (block
+ (call_import $h
+ (i32.const 12)
+ )
+ (if
+ (i32.eq
+ (get_local $x)
+ (i32.const 8)
+ )
+ (set_local $label
+ (i32.const 8)
+ )
+ (set_local $label
+ (i32.const 9)
+ )
+ )
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 8)
+ )
+ (block
+ (call_import $h
+ (i32.const 13)
+ )
+ (if
+ (get_local $x)
+ (set_local $label
+ (i32.const 9)
+ )
+ )
+ )
+ )
+ (block $label$break$L1
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 9)
+ )
+ (block
+ (call_import $h
+ (i32.const 14)
+ )
+ (br $label$break$L1)
+ )
+ )
+ )
+ (call_import $h
+ (i32.const -6)
+ )
+ (return
+ (get_local $x)
+ )
+ )
+ (func $relooperJumpThreading__ZN4game14preloadweaponsEv
+ (local $$12 i32)
+ (local $$14 i32)
+ (local $$or$cond8 i32)
+ (local $$or$cond6 i32)
+ (local $$vararg_ptr5 i32)
+ (local $$11 i32)
+ (local $$exitcond i32)
+ (local $label i32)
+ (loop $while-in$1
+ (block $while-out$0
+ (if
+ (get_local $$14)
+ (if
+ (get_local $$or$cond8)
+ (set_local $label
+ (i32.const 7)
+ )
+ (set_local $label
+ (i32.const 8)
+ )
+ )
+ (if
+ (get_local $$or$cond6)
+ (set_local $label
+ (i32.const 7)
+ )
+ (set_local $label
+ (i32.const 8)
+ )
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 7)
+ )
+ (set_local $label
+ (i32.const 0)
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 8)
+ )
+ (block
+ (set_local $label
+ (i32.const 0)
+ )
+ (i32.store
+ (get_local $$vararg_ptr5)
+ (get_local $$11)
+ )
+ )
+ )
+ )
+ (br $while-in$1)
+ )
+ )
+ )
+ (func $__Z12multi_varargiz (param $$0 i32)
+ (local $$2 i32)
+ (local $$$06$i4 i32)
+ (local $$exitcond$i6 i32)
+ (local $$12 i32)
+ (local $$20 i32)
+ (if
+ (get_local $$2)
+ (loop $while-in$1
+ (block $while-out$0
+ (set_local $$12
+ (get_local $$$06$i4)
+ )
+ (if
+ (get_local $$exitcond$i6)
+ (br $while-out$0)
+ (set_local $$$06$i4
+ (get_local $$20)
+ )
+ )
+ (br $while-in$1)
+ )
+ )
+ (drop
+ (call $lb
+ (i32.const 1)
+ )
+ )
+ )
+ )
+ (func $jumpThreadDrop (result i32)
+ (local $label i32)
+ (local $temp i32)
+ (set_local $temp
+ (call_import $return_int)
+ )
+ (loop $while-in$1
+ (block $while-out$0
+ (set_local $label
+ (i32.const 14)
+ )
+ (br $while-out$0)
+ (br $while-in$1)
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 10)
+ )
+ (nop)
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 12)
+ )
+ (drop
+ (call_import $return_int)
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 14)
+ )
+ (nop)
+ )
+ )
+ )
+ (return
+ (get_local $temp)
+ )
+ )
)