summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml2
-rw-r--r--CHANGELOG.md22
-rw-r--r--CMakeLists.txt15
-rw-r--r--README.md2
-rw-r--r--appveyor.yml26
-rwxr-xr-xauto_update_tests.py107
-rwxr-xr-xbuild-js.sh11
-rwxr-xr-xcheck.py43
-rwxr-xr-xscripts/gen-s-parser.py12
-rwxr-xr-xscripts/test/generate_lld_tests.py77
-rwxr-xr-xscripts/test/lld.py32
-rw-r--r--scripts/test/shared.py1
-rwxr-xr-xscripts/test/wasm2js.py46
-rw-r--r--src/binaryen-c.cpp26
-rw-r--r--src/binaryen-c.h8
-rw-r--r--src/gen-s-parser.inc29
-rw-r--r--src/ir/ExpressionAnalyzer.cpp2
-rw-r--r--src/ir/ExpressionManipulator.cpp4
-rw-r--r--src/ir/ReFinalize.cpp2
-rw-r--r--src/ir/effects.h4
-rw-r--r--src/ir/utils.h4
-rw-r--r--src/js/binaryen.js-post.js12
-rw-r--r--src/mixed_arena.h81
-rw-r--r--src/passes/CMakeLists.txt1
-rw-r--r--src/passes/DeadCodeElimination.cpp2
-rw-r--r--src/passes/Directize.cpp132
-rw-r--r--src/passes/Precompute.cpp2
-rw-r--r--src/passes/Print.cpp10
-rw-r--r--src/passes/RemoveUnusedModuleElements.cpp2
-rw-r--r--src/passes/SSAify.cpp57
-rw-r--r--src/passes/pass.cpp12
-rw-r--r--src/passes/passes.h2
-rw-r--r--src/shared-constants.h1
-rw-r--r--src/tools/fuzzing.h2
-rw-r--r--src/tools/wasm-emscripten-finalize.cpp25
-rw-r--r--src/tools/wasm-merge.cpp672
-rw-r--r--src/wasm-binary.h8
-rw-r--r--src/wasm-builder.h14
-rw-r--r--src/wasm-emscripten.h2
-rw-r--r--src/wasm-interpreter.h6
-rw-r--r--src/wasm-module-building.h20
-rw-r--r--src/wasm-s-parser.h2
-rw-r--r--src/wasm-stack.h10
-rw-r--r--src/wasm-traversal.h20
-rw-r--r--src/wasm.h10
-rw-r--r--src/wasm/wasm-binary.cpp24
-rw-r--r--src/wasm/wasm-emscripten.cpp149
-rw-r--r--src/wasm/wasm-s-parser.cpp6
-rw-r--r--src/wasm/wasm-validator.cpp18
-rw-r--r--src/wasm/wasm.cpp7
-rw-r--r--test/atomics.wast8
-rw-r--r--test/atomics.wast.from-wast8
-rw-r--r--test/atomics.wast.fromBinary8
-rw-r--r--test/atomics.wast.fromBinary.noDebugInfo6
-rw-r--r--test/binaryen.js/kitchen-sink.js2
-rw-r--r--test/binaryen.js/kitchen-sink.js.txt2
-rw-r--r--test/crash/test_features.py18
-rw-r--r--test/debugInfo.fromasm41
-rw-r--r--test/debugInfo.fromasm.clamp41
-rw-r--r--test/debugInfo.fromasm.clamp.map2
-rw-r--r--test/debugInfo.fromasm.imprecise35
-rw-r--r--test/debugInfo.fromasm.imprecise.map2
-rw-r--r--test/debugInfo.fromasm.map2
-rw-r--r--test/debugInfo.fromasm.read-written41
-rw-r--r--test/emcc_O2_hello_world.fromasm8415
-rw-r--r--test/emcc_O2_hello_world.fromasm.clamp8415
-rw-r--r--test/emcc_O2_hello_world.fromasm.imprecise8414
-rw-r--r--test/emcc_hello_world.fromasm1000
-rw-r--r--test/emcc_hello_world.fromasm.clamp1000
-rw-r--r--test/emcc_hello_world.fromasm.imprecise1000
-rw-r--r--test/lld/duplicate_imports.wast.out8
-rw-r--r--test/lld/em_asm.wast192
-rw-r--r--test/lld/em_asm.wast.mem.out208
-rw-r--r--test/lld/em_asm.wast.out208
-rw-r--r--test/lld/em_asm_O0.wast.out8
-rw-r--r--test/lld/hello_world.wast22
-rw-r--r--test/lld/hello_world.wast.mem.out34
-rw-r--r--test/lld/hello_world.wast.out34
-rw-r--r--test/lld/init.wast26
-rw-r--r--test/lld/init.wast.out36
-rw-r--r--test/lld/recursive.wast53
-rw-r--r--test/lld/recursive.wast.out65
-rw-r--r--test/lld/reserved_func_ptr.wast72
-rw-r--r--test/lld/reserved_func_ptr.wast.out78
-rw-r--r--test/lld/shared.c7
-rw-r--r--test/lld/shared.wast34
-rw-r--r--test/lld/shared.wast.out75
-rw-r--r--test/memorygrowth.fromasm9608
-rw-r--r--test/memorygrowth.fromasm.clamp9608
-rw-r--r--test/memorygrowth.fromasm.imprecise9617
-rw-r--r--test/merge/basics.wast40
-rw-r--r--test/merge/basics.wast.combined133
-rw-r--r--test/merge/basics.wast.combined.finalized133
-rw-r--r--test/merge/basics.wast.combined.finalized.opt107
-rw-r--r--test/merge/basics.wast.combined.finalized.opt.stdout3
-rw-r--r--test/merge/basics.wast.combined.finalized.stdout3
-rw-r--r--test/merge/basics.wast.combined.opt107
-rw-r--r--test/merge/basics.wast.combined.opt.stdout3
-rw-r--r--test/merge/basics.wast.combined.stdout3
-rw-r--r--test/merge/basics.wast.toMerge65
-rw-r--r--test/merge/dylib.wasmbin386 -> 0 bytes
-rw-r--r--test/merge/dylib.wasm.combined101
-rw-r--r--test/merge/dylib.wasm.combined.finalized101
-rw-r--r--test/merge/dylib.wasm.combined.finalized.opt87
-rw-r--r--test/merge/dylib.wasm.combined.finalized.opt.stdout3
-rw-r--r--test/merge/dylib.wasm.combined.finalized.stdout3
-rw-r--r--test/merge/dylib.wasm.combined.opt88
-rw-r--r--test/merge/dylib.wasm.combined.opt.stdout3
-rw-r--r--test/merge/dylib.wasm.combined.stdout3
-rw-r--r--test/merge/dylib.wasm.toMergebin340 -> 0 bytes
-rw-r--r--test/merge/fusing.wast18
-rw-r--r--test/merge/fusing.wast.combined47
-rw-r--r--test/merge/fusing.wast.combined.finalized47
-rw-r--r--test/merge/fusing.wast.combined.finalized.opt20
-rw-r--r--test/merge/fusing.wast.combined.finalized.opt.stdout3
-rw-r--r--test/merge/fusing.wast.combined.finalized.stdout3
-rw-r--r--test/merge/fusing.wast.combined.opt23
-rw-r--r--test/merge/fusing.wast.combined.opt.stdout3
-rw-r--r--test/merge/fusing.wast.combined.stdout3
-rw-r--r--test/merge/fusing.wast.toMerge20
-rw-r--r--test/merge/global-init.wast12
-rw-r--r--test/merge/global-init.wast.combined23
-rw-r--r--test/merge/global-init.wast.combined.finalized23
-rw-r--r--test/merge/global-init.wast.combined.finalized.opt4
-rw-r--r--test/merge/global-init.wast.combined.finalized.opt.stdout3
-rw-r--r--test/merge/global-init.wast.combined.finalized.stdout3
-rw-r--r--test/merge/global-init.wast.combined.opt7
-rw-r--r--test/merge/global-init.wast.combined.opt.stdout3
-rw-r--r--test/merge/global-init.wast.combined.stdout3
-rw-r--r--test/merge/global-init.wast.toMerge12
-rw-r--r--test/merge/main-lacks-segments.wast7
-rw-r--r--test/merge/main-lacks-segments.wast.combined23
-rw-r--r--test/merge/main-lacks-segments.wast.combined.finalized23
-rw-r--r--test/merge/main-lacks-segments.wast.combined.finalized.opt17
-rw-r--r--test/merge/main-lacks-segments.wast.combined.finalized.opt.stdout3
-rw-r--r--test/merge/main-lacks-segments.wast.combined.finalized.stdout3
-rw-r--r--test/merge/main-lacks-segments.wast.combined.opt19
-rw-r--r--test/merge/main-lacks-segments.wast.combined.opt.stdout3
-rw-r--r--test/merge/main-lacks-segments.wast.combined.stdout3
-rw-r--r--test/merge/main-lacks-segments.wast.toMerge13
-rw-r--r--test/merge/noBases.wast34
-rw-r--r--test/merge/noBases.wast.combined88
-rw-r--r--test/merge/noBases.wast.combined.finalized88
-rw-r--r--test/merge/noBases.wast.combined.finalized.opt61
-rw-r--r--test/merge/noBases.wast.combined.finalized.opt.stdout3
-rw-r--r--test/merge/noBases.wast.combined.finalized.stdout3
-rw-r--r--test/merge/noBases.wast.combined.opt64
-rw-r--r--test/merge/noBases.wast.combined.opt.stdout3
-rw-r--r--test/merge/noBases.wast.combined.stdout3
-rw-r--r--test/merge/noBases.wast.toMerge35
-rw-r--r--test/merge/post-instantiate-a.wast9
-rw-r--r--test/merge/post-instantiate-a.wast.combined21
-rw-r--r--test/merge/post-instantiate-a.wast.combined.finalized21
-rw-r--r--test/merge/post-instantiate-a.wast.combined.finalized.opt7
-rw-r--r--test/merge/post-instantiate-a.wast.combined.finalized.opt.stdout3
-rw-r--r--test/merge/post-instantiate-a.wast.combined.finalized.stdout3
-rw-r--r--test/merge/post-instantiate-a.wast.combined.opt9
-rw-r--r--test/merge/post-instantiate-a.wast.combined.opt.stdout3
-rw-r--r--test/merge/post-instantiate-a.wast.combined.stdout3
-rw-r--r--test/merge/post-instantiate-a.wast.toMerge6
-rw-r--r--test/merge/post-instantiate-b.wast6
-rw-r--r--test/merge/post-instantiate-b.wast.combined21
-rw-r--r--test/merge/post-instantiate-b.wast.combined.finalized21
-rw-r--r--test/merge/post-instantiate-b.wast.combined.finalized.opt7
-rw-r--r--test/merge/post-instantiate-b.wast.combined.finalized.opt.stdout3
-rw-r--r--test/merge/post-instantiate-b.wast.combined.finalized.stdout3
-rw-r--r--test/merge/post-instantiate-b.wast.combined.opt9
-rw-r--r--test/merge/post-instantiate-b.wast.combined.opt.stdout3
-rw-r--r--test/merge/post-instantiate-b.wast.combined.stdout3
-rw-r--r--test/merge/post-instantiate-b.wast.toMerge9
-rw-r--r--test/merge/printf.wast13
-rw-r--r--test/merge/printf.wast.combined31
-rw-r--r--test/merge/printf.wast.combined.finalized31
-rw-r--r--test/merge/printf.wast.combined.finalized.opt9
-rw-r--r--test/merge/printf.wast.combined.finalized.opt.stdout3
-rw-r--r--test/merge/printf.wast.combined.finalized.stdout3
-rw-r--r--test/merge/printf.wast.combined.opt12
-rw-r--r--test/merge/printf.wast.combined.opt.stdout3
-rw-r--r--test/merge/printf.wast.combined.stdout3
-rw-r--r--test/merge/printf.wast.toMerge14
-rw-r--r--test/passes/O1.txt14
-rw-r--r--test/passes/O1.wast19
-rw-r--r--test/passes/O3_low-memory-unused_metrics.txt318
-rw-r--r--test/passes/O4.txt158
-rw-r--r--test/passes/Oz.txt8
-rw-r--r--test/passes/directize.txt159
-rw-r--r--test/passes/directize.wast182
-rw-r--r--test/passes/inlining-optimizing_optimize-level=3.txt840
-rw-r--r--test/passes/remove-unused-module-elements.txt4
-rw-r--r--test/passes/remove-unused-module-elements.wast4
-rw-r--r--test/passes/remove-unused-nonfunction-module-elements.txt4
-rw-r--r--test/passes/remove-unused-nonfunction-module-elements.wast4
-rw-r--r--test/passes/ssa-nomerge.txt202
-rw-r--r--test/passes/ssa-nomerge.wast102
-rw-r--r--test/passes/ssa.txt38
-rw-r--r--test/passes/ssa_fuzz-exec.txt30
-rw-r--r--test/reduce/memory_table.wast.txt25
-rw-r--r--test/threads.wasm-only.fromasm3
-rw-r--r--test/threads.wasm-only.fromasm.clamp3
-rw-r--r--test/threads.wasm-only.fromasm.imprecise3
-rw-r--r--test/unit.fromasm5
-rw-r--r--test/unit.fromasm.clamp5
-rw-r--r--test/unit.fromasm.imprecise5
-rw-r--r--test/unit/__init__.py (renamed from test/crash/__init__.py)0
-rw-r--r--test/unit/test_features.py88
-rw-r--r--test/wasm-only.fromasm47
-rw-r--r--test/wasm-only.fromasm.clamp47
-rw-r--r--test/wasm-only.fromasm.imprecise53
208 files changed, 30923 insertions, 33738 deletions
diff --git a/.travis.yml b/.travis.yml
index d7622b3f2..df64d4f2d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -28,7 +28,7 @@ DEPLOY_TO_GITHUB: &DEPLOY_TO_GITHUB
jobs:
include:
# OSX Binary
- - env: JOB=dist-osx MACOSX_DEPLOYMENT_TARGET=10.7 ARCH=x86_64-apple-darwin
+ - env: JOB=dist-osx MACOSX_DEPLOYMENT_TARGET=10.9 ARCH=x86_64-apple-darwin
os: osx
stage: build
script:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 67fa19c82..ae94e9bc8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+Changelog
+=========
+
This document describes changes between tagged Binaryen versions.
To browse or download snapshots of old tagged versions, visit
@@ -12,13 +15,22 @@ full changeset diff at the end of each section.
Current Trunk
-------------
+- Add support for llvm PIC code.
+- Add --side-module option to wasm-emscripten-finalize.
+
+v73
+---
+
+- Remove wasm-merge tool.
+
+v73
+---
+
- Remove jsCall generation from wasm-emscripten-finalize. This is not needed
as of https://github.com/emscripten-core/emscripten/pull/8255.
-### BREAKING CHANGES (old to new)
-
-v.55
-====
+v55
+---
- `RelooperCreate` in the C API now has a Module parameter, and
`RelooperRenderAndDispose` does not.
@@ -26,7 +38,7 @@ v.55
- Relooper: Condition properties on Branches must not have side effects.
older
-=====
+-----
- `BinaryenSetFunctionTable` in the C API no longer accepts an array of
functions, instead it accepts an array of function names, `const char**
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8c1401ad5..092cca01c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -92,6 +92,11 @@ IF(MSVC)
CMAKE_C_FLAGS_MINSIZEREL)
string (REGEX REPLACE "(^| )[/-]D *NDEBUG($| )" " "
"${flags_var_to_scrub}" "${${flags_var_to_scrub}}")
+
+ # Compile with `/MT` to link against `libcmt.lib`, removing a dependency
+ # on `msvcrt.dll`. May result in slightly larger binaries but they should
+ # be more portable across systems.
+ string(REPLACE "/MD" "/MT" ${flags_var_to_scrub} "${${flags_var_to_scrub}}")
endforeach()
endif()
@@ -198,16 +203,6 @@ SET_PROPERTY(TARGET wasm-opt PROPERTY CXX_STANDARD 11)
SET_PROPERTY(TARGET wasm-opt PROPERTY CXX_STANDARD_REQUIRED ON)
INSTALL(TARGETS wasm-opt DESTINATION ${CMAKE_INSTALL_BINDIR})
-SET(wasm-merge_SOURCES
- src/tools/wasm-merge.cpp
-)
-ADD_EXECUTABLE(wasm-merge
- ${wasm-merge_SOURCES})
-TARGET_LINK_LIBRARIES(wasm-merge wasm asmjs emscripten-optimizer passes ir cfg support wasm)
-SET_PROPERTY(TARGET wasm-merge PROPERTY CXX_STANDARD 11)
-SET_PROPERTY(TARGET wasm-merge PROPERTY CXX_STANDARD_REQUIRED ON)
-INSTALL(TARGETS wasm-merge DESTINATION bin)
-
SET(wasm-metadce_SOURCES
src/tools/wasm-metadce.cpp
)
diff --git a/README.md b/README.md
index 5fb66338a..1a068fcb8 100644
--- a/README.md
+++ b/README.md
@@ -142,8 +142,6 @@ This repository contains code that builds the following tools in `bin/`:
optimizer infrastructure. This is used by Emscripten in Binaryen mode when it
uses Emscripten's fastcomp asm.js backend.
* **wasm2js**: A WebAssembly-to-JS compiler (still experimental).
- * **wasm-merge**: Combines wasm files into a single big wasm file (without
- sophisticated linking).
* **wasm-ctor-eval**: A tool that can execute C++ global constructors ahead of
time. Used by Emscripten.
* **wasm-emscripten-finalize**: Takes a wasm binary produced by llvm+lld and
diff --git a/appveyor.yml b/appveyor.yml
index 1d0c0d4d6..c55eca653 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -13,12 +13,16 @@ environment:
- GENERATOR: Visual Studio 14 2015
CONFIG: Release
PARALLEL_FLAG: "/m:"
+ DEPLOY: 1
+ ARCH: x86
- GENERATOR: Visual Studio 14 2015 Win64
CONFIG: Debug
PARALLEL_FLAG: "/m:"
- GENERATOR: Visual Studio 14 2015 Win64
CONFIG: Release
PARALLEL_FLAG: "/m:"
+ DEPLOY: 1
+ ARCH: x86_64
install:
- pip install flake8==3.4.1
@@ -28,8 +32,28 @@ before_build:
- flake8 ./scripts/
build_script:
- - cmake . -DCMAKE_BUILD_TYPE=%CONFIG% -G "%GENERATOR%"
+ # Request `libcmt.lib` is used so our released artifacts don't dynamically
+ # link to `msvcrt.dll`
+ - cmake . -DCMAKE_BUILD_TYPE=%CONFIG% -G "%GENERATOR%" -DMSVC_USE_LIBCMT=YES
- cmake --build . --config %CONFIG% -- %PARALLEL_FLAG%%DEGREE_OF_PARALLELISM%
test_script:
- ctest --output-on-failure --timeout 10 -j 5 -C Release
+
+before_deploy:
+ - ps: |
+ $NAME = "binaryen-${env:APPVEYOR_REPO_TAG_NAME}-${env:ARCH}-windows"
+ Move-Item -Path bin -Destination $NAME
+ 7z a -ttar "${NAME}.tar" "${NAME}"
+ 7z a "${NAME}.tar.gz" "${NAME}.tar"
+ Push-AppveyorArtifact "${NAME}.tar.gz"
+
+deploy:
+ artifact: /.*\.tar.gz/
+ auth_token:
+ secure: zM0Bcjy1JXOBuu2C32lY0vCxREu7ah+bYFUpwmuryw82+HgCjvq7ZMutAk34Lv9d
+ description: ''
+ on:
+ appveyor_repo_tag: true
+ DEPLOY: 1
+ provider: GitHub
diff --git a/auto_update_tests.py b/auto_update_tests.py
index 7157e58be..14a14f936 100755
--- a/auto_update_tests.py
+++ b/auto_update_tests.py
@@ -22,10 +22,11 @@ import sys
from scripts.test.support import run_command, split_wast, node_test_glue, node_has_webassembly
from scripts.test.shared import (
ASM2WASM, MOZJS, NODEJS, WASM_OPT, WASM_AS, WASM_DIS,
- WASM_CTOR_EVAL, WASM_MERGE, WASM_REDUCE, WASM2JS, WASM_METADCE,
- WASM_EMSCRIPTEN_FINALIZE, BINARYEN_INSTALL_DIR, BINARYEN_JS,
- files_with_pattern, has_shell_timeout, options)
-from scripts.test.wasm2js import tests, spec_tests, extra_wasm2js_tests, assert_tests, wasm2js_dir, wasm2js_blacklist
+ WASM_CTOR_EVAL, WASM_REDUCE, WASM_METADCE, BINARYEN_INSTALL_DIR,
+ BINARYEN_JS, has_shell_timeout, options)
+
+from scripts.test import lld
+from scripts.test import wasm2js
def update_asm_js_tests():
@@ -71,27 +72,6 @@ def update_asm_js_tests():
run_command(cmd)
-def update_lld_tests():
- print '\n[ checking wasm-emscripten-finalize testcases... ]\n'
-
- for wast_path in files_with_pattern('test', 'lld', '*.wast'):
- print '..', wast_path
- mem_file = wast_path + '.mem'
- extension_arg_map = {
- '.out': [],
- '.mem.out': ['--separate-data-segments', mem_file + '.mem'],
- }
- for ext, ext_args in extension_arg_map.items():
- out_path = wast_path + ext
- if ext != '.out' and not os.path.exists(out_path):
- continue
- cmd = (WASM_EMSCRIPTEN_FINALIZE +
- [wast_path, '-S', '--global-base=568', '--initial-stack-pointer=16384'] + ext_args)
- actual = run_command(cmd)
- with open(out_path, 'w') as o:
- o.write(actual)
-
-
def update_wasm_opt_tests():
print '\n[ checking wasm-opt -o notation... ]\n'
wast = os.path.join('test', 'hello_world.wast')
@@ -264,33 +244,6 @@ def update_wasm_dis_tests():
open(t + '.fromBinary', 'w').write(actual)
-def update_wasm_merge_tests():
- print '\n[ checking wasm-merge... ]\n'
- for t in os.listdir(os.path.join('test', 'merge')):
- if t.endswith(('.wast', '.wasm')):
- print '..', t
- t = os.path.join('test', 'merge', t)
- u = t + '.toMerge'
- for finalize in [0, 1]:
- for opt in [0, 1]:
- cmd = WASM_MERGE + [t, u, '-o', 'a.wast', '-S', '--verbose']
- if finalize:
- cmd += ['--finalize-memory-base=1024', '--finalize-table-base=8']
- if opt:
- cmd += ['-O']
- stdout = run_command(cmd)
- actual = open('a.wast').read()
- out = t + '.combined'
- if finalize:
- out += '.finalized'
- if opt:
- out += '.opt'
- with open(out, 'w') as o:
- o.write(actual)
- with open(out + '.stdout', 'w') as o:
- o.write(stdout)
-
-
def update_binaryen_js_tests():
if not (MOZJS or NODEJS):
print 'no vm to run binaryen.js tests'
@@ -342,51 +295,6 @@ def update_ctor_eval_tests():
o.write(actual)
-def update_wasm2js_tests():
- print '\n[ checking wasm2js ]\n'
- for wasm in tests + spec_tests + extra_wasm2js_tests:
- if not wasm.endswith('.wast'):
- continue
-
- if os.path.basename(wasm) in wasm2js_blacklist:
- continue
-
- asm = os.path.basename(wasm).replace('.wast', '.2asm.js')
- expected_file = os.path.join(wasm2js_dir, asm)
-
- # we run wasm2js on tests and spec tests only if the output
- # exists - only some work so far. the tests in extra are in
- # the test/wasm2js dir and so are specific to wasm2js, and
- # we run all of those.
- if wasm not in extra_wasm2js_tests and not os.path.exists(expected_file):
- continue
-
- print '..', wasm
-
- cmd = WASM2JS + [os.path.join('test', wasm)]
- out = run_command(cmd)
- with open(expected_file, 'w') as o:
- o.write(out)
-
- for wasm in assert_tests:
- print '..', wasm
-
- asserts = os.path.basename(wasm).replace('.wast.asserts', '.asserts.js')
- traps = os.path.basename(wasm).replace('.wast.asserts', '.traps.js')
- asserts_expected_file = os.path.join('test', asserts)
- traps_expected_file = os.path.join('test', traps)
-
- cmd = WASM2JS + [os.path.join(wasm2js_dir, wasm), '--allow-asserts']
- out = run_command(cmd)
- with open(asserts_expected_file, 'w') as o:
- o.write(out)
-
- cmd += ['--pedantic']
- out = run_command(cmd)
- with open(traps_expected_file, 'w') as o:
- o.write(out)
-
-
def update_metadce_tests():
print '\n[ checking wasm-metadce... ]\n'
for t in os.listdir(os.path.join('test', 'metadce')):
@@ -421,14 +329,13 @@ def update_reduce_tests():
def main():
update_asm_js_tests()
- update_lld_tests()
+ lld.update_lld_tests()
update_wasm_opt_tests()
update_bin_fmt_tests()
update_example_tests()
update_wasm_dis_tests()
- update_wasm_merge_tests()
update_ctor_eval_tests()
- update_wasm2js_tests()
+ wasm2js.update_wasm2js_tests()
update_metadce_tests()
update_reduce_tests()
update_binaryen_js_tests()
diff --git a/build-js.sh b/build-js.sh
index 896d1736d..192ef662a 100755
--- a/build-js.sh
+++ b/build-js.sh
@@ -98,6 +98,7 @@ echo "building shared bitcode"
$BINARYEN_SRC/passes/ConstHoisting.cpp \
$BINARYEN_SRC/passes/DataFlowOpts.cpp \
$BINARYEN_SRC/passes/DeadCodeElimination.cpp \
+ $BINARYEN_SRC/passes/Directize.cpp \
$BINARYEN_SRC/passes/DuplicateFunctionElimination.cpp \
$BINARYEN_SRC/passes/ExtractFunction.cpp \
$BINARYEN_SRC/passes/Flatten.cpp \
@@ -204,7 +205,7 @@ export_function "_BinaryenUnreachableId"
export_function "_BinaryenAtomicCmpxchgId"
export_function "_BinaryenAtomicRMWId"
export_function "_BinaryenAtomicWaitId"
-export_function "_BinaryenAtomicWakeId"
+export_function "_BinaryenAtomicNotifyId"
export_function "_BinaryenSIMDExtractId"
export_function "_BinaryenSIMDReplaceId"
export_function "_BinaryenSIMDShuffleId"
@@ -540,7 +541,7 @@ export_function "_BinaryenAtomicStore"
export_function "_BinaryenAtomicRMW"
export_function "_BinaryenAtomicCmpxchg"
export_function "_BinaryenAtomicWait"
-export_function "_BinaryenAtomicWake"
+export_function "_BinaryenAtomicNotify"
export_function "_BinaryenSIMDExtract"
export_function "_BinaryenSIMDReplace"
export_function "_BinaryenSIMDShuffle"
@@ -677,9 +678,9 @@ export_function "_BinaryenAtomicWaitGetExpected"
export_function "_BinaryenAtomicWaitGetTimeout"
export_function "_BinaryenAtomicWaitGetExpectedType"
-# 'AtomicWake' expression operations
-export_function "_BinaryenAtomicWakeGetPtr"
-export_function "_BinaryenAtomicWakeGetWakeCount"
+# 'AtomicNotify' expression operations
+export_function "_BinaryenAtomicNotifyGetPtr"
+export_function "_BinaryenAtomicNotifyGetNotifyCount"
# 'SIMDExtract' expression operations
export_function "_BinaryenSIMDExtractGetOp"
diff --git a/check.py b/check.py
index 1fee7d283..a7768ad6a 100755
--- a/check.py
+++ b/check.py
@@ -22,9 +22,9 @@ import unittest
from scripts.test.support import run_command, split_wast, node_test_glue, node_has_webassembly
from scripts.test.shared import (
- BIN_DIR, MOZJS, NATIVECC, NATIVEXX, NODEJS, BINARYEN_JS,
- WASM_AS, WASM_CTOR_EVAL, WASM_OPT, WASM_SHELL, WASM_MERGE, WASM_METADCE,
- WASM_DIS, WASM_REDUCE, binary_format_check, delete_from_orbit, fail, fail_with_error,
+ BIN_DIR, MOZJS, NATIVECC, NATIVEXX, NODEJS, BINARYEN_JS, WASM_AS,
+ WASM_CTOR_EVAL, WASM_OPT, WASM_SHELL, WASM_METADCE, WASM_DIS, WASM_REDUCE,
+ binary_format_check, delete_from_orbit, fail, fail_with_error,
fail_if_not_identical, fail_if_not_contained, has_vanilla_emcc,
has_vanilla_llvm, minify_check, options, tests, requested, warnings,
has_shell_timeout, fail_if_not_identical_to_file
@@ -32,11 +32,10 @@ from scripts.test.shared import (
# For shared.num_failures. Cannot import directly because modifications made in
# shared.py would not affect the version imported here.
-import scripts.test.shared as shared
-
-import scripts.test.asm2wasm as asm2wasm
-import scripts.test.lld as lld
-import scripts.test.wasm2js as wasm2js
+from scripts.test import shared
+from scripts.test import asm2wasm
+from scripts.test import lld
+from scripts.test import wasm2js
if options.interpreter:
print '[ using wasm interpreter at "%s" ]' % options.interpreter
@@ -204,33 +203,6 @@ def run_wasm_dis_tests():
with_pass_debug(check)
-def run_wasm_merge_tests():
- print '\n[ checking wasm-merge... ]\n'
-
- test_dir = os.path.join(options.binaryen_test, 'merge')
- for t in os.listdir(test_dir):
- if t.endswith(('.wast', '.wasm')):
- print '..', t
- t = os.path.join(test_dir, t)
- u = t + '.toMerge'
- for finalize in [0, 1]:
- for opt in [0, 1]:
- cmd = WASM_MERGE + [t, u, '-o', 'a.wast', '-S', '--verbose']
- if finalize:
- cmd += ['--finalize-memory-base=1024', '--finalize-table-base=8']
- if opt:
- cmd += ['-O']
- stdout = run_command(cmd)
- actual = open('a.wast').read()
- out = t + '.combined'
- if finalize:
- out += '.finalized'
- if opt:
- out += '.opt'
- fail_if_not_identical_to_file(actual, out)
- fail_if_not_identical_to_file(stdout, out + '.stdout')
-
-
def run_crash_tests():
print "\n[ checking we don't crash on tricky inputs... ]\n"
@@ -615,7 +587,6 @@ def main():
asm2wasm.test_asm2wasm()
asm2wasm.test_asm2wasm_binary()
run_wasm_dis_tests()
- run_wasm_merge_tests()
run_crash_tests()
run_dylink_tests()
run_ctor_eval_tests()
diff --git a/scripts/gen-s-parser.py b/scripts/gen-s-parser.py
index 2f63efe70..04f10c471 100755
--- a/scripts/gen-s-parser.py
+++ b/scripts/gen-s-parser.py
@@ -14,6 +14,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+import sys
+
instructions = [
("unreachable", "makeUnreachable()"),
("nop", "makeNop()"),
@@ -197,9 +199,9 @@ instructions = [
("i64.extend16_s", "makeUnary(s, UnaryOp::ExtendS16Int64)"),
("i64.extend32_s", "makeUnary(s, UnaryOp::ExtendS32Int64)"),
# atomic instructions
- ("wake", "makeAtomicWake(s)"),
- ("i32.wait", "makeAtomicWait(s, i32)"),
- ("i64.wait", "makeAtomicWait(s, i64)"),
+ ("atomic.notify", "makeAtomicNotify(s)"),
+ ("i32.atomic.wait", "makeAtomicWait(s, i32)"),
+ ("i64.atomic.wait", "makeAtomicWait(s, i64)"),
("i32.atomic.load8_u", "makeLoad(s, i32, /*isAtomic=*/true)"),
("i32.atomic.load16_u", "makeLoad(s, i32, /*isAtomic=*/true)"),
("i32.atomic.load", "makeLoad(s, i32, /*isAtomic=*/true)"),
@@ -541,6 +543,10 @@ def generate_with_guard(generator, guard):
def main():
+ if sys.version_info.major != 3:
+ import datetime
+ print("It's " + str(datetime.datetime.now().year) + "! Use Python 3!")
+ sys.exit(1)
print_header()
generate_with_guard(instruction_parser, "INSTRUCTION_PARSER")
diff --git a/scripts/test/generate_lld_tests.py b/scripts/test/generate_lld_tests.py
index 4b18107e1..31634e7b0 100755
--- a/scripts/test/generate_lld_tests.py
+++ b/scripts/test/generate_lld_tests.py
@@ -22,48 +22,58 @@ import shared
def files_with_extensions(path, extensions):
for file in sorted(os.listdir(path)):
- _, ext = os.path.splitext(file)
+ ext = os.path.splitext(file)[1]
if ext in extensions:
yield file, ext
-def generate_wast_files(clang_bin, lld_bin, emscripten_root):
+def generate_wast_files(llvm_bin, emscripten_root):
print '\n[ building wast files from C sources... ]\n'
lld_path = os.path.join(shared.options.binaryen_test, 'lld')
for src_file, ext in files_with_extensions(lld_path, ['.c', '.cpp']):
print '..', src_file
- try:
- obj_file = src_file.replace(ext, '.o')
+ obj_file = src_file.replace(ext, '.o')
+
+ src_path = os.path.join(lld_path, src_file)
+ obj_path = os.path.join(lld_path, obj_file)
+
+ wasm_file = src_file.replace(ext, '.wasm')
+ wast_file = src_file.replace(ext, '.wast')
- src_path = os.path.join(lld_path, src_file)
- obj_path = os.path.join(lld_path, obj_file)
- run_command([
- clang_bin, src_path, '-o', obj_path,
- '--target=wasm32-unknown-unknown-wasm',
- '-c',
- '-nostdinc',
- '-Xclang', '-nobuiltininc',
- '-Xclang', '-nostdsysteminc',
- '-Xclang', '-I%s/system/include' % emscripten_root,
- '-O1',
- ])
+ obj_path = os.path.join(lld_path, obj_file)
+ wasm_path = os.path.join(lld_path, wasm_file)
+ wast_path = os.path.join(lld_path, wast_file)
+ is_shared = 'shared' in src_file
- wasm_file = src_file.replace(ext, '.wasm')
- wast_file = src_file.replace(ext, '.wast')
+ compile_cmd = [
+ os.path.join(llvm_bin, 'clang'), src_path, '-o', obj_path,
+ '--target=wasm32-unknown-unknown-wasm',
+ '-c',
+ '-nostdinc',
+ '-Xclang', '-nobuiltininc',
+ '-Xclang', '-nostdsysteminc',
+ '-Xclang', '-I%s/system/include' % emscripten_root,
+ '-O1',
+ ]
- obj_path = os.path.join(lld_path, obj_file)
- wasm_path = os.path.join(lld_path, wasm_file)
- wast_path = os.path.join(lld_path, wast_file)
- run_command([
- lld_bin, '-flavor', 'wasm',
- '-z', '-stack-size=1048576',
- obj_path, '-o', wasm_path,
- '--entry=main',
- '--allow-undefined',
- '--export', '__wasm_call_ctors',
- '--global-base=568',
- ])
+ link_cmd = [
+ os.path.join(llvm_bin, 'wasm-ld'), '-flavor', 'wasm',
+ '-z', '-stack-size=1048576',
+ obj_path, '-o', wasm_path,
+ '--entry=main',
+ '--allow-undefined',
+ '--export', '__wasm_call_ctors',
+ '--global-base=568',
+ ]
+ if is_shared:
+ compile_cmd.append('-fPIC')
+ compile_cmd.append('-fvisibility=default')
+ link_cmd.append('-shared')
+
+ try:
+ run_command(compile_cmd)
+ run_command(link_cmd)
run_command(shared.WASM_DIS + [wasm_path, '-o', wast_path])
finally:
# Don't need the .o or .wasm files, don't leave them around
@@ -72,8 +82,7 @@ def generate_wast_files(clang_bin, lld_bin, emscripten_root):
if __name__ == '__main__':
- if len(sys.argv) != 4:
- print 'Usage: generate_lld_tests.py [path/to/clang] [path/to/lld] \
-[path/to/emscripten]'
+ if len(shared.options.positional_args) != 2:
+ print 'Usage: generate_lld_tests.py [llvm/bin/dir] [path/to/emscripten]'
sys.exit(1)
- generate_wast_files(*sys.argv[1:])
+ generate_wast_files(*shared.options.positional_args)
diff --git a/scripts/test/lld.py b/scripts/test/lld.py
index 94736f03f..fae551f0d 100755
--- a/scripts/test/lld.py
+++ b/scripts/test/lld.py
@@ -21,6 +21,13 @@ from shared import (
)
+def args_for_finalize(filename):
+ if 'shared' in filename:
+ return ['--side-module']
+ else:
+ return ['--global-base=568', '--initial-stack-pointer=16384']
+
+
def test_wasm_emscripten_finalize():
print '\n[ checking wasm-emscripten-finalize testcases... ]\n'
@@ -36,8 +43,8 @@ def test_wasm_emscripten_finalize():
if ext != '.out' and not os.path.exists(expected_file):
continue
- cmd = (WASM_EMSCRIPTEN_FINALIZE +
- [wast_path, '-S', '--global-base=568', '--initial-stack-pointer=16384'] + ext_args)
+ cmd = WASM_EMSCRIPTEN_FINALIZE + [wast_path, '-S'] + ext_args
+ cmd += args_for_finalize(os.path.basename(wast_path))
actual = run_command(cmd)
if not os.path.exists(expected_file):
@@ -51,5 +58,26 @@ def test_wasm_emscripten_finalize():
os.remove(mem_file)
+def update_lld_tests():
+ print '\n[ updatring wasm-emscripten-finalize testcases... ]\n'
+
+ for wast_path in files_with_pattern(options.binaryen_test, 'lld', '*.wast'):
+ print '..', wast_path
+ mem_file = wast_path + '.mem'
+ extension_arg_map = {
+ '.out': [],
+ '.mem.out': ['--separate-data-segments', mem_file + '.mem'],
+ }
+ for ext, ext_args in extension_arg_map.items():
+ out_path = wast_path + ext
+ if ext != '.out' and not os.path.exists(out_path):
+ continue
+ cmd = WASM_EMSCRIPTEN_FINALIZE + [wast_path, '-S'] + ext_args
+ cmd += args_for_finalize(os.path.basename(wast_path))
+ actual = run_command(cmd)
+ with open(out_path, 'w') as o:
+ o.write(actual)
+
+
if __name__ == '__main__':
test_wasm_emscripten_finalize()
diff --git a/scripts/test/shared.py b/scripts/test/shared.py
index 7c456db8f..7723f7cee 100644
--- a/scripts/test/shared.py
+++ b/scripts/test/shared.py
@@ -169,7 +169,6 @@ ASM2WASM = [os.path.join(options.binaryen_bin, 'asm2wasm')]
WASM2JS = [os.path.join(options.binaryen_bin, 'wasm2js')]
WASM_CTOR_EVAL = [os.path.join(options.binaryen_bin, 'wasm-ctor-eval')]
WASM_SHELL = [os.path.join(options.binaryen_bin, 'wasm-shell')]
-WASM_MERGE = [os.path.join(options.binaryen_bin, 'wasm-merge')]
WASM_REDUCE = [os.path.join(options.binaryen_bin, 'wasm-reduce')]
WASM_METADCE = [os.path.join(options.binaryen_bin, 'wasm-metadce')]
WASM_EMSCRIPTEN_FINALIZE = [os.path.join(options.binaryen_bin,
diff --git a/scripts/test/wasm2js.py b/scripts/test/wasm2js.py
index 9a72895c1..afa399da2 100755
--- a/scripts/test/wasm2js.py
+++ b/scripts/test/wasm2js.py
@@ -106,5 +106,51 @@ def test_wasm2js():
test_asserts_output()
+def update_wasm2js_tests():
+ print '\n[ checking wasm2js ]\n'
+
+ for wasm in tests + spec_tests + extra_wasm2js_tests:
+ if not wasm.endswith('.wast'):
+ continue
+
+ if os.path.basename(wasm) in wasm2js_blacklist:
+ continue
+
+ asm = os.path.basename(wasm).replace('.wast', '.2asm.js')
+ expected_file = os.path.join(wasm2js_dir, asm)
+
+ # we run wasm2js on tests and spec tests only if the output
+ # exists - only some work so far. the tests in extra are in
+ # the test/wasm2js dir and so are specific to wasm2js, and
+ # we run all of those.
+ if wasm not in extra_wasm2js_tests and not os.path.exists(expected_file):
+ continue
+
+ print '..', wasm
+
+ cmd = WASM2JS + [os.path.join('test', wasm)]
+ out = run_command(cmd)
+ with open(expected_file, 'w') as o:
+ o.write(out)
+
+ for wasm in assert_tests:
+ print '..', wasm
+
+ asserts = os.path.basename(wasm).replace('.wast.asserts', '.asserts.js')
+ traps = os.path.basename(wasm).replace('.wast.asserts', '.traps.js')
+ asserts_expected_file = os.path.join('test', asserts)
+ traps_expected_file = os.path.join('test', traps)
+
+ cmd = WASM2JS + [os.path.join(wasm2js_dir, wasm), '--allow-asserts']
+ out = run_command(cmd)
+ with open(asserts_expected_file, 'w') as o:
+ o.write(out)
+
+ cmd += ['--pedantic']
+ out = run_command(cmd)
+ with open(traps_expected_file, 'w') as o:
+ o.write(out)
+
+
if __name__ == "__main__":
test_wasm2js()
diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp
index 71cd92da4..72544d5d7 100644
--- a/src/binaryen-c.cpp
+++ b/src/binaryen-c.cpp
@@ -261,7 +261,7 @@ BinaryenExpressionId BinaryenUnreachableId(void) { return Expression::Id::Unreac
BinaryenExpressionId BinaryenAtomicCmpxchgId(void) { return Expression::Id::AtomicCmpxchgId; }
BinaryenExpressionId BinaryenAtomicRMWId(void) { return Expression::Id::AtomicRMWId; }
BinaryenExpressionId BinaryenAtomicWaitId(void) { return Expression::Id::AtomicWaitId; }
-BinaryenExpressionId BinaryenAtomicWakeId(void) { return Expression::Id::AtomicWakeId; }
+BinaryenExpressionId BinaryenAtomicNotifyId(void) { return Expression::Id::AtomicNotifyId; }
BinaryenExpressionId BinaryenSIMDExtractId(void) { return Expression::Id::SIMDExtractId; }
BinaryenExpressionId BinaryenSIMDReplaceId(void) { return Expression::Id::SIMDReplaceId; }
BinaryenExpressionId BinaryenSIMDShuffleId(void) { return Expression::Id::SIMDShuffleId; }
@@ -1022,11 +1022,11 @@ BinaryenExpressionRef BinaryenAtomicWait(BinaryenModuleRef module, BinaryenExpre
return static_cast<Expression*>(ret);
}
-BinaryenExpressionRef BinaryenAtomicWake(BinaryenModuleRef module, BinaryenExpressionRef ptr, BinaryenExpressionRef wakeCount) {
- auto* ret = Builder(*((Module*)module)).makeAtomicWake((Expression*)ptr, (Expression*)wakeCount, 0);
+BinaryenExpressionRef BinaryenAtomicNotify(BinaryenModuleRef module, BinaryenExpressionRef ptr, BinaryenExpressionRef notifyCount) {
+ auto* ret = Builder(*((Module*)module)).makeAtomicNotify((Expression*)ptr, (Expression*)notifyCount, 0);
if (tracing) {
- traceExpression(ret, "BinaryenAtomicWake", ptr, wakeCount);
+ traceExpression(ret, "BinaryenAtomicNotify", ptr, notifyCount);
}
return static_cast<Expression*>(ret);
@@ -1849,24 +1849,24 @@ BinaryenType BinaryenAtomicWaitGetExpectedType(BinaryenExpressionRef expr) {
assert(expression->is<AtomicWait>());
return static_cast<AtomicWait*>(expression)->expectedType;
}
-// AtomicWake
-BinaryenExpressionRef BinaryenAtomicWakeGetPtr(BinaryenExpressionRef expr) {
+// AtomicNotify
+BinaryenExpressionRef BinaryenAtomicNotifyGetPtr(BinaryenExpressionRef expr) {
if (tracing) {
- std::cout << " BinaryenAtomicWakeGetPtr(expressions[" << expressions[expr] << "]);\n";
+ std::cout << " BinaryenAtomicNotifyGetPtr(expressions[" << expressions[expr] << "]);\n";
}
auto* expression = (Expression*)expr;
- assert(expression->is<AtomicWake>());
- return static_cast<AtomicWake*>(expression)->ptr;
+ assert(expression->is<AtomicNotify>());
+ return static_cast<AtomicNotify*>(expression)->ptr;
}
-BinaryenExpressionRef BinaryenAtomicWakeGetWakeCount(BinaryenExpressionRef expr) {
+BinaryenExpressionRef BinaryenAtomicNotifyGetNotifyCount(BinaryenExpressionRef expr) {
if (tracing) {
- std::cout << " BinaryenAtomicWakeGetWakeCount(expressions[" << expressions[expr] << "]);\n";
+ std::cout << " BinaryenAtomicNotifyGetNotifyCount(expressions[" << expressions[expr] << "]);\n";
}
auto* expression = (Expression*)expr;
- assert(expression->is<AtomicWake>());
- return static_cast<AtomicWake*>(expression)->wakeCount;
+ assert(expression->is<AtomicNotify>());
+ return static_cast<AtomicNotify*>(expression)->notifyCount;
}
// SIMDExtract
BinaryenOp BinaryenSIMDExtractGetOp(BinaryenExpressionRef expr) {
diff --git a/src/binaryen-c.h b/src/binaryen-c.h
index 787bfb242..5bc95e0f8 100644
--- a/src/binaryen-c.h
+++ b/src/binaryen-c.h
@@ -116,7 +116,7 @@ BinaryenExpressionId BinaryenUnreachableId(void);
BinaryenExpressionId BinaryenAtomicCmpxchgId(void);
BinaryenExpressionId BinaryenAtomicRMWId(void);
BinaryenExpressionId BinaryenAtomicWaitId(void);
-BinaryenExpressionId BinaryenAtomicWakeId(void);
+BinaryenExpressionId BinaryenAtomicNotifyId(void);
BinaryenExpressionId BinaryenSIMDExtractId(void);
BinaryenExpressionId BinaryenSIMDReplaceId(void);
BinaryenExpressionId BinaryenSIMDShuffleId(void);
@@ -538,7 +538,7 @@ BinaryenExpressionRef BinaryenAtomicStore(BinaryenModuleRef module, uint32_t byt
BinaryenExpressionRef BinaryenAtomicRMW(BinaryenModuleRef module, BinaryenOp op, BinaryenIndex bytes, BinaryenIndex offset, BinaryenExpressionRef ptr, BinaryenExpressionRef value, BinaryenType type);
BinaryenExpressionRef BinaryenAtomicCmpxchg(BinaryenModuleRef module, BinaryenIndex bytes, BinaryenIndex offset, BinaryenExpressionRef ptr, BinaryenExpressionRef expected, BinaryenExpressionRef replacement, BinaryenType type);
BinaryenExpressionRef BinaryenAtomicWait(BinaryenModuleRef module, BinaryenExpressionRef ptr, BinaryenExpressionRef expected, BinaryenExpressionRef timeout, BinaryenType type);
-BinaryenExpressionRef BinaryenAtomicWake(BinaryenModuleRef module, BinaryenExpressionRef ptr, BinaryenExpressionRef wakeCount);
+BinaryenExpressionRef BinaryenAtomicNotify(BinaryenModuleRef module, BinaryenExpressionRef ptr, BinaryenExpressionRef notifyCount);
BinaryenExpressionRef BinaryenSIMDExtract(BinaryenModuleRef module, BinaryenOp op, BinaryenExpressionRef vec, uint8_t index);
BinaryenExpressionRef BinaryenSIMDReplace(BinaryenModuleRef module, BinaryenOp op, BinaryenExpressionRef vec, uint8_t index, BinaryenExpressionRef value);
BinaryenExpressionRef BinaryenSIMDShuffle(BinaryenModuleRef module, BinaryenExpressionRef left, BinaryenExpressionRef right, const uint8_t mask[16]);
@@ -652,8 +652,8 @@ BinaryenExpressionRef BinaryenAtomicWaitGetExpected(BinaryenExpressionRef expr);
BinaryenExpressionRef BinaryenAtomicWaitGetTimeout(BinaryenExpressionRef expr);
BinaryenType BinaryenAtomicWaitGetExpectedType(BinaryenExpressionRef expr);
-BinaryenExpressionRef BinaryenAtomicWakeGetPtr(BinaryenExpressionRef expr);
-BinaryenExpressionRef BinaryenAtomicWakeGetWakeCount(BinaryenExpressionRef expr);
+BinaryenExpressionRef BinaryenAtomicNotifyGetPtr(BinaryenExpressionRef expr);
+BinaryenExpressionRef BinaryenAtomicNotifyGetNotifyCount(BinaryenExpressionRef expr);
BinaryenOp BinaryenSIMDExtractGetOp(BinaryenExpressionRef expr);
BinaryenExpressionRef BinaryenSIMDExtractGetVec(BinaryenExpressionRef expr);
diff --git a/src/gen-s-parser.inc b/src/gen-s-parser.inc
index 710f0d829..c9daba100 100644
--- a/src/gen-s-parser.inc
+++ b/src/gen-s-parser.inc
@@ -5,6 +5,9 @@
char op[27] = {'\0'};
strncpy(op, s[0]->c_str(), 26);
switch (op[0]) {
+ case 'a':
+ if (strcmp(op, "atomic.notify") == 0) return makeAtomicNotify(s);
+ goto parse_error;
case 'b': {
switch (op[1]) {
case 'l':
@@ -946,6 +949,9 @@ switch (op[0]) {
default: goto parse_error;
}
}
+ case 'w':
+ if (strcmp(op, "i32.atomic.wait") == 0) return makeAtomicWait(s, i32);
+ goto parse_error;
default: goto parse_error;
}
}
@@ -1235,17 +1241,9 @@ switch (op[0]) {
default: goto parse_error;
}
}
- case 'w': {
- switch (op[5]) {
- case 'a':
- if (strcmp(op, "i32.wait") == 0) return makeAtomicWait(s, i32);
- goto parse_error;
- case 'r':
- if (strcmp(op, "i32.wrap_i64") == 0) return makeUnary(s, UnaryOp::WrapInt64);
- goto parse_error;
- default: goto parse_error;
- }
- }
+ case 'w':
+ if (strcmp(op, "i32.wrap_i64") == 0) return makeUnary(s, UnaryOp::WrapInt64);
+ goto parse_error;
case 'x':
if (strcmp(op, "i32.xor") == 0) return makeBinary(s, BinaryOp::XorInt32);
goto parse_error;
@@ -1594,6 +1592,9 @@ switch (op[0]) {
default: goto parse_error;
}
}
+ case 'w':
+ if (strcmp(op, "i64.atomic.wait") == 0) return makeAtomicWait(s, i64);
+ goto parse_error;
default: goto parse_error;
}
}
@@ -1911,9 +1912,6 @@ switch (op[0]) {
default: goto parse_error;
}
}
- case 'w':
- if (strcmp(op, "i64.wait") == 0) return makeAtomicWait(s, i64);
- goto parse_error;
case 'x':
if (strcmp(op, "i64.xor") == 0) return makeBinary(s, BinaryOp::XorInt64);
goto parse_error;
@@ -2257,9 +2255,6 @@ switch (op[0]) {
default: goto parse_error;
}
}
- case 'w':
- if (strcmp(op, "wake") == 0) return makeAtomicWake(s);
- goto parse_error;
default: goto parse_error;
}
parse_error:
diff --git a/src/ir/ExpressionAnalyzer.cpp b/src/ir/ExpressionAnalyzer.cpp
index fecee0cce..fcbd29665 100644
--- a/src/ir/ExpressionAnalyzer.cpp
+++ b/src/ir/ExpressionAnalyzer.cpp
@@ -171,7 +171,7 @@ void visitImmediates(Expression* curr, T& visitor) {
visitor.visitAddress(curr->offset);
visitor.visitType(curr->expectedType);
}
- void visitAtomicWake(AtomicWake* curr) {
+ void visitAtomicNotify(AtomicNotify* curr) {
visitor.visitAddress(curr->offset);
}
void visitSIMDExtract(SIMDExtract* curr) {
diff --git a/src/ir/ExpressionManipulator.cpp b/src/ir/ExpressionManipulator.cpp
index 32ee442b7..578d35e3f 100644
--- a/src/ir/ExpressionManipulator.cpp
+++ b/src/ir/ExpressionManipulator.cpp
@@ -111,8 +111,8 @@ Expression* flexibleCopy(Expression* original, Module& wasm, CustomCopier custom
Expression* visitAtomicWait(AtomicWait* curr) {
return builder.makeAtomicWait(copy(curr->ptr), copy(curr->expected), copy(curr->timeout), curr->expectedType, curr->offset);
}
- Expression* visitAtomicWake(AtomicWake* curr) {
- return builder.makeAtomicWake(copy(curr->ptr), copy(curr->wakeCount), curr->offset);
+ Expression* visitAtomicNotify(AtomicNotify* curr) {
+ return builder.makeAtomicNotify(copy(curr->ptr), copy(curr->notifyCount), curr->offset);
}
Expression* visitSIMDExtract(SIMDExtract* curr) {
return builder.makeSIMDExtract(curr->op, copy(curr->vec), curr->index);
diff --git a/src/ir/ReFinalize.cpp b/src/ir/ReFinalize.cpp
index 3f374265c..e4d5180d1 100644
--- a/src/ir/ReFinalize.cpp
+++ b/src/ir/ReFinalize.cpp
@@ -136,7 +136,7 @@ void ReFinalize::visitStore(Store* curr) { curr->finalize(); }
void ReFinalize::visitAtomicRMW(AtomicRMW* curr) { curr->finalize(); }
void ReFinalize::visitAtomicCmpxchg(AtomicCmpxchg* curr) { curr->finalize(); }
void ReFinalize::visitAtomicWait(AtomicWait* curr) { curr->finalize(); }
-void ReFinalize::visitAtomicWake(AtomicWake* curr) { curr->finalize(); }
+void ReFinalize::visitAtomicNotify(AtomicNotify* curr) { curr->finalize(); }
void ReFinalize::visitSIMDExtract(SIMDExtract* curr) { curr->finalize(); }
void ReFinalize::visitSIMDReplace(SIMDReplace* curr) { curr->finalize(); }
void ReFinalize::visitSIMDShuffle(SIMDShuffle* curr) { curr->finalize(); }
diff --git a/src/ir/effects.h b/src/ir/effects.h
index 394bf0116..401232fa1 100644
--- a/src/ir/effects.h
+++ b/src/ir/effects.h
@@ -230,8 +230,8 @@ struct EffectAnalyzer : public PostWalker<EffectAnalyzer> {
isAtomic = true;
if (!ignoreImplicitTraps) implicitTrap = true;
}
- void visitAtomicWake(AtomicWake* curr) {
- // AtomicWake doesn't strictly write memory, but it does modify the waiters
+ void visitAtomicNotify(AtomicNotify* curr) {
+ // AtomicNotify doesn't strictly write memory, but it does modify the waiters
// list associated with the specified address, which we can think of as a
// write.
readsMemory = true;
diff --git a/src/ir/utils.h b/src/ir/utils.h
index db437875d..c91698124 100644
--- a/src/ir/utils.h
+++ b/src/ir/utils.h
@@ -128,7 +128,7 @@ struct ReFinalize : public WalkerPass<PostWalker<ReFinalize, OverriddenVisitor<R
void visitAtomicRMW(AtomicRMW* curr);
void visitAtomicCmpxchg(AtomicCmpxchg* curr);
void visitAtomicWait(AtomicWait* curr);
- void visitAtomicWake(AtomicWake* curr);
+ void visitAtomicNotify(AtomicNotify* curr);
void visitSIMDExtract(SIMDExtract* curr);
void visitSIMDReplace(SIMDReplace* curr);
void visitSIMDShuffle(SIMDShuffle* curr);
@@ -184,7 +184,7 @@ struct ReFinalizeNode : public OverriddenVisitor<ReFinalizeNode> {
void visitAtomicRMW(AtomicRMW* curr) { curr->finalize(); }
void visitAtomicCmpxchg(AtomicCmpxchg* curr) { curr->finalize(); }
void visitAtomicWait(AtomicWait* curr) { curr->finalize(); }
- void visitAtomicWake(AtomicWake* curr) { curr->finalize(); }
+ void visitAtomicNotify(AtomicNotify* curr) { curr->finalize(); }
void visitSIMDExtract(SIMDExtract* curr) { curr->finalize(); }
void visitSIMDReplace(SIMDReplace* curr) { curr->finalize(); }
void visitSIMDShuffle(SIMDShuffle* curr) { curr->finalize(); }
diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js
index aee41255c..1796080fc 100644
--- a/src/js/binaryen.js-post.js
+++ b/src/js/binaryen.js-post.js
@@ -67,7 +67,7 @@ Module['UnreachableId'] = Module['_BinaryenUnreachableId']();
Module['AtomicCmpxchgId'] = Module['_BinaryenAtomicCmpxchgId']();
Module['AtomicRMWId'] = Module['_BinaryenAtomicRMWId']();
Module['AtomicWaitId'] = Module['_BinaryenAtomicWaitId']();
-Module['AtomicWakeId'] = Module['_BinaryenAtomicWakeId']();
+Module['AtomicNotifyId'] = Module['_BinaryenAtomicNotifyId']();
Module['SIMDExtractId'] = Module['_BinaryenSIMDExtractId']();
Module['SIMDReplaceId'] = Module['_BinaryenSIMDReplaceId']();
Module['SIMDShuffleId'] = Module['_BinaryenSIMDShuffleId']();
@@ -1728,8 +1728,8 @@ function wrapModule(module, self) {
self['unreachable'] = function() {
return Module['_BinaryenUnreachable'](module);
};
- self['wake'] = function(ptr, wakeCount) {
- return Module['_BinaryenAtomicWake'](module, ptr, wakeCount);
+ self['notify'] = function(ptr, notifyCount) {
+ return Module['_BinaryenAtomicNotify'](module, ptr, notifyCount);
};
// 'Module' operations
@@ -2208,12 +2208,12 @@ Module['getExpressionInfo'] = function(expr) {
'timeout': Module['_BinaryenAtomicWaitGetTimeout'](expr),
'expectedType': Module['_BinaryenAtomicWaitGetExpectedType'](expr)
};
- case Module['AtomicWakeId']:
+ case Module['AtomicNotifyId']:
return {
'id': id,
'type': type,
- 'ptr': Module['_BinaryenAtomicWakeGetPtr'](expr),
- 'wakeCount': Module['_BinaryenAtomicWakeGetWakeCount'](expr)
+ 'ptr': Module['_BinaryenAtomicNotifyGetPtr'](expr),
+ 'notifyCount': Module['_BinaryenAtomicNotifyGetNotifyCount'](expr)
};
case Module['SIMDExtractId']:
return {
diff --git a/src/mixed_arena.h b/src/mixed_arena.h
index 46487b7fc..5f48f5220 100644
--- a/src/mixed_arena.h
+++ b/src/mixed_arena.h
@@ -277,31 +277,102 @@ public:
// iteration
struct Iterator {
+ using iterator_category = std::random_access_iterator_tag;
+ using value_type = T;
+ using difference_type = std::ptrdiff_t;
+ using pointer = T*;
+ using reference = T&;
+
const SubType* parent;
size_t index;
+ Iterator() : parent(nullptr), index(0) {}
Iterator(const SubType* parent, size_t index) : parent(parent), index(index) {}
+ bool operator==(const Iterator& other) const {
+ return index == other.index && parent == other.parent;
+ }
+
bool operator!=(const Iterator& other) const {
- return index != other.index || parent != other.parent;
+ return !(*this == other);
+ }
+
+ bool operator<(const Iterator& other) const {
+ assert(parent == other.parent);
+ return index < other.index;
+ }
+
+ bool operator>(const Iterator& other) const {
+ return other < *this;
+ }
+
+ bool operator<=(const Iterator& other) const {
+ return !(other < *this);
+ }
+
+ bool operator>=(const Iterator& other) const {
+ return !(*this < other);
}
- void operator++() {
+ Iterator& operator++() {
index++;
+ return *this;
}
- Iterator& operator+=(int off) {
+ Iterator& operator--() {
+ index--;
+ return *this;
+ }
+
+ Iterator operator++(int) {
+ Iterator it = *this;
+ ++*this;
+ return it;
+ }
+
+ Iterator operator--(int) {
+ Iterator it = *this;
+ --*this;
+ return it;
+ }
+
+ Iterator& operator+=(std::ptrdiff_t off) {
index += off;
return *this;
}
- const Iterator operator+(int off) const {
+ Iterator& operator-=(std::ptrdiff_t off) {
+ return *this += -off;
+ }
+
+ Iterator operator+(std::ptrdiff_t off) const {
return Iterator(*this) += off;
}
- T& operator*() {
+ Iterator operator-(std::ptrdiff_t off) const {
+ return *this + -off;
+ }
+
+ std::ptrdiff_t operator-(const Iterator& other) const {
+ assert(parent == other.parent);
+ return index - other.index;
+ }
+
+ friend Iterator operator+(std::ptrdiff_t off, const Iterator& it) {
+ return it + off;
+ }
+
+ T& operator*() const {
return (*parent)[index];
}
+
+ T& operator[](std::ptrdiff_t off) const {
+ return (*parent)[index + off];
+ }
+
+ T* operator->() const {
+ return &(*parent)[index];
+ }
};
Iterator begin() const {
diff --git a/src/passes/CMakeLists.txt b/src/passes/CMakeLists.txt
index 2848946f8..2b1b64d84 100644
--- a/src/passes/CMakeLists.txt
+++ b/src/passes/CMakeLists.txt
@@ -12,6 +12,7 @@ SET(passes_SOURCES
DataFlowOpts.cpp
DeadArgumentElimination.cpp
DeadCodeElimination.cpp
+ Directize.cpp
DuplicateFunctionElimination.cpp
ExtractFunction.cpp
Flatten.cpp
diff --git a/src/passes/DeadCodeElimination.cpp b/src/passes/DeadCodeElimination.cpp
index a6b20a7ba..a56c88929 100644
--- a/src/passes/DeadCodeElimination.cpp
+++ b/src/passes/DeadCodeElimination.cpp
@@ -256,7 +256,7 @@ struct DeadCodeElimination : public WalkerPass<PostWalker<DeadCodeElimination>>
case Expression::Id::AtomicCmpxchgId: DELEGATE(AtomicCmpxchg);
case Expression::Id::AtomicRMWId: DELEGATE(AtomicRMW);
case Expression::Id::AtomicWaitId: DELEGATE(AtomicWait);
- case Expression::Id::AtomicWakeId: DELEGATE(AtomicWake);
+ case Expression::Id::AtomicNotifyId: DELEGATE(AtomicNotify);
case Expression::Id::SIMDExtractId: DELEGATE(SIMDExtract);
case Expression::Id::SIMDReplaceId: DELEGATE(SIMDReplace);
case Expression::Id::SIMDShuffleId: DELEGATE(SIMDShuffle);
diff --git a/src/passes/Directize.cpp b/src/passes/Directize.cpp
new file mode 100644
index 000000000..d9400cce7
--- /dev/null
+++ b/src/passes/Directize.cpp
@@ -0,0 +1,132 @@
+/*
+ * Copyright 2019 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.
+ */
+
+//
+// Turn indirect calls into direct calls. This is possible if we know
+// the table cannot change, and if we see a constant argument for the
+// indirect call's index.
+//
+
+#include <unordered_map>
+
+#include "wasm.h"
+#include "pass.h"
+#include "wasm-builder.h"
+#include "wasm-traversal.h"
+#include "asm_v_wasm.h"
+
+namespace wasm {
+
+namespace {
+
+struct FlatTable {
+ std::vector<Name> names;
+ bool valid;
+
+ FlatTable(Table& table) {
+ valid = true;
+ for (auto& segment : table.segments) {
+ auto offset = segment.offset;
+ if (!offset->is<Const>()) {
+ // TODO: handle some non-constant segments
+ valid = false;
+ return;
+ }
+ Index start = offset->cast<Const>()->value.geti32();
+ Index end = start + segment.data.size();
+ if (end > names.size()) {
+ names.resize(end);
+ }
+ for (Index i = 0; i < segment.data.size(); i++) {
+ names[start + i] = segment.data[i];
+ }
+ }
+ }
+};
+
+struct FunctionDirectizer : public WalkerPass<PostWalker<FunctionDirectizer>> {
+ bool isFunctionParallel() override { return true; }
+
+ Pass* create() override { return new FunctionDirectizer(flatTable); }
+
+ FunctionDirectizer(FlatTable* flatTable) : flatTable(flatTable) {}
+
+ void visitCallIndirect(CallIndirect* curr) {
+ if (auto* c = curr->target->dynCast<Const>()) {
+ Index index = c->value.geti32();
+ // If the index is invalid, or the type is wrong, we can
+ // emit an unreachable here, since in Binaryen it is ok to
+ // reorder/replace traps when optimizing (but never to
+ // remove them, at least not by default).
+ if (index >= flatTable->names.size()) {
+ replaceWithUnreachable();
+ return;
+ }
+ auto name = flatTable->names[index];
+ if (!name.is()) {
+ replaceWithUnreachable();
+ return;
+ }
+ auto* func = getModule()->getFunction(name);
+ if (getSig(getModule()->getFunctionType(curr->fullType)) !=
+ getSig(func)) {
+ replaceWithUnreachable();
+ return;
+ }
+ // Everything looks good!
+ replaceCurrent(Builder(*getModule()).makeCall(
+ name,
+ curr->operands,
+ curr->type
+ ));
+ }
+ }
+
+private:
+ FlatTable* flatTable;
+
+ void replaceWithUnreachable() {
+ replaceCurrent(Builder(*getModule()).makeUnreachable());
+ }
+};
+
+struct Directize : public Pass {
+ void run(PassRunner* runner, Module* module) override {
+ if (!module->table.exists) return;
+ if (module->table.imported()) return;
+ for (auto& ex : module->exports) {
+ if (ex->kind == ExternalKind::Table) return;
+ }
+ FlatTable flatTable(module->table);
+ if (!flatTable.valid) return;
+ // The table exists and is constant, so this is possible.
+ {
+ PassRunner runner(module);
+ runner.setIsNested(true);
+ runner.add<FunctionDirectizer>(&flatTable);
+ runner.run();
+ }
+ }
+};
+
+} // anonymous namespace
+
+Pass *createDirectizePass() {
+ return new Directize();
+}
+
+} // namespace wasm
+
diff --git a/src/passes/Precompute.cpp b/src/passes/Precompute.cpp
index 5e9d9c9ea..6f59fceb7 100644
--- a/src/passes/Precompute.cpp
+++ b/src/passes/Precompute.cpp
@@ -119,7 +119,7 @@ public:
Flow visitAtomicWait(AtomicWait *curr) {
return Flow(NOTPRECOMPUTABLE_FLOW);
}
- Flow visitAtomicWake(AtomicWake *curr) {
+ Flow visitAtomicNotify(AtomicNotify *curr) {
return Flow(NOTPRECOMPUTABLE_FLOW);
}
Flow visitHost(Host *curr) {
diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp
index fd0bf17dc..6d7d512ff 100644
--- a/src/passes/Print.cpp
+++ b/src/passes/Print.cpp
@@ -228,13 +228,13 @@ struct PrintExpressionContents : public Visitor<PrintExpressionContents> {
}
void visitAtomicWait(AtomicWait* curr) {
prepareColor(o);
- o << printType(curr->expectedType) << ".wait";
+ o << printType(curr->expectedType) << ".atomic.wait";
if (curr->offset) {
o << " offset=" << curr->offset;
}
}
- void visitAtomicWake(AtomicWake* curr) {
- printMedium(o, "wake");
+ void visitAtomicNotify(AtomicNotify* curr) {
+ printMedium(o, "atomic.notify");
if (curr->offset) {
o << " offset=" << curr->offset;
}
@@ -904,12 +904,12 @@ struct PrintSExpression : public Visitor<PrintSExpression> {
printFullLine(curr->timeout);
decIndent();
}
- void visitAtomicWake(AtomicWake* curr) {
+ void visitAtomicNotify(AtomicNotify* curr) {
o << '(';
PrintExpressionContents(currFunction, o).visit(curr);
incIndent();
printFullLine(curr->ptr);
- printFullLine(curr->wakeCount);
+ printFullLine(curr->notifyCount);
decIndent();
}
void visitSIMDExtract(SIMDExtract* curr) {
diff --git a/src/passes/RemoveUnusedModuleElements.cpp b/src/passes/RemoveUnusedModuleElements.cpp
index 069137ff6..b9c8d5150 100644
--- a/src/passes/RemoveUnusedModuleElements.cpp
+++ b/src/passes/RemoveUnusedModuleElements.cpp
@@ -114,7 +114,7 @@ struct ReachabilityAnalyzer : public PostWalker<ReachabilityAnalyzer> {
void visitAtomicWait(AtomicWait* curr) {
usesMemory = true;
}
- void visitAtomicWake(AtomicWake* curr) {
+ void visitAtomicNotify(AtomicNotify* curr) {
usesMemory = true;
}
void visitHost(Host* curr) {
diff --git a/src/passes/SSAify.cpp b/src/passes/SSAify.cpp
index 9e6ff2de2..1ed3b976f 100644
--- a/src/passes/SSAify.cpp
+++ b/src/passes/SSAify.cpp
@@ -27,6 +27,26 @@
// TODO: consider adding a "proper" phi node to the AST, that passes
// can utilize
//
+// There is also a "no-merge" variant of this pass. That will ignore
+// sets leading to merges, that is, it only creates new SSA indexes
+// for sets whose gets have just that set, e.g.
+//
+// x = ..
+// f(x, x)
+// x = ..
+// g(x, x)
+// =>
+// x = ..
+// f(x, x)
+// x' = ..
+// g(x', x')
+//
+// This "untangles" local indexes in a way that helps other passes,
+// while not creating copies with overlapping lifetimes that can
+// lead to a code size increase. In particular, the new variables
+// added by ssa-nomerge can be easily removed by the coalesce-locals
+// pass.
+//
#include <iterator>
@@ -49,7 +69,11 @@ static SetLocal IMPOSSIBLE_SET;
struct SSAify : public Pass {
bool isFunctionParallel() override { return true; }
- Pass* create() override { return new SSAify; }
+ Pass* create() override { return new SSAify(allowMerges); }
+
+ SSAify(bool allowMerges) : allowMerges(allowMerges) {}
+
+ bool allowMerges;
Module* module;
Function* func;
@@ -59,21 +83,37 @@ struct SSAify : public Pass {
module = module_;
func = func_;
LocalGraph graph(func);
+ graph.computeInfluences();
+ graph.computeSSAIndexes();
// create new local indexes, one for each set
- createNewIndexes();
+ createNewIndexes(graph);
// we now know the sets for each get, and can compute get indexes and handle phis
computeGetsAndPhis(graph);
// add prepends to function
addPrepends();
}
- void createNewIndexes() {
+ void createNewIndexes(LocalGraph& graph) {
FindAll<SetLocal> sets(func->body);
for (auto* set : sets.list) {
- set->index = addLocal(func->getLocalType(set->index));
+ // Indexes already in SSA form do not need to be modified - there is already
+ // just one set for that index. Otherwise, use a new index, unless merges
+ // are disallowed.
+ if (!graph.isSSA(set->index) && (allowMerges || !hasMerges(set, graph))) {
+ set->index = addLocal(func->getLocalType(set->index));
+ }
}
}
+ bool hasMerges(SetLocal* set, LocalGraph& graph) {
+ for (auto* get : graph.setInfluences[set]) {
+ if (graph.getSetses[get].size() > 1) {
+ return true;
+ }
+ }
+ return false;
+ }
+
void computeGetsAndPhis(LocalGraph& graph) {
FindAll<GetLocal> gets(func->body);
for (auto* get : gets.list) {
@@ -97,6 +137,7 @@ struct SSAify : public Pass {
}
continue;
}
+ if (!allowMerges) continue;
// more than 1 set, need a phi: a new local written to at each of the sets
auto new_ = addLocal(get->type);
auto old = get->index;
@@ -154,8 +195,12 @@ struct SSAify : public Pass {
}
};
-Pass *createSSAifyPass() {
- return new SSAify();
+Pass* createSSAifyPass() {
+ return new SSAify(true);
+}
+
+Pass* createSSAifyNoMergePass() {
+ return new SSAify(false);
}
} // namespace wasm
diff --git a/src/passes/pass.cpp b/src/passes/pass.cpp
index 5d8b8d2c8..fecb644b5 100644
--- a/src/passes/pass.cpp
+++ b/src/passes/pass.cpp
@@ -75,6 +75,7 @@ void PassRegistry::registerPasses() {
registerPass("code-folding", "fold code, merging duplicates", createCodeFoldingPass);
registerPass("const-hoisting", "hoist repeated constants to a local", createConstHoistingPass);
registerPass("dce", "removes unreachable code", createDeadCodeEliminationPass);
+ registerPass("directize", "turns indirect calls into direct ones", createDirectizePass);
registerPass("dfo", "optimizes using the DataFlow SSA IR", createDataFlowOptsPass);
registerPass("duplicate-function-elimination", "removes duplicate functions", createDuplicateFunctionEliminationPass);
registerPass("extract-function", "leaves just one function (useful for debugging)", createExtractFunctionPass);
@@ -135,6 +136,7 @@ void PassRegistry::registerPasses() {
registerPass("souperify-single-use", "emit Souper IR in text form (single-use nodes only)", createSouperifySingleUsePass);
registerPass("spill-pointers", "spill pointers to the C stack (useful for Boehm-style GC)", createSpillPointersPass);
registerPass("ssa", "ssa-ify variables so that they have a single assignment", createSSAifyPass);
+ registerPass("ssa-nomerge", "ssa-ify variables so that they have a single assignment, ignoring merges", createSSAifyNoMergePass);
registerPass("strip", "deprecated; same as strip-debug", createStripDebugPass);
registerPass("strip-debug", "strip debug info (including the names section)", createStripDebugPass);
registerPass("strip-producers", "strip the wasm producers section", createStripProducersPass);
@@ -153,6 +155,11 @@ void PassRunner::addDefaultOptimizationPasses() {
}
void PassRunner::addDefaultFunctionOptimizationPasses() {
+ // Untangling to semi-ssa form is helpful (but best to ignore merges
+ // so as to not introduce new copies).
+ if (options.optimizeLevel >= 3 || options.shrinkLevel >= 1) {
+ add("ssa-nomerge");
+ }
// if we are willing to work very very hard, flatten the IR and do opts
// that depend on flat IR
if (options.optimizeLevel >= 4) {
@@ -204,13 +211,13 @@ void PassRunner::addDefaultFunctionOptimizationPasses() {
add("remove-unused-brs"); // coalesce-locals opens opportunities
add("remove-unused-names"); // remove-unused-brs opens opportunities
add("merge-blocks"); // clean up remove-unused-brs new blocks
- add("optimize-instructions");
// late propagation
if (options.optimizeLevel >= 3 || options.shrinkLevel >= 2) {
add("precompute-propagate");
} else {
add("precompute");
}
+ add("optimize-instructions");
if (options.optimizeLevel >= 2 || options.shrinkLevel >= 1) {
add("rse"); // after all coalesce-locals, and before a final vacuum
}
@@ -222,17 +229,16 @@ void PassRunner::addDefaultGlobalOptimizationPrePasses() {
}
void PassRunner::addDefaultGlobalOptimizationPostPasses() {
- // inlining/dae+optimizing can remove debug annotations
if (options.optimizeLevel >= 2 || options.shrinkLevel >= 1) {
add("dae-optimizing");
}
- // inline when working hard, and when not preserving debug info
if (options.optimizeLevel >= 2 || options.shrinkLevel >= 2) {
add("inlining-optimizing");
}
add("duplicate-function-elimination"); // optimizations show more functions as duplicate
add("remove-unused-module-elements");
add("memory-packing");
+ add("directize"); // may allow more inlining/dae/etc., need --converge for that
// perform Stack IR optimizations here, at the very end of the
// optimization pipeline
if (options.optimizeLevel >= 2 || options.shrinkLevel >= 1) {
diff --git a/src/passes/passes.h b/src/passes/passes.h
index ac7126bd4..fea06e388 100644
--- a/src/passes/passes.h
+++ b/src/passes/passes.h
@@ -31,6 +31,7 @@ Pass* createDAEPass();
Pass* createDAEOptimizingPass();
Pass* createDataFlowOptsPass();
Pass* createDeadCodeEliminationPass();
+Pass* createDirectizePass();
Pass* createDuplicateFunctionEliminationPass();
Pass* createExtractFunctionPass();
Pass* createFlattenPass();
@@ -93,6 +94,7 @@ Pass* createSouperifyPass();
Pass* createSouperifySingleUsePass();
Pass* createSpillPointersPass();
Pass* createSSAifyPass();
+Pass* createSSAifyNoMergePass();
Pass* createTrapModeClamp();
Pass* createTrapModeJS();
Pass* createUnteePass();
diff --git a/src/shared-constants.h b/src/shared-constants.h
index ae7d915ef..52124d891 100644
--- a/src/shared-constants.h
+++ b/src/shared-constants.h
@@ -22,6 +22,7 @@
namespace wasm {
extern Name GROW_WASM_MEMORY,
+ WASM_CALL_CTORS,
MEMORY_BASE,
TABLE_BASE,
GET_TEMP_RET0,
diff --git a/src/tools/fuzzing.h b/src/tools/fuzzing.h
index f16d0ecad..6aa0764f1 100644
--- a/src/tools/fuzzing.h
+++ b/src/tools/fuzzing.h
@@ -1618,7 +1618,7 @@ private:
} else {
auto* ptr = makePointer();
auto* count = make(i32);
- return builder.makeAtomicWake(ptr, count, logify(get()));
+ return builder.makeAtomicNotify(ptr, count, logify(get()));
}
}
Index bytes;
diff --git a/src/tools/wasm-emscripten-finalize.cpp b/src/tools/wasm-emscripten-finalize.cpp
index 2aa5de46f..180383a90 100644
--- a/src/tools/wasm-emscripten-finalize.cpp
+++ b/src/tools/wasm-emscripten-finalize.cpp
@@ -46,6 +46,7 @@ int main(int argc, const char *argv[]) {
std::string dataSegmentFile;
bool emitBinary = true;
bool debugInfo = false;
+ bool isSideModule = false;
bool legalizeJavaScriptFFI = true;
uint64_t globalBase = INVALID_BASE;
uint64_t initialStackPointer = INVALID_BASE;
@@ -79,7 +80,11 @@ int main(int argc, const char *argv[]) {
[&initialStackPointer](Options*, const std::string&argument ) {
initialStackPointer = std::stoull(argument);
})
-
+ .add("--side-module", "", "Input is an emscripten side module",
+ Options::Arguments::Zero,
+ [&isSideModule](Options *o, const std::string& argument) {
+ isSideModule = true;
+ })
.add("--input-source-map", "-ism", "Consume source map from the specified file",
Options::Arguments::One,
[&inputSourceMapFilename](Options *o, const std::string& argument) { inputSourceMapFilename = argument; })
@@ -130,7 +135,6 @@ int main(int argc, const char *argv[]) {
WasmPrinter::printModule(&wasm, std::cerr);
}
- bool isSideModule = false;
for (const UserSection& section : wasm.userSections) {
if (section.name == BinaryConsts::UserSections::Dylink) {
isSideModule = true;
@@ -166,12 +170,6 @@ int main(int argc, const char *argv[]) {
std::vector<Name> initializerFunctions;
- // The names of standard imports/exports used by lld doesn't quite match that
- // expected by emscripten.
- // TODO(sbc): Unify these
- if (Export* ex = wasm.getExportOrNull("__wasm_call_ctors")) {
- ex->name = "__post_instantiate";
- }
if (wasm.table.imported()) {
if (wasm.table.base != "table") wasm.table.base = Name("table");
}
@@ -182,14 +180,17 @@ int main(int argc, const char *argv[]) {
if (isSideModule) {
generator.replaceStackPointerGlobal();
+ generator.generatePostInstantiateFunction();
} else {
generator.generateRuntimeFunctions();
generator.generateMemoryGrowthFunction();
generator.generateStackInitialization(initialStackPointer);
- // emscripten calls this by default for side libraries so we only need
- // to include in as a static ctor for main module case.
- if (wasm.getExportOrNull("__post_instantiate")) {
- initializerFunctions.push_back("__post_instantiate");
+ // For side modules these gets called via __post_instantiate
+ if (Function* F = generator.generateAssignGOTEntriesFunction()) {
+ initializerFunctions.push_back(F->name);
+ }
+ if (auto* e = wasm.getExportOrNull(WASM_CALL_CTORS)) {
+ initializerFunctions.push_back(e->value);
}
}
diff --git a/src/tools/wasm-merge.cpp b/src/tools/wasm-merge.cpp
deleted file mode 100644
index 6dd522d16..000000000
--- a/src/tools/wasm-merge.cpp
+++ /dev/null
@@ -1,672 +0,0 @@
-/*
- * Copyright 2017 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.
- */
-
-//
-// A WebAssembly merger: loads multiple files, smashes them together,
-// and emits the result.
-//
-// This is *not* a real linker. It just does naive merging.
-//
-
-#include <memory>
-
-#include "parsing.h"
-#include "pass.h"
-#include "shared-constants.h"
-#include "asmjs/shared-constants.h"
-#include "asm_v_wasm.h"
-#include "support/command-line.h"
-#include "support/file.h"
-#include "wasm-io.h"
-#include "wasm-binary.h"
-#include "wasm-builder.h"
-#include "wasm-validator.h"
-#include "ir/module-utils.h"
-
-using namespace wasm;
-
-// Ensure a memory or table is of at least a size
-template<typename T>
-static void ensureSize(T& what, Index size) {
- // ensure the size is sufficient
- while (what.initial * what.kPageSize < size) {
- what.initial = what.initial + 1;
- }
- what.max = std::max(what.initial, what.max);
-}
-
-// A mergeable unit. This class contains basic logic to prepare for merging
-// of two modules.
-struct Mergeable {
- Mergeable(Module& wasm) : wasm(wasm) {
- // scan the module
- findSizes();
- findImports();
- standardizeSegments();
- }
-
- // The module we are working on
- Module& wasm;
-
- // Total sizes of the memory and table data, including things
- // link a bump from the dylink section
- Index totalMemorySize, totalTableSize;
-
- // The names of the imported globals for the memory and table bases
- // (sets, as each may be imported more than once)
- std::set<Name> memoryBaseGlobals, tableBaseGlobals;
-
- // Imported functions and globals provided by the other mergeable
- // are fused together. We track those here, then remove them
- std::map<Name, Name> implementedFunctionImports;
- std::map<Name, Name> implementedGlobalImports;
-
- // setups
-
- // find the memory and table sizes. if there are relocatable sections for them,
- // that is the base size, and a dylink section may increase things further
- void findSizes() {
- totalMemorySize = 0;
- totalTableSize = 0;
- for (auto& segment : wasm.memory.segments) {
- Expression* offset = segment.offset;
- if (offset->is<GetGlobal>()) {
- totalMemorySize = segment.data.size();
- break;
- }
- }
- for (auto& segment : wasm.table.segments) {
- Expression* offset = segment.offset;
- if (offset->is<GetGlobal>()) {
- totalTableSize = segment.data.size();
- break;
- }
- }
- for (auto& section : wasm.userSections) {
- if (section.name == BinaryConsts::UserSections::Dylink) {
- WasmBinaryBuilder builder(wasm, section.data, false);
- totalMemorySize = std::max(totalMemorySize, builder.getU32LEB());
- totalTableSize = std::max(totalTableSize, builder.getU32LEB());
- break; // there can be only one
- }
- }
- // align them
- while (totalMemorySize % 16 != 0) totalMemorySize++;
- while (totalTableSize % 2 != 0) totalTableSize++;
- }
-
- void findImports() {
- ModuleUtils::iterImportedGlobals(wasm, [&](Global* import) {
- if (import->module == ENV && import->base == MEMORY_BASE) {
- memoryBaseGlobals.insert(import->name);
- }
- });
- if (memoryBaseGlobals.size() == 0) {
- // add one
- auto* import = new Global;
- import->name = MEMORY_BASE;
- import->module = ENV;
- import->base = MEMORY_BASE;
- import->type = i32;
- wasm.addGlobal(import);
- memoryBaseGlobals.insert(import->name);
- }
- ModuleUtils::iterImportedGlobals(wasm, [&](Global* import) {
- if (import->module == ENV && import->base == TABLE_BASE) {
- tableBaseGlobals.insert(import->name);
- }
- });
- if (tableBaseGlobals.size() == 0) {
- auto* import = new Global;
- import->name = TABLE_BASE;
- import->module = ENV;
- import->base = TABLE_BASE;
- import->type = i32;
- wasm.addGlobal(import);
- tableBaseGlobals.insert(import->name);
- }
- }
-
- void standardizeSegments() {
- standardizeSegment<Memory, char, Memory::Segment>(wasm, wasm.memory, totalMemorySize, 0, *memoryBaseGlobals.begin());
- // if there are no functions, and we need one, we need to add one as the zero
- if (totalTableSize > 0 && wasm.functions.empty()) {
- auto func = new Function;
- func->name = Name("binaryen$merge-zero");
- func->body = Builder(wasm).makeNop();
- func->type = ensureFunctionType("v", &wasm)->name;
- wasm.addFunction(func);
- }
- Name zero;
- if (totalTableSize > 0) {
- zero = wasm.functions.begin()->get()->name;
- }
- standardizeSegment<Table, Name, Table::Segment>(wasm, wasm.table, totalTableSize, zero, *tableBaseGlobals.begin());
- }
-
- // utilities
-
- Name getNonColliding(Name initial, std::function<bool (Name)> checkIfCollides) {
- if (!checkIfCollides(initial)) {
- return initial;
- }
- int x = 0;
- while (1) {
- auto curr = Name(std::string(initial.str) + '$' + std::to_string(x));
- if (!checkIfCollides(curr)) {
- return curr;
- }
- x++;
- }
- }
-
- // ensure a relocatable segment exists, of the proper size, including
- // the dylink bump applied into it, standardized into the form of
- // not using a dylink section and instead having enough zeros at
- // the end. this makes linking much simpler.ta
- // there may be other non-relocatable segments too.
- template<typename T, typename U, typename Segment>
- void standardizeSegment(Module& wasm, T& what, Index size, U zero, Name globalName) {
- Segment* relocatable = nullptr;
- for (auto& segment : what.segments) {
- Expression* offset = segment.offset;
- if (offset->is<GetGlobal>()) {
- // this is the relocatable one.
- relocatable = &segment;
- break;
- }
- }
- if (!relocatable) {
- // none existing, add one
- what.segments.resize(what.segments.size() + 1);
- relocatable = &what.segments.back();
- relocatable->offset = Builder(wasm).makeGetGlobal(globalName, i32);
- }
- // make sure it is the right size
- while (relocatable->data.size() < size) {
- relocatable->data.push_back(zero);
- }
- ensureSize(what, relocatable->data.size());
- }
-
- // copies a relocatable segment from the input to the output, and
- // copies the non-relocatable ones as well
- template<typename T, typename V>
- void copySegments(T& output, T& input, V updater) {
- for (auto& inputSegment : input.segments) {
- Expression* inputOffset = inputSegment.offset;
- if (inputOffset->is<GetGlobal>()) {
- // this is the relocatable one. find the output's relocatable
- for (auto& segment : output.segments) {
- Expression* offset = segment.offset;
- if (offset->is<GetGlobal>()) {
- // copy our data in
- for (auto item : inputSegment.data) {
- segment.data.push_back(updater(item));
- }
- ensureSize(output, segment.data.size());
- return; // there can be only one
- }
- }
- WASM_UNREACHABLE(); // we must find a relocatable one in the output, as we standardized
- } else {
- // this is a non-relocatable one. just copy it.
- output.segments.push_back(inputSegment);
- }
- }
- }
-};
-
-// A mergeable that is an output, that is, that we merge into. This adds
-// logic to update it for the new data, namely, when an import is provided
-// by the other merged unit, we resolve to access that value directly.
-struct OutputMergeable : public PostWalker<OutputMergeable, Visitor<OutputMergeable>>, public Mergeable {
- OutputMergeable(Module& wasm) : Mergeable(wasm) {}
-
- void visitCall(Call* curr) {
- auto iter = implementedFunctionImports.find(curr->target);
- if (iter != implementedFunctionImports.end()) {
- // this import is now in the module - call it
- replaceCurrent(Builder(*getModule()).makeCall(iter->second, curr->operands, curr->type));
- }
- }
-
- void visitGetGlobal(GetGlobal* curr) {
- auto iter = implementedGlobalImports.find(curr->name);
- if (iter != implementedGlobalImports.end()) {
- // this global is now in the module - get it
- curr->name = iter->second;
- assert(curr->name.is());
- }
- }
-
- void visitModule(Module* curr) {
- // remove imports that are being implemented
- for (auto& pair : implementedFunctionImports) {
- curr->removeFunction(pair.first);
- }
- for (auto& pair : implementedGlobalImports) {
- curr->removeGlobal(pair.first);
- }
- }
-};
-
-// A mergeable that is an input, that is, that we merge into another.
-// This adds logic to disambiguate its names from the other, and to
-// perform all other merging operations.
-struct InputMergeable : public ExpressionStackWalker<InputMergeable, Visitor<InputMergeable>>, public Mergeable {
- InputMergeable(Module& wasm, OutputMergeable& outputMergeable) : Mergeable(wasm), outputMergeable(outputMergeable) {}
-
- // The unit we are being merged into
- OutputMergeable& outputMergeable;
-
- // mappings (after disambiguating with the other mergeable), old name => new name
- std::map<Name, Name> ftNames; // function types
- std::map<Name, Name> eNames; // exports
- std::map<Name, Name> fNames; // functions
- std::map<Name, Name> gNames; // globals
-
- void visitCall(Call* curr) {
- auto iter = implementedFunctionImports.find(curr->target);
- if (iter != implementedFunctionImports.end()) {
- // this import is now in the module - call it
- replaceCurrent(Builder(*getModule()).makeCall(iter->second, curr->operands, curr->type));
- return;
- }
- curr->target = fNames[curr->target];
- assert(curr->target.is());
- }
-
- void visitCallIndirect(CallIndirect* curr) {
- curr->fullType = ftNames[curr->fullType];
- assert(curr->fullType.is());
- }
-
- void visitGetGlobal(GetGlobal* curr) {
- auto iter = implementedGlobalImports.find(curr->name);
- if (iter != implementedGlobalImports.end()) {
- // this import is now in the module - use it
- curr->name = iter->second;
- return;
- }
- curr->name = gNames[curr->name];
- assert(curr->name.is());
- // if this is the memory or table base, add the bump
- if (memoryBaseGlobals.count(curr->name)) {
- addBump(outputMergeable.totalMemorySize);
- } else if (tableBaseGlobals.count(curr->name)) {
- addBump(outputMergeable.totalTableSize);
- }
- }
-
- void visitSetGlobal(SetGlobal* curr) {
- curr->name = gNames[curr->name];
- assert(curr->name.is());
- }
-
- void merge() {
- // find function imports in us that are implemented in the output
- // TODO make maps, avoid N^2
- ModuleUtils::iterImportedFunctions(wasm, [&](Function* import) {
- // per wasm dynamic library rules, we expect to see exports on 'env'
- if (import->module == ENV) {
- // seek an export on the other side that matches
- for (auto& exp : outputMergeable.wasm.exports) {
- if (exp->name == import->base) {
- // fits!
- implementedFunctionImports[import->name] = exp->value;
- break;
- }
- }
- }
- });
- ModuleUtils::iterImportedGlobals(wasm, [&](Global* import) {
- // per wasm dynamic library rules, we expect to see exports on 'env'
- if (import->module == ENV) {
- // seek an export on the other side that matches
- for (auto& exp : outputMergeable.wasm.exports) {
- if (exp->name == import->base) {
- // fits!
- implementedGlobalImports[import->name] = exp->value;
- break;
- }
- }
- }
- });
- // remove the unneeded ones
- for (auto& pair : implementedFunctionImports) {
- wasm.removeFunction(pair.first);
- }
- for (auto& pair : implementedGlobalImports) {
- wasm.removeGlobal(pair.first);
- }
-
- // find new names
- for (auto& curr : wasm.functionTypes) {
- curr->name = ftNames[curr->name] = getNonColliding(curr->name, [&](Name name) -> bool {
- return outputMergeable.wasm.getFunctionTypeOrNull(name);
- });
- }
- ModuleUtils::iterImportedFunctions(wasm, [&](Function* curr) {
- curr->name = fNames[curr->name] = getNonColliding(curr->name, [&](Name name) -> bool {
- return !!outputMergeable.wasm.getFunctionOrNull(name);
- });
- });
- ModuleUtils::iterImportedGlobals(wasm, [&](Global* curr) {
- curr->name = gNames[curr->name] = getNonColliding(curr->name, [&](Name name) -> bool {
- return !!outputMergeable.wasm.getGlobalOrNull(name);
- });
- });
- ModuleUtils::iterDefinedFunctions(wasm, [&](Function* curr) {
- curr->name = fNames[curr->name] = getNonColliding(curr->name, [&](Name name) -> bool {
- return outputMergeable.wasm.getFunctionOrNull(name);
- });
- });
- ModuleUtils::iterDefinedGlobals(wasm, [&](Global* curr) {
- curr->name = gNames[curr->name] = getNonColliding(curr->name, [&](Name name) -> bool {
- return outputMergeable.wasm.getGlobalOrNull(name);
- });
- });
-
- // update global names in input
- {
- auto temp = memoryBaseGlobals;
- memoryBaseGlobals.clear();
- for (auto x : temp) {
- memoryBaseGlobals.insert(gNames[x]);
- }
- }
- {
- auto temp = tableBaseGlobals;
- tableBaseGlobals.clear();
- for (auto x : temp) {
- tableBaseGlobals.insert(gNames[x]);
- }
- }
-
- // find function imports in output that are implemented in the input
- ModuleUtils::iterImportedFunctions(outputMergeable.wasm, [&](Function* import) {
- if (import->module == ENV) {
- for (auto& exp : wasm.exports) {
- if (exp->name == import->base) {
- outputMergeable.implementedFunctionImports[import->name] = fNames[exp->value];
- break;
- }
- }
- }
- });
- ModuleUtils::iterImportedGlobals(outputMergeable.wasm, [&](Global* import) {
- if (import->module == ENV) {
- for (auto& exp : wasm.exports) {
- if (exp->name == import->base) {
- outputMergeable.implementedGlobalImports[import->name] = gNames[exp->value];
- break;
- }
- }
- }
- });
-
- // update the output before bringing anything in. avoid doing so when possible, as in the
- // common case the output module is very large.
- if (outputMergeable.implementedFunctionImports.size() + outputMergeable.implementedGlobalImports.size() > 0) {
- outputMergeable.walkModule(&outputMergeable.wasm);
- }
-
- // memory&table: we place the new memory segments at a higher position. after the existing ones.
- copySegments(outputMergeable.wasm.memory, wasm.memory, [](char x) -> char { return x; });
- copySegments(outputMergeable.wasm.table, wasm.table, [&](Name x) -> Name { return fNames[x]; });
-
- // update the new contents about to be merged in
- walkModule(&wasm);
-
- // handle the dylink post-instantiate. this is special, as if it exists in both, we must in fact call both
- Name POST_INSTANTIATE("__post_instantiate");
- if (fNames.find(POST_INSTANTIATE) != fNames.end() &&
- outputMergeable.wasm.getExportOrNull(POST_INSTANTIATE)) {
- // indeed, both exist. add a call to the second (wasm spec does not give an order requirement)
- auto* func = outputMergeable.wasm.getFunction(outputMergeable.wasm.getExport(POST_INSTANTIATE)->value);
- Builder builder(outputMergeable.wasm);
- func->body = builder.makeSequence(
- builder.makeCall(fNames[POST_INSTANTIATE], {}, none),
- func->body
- );
- }
-
- // copy in the data
- for (auto& curr : wasm.functionTypes) {
- outputMergeable.wasm.addFunctionType(std::move(curr));
- }
- for (auto& curr : wasm.globals) {
- if (curr->imported()) {
- outputMergeable.wasm.addGlobal(curr.release());
- }
- }
- for (auto& curr : wasm.functions) {
- if (curr->imported()) {
- if (curr->type.is()) {
- curr->type = ftNames[curr->type];
- assert(curr->type.is());
- }
- outputMergeable.wasm.addFunction(curr.release());
- }
- }
- for (auto& curr : wasm.exports) {
- if (curr->kind == ExternalKind::Memory || curr->kind == ExternalKind::Table) {
- continue; // wasm has just 1 of each, they must match
- }
- // if an export would collide, do not add the new one, ignore it
- // TODO: warning/error mode?
- if (!outputMergeable.wasm.getExportOrNull(curr->name)) {
- if (curr->kind == ExternalKind::Function) {
- curr->value = fNames[curr->value];
- outputMergeable.wasm.addExport(curr.release());
- } else if (curr->kind == ExternalKind::Global) {
- curr->value = gNames[curr->value];
- outputMergeable.wasm.addExport(curr.release());
- } else {
- WASM_UNREACHABLE();
- }
- }
- }
- // Copy over the remaining non-imports (we have already transferred
- // the imports, and they are nullptrs).
- for (auto& curr : wasm.functions) {
- if (curr) {
- assert(!curr->imported());
- curr->type = ftNames[curr->type];
- assert(curr->type.is());
- outputMergeable.wasm.addFunction(curr.release());
- }
- }
- for (auto& curr : wasm.globals) {
- if (curr) {
- assert(!curr->imported());
- outputMergeable.wasm.addGlobal(curr.release());
- }
- }
- }
-
-private:
- // add an offset to a global.get. we look above, and if there is already an add,
- // we can add into it, avoiding creating a new node
- void addBump(Index bump) {
- if (expressionStack.size() >= 2) {
- auto* parent = expressionStack[expressionStack.size() - 2];
- if (auto* binary = parent->dynCast<Binary>()) {
- if (binary->op == AddInt32) {
- if (auto* num = binary->right->dynCast<Const>()) {
- num->value = num->value.add(Literal(bump));
- return;
- }
- }
- }
- }
- Builder builder(*getModule());
- replaceCurrent(
- builder.makeBinary(
- AddInt32,
- expressionStack.back(),
- builder.makeConst(Literal(int32_t(bump)))
- )
- );
- }
-};
-
-// Finalize the memory/table bases, assinging concrete values into them
-void finalizeBases(Module& wasm, Index memory, Index table) {
- struct FinalizableMergeable : public Mergeable, public PostWalker<FinalizableMergeable, Visitor<FinalizableMergeable>> {
- FinalizableMergeable(Module& wasm, Index memory, Index table) : Mergeable(wasm), memory(memory), table(table) {
- walkModule(&wasm);
- // ensure memory and table sizes suffice, after finalization we have absolute locations now
- for (auto& segment : wasm.memory.segments) {
- ensureSize(wasm.memory, memory + segment.data.size());
- }
- for (auto& segment : wasm.table.segments) {
- ensureSize(wasm.table, table + segment.data.size());
- }
- }
-
- Index memory, table;
-
- void visitGetGlobal(GetGlobal* curr) {
- if (memory != Index(-1) && memoryBaseGlobals.count(curr->name)) {
- finalize(memory);
- } else if (table != Index(-1) && tableBaseGlobals.count(curr->name)) {
- finalize(table);
- }
- }
-
- private:
- void finalize(Index value) {
- replaceCurrent(Builder(*getModule()).makeConst(Literal(int32_t(value))));
- }
- };
- FinalizableMergeable mergeable(wasm, memory, table);
-}
-
-//
-// main
-//
-
-int main(int argc, const char* argv[]) {
- std::vector<std::string> filenames;
- bool emitBinary = true;
- Index finalizeMemoryBase = Index(-1),
- finalizeTableBase = Index(-1);
- bool optimize = false;
- bool verbose = false;
-
- Options options("wasm-merge", "Merge wasm files");
- options
- .add("--output", "-o", "Output file",
- Options::Arguments::One,
- [](Options* o, const std::string& argument) {
- o->extra["output"] = argument;
- Colors::disable();
- })
- .add("--emit-text", "-S", "Emit text instead of binary for the output file",
- Options::Arguments::Zero,
- [&](Options *o, const std::string& argument) { emitBinary = false; })
- .add("--finalize-memory-base", "-fmb", "Finalize the env.__memory_base import",
- Options::Arguments::One,
- [&](Options* o, const std::string& argument) {
- finalizeMemoryBase = atoi(argument.c_str());
- })
- .add("--finalize-table-base", "-ftb", "Finalize the env.__table_base import",
- Options::Arguments::One,
- [&](Options* o, const std::string& argument) {
- finalizeTableBase = atoi(argument.c_str());
- })
- .add("-O", "-O", "Perform merge-time/finalize-time optimizations",
- Options::Arguments::Zero,
- [&](Options* o, const std::string& argument) {
- optimize = true;
- })
- .add("--verbose", "-v", "Verbose output",
- Options::Arguments::Zero,
- [&](Options* o, const std::string& argument) {
- verbose = true;
- })
- .add_positional("INFILES", Options::Arguments::N,
- [&](Options *o, const std::string& argument) {
- filenames.push_back(argument);
- });
- options.parse(argc, argv);
-
- Module output;
- std::vector<std::unique_ptr<Module>> otherModules; // keep all inputs alive, to save copies
- bool first = true;
- for (auto& filename : filenames) {
- ModuleReader reader;
- if (first) {
- // read the first right into output, don't waste time merging into an empty module
- try {
- reader.read(filename, output);
- } catch (ParseException& p) {
- p.dump(std::cerr);
- Fatal() << "error in parsing input";
- }
- first = false;
- } else {
- std::unique_ptr<Module> input = wasm::make_unique<Module>();
- try {
- reader.read(filename, *input);
- } catch (ParseException& p) {
- p.dump(std::cerr);
- Fatal() << "error in parsing input";
- }
- // perform the merge
- OutputMergeable outputMergeable(output);
- InputMergeable inputMergeable(*input, outputMergeable);
- inputMergeable.merge();
- // retain the linked in module as we may depend on parts of it
- otherModules.push_back(std::unique_ptr<Module>(input.release()));
- }
- }
-
- if (verbose) {
- // memory and table are standardized and merged, so it's easy to dump out some stats
- std::cout << "merged total memory size: " << output.memory.segments[0].data.size() << '\n';
- std::cout << "merged total table size: " << output.table.segments[0].data.size() << '\n';
- std::cout << "merged functions: " << output.functions.size() << '\n';
- }
-
- if (finalizeMemoryBase != Index(-1) || finalizeTableBase != Index(-1)) {
- finalizeBases(output, finalizeMemoryBase, finalizeTableBase);
- }
-
- if (optimize) {
- // merge-time/finalize-time optimization
- // it is beneficial to do global optimizations, as well as precomputing to get rid of finalized constants
- PassRunner passRunner(&output);
- passRunner.add("precompute");
- passRunner.add("optimize-instructions"); // things now-constant may be further optimized
- passRunner.addDefaultGlobalOptimizationPostPasses();
- passRunner.run();
- }
-
- if (!WasmValidator().validate(output)) {
- WasmPrinter::printModule(&output);
- Fatal() << "error in validating output";
- }
-
- if (options.extra.count("output") > 0) {
- ModuleWriter writer;
- writer.setDebug(options.debug);
- writer.setBinary(emitBinary);
- writer.write(output, options.extra["output"]);
- }
-}
diff --git a/src/wasm-binary.h b/src/wasm-binary.h
index 32166af00..8b449192a 100644
--- a/src/wasm-binary.h
+++ b/src/wasm-binary.h
@@ -557,7 +557,7 @@ enum ASTNodes {
};
enum AtomicOpcodes {
- AtomicWake = 0x00,
+ AtomicNotify = 0x00,
I32AtomicWait = 0x01,
I64AtomicWait = 0x02,
@@ -962,7 +962,8 @@ public:
void read();
void readUserSection(size_t payloadLen);
- bool more() { return pos < input.size();}
+
+ bool more() { return pos < input.size(); }
uint8_t getInt8();
uint16_t getInt16();
@@ -979,7 +980,6 @@ public:
int64_t getS64LEB();
Type getType();
Type getConcreteType();
- Name getString();
Name getInlineString();
void verifyInt8(int8_t x);
void verifyInt16(int16_t x);
@@ -1108,7 +1108,7 @@ public:
bool maybeVisitAtomicRMW(Expression*& out, uint8_t code);
bool maybeVisitAtomicCmpxchg(Expression*& out, uint8_t code);
bool maybeVisitAtomicWait(Expression*& out, uint8_t code);
- bool maybeVisitAtomicWake(Expression*& out, uint8_t code);
+ bool maybeVisitAtomicNotify(Expression*& out, uint8_t code);
bool maybeVisitConst(Expression*& out, uint8_t code);
bool maybeVisitUnary(Expression*& out, uint8_t code);
bool maybeVisitBinary(Expression*& out, uint8_t code);
diff --git a/src/wasm-builder.h b/src/wasm-builder.h
index eee4e3b79..8c50ff2dc 100644
--- a/src/wasm-builder.h
+++ b/src/wasm-builder.h
@@ -247,13 +247,13 @@ public:
wait->finalize();
return wait;
}
- AtomicWake* makeAtomicWake(Expression* ptr, Expression* wakeCount, Address offset) {
- auto* wake = allocator.alloc<AtomicWake>();
- wake->offset = offset;
- wake->ptr = ptr;
- wake->wakeCount = wakeCount;
- wake->finalize();
- return wake;
+ AtomicNotify* makeAtomicNotify(Expression* ptr, Expression* notifyCount, Address offset) {
+ auto* notify = allocator.alloc<AtomicNotify>();
+ notify->offset = offset;
+ notify->ptr = ptr;
+ notify->notifyCount = notifyCount;
+ notify->finalize();
+ return notify;
}
Store* makeStore(unsigned bytes, uint32_t offset, unsigned align, Expression *ptr, Expression *value, Type type) {
auto* ret = allocator.alloc<Store>();
diff --git a/src/wasm-emscripten.h b/src/wasm-emscripten.h
index acb2994ad..67ba408f5 100644
--- a/src/wasm-emscripten.h
+++ b/src/wasm-emscripten.h
@@ -36,7 +36,9 @@ public:
void generateRuntimeFunctions();
Function* generateMemoryGrowthFunction();
+ Function* generateAssignGOTEntriesFunction();
void generateStackInitialization(Address addr);
+ void generatePostInstantiateFunction();
// Create thunks for use with emscripten Runtime.dynCall. Creates one for each
// signature in the indirect function table.
diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h
index c584f0ea7..ae9494d1c 100644
--- a/src/wasm-interpreter.h
+++ b/src/wasm-interpreter.h
@@ -1124,12 +1124,12 @@ public:
// for now, just assume we are woken up
return Literal(int32_t(0)); // woken up
}
- Flow visitAtomicWake(AtomicWake *curr) {
- NOTE_ENTER("AtomicWake");
+ Flow visitAtomicNotify(AtomicNotify *curr) {
+ NOTE_ENTER("AtomicNotify");
Flow ptr = this->visit(curr->ptr);
if (ptr.breaking()) return ptr;
NOTE_EVAL1(ptr);
- auto count = this->visit(curr->wakeCount);
+ auto count = this->visit(curr->notifyCount);
NOTE_EVAL1(count);
if (count.breaking()) return count;
// TODO: add threads support!
diff --git a/src/wasm-module-building.h b/src/wasm-module-building.h
index e92436952..d1f8f5504 100644
--- a/src/wasm-module-building.h
+++ b/src/wasm-module-building.h
@@ -65,7 +65,7 @@ static std::mutex debug;
// * workers transform functions into nullptrs, and optimize them
// * we keep an atomic count of the number of active workers and
// the number of optimized functions.
-// * after adding a function, the main thread wakes up workers if
+// * after adding a function, the main thread notifys up workers if
// it calculates there is work for them.
// * a lock is used for going to sleep and waking up.
// Locking should be rare, as optimization is
@@ -156,10 +156,10 @@ public:
wasm->addFunction(func);
if (!useWorkers()) return; // we optimize at the end in that case
queueFunction(func);
- // wake workers if needed
- auto wake = availableFuncs.load();
- for (uint32_t i = 0; i < wake; i++) {
- wakeWorker();
+ // notify workers if needed
+ auto notify = availableFuncs.load();
+ for (uint32_t i = 0; i < notify; i++) {
+ notifyWorker();
}
}
@@ -180,7 +180,7 @@ public:
} else {
DEBUG_THREAD("finish()ing");
assert(nextFunction == numFunctions);
- wakeAllWorkers();
+ notifyAllWorkers();
waitUntilAllFinished();
}
// TODO: clear side thread allocators from module allocator, as these threads were transient
@@ -192,14 +192,14 @@ private:
threads.emplace_back(make_unique<std::thread>(workerMain, this));
}
- void wakeWorker() {
- DEBUG_THREAD("wake a worker");
+ void notifyWorker() {
+ DEBUG_THREAD("notify a worker");
std::lock_guard<std::mutex> lock(mutex);
condition.notify_one();
}
- void wakeAllWorkers() {
- DEBUG_THREAD("wake all workers");
+ void notifyAllWorkers() {
+ DEBUG_THREAD("notify all workers");
std::lock_guard<std::mutex> lock(mutex);
condition.notify_all();
}
diff --git a/src/wasm-s-parser.h b/src/wasm-s-parser.h
index 07de235a2..c80fa8b83 100644
--- a/src/wasm-s-parser.h
+++ b/src/wasm-s-parser.h
@@ -191,7 +191,7 @@ private:
Expression* makeAtomicRMW(Element& s, Type type, uint8_t bytes, const char* extra);
Expression* makeAtomicCmpxchg(Element& s, Type type, uint8_t bytes, const char* extra);
Expression* makeAtomicWait(Element& s, Type type);
- Expression* makeAtomicWake(Element& s);
+ Expression* makeAtomicNotify(Element& s);
Expression* makeSIMDExtract(Element& s, SIMDExtractOp op, size_t lanes);
Expression* makeSIMDReplace(Element& s, SIMDReplaceOp op, size_t lanes);
Expression* makeSIMDShuffle(Element& s);
diff --git a/src/wasm-stack.h b/src/wasm-stack.h
index f0995497a..afef2632b 100644
--- a/src/wasm-stack.h
+++ b/src/wasm-stack.h
@@ -134,7 +134,7 @@ public:
void visitAtomicRMW(AtomicRMW* curr);
void visitAtomicCmpxchg(AtomicCmpxchg* curr);
void visitAtomicWait(AtomicWait* curr);
- void visitAtomicWake(AtomicWake* curr);
+ void visitAtomicNotify(AtomicNotify* curr);
void visitSIMDExtract(SIMDExtract* curr);
void visitSIMDReplace(SIMDReplace* curr);
void visitSIMDShuffle(SIMDShuffle* curr);
@@ -890,15 +890,15 @@ void StackWriter<Mode, Parent>::visitAtomicWait(AtomicWait* curr) {
}
template<StackWriterMode Mode, typename Parent>
-void StackWriter<Mode, Parent>::visitAtomicWake(AtomicWake* curr) {
+void StackWriter<Mode, Parent>::visitAtomicNotify(AtomicNotify* curr) {
visitChild(curr->ptr);
// stop if the rest isn't reachable anyhow
if (curr->ptr->type == unreachable) return;
- visitChild(curr->wakeCount);
- if (curr->wakeCount->type == unreachable) return;
+ visitChild(curr->notifyCount);
+ if (curr->notifyCount->type == unreachable) return;
if (justAddToStack(curr)) return;
- o << int8_t(BinaryConsts::AtomicPrefix) << int8_t(BinaryConsts::AtomicWake);
+ o << int8_t(BinaryConsts::AtomicPrefix) << int8_t(BinaryConsts::AtomicNotify);
emitMemoryAccess(4, 4, 0);
}
diff --git a/src/wasm-traversal.h b/src/wasm-traversal.h
index 541490418..6259bf271 100644
--- a/src/wasm-traversal.h
+++ b/src/wasm-traversal.h
@@ -54,7 +54,7 @@ struct Visitor {
ReturnType visitAtomicRMW(AtomicRMW* curr) { return ReturnType(); }
ReturnType visitAtomicCmpxchg(AtomicCmpxchg* curr) { return ReturnType(); }
ReturnType visitAtomicWait(AtomicWait* curr) { return ReturnType(); }
- ReturnType visitAtomicWake(AtomicWake* curr) { return ReturnType(); }
+ ReturnType visitAtomicNotify(AtomicNotify* curr) { return ReturnType(); }
ReturnType visitSIMDExtract(SIMDExtract* curr) { return ReturnType(); }
ReturnType visitSIMDReplace(SIMDReplace* curr) { return ReturnType(); }
ReturnType visitSIMDShuffle(SIMDShuffle* curr) { return ReturnType(); }
@@ -106,7 +106,7 @@ struct Visitor {
case Expression::Id::AtomicRMWId: DELEGATE(AtomicRMW);
case Expression::Id::AtomicCmpxchgId: DELEGATE(AtomicCmpxchg);
case Expression::Id::AtomicWaitId: DELEGATE(AtomicWait);
- case Expression::Id::AtomicWakeId: DELEGATE(AtomicWake);
+ case Expression::Id::AtomicNotifyId: DELEGATE(AtomicNotify);
case Expression::Id::SIMDExtractId: DELEGATE(SIMDExtract);
case Expression::Id::SIMDReplaceId: DELEGATE(SIMDReplace);
case Expression::Id::SIMDShuffleId: DELEGATE(SIMDShuffle);
@@ -160,7 +160,7 @@ struct OverriddenVisitor {
UNIMPLEMENTED(AtomicRMW);
UNIMPLEMENTED(AtomicCmpxchg);
UNIMPLEMENTED(AtomicWait);
- UNIMPLEMENTED(AtomicWake);
+ UNIMPLEMENTED(AtomicNotify);
UNIMPLEMENTED(SIMDExtract);
UNIMPLEMENTED(SIMDReplace);
UNIMPLEMENTED(SIMDShuffle);
@@ -213,7 +213,7 @@ struct OverriddenVisitor {
case Expression::Id::AtomicRMWId: DELEGATE(AtomicRMW);
case Expression::Id::AtomicCmpxchgId: DELEGATE(AtomicCmpxchg);
case Expression::Id::AtomicWaitId: DELEGATE(AtomicWait);
- case Expression::Id::AtomicWakeId: DELEGATE(AtomicWake);
+ case Expression::Id::AtomicNotifyId: DELEGATE(AtomicNotify);
case Expression::Id::SIMDExtractId: DELEGATE(SIMDExtract);
case Expression::Id::SIMDReplaceId: DELEGATE(SIMDReplace);
case Expression::Id::SIMDShuffleId: DELEGATE(SIMDShuffle);
@@ -265,7 +265,7 @@ struct UnifiedExpressionVisitor : public Visitor<SubType, ReturnType> {
ReturnType visitAtomicRMW(AtomicRMW* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
ReturnType visitAtomicCmpxchg(AtomicCmpxchg* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
ReturnType visitAtomicWait(AtomicWait* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
- ReturnType visitAtomicWake(AtomicWake* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitAtomicNotify(AtomicNotify* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
ReturnType visitSIMDExtract(SIMDExtract* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
ReturnType visitSIMDReplace(SIMDReplace* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
ReturnType visitSIMDShuffle(SIMDShuffle* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
@@ -473,7 +473,7 @@ struct Walker : public VisitorType {
static void doVisitAtomicRMW(SubType* self, Expression** currp) { self->visitAtomicRMW((*currp)->cast<AtomicRMW>()); }
static void doVisitAtomicCmpxchg(SubType* self, Expression** currp){ self->visitAtomicCmpxchg((*currp)->cast<AtomicCmpxchg>()); }
static void doVisitAtomicWait(SubType* self, Expression** currp) { self->visitAtomicWait((*currp)->cast<AtomicWait>()); }
- static void doVisitAtomicWake(SubType* self, Expression** currp) { self->visitAtomicWake((*currp)->cast<AtomicWake>()); }
+ static void doVisitAtomicNotify(SubType* self, Expression** currp) { self->visitAtomicNotify((*currp)->cast<AtomicNotify>()); }
static void doVisitSIMDExtract(SubType* self, Expression** currp) { self->visitSIMDExtract((*currp)->cast<SIMDExtract>()); }
static void doVisitSIMDReplace(SubType* self, Expression** currp) { self->visitSIMDReplace((*currp)->cast<SIMDReplace>()); }
static void doVisitSIMDShuffle(SubType* self, Expression** currp) { self->visitSIMDShuffle((*currp)->cast<SIMDShuffle>()); }
@@ -617,10 +617,10 @@ struct PostWalker : public Walker<SubType, VisitorType> {
self->pushTask(SubType::scan, &curr->cast<AtomicWait>()->ptr);
break;
}
- case Expression::Id::AtomicWakeId: {
- self->pushTask(SubType::doVisitAtomicWake, currp);
- self->pushTask(SubType::scan, &curr->cast<AtomicWake>()->wakeCount);
- self->pushTask(SubType::scan, &curr->cast<AtomicWake>()->ptr);
+ case Expression::Id::AtomicNotifyId: {
+ self->pushTask(SubType::doVisitAtomicNotify, currp);
+ self->pushTask(SubType::scan, &curr->cast<AtomicNotify>()->notifyCount);
+ self->pushTask(SubType::scan, &curr->cast<AtomicNotify>()->ptr);
break;
}
case Expression::Id::SIMDExtractId: {
diff --git a/src/wasm.h b/src/wasm.h
index ab9d7c816..12071fdb4 100644
--- a/src/wasm.h
+++ b/src/wasm.h
@@ -206,7 +206,7 @@ public:
AtomicRMWId,
AtomicCmpxchgId,
AtomicWaitId,
- AtomicWakeId,
+ AtomicNotifyId,
SIMDExtractId,
SIMDReplaceId,
SIMDShuffleId,
@@ -512,14 +512,14 @@ class AtomicWait : public SpecificExpression<Expression::AtomicWaitId> {
void finalize();
};
-class AtomicWake : public SpecificExpression<Expression::AtomicWakeId> {
+class AtomicNotify : public SpecificExpression<Expression::AtomicNotifyId> {
public:
- AtomicWake() = default;
- AtomicWake(MixedArena& allocator) : AtomicWake() {}
+ AtomicNotify() = default;
+ AtomicNotify(MixedArena& allocator) : AtomicNotify() {}
Address offset;
Expression* ptr;
- Expression* wakeCount;
+ Expression* notifyCount;
void finalize();
};
diff --git a/src/wasm/wasm-binary.cpp b/src/wasm/wasm-binary.cpp
index 7aeb80715..643f69dde 100644
--- a/src/wasm/wasm-binary.cpp
+++ b/src/wasm/wasm-binary.cpp
@@ -394,7 +394,7 @@ void WasmBinaryWriter::writeDataSegments() {
if (combined.data.size() < needed) {
combined.data.resize(needed);
}
- std::copy(segment.data.begin(), segment.data.end(), combined.data.begin() + offset - start);
+ std::copy(segment.data.begin(), segment.data.end(), combined.data.begin() + (offset - start));
}
emit(combined);
break;
@@ -862,14 +862,6 @@ Type WasmBinaryBuilder::getConcreteType() {
return type;
}
-Name WasmBinaryBuilder::getString() {
- if (debug) std::cerr << "<==" << std::endl;
- size_t offset = getInt32();
- Name ret = cashew::IString((&input[0]) + offset, false);
- if (debug) std::cerr << "getString: " << ret << " ==>" << std::endl;
- return ret;
-}
-
Name WasmBinaryBuilder::getInlineString() {
if (debug) std::cerr << "<==" << std::endl;
auto len = getU32LEB();
@@ -1711,7 +1703,7 @@ BinaryConsts::ASTNodes WasmBinaryBuilder::readExpression(Expression*& curr) {
if (maybeVisitAtomicRMW(curr, code)) break;
if (maybeVisitAtomicCmpxchg(curr, code)) break;
if (maybeVisitAtomicWait(curr, code)) break;
- if (maybeVisitAtomicWake(curr, code)) break;
+ if (maybeVisitAtomicNotify(curr, code)) break;
throwError("invalid code after atomic prefix: " + std::to_string(code));
break;
}
@@ -2223,17 +2215,17 @@ bool WasmBinaryBuilder::maybeVisitAtomicWait(Expression*& out, uint8_t code) {
return true;
}
-bool WasmBinaryBuilder::maybeVisitAtomicWake(Expression*& out, uint8_t code) {
- if (code != BinaryConsts::AtomicWake) return false;
- auto* curr = allocator.alloc<AtomicWake>();
- if (debug) std::cerr << "zz node: AtomicWake" << std::endl;
+bool WasmBinaryBuilder::maybeVisitAtomicNotify(Expression*& out, uint8_t code) {
+ if (code != BinaryConsts::AtomicNotify) return false;
+ auto* curr = allocator.alloc<AtomicNotify>();
+ if (debug) std::cerr << "zz node: AtomicNotify" << std::endl;
curr->type = i32;
- curr->wakeCount = popNonVoidExpression();
+ curr->notifyCount = popNonVoidExpression();
curr->ptr = popNonVoidExpression();
Address readAlign;
readMemoryAccess(readAlign, curr->offset);
- if (readAlign != getTypeSize(curr->type)) throwError("Align of AtomicWake must match size");
+ if (readAlign != getTypeSize(curr->type)) throwError("Align of AtomicNotify must match size");
curr->finalize();
out = curr;
return true;
diff --git a/src/wasm/wasm-emscripten.cpp b/src/wasm/wasm-emscripten.cpp
index ea24b945d..404d93ca3 100644
--- a/src/wasm/wasm-emscripten.cpp
+++ b/src/wasm/wasm-emscripten.cpp
@@ -36,7 +36,9 @@ cashew::IString EM_JS_PREFIX("__em_js__");
static Name STACK_SAVE("stackSave"),
STACK_RESTORE("stackRestore"),
STACK_ALLOC("stackAlloc"),
- STACK_INIT("stack$init");
+ STACK_INIT("stack$init"),
+ POST_INSTANTIATE("__post_instantiate"),
+ ASSIGN_GOT_ENTIRES("__assign_got_enties");
void addExportedFunction(Module& wasm, Function* function) {
wasm.addFunction(function);
@@ -47,15 +49,20 @@ void addExportedFunction(Module& wasm, Function* function) {
}
Global* EmscriptenGlueGenerator::getStackPointerGlobal() {
- // Assumption: The first non-imported global is global is __stack_pointer
+ // Assumption: The stack pointer is either imported as __stack_pointer or
+ // its the first non-imported global.
// TODO(sbc): Find a better way to discover the stack pointer. Perhaps the
// linker could export it by name?
for (auto& g : wasm.globals) {
- if (!g->imported()) {
+ if (g->imported()) {
+ if (g->base == "__stack_pointer") {
+ return g.get();
+ }
+ } else {
return g.get();
}
}
- Fatal() << "stack pointer global not found";
+ return nullptr;
}
Expression* EmscriptenGlueGenerator::generateLoadStackPointer() {
@@ -70,6 +77,8 @@ Expression* EmscriptenGlueGenerator::generateLoadStackPointer() {
);
}
Global* stackPointer = getStackPointerGlobal();
+ if (!stackPointer)
+ Fatal() << "stack pointer global not found";
return builder.makeGetGlobal(stackPointer->name, i32);
}
@@ -85,6 +94,8 @@ Expression* EmscriptenGlueGenerator::generateStoreStackPointer(Expression* value
);
}
Global* stackPointer = getStackPointerGlobal();
+ if (!stackPointer)
+ Fatal() << "stack pointer global not found";
return builder.makeSetGlobal(stackPointer->name, value);
}
@@ -143,6 +154,116 @@ void EmscriptenGlueGenerator::generateRuntimeFunctions() {
generateStackRestoreFunction();
}
+static Function* ensureFunctionImport(Module* module, Name name, std::string sig) {
+ // Then see if its already imported
+ ImportInfo info(*module);
+ if (Function* f = info.getImportedFunction(ENV, name)) {
+ return f;
+ }
+ // Failing that create a new function import.
+ auto import = new Function;
+ import->name = name;
+ import->module = ENV;
+ import->base = name;
+ auto* functionType = ensureFunctionType(sig, module);
+ import->type = functionType->name;
+ FunctionTypeUtils::fillFunction(import, functionType);
+ module->addFunction(import);
+ return import;
+}
+
+Function* EmscriptenGlueGenerator::generateAssignGOTEntriesFunction() {
+ std::vector<Global*> got_entries_func;
+ std::vector<Global*> got_entries_mem;
+ for (auto& g : wasm.globals) {
+ if (!g->imported()) {
+ continue;
+ }
+ if (g->module == "GOT.func") {
+ got_entries_func.push_back(g.get());
+ } else if (g->module == "GOT.mem") {
+ got_entries_mem.push_back(g.get());
+ } else {
+ continue;
+ }
+ // Make this an internal, non-imported, global.
+ g->module.clear();
+ g->init = Builder(wasm).makeConst(Literal(0));
+ }
+
+ if (!got_entries_func.size() && !got_entries_mem.size()) {
+ return nullptr;
+ }
+
+ Function* assign_func =
+ builder.makeFunction(ASSIGN_GOT_ENTIRES, std::vector<NameType>{}, none, {});
+ Block* block = builder.makeBlock();
+ assign_func->body = block;
+
+ for (Global* g : got_entries_mem) {
+ Name getter(std::string("g$") + g->base.c_str());
+ ensureFunctionImport(&wasm, getter, "i");
+ Expression* call = builder.makeCall(getter, {}, i32);
+ SetGlobal* set_global = builder.makeSetGlobal(g->name, call);
+ block->list.push_back(set_global);
+ }
+
+ for (Global* g : got_entries_func) {
+ Name getter(std::string("f$") + g->base.c_str());
+ if (auto* f = wasm.getFunctionOrNull(g->base)) {
+ getter.set((getter.c_str() + std::string("$") + getSig(f)).c_str(), false);
+ }
+ ensureFunctionImport(&wasm, getter, "i");
+ Expression* call = builder.makeCall(getter, {}, i32);
+ SetGlobal* set_global = builder.makeSetGlobal(g->name, call);
+ block->list.push_back(set_global);
+ }
+
+ wasm.addFunction(assign_func);
+ return assign_func;
+}
+
+// For emscripten SIDE_MODULE we generate a single exported function called
+// __post_instantiate which calls two functions:
+//
+// - __assign_got_enties
+// - __wasm_call_ctors
+//
+// The former is function we generate here which calls imported g$XXX functions
+// order to assign values to any globals imported from GOT.func or GOT.mem.
+// These globals hold address of functions and globals respectively.
+//
+// The later is the constructor function generaed by lld which performs any
+// fixups on the memory section and calls static constructors.
+void EmscriptenGlueGenerator::generatePostInstantiateFunction() {
+ Builder builder(wasm);
+ Function* post_instantiate =
+ builder.makeFunction(POST_INSTANTIATE, std::vector<NameType>{}, none, {});
+ wasm.addFunction(post_instantiate);
+
+ if (Function* F = generateAssignGOTEntriesFunction()) {
+ // call __assign_got_enties from post_instantiate
+ Expression* call = builder.makeCall(F->name, {}, none);
+ post_instantiate->body = builder.blockify(call);
+ }
+
+ // The names of standard imports/exports used by lld doesn't quite match that
+ // expected by emscripten.
+ // TODO(sbc): Unify these
+ if (auto* e = wasm.getExportOrNull(WASM_CALL_CTORS)) {
+ Expression* call = builder.makeCall(e->value, {}, none);
+ post_instantiate->body = builder.blockify(post_instantiate->body, call);
+ wasm.removeExport(WASM_CALL_CTORS);
+ }
+
+ auto* ex = new Export();
+ ex->value = post_instantiate->name;
+ ex->name = POST_INSTANTIATE;
+ ex->kind = ExternalKind::Function;
+ wasm.addExport(ex);
+ wasm.updateMaps();
+}
+
Function* EmscriptenGlueGenerator::generateMemoryGrowthFunction() {
Name name(GROW_WASM_MEMORY);
std::vector<NameType> params { { NEW_SIZE, i32 } };
@@ -215,24 +336,6 @@ void EmscriptenGlueGenerator::generateDynCallThunks() {
}
}
-static Function* ensureFunctionImport(Module* module, Name name, std::string sig) {
- // Then see if its already imported
- ImportInfo info(*module);
- if (Function* f = info.getImportedFunction(ENV, name)) {
- return f;
- }
- // Failing that create a new function import.
- auto import = new Function;
- import->name = name;
- import->module = ENV;
- import->base = name;
- auto* functionType = ensureFunctionType(sig, module);
- import->type = functionType->name;
- FunctionTypeUtils::fillFunction(import, functionType);
- module->addFunction(import);
- return import;
-}
-
struct RemoveStackPointer : public PostWalker<RemoveStackPointer> {
RemoveStackPointer(Global* stackPointer) : stackPointer(stackPointer) {}
@@ -262,6 +365,8 @@ private:
void EmscriptenGlueGenerator::replaceStackPointerGlobal() {
Global* stackPointer = getStackPointerGlobal();
+ if (!stackPointer)
+ return;
// Replace all uses of stack pointer global
RemoveStackPointer walker(stackPointer);
diff --git a/src/wasm/wasm-s-parser.cpp b/src/wasm/wasm-s-parser.cpp
index 1067264f7..ddda991cd 100644
--- a/src/wasm/wasm-s-parser.cpp
+++ b/src/wasm/wasm-s-parser.cpp
@@ -1071,11 +1071,11 @@ Expression* SExpressionWasmBuilder::makeAtomicWait(Element& s, Type type) {
return ret;
}
-Expression* SExpressionWasmBuilder::makeAtomicWake(Element& s) {
- auto ret = allocator.alloc<AtomicWake>();
+Expression* SExpressionWasmBuilder::makeAtomicNotify(Element& s) {
+ auto ret = allocator.alloc<AtomicNotify>();
ret->type = i32;
ret->ptr = parseExpression(s[1]);
- ret->wakeCount = parseExpression(s[2]);
+ ret->notifyCount = parseExpression(s[2]);
ret->finalize();
return ret;
}
diff --git a/src/wasm/wasm-validator.cpp b/src/wasm/wasm-validator.cpp
index 91e7e7398..6d4490982 100644
--- a/src/wasm/wasm-validator.cpp
+++ b/src/wasm/wasm-validator.cpp
@@ -235,6 +235,7 @@ public:
void visitSwitch(Switch* curr);
void visitCall(Call* curr);
void visitCallIndirect(CallIndirect* curr);
+ void visitConst(Const* curr);
void visitGetLocal(GetLocal* curr);
void visitSetLocal(SetLocal* curr);
void visitGetGlobal(GetGlobal* curr);
@@ -244,7 +245,7 @@ public:
void visitAtomicRMW(AtomicRMW* curr);
void visitAtomicCmpxchg(AtomicCmpxchg* curr);
void visitAtomicWait(AtomicWait* curr);
- void visitAtomicWake(AtomicWake* curr);
+ void visitAtomicNotify(AtomicNotify* curr);
void visitSIMDExtract(SIMDExtract* curr);
void visitSIMDReplace(SIMDReplace* curr);
void visitSIMDShuffle(SIMDShuffle* curr);
@@ -475,6 +476,11 @@ void FunctionValidator::visitCallIndirect(CallIndirect* curr) {
}
}
+void FunctionValidator::visitConst(Const* curr) {
+ shouldBeTrue(getFeatures(curr->type) <= info.features, curr,
+ "all used features should be allowed");
+}
+
void FunctionValidator::visitGetLocal(GetLocal* curr) {
shouldBeTrue(curr->index < getFunction()->getNumLocals(), curr, "local.get index must be small enough");
shouldBeTrue(isConcreteType(curr->type), curr, "local.get must have a valid type - check what you provided when you constructed the node");
@@ -570,12 +576,12 @@ void FunctionValidator::visitAtomicWait(AtomicWait* curr) {
shouldBeEqualOrFirstIsUnreachable(curr->timeout->type, i64, curr, "AtomicWait timeout type must be i64");
}
-void FunctionValidator::visitAtomicWake(AtomicWake* curr) {
+void FunctionValidator::visitAtomicNotify(AtomicNotify* curr) {
shouldBeTrue(info.features.hasAtomics(), curr, "Atomic operation (atomics are disabled)");
shouldBeFalse(!getModule()->memory.shared, curr, "Atomic operation with non-shared memory");
- shouldBeEqualOrFirstIsUnreachable(curr->type, i32, curr, "AtomicWake must have type i32");
- shouldBeEqualOrFirstIsUnreachable(curr->ptr->type, i32, curr, "AtomicWake pointer type must be i32");
- shouldBeEqualOrFirstIsUnreachable(curr->wakeCount->type, i32, curr, "AtomicWake wakeCount type must be i32");
+ shouldBeEqualOrFirstIsUnreachable(curr->type, i32, curr, "AtomicNotify must have type i32");
+ shouldBeEqualOrFirstIsUnreachable(curr->ptr->type, i32, curr, "AtomicNotify pointer type must be i32");
+ shouldBeEqualOrFirstIsUnreachable(curr->notifyCount->type, i32, curr, "AtomicNotify notifyCount type must be i32");
}
void FunctionValidator::visitSIMDExtract(SIMDExtract* curr) {
@@ -1270,6 +1276,8 @@ static void validateExports(Module& module, ValidationInfo& info) {
static void validateGlobals(Module& module, ValidationInfo& info) {
ModuleUtils::iterDefinedGlobals(module, [&](Global* curr) {
+ info.shouldBeTrue(getFeatures(curr->type) <= info.features, curr->name,
+ "all used types should be allowed");
info.shouldBeTrue(curr->init != nullptr, curr->name, "global init must be non-null");
info.shouldBeTrue(curr->init->is<Const>() || curr->init->is<GetGlobal>(), curr->name, "global init must be valid");
if (!info.shouldBeEqual(curr->type, curr->init->type, curr->init, "global init must have correct type") && !info.quiet) {
diff --git a/src/wasm/wasm.cpp b/src/wasm/wasm.cpp
index c99bb0994..f7081e49c 100644
--- a/src/wasm/wasm.cpp
+++ b/src/wasm/wasm.cpp
@@ -37,6 +37,7 @@ const char* TargetFeatures = "target_features";
}
Name GROW_WASM_MEMORY("__growWasmMemory"),
+ WASM_CALL_CTORS("__wasm_call_ctors"),
MEMORY_BASE("__memory_base"),
TABLE_BASE("__table_base"),
GET_TEMP_RET0("getTempRet0"),
@@ -105,7 +106,7 @@ const char* getExpressionName(Expression* curr) {
case Expression::Id::AtomicCmpxchgId: return "atomic_cmpxchg";
case Expression::Id::AtomicRMWId: return "atomic_rmw";
case Expression::Id::AtomicWaitId: return "atomic_wait";
- case Expression::Id::AtomicWakeId: return "atomic_wake";
+ case Expression::Id::AtomicNotifyId: return "atomic_notify";
case Expression::Id::SIMDExtractId: return "simd_extract";
case Expression::Id::SIMDReplaceId: return "simd_replace";
case Expression::Id::SIMDShuffleId: return "simd_shuffle";
@@ -420,9 +421,9 @@ void AtomicWait::finalize() {
}
}
-void AtomicWake::finalize() {
+void AtomicNotify::finalize() {
type = i32;
- if (ptr->type == unreachable || wakeCount->type == unreachable) {
+ if (ptr->type == unreachable || notifyCount->type == unreachable) {
type = unreachable;
}
}
diff --git a/test/atomics.wast b/test/atomics.wast
index 4fff3b2cb..2dcad6459 100644
--- a/test/atomics.wast
+++ b/test/atomics.wast
@@ -134,24 +134,24 @@
)
)
)
- (func $atomic-wait-wake (type $0)
+ (func $atomic-wait-notify (type $0)
(local $0 i32)
(local $1 i64)
(drop
- (i32.wait
+ (i32.atomic.wait
(local.get $0)
(local.get $0)
(local.get $1)
)
)
(drop
- (wake
+ (atomic.notify
(local.get $0)
(local.get $0)
)
)
(drop
- (i64.wait
+ (i64.atomic.wait
(local.get $0)
(local.get $1)
(local.get $1)
diff --git a/test/atomics.wast.from-wast b/test/atomics.wast.from-wast
index 238d81fe6..2869d5da4 100644
--- a/test/atomics.wast.from-wast
+++ b/test/atomics.wast.from-wast
@@ -134,24 +134,24 @@
)
)
)
- (func $atomic-wait-wake (; 3 ;) (type $0)
+ (func $atomic-wait-notify (; 3 ;) (type $0)
(local $0 i32)
(local $1 i64)
(drop
- (i32.wait
+ (i32.atomic.wait
(local.get $0)
(local.get $0)
(local.get $1)
)
)
(drop
- (wake
+ (atomic.notify
(local.get $0)
(local.get $0)
)
)
(drop
- (i64.wait
+ (i64.atomic.wait
(local.get $0)
(local.get $1)
(local.get $1)
diff --git a/test/atomics.wast.fromBinary b/test/atomics.wast.fromBinary
index 330ca4dba..dc5cb0145 100644
--- a/test/atomics.wast.fromBinary
+++ b/test/atomics.wast.fromBinary
@@ -134,24 +134,24 @@
)
)
)
- (func $atomic-wait-wake (; 3 ;) (type $0)
+ (func $atomic-wait-notify (; 3 ;) (type $0)
(local $0 i32)
(local $1 i64)
(drop
- (i32.wait
+ (i32.atomic.wait
(local.get $0)
(local.get $0)
(local.get $1)
)
)
(drop
- (wake
+ (atomic.notify
(local.get $0)
(local.get $0)
)
)
(drop
- (i64.wait
+ (i64.atomic.wait
(local.get $0)
(local.get $1)
(local.get $1)
diff --git a/test/atomics.wast.fromBinary.noDebugInfo b/test/atomics.wast.fromBinary.noDebugInfo
index 145ecfe9a..77fb51917 100644
--- a/test/atomics.wast.fromBinary.noDebugInfo
+++ b/test/atomics.wast.fromBinary.noDebugInfo
@@ -138,20 +138,20 @@
(local $0 i32)
(local $1 i64)
(drop
- (i32.wait
+ (i32.atomic.wait
(local.get $0)
(local.get $0)
(local.get $1)
)
)
(drop
- (wake
+ (atomic.notify
(local.get $0)
(local.get $0)
)
)
(drop
- (i64.wait
+ (i64.atomic.wait
(local.get $0)
(local.get $1)
(local.get $1)
diff --git a/test/binaryen.js/kitchen-sink.js b/test/binaryen.js/kitchen-sink.js
index 6c97703f9..860fdf37d 100644
--- a/test/binaryen.js/kitchen-sink.js
+++ b/test/binaryen.js/kitchen-sink.js
@@ -88,7 +88,7 @@ function test_ids() {
console.log("BinaryenAtomicCmpxchgId: " + Binaryen.AtomicCmpxchgId);
console.log("BinaryenAtomicRMWId: " + Binaryen.AtomicRMWId);
console.log("BinaryenAtomicWaitId: " + Binaryen.AtomicWaitId);
- console.log("BinaryenAtomicWakeId: " + Binaryen.AtomicWakeId);
+ console.log("BinaryenAtomicNotifyId: " + Binaryen.AtomicNotifyId);
console.log("BinaryenSIMDExtractId: " + Binaryen.SIMDExtractId);
console.log("BinaryenSIMDReplaceId: " + Binaryen.SIMDReplaceId);
console.log("BinaryenSIMDShuffleId: " + Binaryen.SIMDShuffleId);
diff --git a/test/binaryen.js/kitchen-sink.js.txt b/test/binaryen.js/kitchen-sink.js.txt
index 83e3eee20..e5eb3cf65 100644
--- a/test/binaryen.js/kitchen-sink.js.txt
+++ b/test/binaryen.js/kitchen-sink.js.txt
@@ -32,7 +32,7 @@ BinaryenUnreachableId: 22
BinaryenAtomicCmpxchgId: 24
BinaryenAtomicRMWId: 23
BinaryenAtomicWaitId: 25
-BinaryenAtomicWakeId: 26
+BinaryenAtomicNotifyId: 26
BinaryenSIMDExtractId: 27
BinaryenSIMDReplaceId: 28
BinaryenSIMDShuffleId: 29
diff --git a/test/crash/test_features.py b/test/crash/test_features.py
deleted file mode 100644
index 87521d4c0..000000000
--- a/test/crash/test_features.py
+++ /dev/null
@@ -1,18 +0,0 @@
-import unittest
-from scripts.test.shared import WASM_OPT, run_process
-
-
-class FeatureValidationTest(unittest.TestCase):
- def test_simd_type(self):
- module = """
- (module
- (func $foo (param $0 v128) (result v128)
- (local.get $0)
- )
- )
- """
- p = run_process(WASM_OPT + ['--mvp-features', '--print'],
- input=module, check=False, capture_output=True)
- self.assertIn("all used types should be allowed", p.stderr)
- self.assertIn("Fatal: error in validating input", p.stderr)
- self.assertNotEqual(p.returncode, 0)
diff --git a/test/debugInfo.fromasm b/test/debugInfo.fromasm
index 09e692304..7d1771d00 100644
--- a/test/debugInfo.fromasm
+++ b/test/debugInfo.fromasm
@@ -36,11 +36,11 @@
(if (result i32)
(local.tee $2
;;@ even-opted.cpp:2:0
- (local.tee $1
+ (local.tee $0
(i32.shr_s
(local.get $1)
;;@ even-opted.cpp:1:0
- (local.tee $0
+ (local.tee $1
(i32.add
(local.get $0)
(local.get $1)
@@ -50,12 +50,12 @@
)
)
(i32.rem_s
- (local.get $0)
+ (local.get $1)
(local.get $2)
)
(i32.const 0)
)
- (local.get $1)
+ (local.get $0)
)
)
(func $fib (; 3 ;) (; has Stack IR ;) (param $0 i32) (result i32)
@@ -63,63 +63,58 @@
(local $2 i32)
(local $3 i32)
(local $4 i32)
- (local.set $4
+ (local.set $2
(if (result i32)
;;@ fib.c:3:0
(i32.gt_s
(local.get $0)
(i32.const 0)
)
- (block (result i32)
- (local.set $3
- (i32.const 1)
- )
- (i32.const 0)
- )
+ (i32.const 1)
(block
- (local.set $1
+ (local.set $0
(i32.const 1)
)
;;@ fib.c:8:0
(return
- (local.get $1)
+ (local.get $0)
)
)
)
)
(loop $while-in
;;@ fib.c:4:0
- (local.set $1
+ (local.set $4
(i32.add
+ (local.get $2)
(local.get $3)
- (local.get $4)
)
)
;;@ fib.c:3:0
- (local.set $2
+ (local.set $1
(i32.add
- (local.get $2)
+ (local.get $1)
(i32.const 1)
)
)
(if
(i32.ne
(local.get $0)
- (local.get $2)
+ (local.get $1)
)
(block
- (local.set $4
- (local.get $3)
- )
(local.set $3
- (local.get $1)
+ (local.get $2)
+ )
+ (local.set $2
+ (local.get $4)
)
(br $while-in)
)
)
)
;;@ fib.c:8:0
- (local.get $1)
+ (local.get $4)
)
(func $switch_reach (; 4 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
diff --git a/test/debugInfo.fromasm.clamp b/test/debugInfo.fromasm.clamp
index 09e692304..7d1771d00 100644
--- a/test/debugInfo.fromasm.clamp
+++ b/test/debugInfo.fromasm.clamp
@@ -36,11 +36,11 @@
(if (result i32)
(local.tee $2
;;@ even-opted.cpp:2:0
- (local.tee $1
+ (local.tee $0
(i32.shr_s
(local.get $1)
;;@ even-opted.cpp:1:0
- (local.tee $0
+ (local.tee $1
(i32.add
(local.get $0)
(local.get $1)
@@ -50,12 +50,12 @@
)
)
(i32.rem_s
- (local.get $0)
+ (local.get $1)
(local.get $2)
)
(i32.const 0)
)
- (local.get $1)
+ (local.get $0)
)
)
(func $fib (; 3 ;) (; has Stack IR ;) (param $0 i32) (result i32)
@@ -63,63 +63,58 @@
(local $2 i32)
(local $3 i32)
(local $4 i32)
- (local.set $4
+ (local.set $2
(if (result i32)
;;@ fib.c:3:0
(i32.gt_s
(local.get $0)
(i32.const 0)
)
- (block (result i32)
- (local.set $3
- (i32.const 1)
- )
- (i32.const 0)
- )
+ (i32.const 1)
(block
- (local.set $1
+ (local.set $0
(i32.const 1)
)
;;@ fib.c:8:0
(return
- (local.get $1)
+ (local.get $0)
)
)
)
)
(loop $while-in
;;@ fib.c:4:0
- (local.set $1
+ (local.set $4
(i32.add
+ (local.get $2)
(local.get $3)
- (local.get $4)
)
)
;;@ fib.c:3:0
- (local.set $2
+ (local.set $1
(i32.add
- (local.get $2)
+ (local.get $1)
(i32.const 1)
)
)
(if
(i32.ne
(local.get $0)
- (local.get $2)
+ (local.get $1)
)
(block
- (local.set $4
- (local.get $3)
- )
(local.set $3
- (local.get $1)
+ (local.get $2)
+ )
+ (local.set $2
+ (local.get $4)
)
(br $while-in)
)
)
)
;;@ fib.c:8:0
- (local.get $1)
+ (local.get $4)
)
(func $switch_reach (; 4 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
diff --git a/test/debugInfo.fromasm.clamp.map b/test/debugInfo.fromasm.clamp.map
index 3fb1e45f2..e49a7309c 100644
--- a/test/debugInfo.fromasm.clamp.map
+++ b/test/debugInfo.fromasm.clamp.map
@@ -1 +1 @@
-{"version":3,"sources":["tests/hello_world.c","tests/other_file.cpp","return.cpp","even-opted.cpp","fib.c","/tmp/emscripten_test_binaryen2_28hnAe/src.c","(unknown)"],"names":[],"mappings":"qIC8ylTA,QC7vlTA,OAkDA,UCjGA,AADA,EADA,+BCEA,kBAKA,QAJA,OADA,0BAKA,sECsi1DA,KCrvyDA"} \ No newline at end of file
+{"version":3,"sources":["tests/hello_world.c","tests/other_file.cpp","return.cpp","even-opted.cpp","fib.c","/tmp/emscripten_test_binaryen2_28hnAe/src.c","(unknown)"],"names":[],"mappings":"qIC8ylTA,QC7vlTA,OAkDA,UCjGA,AADA,EADA,+BCEA,cAKA,QAJA,OADA,0BAKA,sECsi1DA,KCrvyDA"} \ No newline at end of file
diff --git a/test/debugInfo.fromasm.imprecise b/test/debugInfo.fromasm.imprecise
index 008e1f018..a643cce56 100644
--- a/test/debugInfo.fromasm.imprecise
+++ b/test/debugInfo.fromasm.imprecise
@@ -43,11 +43,11 @@
)
;;@ even-opted.cpp:3:0
(i32.add
+ (local.get $1)
(i32.rem_s
(local.get $0)
(local.get $1)
)
- (local.get $1)
)
)
(func $fib (; 3 ;) (; has Stack IR ;) (param $0 i32) (result i32)
@@ -55,63 +55,58 @@
(local $2 i32)
(local $3 i32)
(local $4 i32)
- (local.set $4
+ (local.set $2
(if (result i32)
;;@ fib.c:3:0
(i32.gt_s
(local.get $0)
(i32.const 0)
)
- (block (result i32)
- (local.set $3
- (i32.const 1)
- )
- (i32.const 0)
- )
+ (i32.const 1)
(block
- (local.set $1
+ (local.set $0
(i32.const 1)
)
;;@ fib.c:8:0
(return
- (local.get $1)
+ (local.get $0)
)
)
)
)
(loop $while-in
;;@ fib.c:4:0
- (local.set $1
+ (local.set $4
(i32.add
+ (local.get $2)
(local.get $3)
- (local.get $4)
)
)
;;@ fib.c:3:0
- (local.set $2
+ (local.set $1
(i32.add
- (local.get $2)
+ (local.get $1)
(i32.const 1)
)
)
(if
(i32.ne
(local.get $0)
- (local.get $2)
+ (local.get $1)
)
(block
- (local.set $4
- (local.get $3)
- )
(local.set $3
- (local.get $1)
+ (local.get $2)
+ )
+ (local.set $2
+ (local.get $4)
)
(br $while-in)
)
)
)
;;@ fib.c:8:0
- (local.get $1)
+ (local.get $4)
)
(func $switch_reach (; 4 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
diff --git a/test/debugInfo.fromasm.imprecise.map b/test/debugInfo.fromasm.imprecise.map
index 3d93580a9..316bdc518 100644
--- a/test/debugInfo.fromasm.imprecise.map
+++ b/test/debugInfo.fromasm.imprecise.map
@@ -1 +1 @@
-{"version":3,"sources":["tests/hello_world.c","tests/other_file.cpp","return.cpp","even-opted.cpp","fib.c","/tmp/emscripten_test_binaryen2_28hnAe/src.c","(unknown)"],"names":[],"mappings":"4FC8ylTA,QC7vlTA,OAkDA,QCnGA,OACA,OACA,aCAA,kBAKA,QAJA,OADA,0BAKA,sECsi1DA,KCrvyDA"} \ No newline at end of file
+{"version":3,"sources":["tests/hello_world.c","tests/other_file.cpp","return.cpp","even-opted.cpp","fib.c","/tmp/emscripten_test_binaryen2_28hnAe/src.c","(unknown)"],"names":[],"mappings":"4FC8ylTA,QC7vlTA,OAkDA,QCnGA,OACA,OACA,aCAA,cAKA,QAJA,OADA,0BAKA,sECsi1DA,KCrvyDA"} \ No newline at end of file
diff --git a/test/debugInfo.fromasm.map b/test/debugInfo.fromasm.map
index 3fb1e45f2..e49a7309c 100644
--- a/test/debugInfo.fromasm.map
+++ b/test/debugInfo.fromasm.map
@@ -1 +1 @@
-{"version":3,"sources":["tests/hello_world.c","tests/other_file.cpp","return.cpp","even-opted.cpp","fib.c","/tmp/emscripten_test_binaryen2_28hnAe/src.c","(unknown)"],"names":[],"mappings":"qIC8ylTA,QC7vlTA,OAkDA,UCjGA,AADA,EADA,+BCEA,kBAKA,QAJA,OADA,0BAKA,sECsi1DA,KCrvyDA"} \ No newline at end of file
+{"version":3,"sources":["tests/hello_world.c","tests/other_file.cpp","return.cpp","even-opted.cpp","fib.c","/tmp/emscripten_test_binaryen2_28hnAe/src.c","(unknown)"],"names":[],"mappings":"qIC8ylTA,QC7vlTA,OAkDA,UCjGA,AADA,EADA,+BCEA,cAKA,QAJA,OADA,0BAKA,sECsi1DA,KCrvyDA"} \ No newline at end of file
diff --git a/test/debugInfo.fromasm.read-written b/test/debugInfo.fromasm.read-written
index 7fbc9e2c4..2cc9a03de 100644
--- a/test/debugInfo.fromasm.read-written
+++ b/test/debugInfo.fromasm.read-written
@@ -39,12 +39,12 @@
;;@ even-opted.cpp:1:0
(if (result i32)
(local.tee $2
- (local.tee $1
+ (local.tee $0
(i32.shr_s
;;@ even-opted.cpp:2:0
(local.get $1)
;;@ even-opted.cpp:1:0
- (local.tee $0
+ (local.tee $1
(i32.add
(local.get $0)
(local.get $1)
@@ -55,12 +55,12 @@
)
;;@ even-opted.cpp:3:0
(i32.rem_s
- (local.get $0)
+ (local.get $1)
(local.get $2)
)
(i32.const 0)
)
- (local.get $1)
+ (local.get $0)
)
)
(func $fib (; 3 ;) (type $1) (param $0 i32) (result i32)
@@ -69,63 +69,58 @@
(local $3 i32)
(local $4 i32)
;;@ fib.c:8:0
- (local.set $4
+ (local.set $2
;;@ fib.c:3:0
(if (result i32)
(i32.gt_s
(local.get $0)
(i32.const 0)
)
+ (i32.const 1)
(block (result i32)
- (local.set $3
- (i32.const 1)
- )
- (i32.const 0)
- )
- (block (result i32)
- (local.set $1
+ (local.set $0
(i32.const 1)
)
;;@ fib.c:8:0
(return
- (local.get $1)
+ (local.get $0)
)
)
)
)
(loop $label$3
;;@ fib.c:4:0
- (local.set $1
+ (local.set $4
(i32.add
+ (local.get $2)
(local.get $3)
- (local.get $4)
)
)
;;@ fib.c:3:0
- (local.set $2
+ (local.set $1
(i32.add
- (local.get $2)
+ (local.get $1)
(i32.const 1)
)
)
(if
(i32.ne
(local.get $0)
- (local.get $2)
+ (local.get $1)
)
(block
- (local.set $4
- (local.get $3)
- )
(local.set $3
- (local.get $1)
+ (local.get $2)
+ )
+ (local.set $2
+ (local.get $4)
)
(br $label$3)
)
)
)
;;@ fib.c:8:0
- (local.get $1)
+ (local.get $4)
)
(func $switch_reach (; 4 ;) (type $1) (param $0 i32) (result i32)
(local $1 i32)
diff --git a/test/emcc_O2_hello_world.fromasm b/test/emcc_O2_hello_world.fromasm
index 2ea71d54e..0c0c148a1 100644
--- a/test/emcc_O2_hello_world.fromasm
+++ b/test/emcc_O2_hello_world.fromasm
@@ -99,11 +99,6 @@
(local $45 i32)
(local $46 i32)
(local $47 i32)
- (local $48 i32)
- (local $49 i32)
- (local $50 i32)
- (local $51 i32)
- (local $52 i32)
(if
(i32.lt_u
(local.get $0)
@@ -112,16 +107,16 @@
(block
(if
(i32.and
- (local.tee $2
+ (local.tee $5
(i32.shr_u
- (local.tee $15
+ (local.tee $18
(i32.load
(i32.const 176)
)
)
(local.tee $6
(i32.shr_u
- (local.tee $8
+ (local.tee $4
(select
(i32.const 16)
(i32.and
@@ -145,74 +140,69 @@
(i32.const 3)
)
(block
- (local.set $8
- (local.tee $1
- (i32.add
- (i32.shl
- (local.tee $6
- (i32.add
- (local.get $6)
- (i32.xor
- (i32.and
- (local.get $2)
- (i32.const 1)
+ (local.set $0
+ (i32.load
+ (local.tee $6
+ (i32.add
+ (local.tee $4
+ (i32.load offset=8
+ (local.tee $1
+ (i32.add
+ (i32.shl
+ (local.tee $3
+ (i32.add
+ (local.get $6)
+ (i32.xor
+ (i32.and
+ (local.get $5)
+ (i32.const 1)
+ )
+ (i32.const 1)
+ )
+ )
+ )
+ (i32.const 3)
+ )
+ (i32.const 216)
)
- (i32.const 1)
)
)
)
- (i32.const 3)
+ (i32.const 8)
)
- (i32.const 216)
)
)
)
(if
(i32.ne
+ (local.get $0)
(local.get $1)
- (local.tee $7
- (i32.load
- (local.tee $17
- (i32.add
- (local.tee $0
- (i32.load offset=8
- (local.get $8)
- )
- )
- (i32.const 8)
- )
- )
- )
- )
)
(block
(if
(i32.lt_u
- (local.get $7)
+ (local.get $0)
(i32.load
(i32.const 192)
)
)
(call $_abort)
)
- (local.set $2
- (local.get $7)
- )
(if
(i32.eq
- (local.get $0)
+ (local.get $4)
(i32.load offset=12
- (local.get $2)
+ (local.get $0)
)
)
(block
(i32.store offset=12
- (local.get $2)
+ (local.get $0)
(local.get $1)
)
(i32.store offset=8
- (local.get $8)
- (local.get $7)
+ (local.get $1)
+ (local.get $0)
)
)
(call $_abort)
@@ -224,34 +214,33 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $6)
+ (local.get $3)
)
(i32.const -1)
)
- (local.get $15)
+ (local.get $18)
)
)
)
(i32.store offset=4
- (local.get $0)
+ (local.get $4)
(i32.or
- (local.tee $7
+ (local.tee $0
(i32.shl
- (local.get $6)
+ (local.get $3)
(i32.const 3)
)
)
(i32.const 3)
)
)
- (local.set $0
- (i32.add
- (local.get $0)
- (local.get $7)
- )
- )
(i32.store offset=4
- (local.get $0)
+ (local.tee $0
+ (i32.add
+ (local.get $0)
+ (local.get $4)
+ )
+ )
(i32.or
(i32.load offset=4
(local.get $0)
@@ -260,14 +249,14 @@
)
)
(return
- (local.get $17)
+ (local.get $6)
)
)
)
(if
(i32.gt_u
- (local.get $8)
- (local.tee $5
+ (local.get $4)
+ (local.tee $0
(i32.load
(i32.const 184)
)
@@ -275,12 +264,12 @@
)
(block
(if
- (local.get $2)
+ (local.get $5)
(block
(local.set $1
(i32.and
(i32.shr_u
- (local.tee $7
+ (local.tee $3
(i32.add
(i32.and
(i32.sub
@@ -290,17 +279,17 @@
(i32.or
(i32.sub
(i32.const 0)
- (local.tee $7
+ (local.tee $1
(i32.shl
(i32.const 2)
(local.get $6)
)
)
)
- (local.get $7)
+ (local.get $1)
)
(i32.shl
- (local.get $2)
+ (local.get $5)
(local.get $6)
)
)
@@ -316,12 +305,12 @@
(i32.const 16)
)
)
- (local.set $7
+ (local.set $3
(i32.and
(i32.shr_u
- (local.tee $10
+ (local.tee $6
(i32.shr_u
- (local.get $7)
+ (local.get $3)
(local.get $1)
)
)
@@ -330,13 +319,13 @@
(i32.const 8)
)
)
- (local.set $10
+ (local.set $6
(i32.and
(i32.shr_u
- (local.tee $0
+ (local.tee $2
(i32.shr_u
- (local.get $10)
- (local.get $7)
+ (local.get $6)
+ (local.get $3)
)
)
(i32.const 2)
@@ -344,13 +333,13 @@
(i32.const 4)
)
)
- (local.set $0
+ (local.set $2
(i32.and
(i32.shr_u
- (local.tee $11
+ (local.tee $5
(i32.shr_u
- (local.get $0)
- (local.get $10)
+ (local.get $2)
+ (local.get $6)
)
)
(i32.const 1)
@@ -358,67 +347,65 @@
(i32.const 2)
)
)
- (local.set $6
- (local.tee $11
- (i32.add
- (i32.shl
- (local.tee $7
- (i32.add
- (i32.or
- (local.tee $11
- (i32.and
- (i32.shr_u
- (local.tee $19
+ (local.set $1
+ (i32.load
+ (local.tee $10
+ (i32.add
+ (local.tee $6
+ (i32.load offset=8
+ (local.tee $3
+ (i32.add
+ (i32.shl
+ (local.tee $2
+ (i32.add
+ (i32.or
+ (local.tee $10
+ (i32.and
+ (i32.shr_u
+ (local.tee $5
+ (i32.shr_u
+ (local.get $5)
+ (local.get $2)
+ )
+ )
+ (i32.const 1)
+ )
+ (i32.const 1)
+ )
+ )
+ (i32.or
+ (local.get $2)
+ (i32.or
+ (local.get $6)
+ (i32.or
+ (local.get $1)
+ (local.get $3)
+ )
+ )
+ )
+ )
(i32.shr_u
- (local.get $11)
- (local.get $0)
+ (local.get $5)
+ (local.get $10)
)
)
- (i32.const 1)
- )
- (i32.const 1)
- )
- )
- (i32.or
- (local.get $0)
- (i32.or
- (local.get $10)
- (i32.or
- (local.get $1)
- (local.get $7)
)
+ (i32.const 3)
)
+ (i32.const 216)
)
)
- (i32.shr_u
- (local.get $19)
- (local.get $11)
- )
)
)
- (i32.const 3)
+ (i32.const 8)
)
- (i32.const 216)
)
)
)
(if
(i32.ne
- (local.tee $1
- (i32.load
- (local.tee $10
- (i32.add
- (local.tee $0
- (i32.load offset=8
- (local.get $6)
- )
- )
- (i32.const 8)
- )
- )
- )
- )
- (local.get $11)
+ (local.get $1)
+ (local.get $3)
)
(block
(if
@@ -430,26 +417,23 @@
)
(call $_abort)
)
- (local.set $2
- (local.get $1)
- )
(if
(i32.eq
- (local.get $0)
+ (local.get $6)
(i32.load offset=12
(local.get $1)
)
)
(block
(i32.store offset=12
- (local.get $2)
- (local.get $11)
+ (local.get $1)
+ (local.get $3)
)
(i32.store offset=8
- (local.get $6)
+ (local.get $3)
(local.get $1)
)
- (local.set $17
+ (local.set $13
(i32.load
(i32.const 184)
)
@@ -465,40 +449,40 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $7)
+ (local.get $2)
)
(i32.const -1)
)
- (local.get $15)
+ (local.get $18)
)
)
- (local.set $17
- (local.get $5)
+ (local.set $13
+ (local.get $0)
)
)
)
(i32.store offset=4
- (local.get $0)
+ (local.get $6)
(i32.or
- (local.get $8)
+ (local.get $4)
(i32.const 3)
)
)
(i32.store offset=4
- (local.tee $15
+ (local.tee $5
(i32.add
- (local.get $0)
- (local.get $8)
+ (local.get $4)
+ (local.get $6)
)
)
(i32.or
- (local.tee $5
+ (local.tee $6
(i32.sub
(i32.shl
- (local.get $7)
+ (local.get $2)
(i32.const 3)
)
- (local.get $8)
+ (local.get $4)
)
)
(i32.const 1)
@@ -507,24 +491,24 @@
(i32.store
(i32.add
(local.get $5)
- (local.get $15)
+ (local.get $6)
)
- (local.get $5)
+ (local.get $6)
)
(if
- (local.get $17)
+ (local.get $13)
(block
- (local.set $1
+ (local.set $3
(i32.load
(i32.const 196)
)
)
- (local.set $11
+ (local.set $0
(i32.add
(i32.shl
- (local.tee $19
+ (local.tee $1
(i32.shr_u
- (local.get $17)
+ (local.get $13)
(i32.const 3)
)
)
@@ -535,25 +519,25 @@
)
(if
(i32.and
- (local.tee $6
+ (local.tee $4
(i32.load
(i32.const 176)
)
)
- (local.tee $2
+ (local.tee $1
(i32.shl
(i32.const 1)
- (local.get $19)
+ (local.get $1)
)
)
)
(if
(i32.lt_u
- (local.tee $17
+ (local.tee $4
(i32.load
- (local.tee $19
+ (local.tee $1
(i32.add
- (local.get $11)
+ (local.get $0)
(i32.const 8)
)
)
@@ -565,11 +549,11 @@
)
(call $_abort)
(block
- (local.set $37
- (local.get $19)
+ (local.set $25
+ (local.get $1)
)
- (local.set $31
- (local.get $17)
+ (local.set $8
+ (local.get $4)
)
)
)
@@ -577,46 +561,46 @@
(i32.store
(i32.const 176)
(i32.or
- (local.get $2)
- (local.get $6)
+ (local.get $1)
+ (local.get $4)
)
)
- (local.set $37
+ (local.set $25
(i32.add
- (local.get $11)
+ (local.get $0)
(i32.const 8)
)
)
- (local.set $31
- (local.get $11)
+ (local.set $8
+ (local.get $0)
)
)
)
(i32.store
- (local.get $37)
- (local.get $1)
+ (local.get $25)
+ (local.get $3)
)
(i32.store offset=12
- (local.get $31)
- (local.get $1)
+ (local.get $8)
+ (local.get $3)
)
(i32.store offset=8
- (local.get $1)
- (local.get $31)
+ (local.get $3)
+ (local.get $8)
)
(i32.store offset=12
- (local.get $1)
- (local.get $11)
+ (local.get $3)
+ (local.get $0)
)
)
)
(i32.store
(i32.const 184)
- (local.get $5)
+ (local.get $6)
)
(i32.store
(i32.const 196)
- (local.get $15)
+ (local.get $5)
)
(return
(local.get $10)
@@ -624,23 +608,23 @@
)
)
(if
- (local.tee $15
+ (local.tee $0
(i32.load
(i32.const 180)
)
)
(block
- (local.set $15
+ (local.set $0
(i32.and
(i32.shr_u
- (local.tee $5
+ (local.tee $1
(i32.add
(i32.and
(i32.sub
(i32.const 0)
- (local.get $15)
+ (local.get $0)
)
- (local.get $15)
+ (local.get $0)
)
(i32.const -1)
)
@@ -650,13 +634,13 @@
(i32.const 16)
)
)
- (local.set $5
+ (local.set $1
(i32.and
(i32.shr_u
- (local.tee $11
+ (local.tee $3
(i32.shr_u
- (local.get $5)
- (local.get $15)
+ (local.get $1)
+ (local.get $0)
)
)
(i32.const 5)
@@ -664,13 +648,13 @@
(i32.const 8)
)
)
- (local.set $11
+ (local.set $3
(i32.and
(i32.shr_u
- (local.tee $1
+ (local.tee $6
(i32.shr_u
- (local.get $11)
- (local.get $5)
+ (local.get $3)
+ (local.get $1)
)
)
(i32.const 2)
@@ -678,13 +662,13 @@
(i32.const 4)
)
)
- (local.set $1
+ (local.set $6
(i32.and
(i32.shr_u
- (local.tee $2
+ (local.tee $8
(i32.shr_u
- (local.get $1)
- (local.get $11)
+ (local.get $6)
+ (local.get $3)
)
)
(i32.const 1)
@@ -692,22 +676,22 @@
(i32.const 2)
)
)
- (local.set $2
+ (local.set $5
(i32.sub
(i32.and
(i32.load offset=4
- (local.tee $17
+ (local.tee $1
(i32.load offset=480
(i32.shl
(i32.add
(i32.or
- (local.tee $2
+ (local.tee $5
(i32.and
(i32.shr_u
- (local.tee $6
+ (local.tee $8
(i32.shr_u
- (local.get $2)
- (local.get $1)
+ (local.get $8)
+ (local.get $6)
)
)
(i32.const 1)
@@ -716,19 +700,19 @@
)
)
(i32.or
- (local.get $1)
+ (local.get $6)
(i32.or
- (local.get $11)
+ (local.get $3)
(i32.or
- (local.get $5)
- (local.get $15)
+ (local.get $0)
+ (local.get $1)
)
)
)
)
(i32.shr_u
- (local.get $6)
- (local.get $2)
+ (local.get $8)
+ (local.get $5)
)
)
(i32.const 2)
@@ -738,70 +722,67 @@
)
(i32.const -8)
)
- (local.get $8)
+ (local.get $4)
)
)
- (local.set $1
- (local.tee $6
- (local.get $17)
- )
+ (local.set $0
+ (local.get $1)
)
(loop $while-in
(block $while-out
- (local.set $11
+ (if
+ (local.tee $3
+ (i32.load offset=16
+ (local.get $1)
+ )
+ )
+ (local.set $1
+ (local.get $3)
+ )
+ (if
+ (i32.eqz
+ (local.tee $1
+ (i32.load offset=20
+ (local.get $1)
+ )
+ )
+ )
+ (block
+ (local.set $8
+ (local.get $0)
+ )
+ (br $while-out)
+ )
+ )
+ )
+ (local.set $3
(i32.lt_u
- (local.tee $17
+ (local.tee $6
(i32.sub
(i32.and
(i32.load offset=4
- (local.tee $6
- (if (result i32)
- (local.tee $17
- (i32.load offset=16
- (local.get $6)
- )
- )
- (local.get $17)
- (if (result i32)
- (local.tee $11
- (i32.load offset=20
- (local.get $6)
- )
- )
- (local.get $11)
- (block
- (local.set $9
- (local.get $2)
- )
- (local.set $5
- (local.get $1)
- )
- (br $while-out)
- )
- )
- )
- )
+ (local.get $1)
)
(i32.const -8)
)
- (local.get $8)
+ (local.get $4)
)
)
- (local.get $2)
+ (local.get $5)
)
)
- (local.set $2
+ (local.set $5
(select
- (local.get $17)
- (local.get $2)
- (local.get $11)
+ (local.get $6)
+ (local.get $5)
+ (local.get $3)
)
)
- (local.set $1
+ (local.set $0
(select
- (local.get $6)
(local.get $1)
- (local.get $11)
+ (local.get $0)
+ (local.get $3)
)
)
(br $while-in)
@@ -809,8 +790,8 @@
)
(if
(i32.lt_u
- (local.get $5)
- (local.tee $1
+ (local.get $8)
+ (local.tee $18
(i32.load
(i32.const 192)
)
@@ -820,104 +801,98 @@
)
(if
(i32.ge_u
- (local.get $5)
- (local.tee $6
+ (local.get $8)
+ (local.tee $14
(i32.add
- (local.get $5)
+ (local.get $4)
(local.get $8)
)
)
)
(call $_abort)
)
- (local.set $2
+ (local.set $10
(i32.load offset=24
- (local.get $5)
+ (local.get $8)
)
)
(if
(i32.eq
- (local.tee $10
+ (local.get $8)
+ (local.tee $0
(i32.load offset=12
- (local.get $5)
+ (local.get $8)
)
)
- (local.get $5)
)
(block $do-once4
- (local.set $4
- (if (result i32)
- (local.tee $7
+ (if
+ (i32.eqz
+ (local.tee $0
(i32.load
- (local.tee $0
+ (local.tee $1
(i32.add
- (local.get $5)
+ (local.get $8)
(i32.const 20)
)
)
)
)
- (block (result i32)
- (local.set $17
- (local.get $7)
- )
- (local.get $0)
- )
- (if (result i32)
- (local.tee $17
+ )
+ (br_if $do-once4
+ (i32.eqz
+ (local.tee $0
(i32.load
- (local.tee $11
+ (local.tee $1
(i32.add
- (local.get $5)
+ (local.get $8)
(i32.const 16)
)
)
)
)
- (local.get $11)
- (br $do-once4)
)
)
)
(loop $while-in7
(if
- (local.tee $7
+ (local.tee $6
(i32.load
- (local.tee $0
+ (local.tee $3
(i32.add
- (local.get $17)
+ (local.get $0)
(i32.const 20)
)
)
)
)
(block
- (local.set $17
- (local.get $7)
+ (local.set $0
+ (local.get $6)
)
- (local.set $4
- (local.get $0)
+ (local.set $1
+ (local.get $3)
)
(br $while-in7)
)
)
(if
- (local.tee $7
+ (local.tee $6
(i32.load
- (local.tee $0
+ (local.tee $3
(i32.add
- (local.get $17)
+ (local.get $0)
(i32.const 16)
)
)
)
)
(block
- (local.set $17
- (local.get $7)
+ (local.set $0
+ (local.get $6)
)
- (local.set $4
- (local.get $0)
+ (local.set $1
+ (local.get $3)
)
(br $while-in7)
)
@@ -925,17 +900,17 @@
)
(if
(i32.lt_u
- (local.get $4)
(local.get $1)
+ (local.get $18)
)
(call $_abort)
(block
(i32.store
- (local.get $4)
+ (local.get $1)
(i32.const 0)
)
- (local.set $19
- (local.get $17)
+ (local.set $2
+ (local.get $0)
)
)
)
@@ -943,48 +918,42 @@
(block
(if
(i32.lt_u
- (local.tee $0
+ (local.tee $1
(i32.load offset=8
- (local.get $5)
+ (local.get $8)
)
)
- (local.get $1)
+ (local.get $18)
)
(call $_abort)
)
- (local.set $1
- (local.get $0)
- )
(if
(i32.ne
- (local.get $5)
+ (local.get $8)
(i32.load offset=12
- (local.get $0)
+ (local.get $1)
)
)
(call $_abort)
)
- (local.set $7
- (local.get $10)
- )
(if
(i32.eq
- (local.get $5)
+ (local.get $8)
(i32.load offset=8
- (local.get $7)
+ (local.get $0)
)
)
(block
(i32.store offset=12
(local.get $1)
- (local.get $10)
+ (local.get $0)
)
(i32.store offset=8
- (local.get $7)
(local.get $0)
+ (local.get $1)
)
- (local.set $19
- (local.get $10)
+ (local.set $2
+ (local.get $0)
)
)
(call $_abort)
@@ -992,33 +961,32 @@
)
)
(if
- (local.get $2)
+ (local.get $10)
(block $do-once8
- (local.set $0
- (i32.shl
- (local.tee $10
- (i32.load offset=28
- (local.get $5)
- )
- )
- (i32.const 2)
- )
- )
(if
(i32.eq
(i32.load offset=480
- (local.get $0)
+ (local.tee $1
+ (i32.shl
+ (local.tee $0
+ (i32.load offset=28
+ (local.get $8)
+ )
+ )
+ (i32.const 2)
+ )
+ )
)
- (local.get $5)
+ (local.get $8)
)
(block
(i32.store offset=480
- (local.get $0)
- (local.get $19)
+ (local.get $1)
+ (local.get $2)
)
(if
(i32.eqz
- (local.get $19)
+ (local.get $2)
)
(block
(i32.store
@@ -1030,7 +998,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $10)
+ (local.get $0)
)
(i32.const -1)
)
@@ -1043,43 +1011,40 @@
(block
(if
(i32.lt_u
- (local.get $2)
+ (local.get $10)
(i32.load
(i32.const 192)
)
)
(call $_abort)
)
- (local.set $0
- (local.get $2)
- )
(if
(i32.eq
- (local.get $5)
+ (local.get $8)
(i32.load offset=16
- (local.get $0)
+ (local.get $10)
)
)
(i32.store offset=16
- (local.get $0)
- (local.get $19)
+ (local.get $10)
+ (local.get $2)
)
(i32.store offset=20
+ (local.get $10)
(local.get $2)
- (local.get $19)
)
)
(br_if $do-once8
(i32.eqz
- (local.get $19)
+ (local.get $2)
)
)
)
)
(if
(i32.lt_u
- (local.get $19)
- (local.tee $10
+ (local.get $2)
+ (local.tee $1
(i32.load
(i32.const 192)
)
@@ -1088,42 +1053,42 @@
(call $_abort)
)
(i32.store offset=24
- (local.get $19)
(local.get $2)
+ (local.get $10)
)
(if
- (local.tee $1
+ (local.tee $0
(i32.load offset=16
- (local.get $5)
+ (local.get $8)
)
)
(if
(i32.lt_u
+ (local.get $0)
(local.get $1)
- (local.get $10)
)
(call $_abort)
(block
(i32.store offset=16
- (local.get $19)
- (local.get $1)
+ (local.get $2)
+ (local.get $0)
)
(i32.store offset=24
- (local.get $1)
- (local.get $19)
+ (local.get $0)
+ (local.get $2)
)
)
)
)
(if
- (local.tee $1
+ (local.tee $0
(i32.load offset=20
- (local.get $5)
+ (local.get $8)
)
)
(if
(i32.lt_u
- (local.get $1)
+ (local.get $0)
(i32.load
(i32.const 192)
)
@@ -1131,12 +1096,12 @@
(call $_abort)
(block
(i32.store offset=20
- (local.get $19)
- (local.get $1)
+ (local.get $2)
+ (local.get $0)
)
(i32.store offset=24
- (local.get $1)
- (local.get $19)
+ (local.get $0)
+ (local.get $2)
)
)
)
@@ -1145,30 +1110,29 @@
)
(if
(i32.lt_u
- (local.get $9)
+ (local.get $5)
(i32.const 16)
)
(block
(i32.store offset=4
- (local.get $5)
+ (local.get $8)
(i32.or
- (local.tee $2
+ (local.tee $0
(i32.add
- (local.get $8)
- (local.get $9)
+ (local.get $4)
+ (local.get $5)
)
)
(i32.const 3)
)
)
- (local.set $0
- (i32.add
- (local.get $2)
- (local.get $5)
- )
- )
(i32.store offset=4
- (local.get $0)
+ (local.tee $0
+ (i32.add
+ (local.get $0)
+ (local.get $8)
+ )
+ )
(i32.or
(i32.load offset=4
(local.get $0)
@@ -1179,44 +1143,44 @@
)
(block
(i32.store offset=4
- (local.get $5)
+ (local.get $8)
(i32.or
- (local.get $8)
+ (local.get $4)
(i32.const 3)
)
)
(i32.store offset=4
- (local.get $6)
+ (local.get $14)
(i32.or
- (local.get $9)
+ (local.get $5)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $6)
- (local.get $9)
+ (local.get $5)
+ (local.get $14)
)
- (local.get $9)
+ (local.get $5)
)
(if
- (local.tee $1
+ (local.tee $0
(i32.load
(i32.const 184)
)
)
(block
- (local.set $2
+ (local.set $3
(i32.load
(i32.const 196)
)
)
- (local.set $1
+ (local.set $0
(i32.add
(i32.shl
- (local.tee $10
+ (local.tee $1
(i32.shr_u
- (local.get $1)
+ (local.get $0)
(i32.const 3)
)
)
@@ -1227,25 +1191,25 @@
)
(if
(i32.and
- (local.tee $0
+ (local.tee $4
(i32.load
(i32.const 176)
)
)
- (local.tee $11
+ (local.tee $1
(i32.shl
(i32.const 1)
- (local.get $10)
+ (local.get $1)
)
)
)
(if
(i32.lt_u
- (local.tee $7
+ (local.tee $4
(i32.load
- (local.tee $10
+ (local.tee $1
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
@@ -1257,11 +1221,11 @@
)
(call $_abort)
(block
- (local.set $38
- (local.get $10)
+ (local.set $19
+ (local.get $1)
)
- (local.set $32
- (local.get $7)
+ (local.set $7
+ (local.get $4)
)
)
)
@@ -1269,52 +1233,52 @@
(i32.store
(i32.const 176)
(i32.or
- (local.get $0)
- (local.get $11)
+ (local.get $1)
+ (local.get $4)
)
)
- (local.set $38
+ (local.set $19
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
- (local.set $32
- (local.get $1)
+ (local.set $7
+ (local.get $0)
)
)
)
(i32.store
- (local.get $38)
- (local.get $2)
+ (local.get $19)
+ (local.get $3)
)
(i32.store offset=12
- (local.get $32)
- (local.get $2)
+ (local.get $7)
+ (local.get $3)
)
(i32.store offset=8
- (local.get $2)
- (local.get $32)
+ (local.get $3)
+ (local.get $7)
)
(i32.store offset=12
- (local.get $2)
- (local.get $1)
+ (local.get $3)
+ (local.get $0)
)
)
)
(i32.store
(i32.const 184)
- (local.get $9)
+ (local.get $5)
)
(i32.store
(i32.const 196)
- (local.get $6)
+ (local.get $14)
)
)
)
(return
(i32.add
- (local.get $5)
+ (local.get $8)
(i32.const 8)
)
)
@@ -1323,16 +1287,16 @@
)
)
)
- (local.set $8
+ (local.set $4
(if (result i32)
(i32.le_u
(local.get $0)
(i32.const -65)
)
(block $do-once (result i32)
- (local.set $2
+ (local.set $5
(i32.and
- (local.tee $1
+ (local.tee $0
(i32.add
(local.get $0)
(i32.const 11)
@@ -1342,162 +1306,157 @@
)
)
(if (result i32)
- (local.tee $11
+ (local.tee $39
(i32.load
(i32.const 180)
)
)
(block (result i32)
- (local.set $0
- (i32.sub
- (i32.const 0)
- (local.get $2)
- )
- )
- (if
- (local.tee $15
- (i32.load offset=480
- (i32.shl
- (local.tee $8
- (if (result i32)
- (local.tee $7
- (i32.shr_u
- (local.get $1)
- (i32.const 8)
- )
- )
- (if (result i32)
- (i32.gt_u
- (local.get $2)
- (i32.const 16777215)
- )
- (i32.const 31)
- (block (result i32)
- (local.set $7
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $10
- (i32.shl
- (local.get $7)
- (local.tee $1
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $7)
- (i32.const 1048320)
- )
- (i32.const 16)
- )
- (i32.const 8)
- )
- )
+ (local.set $19
+ (if (result i32)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 8)
+ )
+ )
+ (if (result i32)
+ (i32.gt_u
+ (local.get $5)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $8
+ (i32.shl
+ (local.get $0)
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $0)
+ (i32.const 1048320)
)
+ (i32.const 16)
)
- (i32.const 520192)
+ (i32.const 8)
)
- (i32.const 16)
)
- (i32.const 4)
)
)
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $2)
- (i32.add
- (local.tee $15
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
- (local.tee $10
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $17
- (i32.shl
- (local.get $10)
- (local.get $7)
- )
- )
- (i32.const 245760)
- )
- (i32.const 16)
- )
- (i32.const 2)
+ (i32.const 520192)
+ )
+ (i32.const 16)
+ )
+ (i32.const 4)
+ )
+ )
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $5)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
+ (i32.or
+ (local.tee $7
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $8
+ (i32.shl
+ (local.get $8)
+ (local.get $0)
)
)
- (i32.or
- (local.get $1)
- (local.get $7)
- )
+ (i32.const 245760)
)
+ (i32.const 16)
)
- (i32.shr_u
- (i32.shl
- (local.get $17)
- (local.get $10)
- )
- (i32.const 15)
- )
+ (i32.const 2)
)
)
- (i32.const 7)
+ (i32.or
+ (local.get $0)
+ (local.get $2)
+ )
)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $15)
- (i32.const 1)
+ (i32.shr_u
+ (i32.shl
+ (local.get $8)
+ (local.get $7)
+ )
+ (i32.const 15)
+ )
)
)
+ (i32.const 7)
)
)
- (i32.const 0)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
)
+ )
+ )
+ (i32.const 0)
+ )
+ )
+ (local.set $2
+ (i32.sub
+ (i32.const 0)
+ (local.get $5)
+ )
+ )
+ (if
+ (local.tee $7
+ (i32.load offset=480
+ (i32.shl
+ (local.get $19)
(i32.const 2)
)
)
)
(block $label$break$L123
- (local.set $10
- (local.get $0)
- )
- (local.set $17
- (i32.const 0)
- )
- (local.set $1
+ (local.set $0
(i32.shl
- (local.get $2)
+ (local.get $5)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (local.get $8)
+ (local.get $19)
(i32.const 1)
)
)
(i32.eq
- (local.get $8)
+ (local.get $19)
(i32.const 31)
)
)
)
)
- (local.set $7
- (local.get $15)
+ (local.set $8
+ (i32.const 0)
)
- (local.set $6
+ (local.set $18
(loop $while-in14 (result i32)
(if
(i32.lt_u
- (local.tee $0
+ (local.tee $13
(i32.sub
- (local.tee $19
+ (local.tee $9
(i32.and
(i32.load offset=4
(local.get $7)
@@ -1505,55 +1464,54 @@
(i32.const -8)
)
)
- (local.get $2)
+ (local.get $5)
)
)
- (local.get $10)
+ (local.get $2)
)
- (local.set $5
+ (local.set $2
(if (result i32)
(i32.eq
- (local.get $2)
- (local.get $19)
+ (local.get $5)
+ (local.get $9)
)
(block
- (local.set $28
- (local.get $0)
+ (local.set $4
+ (local.get $13)
)
- (local.set $25
+ (local.set $20
(local.get $7)
)
- (local.set $29
+ (local.set $6
(local.get $7)
)
- (local.set $10
+ (local.set $9
(i32.const 90)
)
(br $label$break$L123)
)
(block (result i32)
- (local.set $10
- (local.get $0)
+ (local.set $8
+ (local.get $7)
)
- (local.get $7)
+ (local.get $13)
)
)
)
)
- (local.set $19
+ (local.set $13
(select
- (local.get $17)
- (local.tee $0
+ (local.get $25)
+ (local.tee $13
(i32.load offset=20
(local.get $7)
)
)
(i32.or
(i32.eqz
- (local.get $0)
+ (local.get $13)
)
(i32.eq
- (local.get $0)
(local.tee $7
(i32.load
(i32.add
@@ -1563,7 +1521,7 @@
)
(i32.shl
(i32.shr_u
- (local.get $1)
+ (local.get $0)
(i32.const 31)
)
(i32.const 2)
@@ -1571,40 +1529,38 @@
)
)
)
+ (local.get $13)
)
)
)
)
(if (result i32)
- (local.tee $0
+ (local.tee $9
(i32.eqz
(local.get $7)
)
)
(block (result i32)
- (local.set $33
- (local.get $10)
+ (local.set $21
+ (local.get $13)
)
- (local.set $30
- (local.get $5)
+ (local.set $26
+ (local.get $8)
)
- (local.set $10
+ (local.set $9
(i32.const 86)
)
- (local.get $19)
+ (local.get $2)
)
(block
- (local.set $17
- (local.get $19)
+ (local.set $25
+ (local.get $13)
)
- (local.set $1
+ (local.set $0
(i32.shl
- (local.get $1)
+ (local.get $0)
(i32.xor
- (i32.and
- (local.get $0)
- (i32.const 1)
- )
+ (local.get $9)
(i32.const 1)
)
)
@@ -1616,47 +1572,47 @@
)
)
(block
- (local.set $33
- (local.get $0)
+ (local.set $18
+ (local.get $2)
)
- (local.set $10
+ (local.set $9
(i32.const 86)
)
)
)
(if
(i32.eq
- (local.get $10)
+ (local.get $9)
(i32.const 86)
)
(block
(if
(i32.eqz
(i32.or
- (local.get $6)
- (local.get $30)
+ (local.get $21)
+ (local.get $26)
)
)
(block
(drop
(br_if $do-once
- (local.get $2)
+ (local.get $5)
(i32.eqz
(local.tee $0
(i32.and
(i32.or
(i32.sub
(i32.const 0)
- (local.tee $15
+ (local.tee $0
(i32.shl
(i32.const 2)
- (local.get $8)
+ (local.get $19)
)
)
)
- (local.get $15)
+ (local.get $0)
)
- (local.get $11)
+ (local.get $39)
)
)
)
@@ -1665,7 +1621,7 @@
(local.set $0
(i32.and
(i32.shr_u
- (local.tee $15
+ (local.tee $2
(i32.add
(i32.and
(i32.sub
@@ -1682,12 +1638,12 @@
(i32.const 16)
)
)
- (local.set $15
+ (local.set $2
(i32.and
(i32.shr_u
(local.tee $8
(i32.shr_u
- (local.get $15)
+ (local.get $2)
(local.get $0)
)
)
@@ -1699,10 +1655,10 @@
(local.set $8
(i32.and
(i32.shr_u
- (local.tee $6
+ (local.tee $7
(i32.shr_u
(local.get $8)
- (local.get $15)
+ (local.get $2)
)
)
(i32.const 2)
@@ -1710,12 +1666,12 @@
(i32.const 4)
)
)
- (local.set $6
+ (local.set $7
(i32.and
(i32.shr_u
- (local.tee $5
+ (local.tee $13
(i32.shr_u
- (local.get $6)
+ (local.get $7)
(local.get $8)
)
)
@@ -1724,18 +1680,18 @@
(i32.const 2)
)
)
- (local.set $6
+ (local.set $21
(i32.load offset=480
(i32.shl
(i32.add
(i32.or
- (local.tee $5
+ (local.tee $21
(i32.and
(i32.shr_u
- (local.tee $1
+ (local.tee $13
(i32.shr_u
- (local.get $5)
- (local.get $6)
+ (local.get $13)
+ (local.get $7)
)
)
(i32.const 1)
@@ -1744,19 +1700,19 @@
)
)
(i32.or
- (local.get $6)
+ (local.get $7)
(i32.or
(local.get $8)
(i32.or
(local.get $0)
- (local.get $15)
+ (local.get $2)
)
)
)
)
(i32.shr_u
- (local.get $1)
- (local.get $5)
+ (local.get $13)
+ (local.get $21)
)
)
(i32.const 2)
@@ -1766,27 +1722,27 @@
)
)
(if
- (local.get $6)
+ (local.get $21)
(block
- (local.set $28
- (local.get $33)
+ (local.set $4
+ (local.get $18)
)
- (local.set $25
- (local.get $6)
+ (local.set $20
+ (local.get $21)
)
- (local.set $29
- (local.get $30)
+ (local.set $6
+ (local.get $26)
)
- (local.set $10
+ (local.set $9
(i32.const 90)
)
)
(block
- (local.set $4
- (local.get $33)
+ (local.set $11
+ (local.get $18)
)
- (local.set $13
- (local.get $30)
+ (local.set $12
+ (local.get $26)
)
)
)
@@ -1794,98 +1750,81 @@
)
(if
(i32.eq
- (local.get $10)
+ (local.get $9)
(i32.const 90)
)
- (local.set $4
+ (local.set $11
(loop $while-in16 (result i32)
- (local.set $10
+ (local.set $9
(i32.const 0)
)
- (local.set $1
+ (local.set $0
(i32.lt_u
- (local.tee $5
+ (local.tee $2
(i32.sub
(i32.and
(i32.load offset=4
- (local.get $25)
+ (local.get $20)
)
(i32.const -8)
)
- (local.get $2)
+ (local.get $5)
)
)
- (local.get $28)
+ (local.get $4)
)
)
- (local.set $6
+ (local.set $4
(select
- (local.get $5)
- (local.get $28)
- (local.get $1)
+ (local.get $2)
+ (local.get $4)
+ (local.get $0)
)
)
- (local.set $5
+ (local.set $6
(select
- (local.get $25)
- (local.get $29)
- (local.get $1)
+ (local.get $20)
+ (local.get $6)
+ (local.get $0)
)
)
(if
- (local.tee $1
+ (local.tee $0
(i32.load offset=16
- (local.get $25)
+ (local.get $20)
)
)
(block
- (local.set $28
- (local.get $6)
- )
- (local.set $25
- (local.get $1)
- )
- (local.set $29
- (local.get $5)
+ (local.set $20
+ (local.get $0)
)
(br $while-in16)
)
)
- (if (result i32)
- (local.tee $25
+ (br_if $while-in16
+ (local.tee $20
(i32.load offset=20
- (local.get $25)
+ (local.get $20)
)
)
- (block
- (local.set $28
- (local.get $6)
- )
- (local.set $29
- (local.get $5)
- )
- (br $while-in16)
- )
- (block (result i32)
- (local.set $13
- (local.get $5)
- )
- (local.get $6)
- )
)
+ (local.set $12
+ (local.get $6)
+ )
+ (local.get $4)
)
)
)
(if (result i32)
(if (result i32)
- (local.get $13)
+ (local.get $12)
(i32.lt_u
- (local.get $4)
+ (local.get $11)
(i32.sub
(i32.load
(i32.const 184)
)
- (local.get $2)
+ (local.get $5)
)
)
(i32.const 0)
@@ -1893,8 +1832,8 @@
(block
(if
(i32.lt_u
- (local.get $13)
- (local.tee $11
+ (local.get $12)
+ (local.tee $8
(i32.load
(i32.const 192)
)
@@ -1904,11 +1843,11 @@
)
(if
(i32.ge_u
- (local.get $13)
- (local.tee $5
+ (local.get $12)
+ (local.tee $2
(i32.add
- (local.get $2)
- (local.get $13)
+ (local.get $5)
+ (local.get $12)
)
)
)
@@ -1916,92 +1855,86 @@
)
(local.set $6
(i32.load offset=24
- (local.get $13)
+ (local.get $12)
)
)
(if
(i32.eq
- (local.tee $1
+ (local.get $12)
+ (local.tee $0
(i32.load offset=12
- (local.get $13)
+ (local.get $12)
)
)
- (local.get $13)
)
(block $do-once17
- (local.set $1
- (if (result i32)
+ (if
+ (i32.eqz
(local.tee $0
(i32.load
- (local.tee $8
+ (local.tee $1
(i32.add
- (local.get $13)
+ (local.get $12)
(i32.const 20)
)
)
)
)
- (block (result i32)
- (local.set $17
- (local.get $0)
- )
- (local.get $8)
- )
- (if (result i32)
- (local.tee $17
+ )
+ (br_if $do-once17
+ (i32.eqz
+ (local.tee $0
(i32.load
- (local.tee $15
+ (local.tee $1
(i32.add
- (local.get $13)
+ (local.get $12)
(i32.const 16)
)
)
)
)
- (local.get $15)
- (br $do-once17)
)
)
)
(loop $while-in20
(if
- (local.tee $0
+ (local.tee $3
(i32.load
- (local.tee $8
+ (local.tee $4
(i32.add
- (local.get $17)
+ (local.get $0)
(i32.const 20)
)
)
)
)
(block
- (local.set $17
- (local.get $0)
+ (local.set $0
+ (local.get $3)
)
(local.set $1
- (local.get $8)
+ (local.get $4)
)
(br $while-in20)
)
)
(if
- (local.tee $0
+ (local.tee $3
(i32.load
- (local.tee $8
+ (local.tee $4
(i32.add
- (local.get $17)
+ (local.get $0)
(i32.const 16)
)
)
)
)
(block
- (local.set $17
- (local.get $0)
+ (local.set $0
+ (local.get $3)
)
(local.set $1
- (local.get $8)
+ (local.get $4)
)
(br $while-in20)
)
@@ -2010,7 +1943,7 @@
(if
(i32.lt_u
(local.get $1)
- (local.get $11)
+ (local.get $8)
)
(call $_abort)
(block
@@ -2018,8 +1951,8 @@
(local.get $1)
(i32.const 0)
)
- (local.set $9
- (local.get $17)
+ (local.set $15
+ (local.get $0)
)
)
)
@@ -2027,49 +1960,43 @@
(block
(if
(i32.lt_u
- (local.tee $8
+ (local.tee $1
(i32.load offset=8
- (local.get $13)
+ (local.get $12)
)
)
- (local.get $11)
+ (local.get $8)
)
(call $_abort)
)
- (local.set $0
- (local.get $8)
- )
(if
(i32.ne
- (local.get $13)
+ (local.get $12)
(i32.load offset=12
- (local.get $0)
+ (local.get $1)
)
)
(call $_abort)
)
- (local.set $7
- (local.get $1)
- )
(if
(i32.eq
- (local.get $13)
+ (local.get $12)
(i32.load offset=8
- (local.get $1)
+ (local.get $0)
)
)
(block
(i32.store offset=12
- (local.get $0)
(local.get $1)
+ (local.get $0)
)
(i32.store offset=8
- (local.get $7)
- (local.get $8)
- )
- (local.set $9
+ (local.get $0)
(local.get $1)
)
+ (local.set $15
+ (local.get $0)
+ )
)
(call $_abort)
)
@@ -2078,31 +2005,30 @@
(if
(local.get $6)
(block $do-once21
- (local.set $0
- (i32.shl
- (local.tee $1
- (i32.load offset=28
- (local.get $13)
- )
- )
- (i32.const 2)
- )
- )
(if
(i32.eq
(i32.load offset=480
- (local.get $0)
+ (local.tee $1
+ (i32.shl
+ (local.tee $0
+ (i32.load offset=28
+ (local.get $12)
+ )
+ )
+ (i32.const 2)
+ )
+ )
)
- (local.get $13)
+ (local.get $12)
)
(block
(i32.store offset=480
- (local.get $0)
- (local.get $9)
+ (local.get $1)
+ (local.get $15)
)
(if
(i32.eqz
- (local.get $9)
+ (local.get $15)
)
(block
(i32.store
@@ -2114,7 +2040,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $1)
+ (local.get $0)
)
(i32.const -1)
)
@@ -2134,35 +2060,32 @@
)
(call $_abort)
)
- (local.set $0
- (local.get $6)
- )
(if
(i32.eq
- (local.get $13)
+ (local.get $12)
(i32.load offset=16
- (local.get $0)
+ (local.get $6)
)
)
(i32.store offset=16
- (local.get $0)
- (local.get $9)
+ (local.get $6)
+ (local.get $15)
)
(i32.store offset=20
(local.get $6)
- (local.get $9)
+ (local.get $15)
)
)
(br_if $do-once21
(i32.eqz
- (local.get $9)
+ (local.get $15)
)
)
)
)
(if
(i32.lt_u
- (local.get $9)
+ (local.get $15)
(local.tee $1
(i32.load
(i32.const 192)
@@ -2172,42 +2095,42 @@
(call $_abort)
)
(i32.store offset=24
- (local.get $9)
+ (local.get $15)
(local.get $6)
)
(if
- (local.tee $11
+ (local.tee $0
(i32.load offset=16
- (local.get $13)
+ (local.get $12)
)
)
(if
(i32.lt_u
- (local.get $11)
+ (local.get $0)
(local.get $1)
)
(call $_abort)
(block
(i32.store offset=16
- (local.get $9)
- (local.get $11)
+ (local.get $15)
+ (local.get $0)
)
(i32.store offset=24
- (local.get $11)
- (local.get $9)
+ (local.get $0)
+ (local.get $15)
)
)
)
)
(if
- (local.tee $11
+ (local.tee $0
(i32.load offset=20
- (local.get $13)
+ (local.get $12)
)
)
(if
(i32.lt_u
- (local.get $11)
+ (local.get $0)
(i32.load
(i32.const 192)
)
@@ -2215,12 +2138,12 @@
(call $_abort)
(block
(i32.store offset=20
- (local.get $9)
- (local.get $11)
+ (local.get $15)
+ (local.get $0)
)
(i32.store offset=24
- (local.get $11)
- (local.get $9)
+ (local.get $0)
+ (local.get $15)
)
)
)
@@ -2229,47 +2152,47 @@
)
(if
(i32.ge_u
- (local.get $4)
+ (local.get $11)
(i32.const 16)
)
(block $do-once25
(i32.store offset=4
- (local.get $13)
+ (local.get $12)
(i32.or
- (local.get $2)
+ (local.get $5)
(i32.const 3)
)
)
(i32.store offset=4
- (local.get $5)
+ (local.get $2)
(i32.or
- (local.get $4)
+ (local.get $11)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $4)
- (local.get $5)
+ (local.get $2)
+ (local.get $11)
)
- (local.get $4)
+ (local.get $11)
)
- (local.set $6
+ (local.set $1
(i32.shr_u
- (local.get $4)
+ (local.get $11)
(i32.const 3)
)
)
(if
(i32.lt_u
- (local.get $4)
+ (local.get $11)
(i32.const 256)
)
(block
- (local.set $11
+ (local.set $0
(i32.add
(i32.shl
- (local.get $6)
+ (local.get $1)
(i32.const 3)
)
(i32.const 216)
@@ -2277,25 +2200,25 @@
)
(if
(i32.and
- (local.tee $8
- (i32.shl
- (i32.const 1)
- (local.get $6)
+ (local.tee $4
+ (i32.load
+ (i32.const 176)
)
)
(local.tee $1
- (i32.load
- (i32.const 176)
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
)
)
)
(if
(i32.lt_u
- (local.tee $15
+ (local.tee $4
(i32.load
- (local.tee $6
+ (local.tee $1
(i32.add
- (local.get $11)
+ (local.get $0)
(i32.const 8)
)
)
@@ -2307,11 +2230,11 @@
)
(call $_abort)
(block
- (local.set $16
- (local.get $6)
+ (local.set $17
+ (local.get $1)
)
- (local.set $26
- (local.get $15)
+ (local.set $27
+ (local.get $4)
)
)
)
@@ -2320,70 +2243,70 @@
(i32.const 176)
(i32.or
(local.get $1)
- (local.get $8)
+ (local.get $4)
)
)
- (local.set $16
+ (local.set $17
(i32.add
- (local.get $11)
+ (local.get $0)
(i32.const 8)
)
)
- (local.set $26
- (local.get $11)
+ (local.set $27
+ (local.get $0)
)
)
)
(i32.store
- (local.get $16)
- (local.get $5)
+ (local.get $17)
+ (local.get $2)
)
(i32.store offset=12
- (local.get $26)
- (local.get $5)
+ (local.get $27)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $5)
- (local.get $26)
+ (local.get $2)
+ (local.get $27)
)
(i32.store offset=12
- (local.get $5)
- (local.get $11)
+ (local.get $2)
+ (local.get $0)
)
(br $do-once25)
)
)
- (local.set $6
+ (local.set $1
(i32.add
(local.tee $0
(i32.shl
- (local.tee $7
+ (local.tee $6
(if (result i32)
- (local.tee $11
+ (local.tee $0
(i32.shr_u
- (local.get $4)
+ (local.get $11)
(i32.const 8)
)
)
(if (result i32)
(i32.gt_u
- (local.get $4)
+ (local.get $11)
(i32.const 16777215)
)
(i32.const 31)
(block (result i32)
- (local.set $11
+ (local.set $0
(i32.and
(i32.shr_u
(i32.add
- (local.tee $1
+ (local.tee $4
(i32.shl
- (local.get $11)
- (local.tee $8
+ (local.get $0)
+ (local.tee $1
(i32.and
(i32.shr_u
(i32.add
- (local.get $11)
+ (local.get $0)
(i32.const 1048320)
)
(i32.const 16)
@@ -2403,21 +2326,21 @@
(i32.or
(i32.and
(i32.shr_u
- (local.get $4)
+ (local.get $11)
(i32.add
- (local.tee $6
+ (local.tee $0
(i32.add
(i32.sub
(i32.const 14)
(i32.or
- (local.tee $1
+ (local.tee $3
(i32.and
(i32.shr_u
(i32.add
- (local.tee $15
+ (local.tee $4
(i32.shl
- (local.get $1)
- (local.get $11)
+ (local.get $4)
+ (local.get $0)
)
)
(i32.const 245760)
@@ -2428,15 +2351,15 @@
)
)
(i32.or
- (local.get $8)
- (local.get $11)
+ (local.get $0)
+ (local.get $1)
)
)
)
(i32.shr_u
(i32.shl
- (local.get $15)
- (local.get $1)
+ (local.get $4)
+ (local.get $3)
)
(i32.const 15)
)
@@ -2448,7 +2371,7 @@
(i32.const 1)
)
(i32.shl
- (local.get $6)
+ (local.get $0)
(i32.const 1)
)
)
@@ -2464,158 +2387,160 @@
)
)
(i32.store offset=28
- (local.get $5)
- (local.get $7)
+ (local.get $2)
+ (local.get $6)
)
(i32.store offset=20
- (local.get $5)
+ (local.get $2)
(i32.const 0)
)
(i32.store offset=16
- (local.get $5)
+ (local.get $2)
(i32.const 0)
)
(if
(i32.eqz
(i32.and
- (local.tee $15
- (i32.shl
- (i32.const 1)
- (local.get $7)
- )
- )
- (local.tee $1
+ (local.tee $4
(i32.load
(i32.const 180)
)
)
+ (local.tee $3
+ (i32.shl
+ (i32.const 1)
+ (local.get $6)
+ )
+ )
)
)
(block
(i32.store
(i32.const 180)
(i32.or
- (local.get $1)
- (local.get $15)
+ (local.get $3)
+ (local.get $4)
)
)
(i32.store offset=480
(local.get $0)
- (local.get $5)
+ (local.get $2)
)
(i32.store offset=24
- (local.get $5)
- (local.get $6)
+ (local.get $2)
+ (local.get $1)
)
(i32.store offset=12
- (local.get $5)
- (local.get $5)
+ (local.get $2)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $5)
- (local.get $5)
+ (local.get $2)
+ (local.get $2)
)
(br $do-once25)
)
)
- (local.set $15
+ (local.set $3
(i32.shl
- (local.get $4)
+ (local.get $11)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (local.get $7)
+ (local.get $6)
(i32.const 1)
)
)
(i32.eq
- (local.get $7)
+ (local.get $6)
(i32.const 31)
)
)
)
)
- (local.set $1
+ (local.set $0
(i32.load offset=480
(local.get $0)
)
)
- (if
- (i32.eq
- (local.tee $10
- (loop $while-in28 (result i32)
- (block $while-out27 (result i32)
- (if
- (i32.eq
- (local.get $4)
- (i32.and
- (i32.load offset=4
- (local.get $1)
- )
- (i32.const -8)
- )
- )
- (block
- (local.set $14
- (local.get $1)
- )
- (br $while-out27
- (i32.const 148)
- )
- )
+ (loop $while-in28
+ (block $while-out27
+ (if
+ (i32.eq
+ (local.get $11)
+ (i32.and
+ (i32.load offset=4
+ (local.get $0)
)
- (if (result i32)
- (local.tee $8
- (i32.load
- (local.tee $6
- (i32.add
- (i32.add
- (local.get $1)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $15)
- (i32.const 31)
- )
- (i32.const 2)
- )
- )
+ (i32.const -8)
+ )
+ )
+ (block
+ (local.set $22
+ (local.get $0)
+ )
+ (local.set $9
+ (i32.const 148)
+ )
+ (br $while-out27)
+ )
+ )
+ (local.set $31
+ (if (result i32)
+ (local.tee $1
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
)
- )
- )
- (block
- (local.set $15
(i32.shl
- (local.get $15)
- (i32.const 1)
+ (i32.shr_u
+ (local.get $3)
+ (i32.const 31)
+ )
+ (i32.const 2)
)
)
- (local.set $1
- (local.get $8)
- )
- (br $while-in28)
)
- (block (result i32)
- (local.set $23
- (local.get $6)
- )
- (local.set $20
- (local.get $1)
- )
- (i32.const 145)
+ )
+ )
+ (block
+ (local.set $3
+ (i32.shl
+ (local.get $3)
+ (i32.const 1)
)
)
+ (local.set $0
+ (local.get $1)
+ )
+ (br $while-in28)
+ )
+ (block (result i32)
+ (local.set $40
+ (local.get $0)
+ )
+ (local.set $9
+ (i32.const 145)
+ )
+ (local.get $4)
)
)
)
+ )
+ )
+ (if
+ (i32.eq
+ (local.get $9)
(i32.const 145)
)
(if
(i32.lt_u
- (local.get $23)
+ (local.get $31)
(i32.load
(i32.const 192)
)
@@ -2623,100 +2548,96 @@
(call $_abort)
(block
(i32.store
- (local.get $23)
- (local.get $5)
+ (local.get $31)
+ (local.get $2)
)
(i32.store offset=24
- (local.get $5)
- (local.get $20)
+ (local.get $2)
+ (local.get $40)
)
(i32.store offset=12
- (local.get $5)
- (local.get $5)
+ (local.get $2)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $5)
- (local.get $5)
+ (local.get $2)
+ (local.get $2)
)
)
)
(if
(i32.eq
- (local.get $10)
+ (local.get $9)
(i32.const 148)
)
- (block
- (local.set $0
- (local.get $14)
- )
- (if
- (i32.and
- (i32.ge_u
- (local.tee $15
- (i32.load offset=8
- (local.get $0)
- )
- )
- (local.tee $8
- (i32.load
- (i32.const 192)
+ (if
+ (i32.and
+ (i32.ge_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.tee $0
+ (local.get $22)
)
)
)
- (i32.ge_u
- (local.get $0)
- (local.get $8)
+ (local.tee $4
+ (i32.load
+ (i32.const 192)
+ )
)
)
- (block
- (i32.store offset=12
- (local.get $15)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $0)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $15)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $14)
- )
- (i32.store offset=24
- (local.get $5)
- (i32.const 0)
- )
+ (i32.ge_u
+ (local.get $0)
+ (local.get $4)
)
- (call $_abort)
)
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $2)
+ (local.get $1)
+ )
+ (i32.store offset=12
+ (local.get $2)
+ (local.get $22)
+ )
+ (i32.store offset=24
+ (local.get $2)
+ (i32.const 0)
+ )
+ )
+ (call $_abort)
)
)
)
)
(block
(i32.store offset=4
- (local.get $13)
+ (local.get $12)
(i32.or
- (local.tee $15
+ (local.tee $0
(i32.add
- (local.get $2)
- (local.get $4)
+ (local.get $5)
+ (local.get $11)
)
)
(i32.const 3)
)
)
- (local.set $0
- (i32.add
- (local.get $13)
- (local.get $15)
- )
- )
(i32.store offset=4
- (local.get $0)
+ (local.tee $0
+ (i32.add
+ (local.get $0)
+ (local.get $12)
+ )
+ )
(i32.or
(i32.load offset=4
(local.get $0)
@@ -2728,15 +2649,15 @@
)
(return
(i32.add
- (local.get $13)
+ (local.get $12)
(i32.const 8)
)
)
)
- (local.get $2)
+ (local.get $5)
)
)
- (local.get $2)
+ (local.get $5)
)
)
(i32.const -1)
@@ -2745,25 +2666,25 @@
)
(if
(i32.ge_u
- (local.tee $13
+ (local.tee $6
(i32.load
(i32.const 184)
)
)
- (local.get $8)
+ (local.get $4)
)
(block
- (local.set $14
+ (local.set $0
(i32.load
(i32.const 196)
)
)
(if
(i32.gt_u
- (local.tee $4
+ (local.tee $1
(i32.sub
- (local.get $13)
- (local.get $8)
+ (local.get $6)
+ (local.get $4)
)
)
(i32.const 15)
@@ -2771,35 +2692,35 @@
(block
(i32.store
(i32.const 196)
- (local.tee $20
+ (local.tee $3
(i32.add
- (local.get $8)
- (local.get $14)
+ (local.get $0)
+ (local.get $4)
)
)
)
(i32.store
(i32.const 184)
- (local.get $4)
+ (local.get $1)
)
(i32.store offset=4
- (local.get $20)
+ (local.get $3)
(i32.or
- (local.get $4)
+ (local.get $1)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $4)
- (local.get $20)
+ (local.get $1)
+ (local.get $3)
)
- (local.get $4)
+ (local.get $1)
)
(i32.store offset=4
- (local.get $14)
+ (local.get $0)
(i32.or
- (local.get $8)
+ (local.get $4)
(i32.const 3)
)
)
@@ -2814,23 +2735,22 @@
(i32.const 0)
)
(i32.store offset=4
- (local.get $14)
+ (local.get $0)
(i32.or
- (local.get $13)
+ (local.get $6)
(i32.const 3)
)
)
- (local.set $0
- (i32.add
- (local.get $13)
- (local.get $14)
- )
- )
(i32.store offset=4
- (local.get $0)
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (local.get $6)
+ )
+ )
(i32.or
(i32.load offset=4
- (local.get $0)
+ (local.get $1)
)
(i32.const 1)
)
@@ -2839,1956 +2759,1882 @@
)
(return
(i32.add
- (local.get $14)
+ (local.get $0)
(i32.const 8)
)
)
)
)
- (if
- (i32.gt_u
- (local.tee $14
- (i32.load
- (i32.const 188)
+ (block $folding-inner0
+ (br_if $folding-inner0
+ (i32.gt_u
+ (local.tee $0
+ (i32.load
+ (i32.const 188)
+ )
)
+ (local.get $4)
)
- (local.get $8)
)
- (block
- (i32.store
- (i32.const 188)
- (local.tee $4
- (i32.sub
- (local.get $14)
- (local.get $8)
- )
+ (if
+ (i32.eqz
+ (i32.load
+ (i32.const 648)
)
)
- (i32.store
- (i32.const 200)
- (local.tee $13
+ (if
+ (i32.and
+ (local.tee $0
+ (call $_sysconf
+ (i32.const 30)
+ )
+ )
(i32.add
- (local.get $8)
- (local.tee $14
- (i32.load
- (i32.const 200)
+ (local.get $0)
+ (i32.const -1)
+ )
+ )
+ (call $_abort)
+ (block
+ (i32.store
+ (i32.const 656)
+ (local.get $0)
+ )
+ (i32.store
+ (i32.const 652)
+ (local.get $0)
+ )
+ (i32.store
+ (i32.const 660)
+ (i32.const -1)
+ )
+ (i32.store
+ (i32.const 664)
+ (i32.const -1)
+ )
+ (i32.store
+ (i32.const 668)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 620)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 648)
+ (i32.xor
+ (i32.and
+ (call $_time
+ (i32.const 0)
+ )
+ (i32.const -16)
)
+ (i32.const 1431655768)
)
)
)
)
- (i32.store offset=4
- (local.get $13)
- (i32.or
- (local.get $4)
- (i32.const 1)
- )
- )
- (i32.store offset=4
- (local.get $14)
- (i32.or
- (local.get $8)
- (i32.const 3)
- )
- )
- (return
- (i32.add
- (local.get $14)
- (i32.const 8)
- )
- )
)
- )
- (if
- (i32.eqz
- (i32.load
- (i32.const 648)
+ (local.set $22
+ (i32.add
+ (local.get $4)
+ (i32.const 48)
)
)
(if
- (i32.and
- (local.tee $14
- (call $_sysconf
- (i32.const 30)
- )
- )
- (i32.add
- (local.get $14)
- (i32.const -1)
- )
- )
- (call $_abort)
- (block
- (i32.store
- (i32.const 656)
- (local.get $14)
- )
- (i32.store
- (i32.const 652)
- (local.get $14)
- )
- (i32.store
- (i32.const 660)
- (i32.const -1)
- )
- (i32.store
- (i32.const 664)
- (i32.const -1)
- )
- (i32.store
- (i32.const 668)
- (i32.const 0)
- )
- (i32.store
- (i32.const 620)
- (i32.const 0)
- )
- (i32.store
- (i32.const 648)
- (i32.xor
- (i32.and
- (call $_time
+ (i32.le_u
+ (local.tee $11
+ (i32.and
+ (local.tee $2
+ (i32.add
+ (local.tee $0
+ (i32.load
+ (i32.const 656)
+ )
+ )
+ (local.tee $8
+ (i32.add
+ (local.get $4)
+ (i32.const 47)
+ )
+ )
+ )
+ )
+ (local.tee $0
+ (i32.sub
(i32.const 0)
+ (local.get $0)
)
- (i32.const -16)
)
- (i32.const 1431655768)
)
)
+ (local.get $4)
)
- )
- )
- (local.set $14
- (i32.add
- (local.get $8)
- (i32.const 48)
- )
- )
- (local.set $20
- (i32.add
- (local.tee $4
- (i32.load
- (i32.const 656)
- )
- )
- (local.tee $13
- (i32.add
- (local.get $8)
- (i32.const 47)
- )
+ (return
+ (i32.const 0)
)
)
- )
- (if
- (i32.le_u
- (local.tee $4
- (i32.and
- (local.tee $23
- (i32.sub
- (i32.const 0)
- (local.get $4)
- )
+ (if
+ (if (result i32)
+ (local.tee $6
+ (i32.load
+ (i32.const 616)
)
- (local.get $20)
)
- )
- (local.get $8)
- )
- (return
- (i32.const 0)
- )
- )
- (if
- (if (result i32)
- (local.tee $7
- (i32.load
- (i32.const 616)
- )
- )
- (i32.or
- (i32.le_u
- (local.tee $16
- (i32.add
- (local.get $4)
- (local.tee $26
- (i32.load
- (i32.const 608)
+ (i32.or
+ (i32.le_u
+ (local.tee $18
+ (i32.add
+ (local.get $11)
+ (local.tee $7
+ (i32.load
+ (i32.const 608)
+ )
)
)
)
+ (local.get $7)
+ )
+ (i32.gt_u
+ (local.get $18)
+ (local.get $6)
)
- (local.get $26)
- )
- (i32.gt_u
- (local.get $16)
- (local.get $7)
)
+ (i32.const 0)
+ )
+ (return
+ (i32.const 0)
)
- (i32.const 0)
- )
- (return
- (i32.const 0)
)
- )
- (if
- (block (result i32)
- (if
+ (if
+ (if (result i32)
(if (result i32)
- (if (result i32)
- (select
- (i32.lt_u
- (local.get $4)
- (i32.const 2147483647)
- )
- (i32.const 0)
- (i32.eq
- (local.tee $10
- (if (result i32)
- (i32.and
- (i32.load
- (i32.const 620)
- )
- (i32.const 4)
+ (select
+ (i32.lt_u
+ (local.get $11)
+ (i32.const 2147483647)
+ )
+ (i32.const 0)
+ (i32.eq
+ (local.tee $9
+ (if (result i32)
+ (i32.and
+ (i32.load
+ (i32.const 620)
)
- (i32.const 190)
- (block $label$break$L257 (result i32)
- (if
- (local.tee $7
- (i32.load
- (i32.const 200)
- )
+ (i32.const 4)
+ )
+ (i32.const 190)
+ (block $label$break$L257 (result i32)
+ (if
+ (local.tee $6
+ (i32.load
+ (i32.const 200)
)
- (block $label$break$L259
- (local.set $16
- (i32.const 624)
- )
- (loop $while-in34
- (block $while-out33
- (if
- (if (result i32)
- (i32.le_u
- (local.tee $26
- (i32.load
- (local.get $16)
- )
+ )
+ (block $label$break$L259
+ (local.set $17
+ (i32.const 624)
+ )
+ (loop $while-in34
+ (if
+ (i32.eqz
+ (if (result i32)
+ (i32.le_u
+ (local.tee $7
+ (i32.load
+ (local.get $17)
)
- (local.get $7)
)
- (i32.gt_u
- (i32.add
- (i32.load
- (local.tee $9
- (i32.add
- (local.get $16)
- (i32.const 4)
- )
+ (local.get $6)
+ )
+ (i32.gt_u
+ (i32.add
+ (i32.load
+ (local.tee $15
+ (i32.add
+ (local.get $17)
+ (i32.const 4)
)
)
- (local.get $26)
)
(local.get $7)
)
- (i32.const 0)
- )
- (block
- (local.set $6
- (local.get $16)
- )
- (local.set $1
- (local.get $9)
- )
- (br $while-out33)
+ (local.get $6)
)
+ (i32.const 0)
)
+ )
+ (block
(br_if $while-in34
- (local.tee $16
+ (local.tee $17
(i32.load offset=8
- (local.get $16)
+ (local.get $17)
)
)
)
- (local.set $10
+ (local.set $9
(i32.const 173)
)
(br $label$break$L259)
)
)
- (if
- (i32.lt_u
- (local.tee $16
- (i32.and
- (local.get $23)
- (i32.sub
- (local.get $20)
- (i32.load
- (i32.const 188)
- )
+ )
+ (if
+ (i32.lt_u
+ (local.tee $2
+ (i32.and
+ (local.get $0)
+ (i32.sub
+ (local.get $2)
+ (i32.load
+ (i32.const 188)
)
)
)
- (i32.const 2147483647)
)
- (block
- (local.set $9
- (call $_sbrk
- (local.get $16)
- )
+ (i32.const 2147483647)
+ )
+ (block
+ (local.set $0
+ (call $_sbrk
+ (local.get $2)
)
- (if
- (i32.eq
- (i32.add
- (i32.load
- (local.get $6)
- )
- (i32.load
- (local.get $1)
- )
- )
- (local.get $9)
- )
- (if
- (i32.ne
- (local.get $9)
- (i32.const -1)
+ )
+ (if
+ (i32.eq
+ (i32.add
+ (i32.load
+ (local.get $17)
)
- (block
- (local.set $21
- (local.get $9)
- )
- (local.set $22
- (local.get $16)
- )
- (br $label$break$L257
- (i32.const 193)
- )
+ (i32.load
+ (local.get $15)
)
)
+ (local.get $0)
+ )
+ (if
+ (i32.ne
+ (local.get $0)
+ (i32.const -1)
+ )
(block
- (local.set $12
- (local.get $9)
- )
- (local.set $18
- (local.get $16)
+ (local.set $3
+ (local.get $0)
)
(local.set $10
- (i32.const 183)
+ (local.get $2)
+ )
+ (br $label$break$L257
+ (i32.const 193)
)
)
)
+ (block
+ (local.set $14
+ (local.get $0)
+ )
+ (local.set $23
+ (local.get $2)
+ )
+ (local.set $9
+ (i32.const 183)
+ )
+ )
)
)
)
- (local.set $10
+ )
+ (local.set $9
+ (i32.const 173)
+ )
+ )
+ (if
+ (if (result i32)
+ (i32.eq
+ (local.get $9)
(i32.const 173)
)
- )
- (if
- (if (result i32)
- (i32.eq
- (local.get $10)
- (i32.const 173)
- )
- (i32.ne
- (local.tee $7
- (call $_sbrk
- (i32.const 0)
- )
+ (i32.ne
+ (local.tee $6
+ (call $_sbrk
+ (i32.const 0)
)
- (i32.const -1)
)
- (i32.const 0)
+ (i32.const -1)
)
- (block $do-once35
- (local.set $0
- (if (result i32)
- (i32.and
- (local.tee $2
- (local.get $7)
- )
- (local.tee $9
- (i32.add
- (local.tee $16
- (i32.load
- (i32.const 652)
+ (i32.const 0)
+ )
+ (block $do-once35
+ (local.set $5
+ (i32.add
+ (local.tee $0
+ (if (result i32)
+ (i32.and
+ (local.tee $0
+ (local.get $6)
+ )
+ (local.tee $5
+ (i32.add
+ (local.tee $2
+ (i32.load
+ (i32.const 652)
+ )
)
+ (i32.const -1)
)
- (i32.const -1)
)
)
- )
- (i32.add
- (i32.sub
- (local.get $4)
- (local.get $2)
- )
- (i32.and
- (i32.add
- (local.get $2)
- (local.get $9)
- )
+ (i32.add
(i32.sub
- (i32.const 0)
- (local.get $16)
+ (local.get $11)
+ (local.get $0)
+ )
+ (i32.and
+ (i32.add
+ (local.get $0)
+ (local.get $5)
+ )
+ (i32.sub
+ (i32.const 0)
+ (local.get $2)
+ )
)
)
+ (local.get $11)
)
- (local.get $4)
)
- )
- (local.set $2
- (i32.add
- (local.tee $16
- (i32.load
- (i32.const 608)
- )
+ (local.tee $2
+ (i32.load
+ (i32.const 608)
)
- (local.get $0)
)
)
- (if
- (i32.and
- (i32.lt_u
- (local.get $0)
- (i32.const 2147483647)
- )
- (i32.gt_u
- (local.get $0)
- (local.get $8)
- )
+ )
+ (if
+ (i32.and
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 2147483647)
)
- (block
- (br_if $do-once35
- (select
- (i32.or
- (i32.le_u
- (local.get $2)
- (local.get $16)
- )
- (i32.gt_u
- (local.get $2)
- (local.tee $9
- (i32.load
- (i32.const 616)
- )
+ (i32.gt_u
+ (local.get $0)
+ (local.get $4)
+ )
+ )
+ (block
+ (br_if $do-once35
+ (select
+ (i32.or
+ (i32.le_u
+ (local.get $5)
+ (local.get $2)
+ )
+ (i32.gt_u
+ (local.get $5)
+ (local.tee $2
+ (i32.load
+ (i32.const 616)
)
)
)
- (i32.const 0)
- (local.get $9)
)
+ (i32.const 0)
+ (local.get $2)
)
- (local.set $10
- (if (result i32)
- (i32.eq
- (local.tee $9
- (call $_sbrk
- (local.get $0)
- )
- )
- (local.get $7)
- )
- (block
- (local.set $21
- (local.get $7)
- )
- (local.set $22
+ )
+ (local.set $14
+ (if (result i32)
+ (i32.eq
+ (local.get $6)
+ (local.tee $2
+ (call $_sbrk
(local.get $0)
)
- (br $label$break$L257
- (i32.const 193)
- )
)
- (block (result i32)
- (local.set $12
- (local.get $9)
- )
- (local.set $18
- (local.get $0)
- )
+ )
+ (block
+ (local.set $3
+ (local.get $6)
+ )
+ (local.set $10
+ (local.get $0)
+ )
+ (br $label$break$L257
+ (i32.const 193)
+ )
+ )
+ (block (result i32)
+ (local.set $23
+ (local.get $0)
+ )
+ (local.set $9
(i32.const 183)
)
+ (local.get $2)
)
)
)
)
)
)
- (if
- (i32.eq
- (local.get $10)
- (i32.const 183)
- )
- (block $label$break$L279
- (local.set $9
- (i32.sub
- (i32.const 0)
- (local.get $18)
- )
+ )
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 183)
+ )
+ (block $label$break$L279
+ (local.set $0
+ (i32.sub
+ (i32.const 0)
+ (local.get $23)
)
- (local.set $3
+ )
+ (local.set $1
+ (if (result i32)
(if (result i32)
- (if (result i32)
+ (i32.and
(i32.and
- (i32.and
- (i32.ne
- (local.get $12)
- (i32.const -1)
- )
- (i32.lt_u
- (local.get $18)
- (i32.const 2147483647)
- )
- )
- (i32.gt_u
+ (i32.ne
(local.get $14)
- (local.get $18)
+ (i32.const -1)
+ )
+ (i32.lt_u
+ (local.get $23)
+ (i32.const 2147483647)
)
)
- (i32.lt_u
- (local.tee $2
- (i32.and
- (i32.add
- (local.tee $7
- (i32.load
- (i32.const 656)
- )
- )
- (i32.sub
- (local.get $13)
- (local.get $18)
+ (i32.gt_u
+ (local.get $22)
+ (local.get $23)
+ )
+ )
+ (i32.lt_u
+ (local.tee $5
+ (i32.and
+ (i32.add
+ (local.tee $6
+ (i32.load
+ (i32.const 656)
)
)
(i32.sub
- (i32.const 0)
- (local.get $7)
+ (local.get $8)
+ (local.get $23)
)
)
+ (i32.sub
+ (i32.const 0)
+ (local.get $6)
+ )
)
- (i32.const 2147483647)
)
- (i32.const 0)
+ (i32.const 2147483647)
)
- (if (result i32)
- (i32.eq
- (call $_sbrk
- (local.get $2)
- )
- (i32.const -1)
+ (i32.const 0)
+ )
+ (if (result i32)
+ (i32.eq
+ (call $_sbrk
+ (local.get $5)
)
- (block
- (drop
- (call $_sbrk
- (local.get $9)
- )
+ (i32.const -1)
+ )
+ (block
+ (drop
+ (call $_sbrk
+ (local.get $0)
)
- (br $label$break$L279)
- )
- (i32.add
- (local.get $2)
- (local.get $18)
)
+ (br $label$break$L279)
+ )
+ (i32.add
+ (local.get $5)
+ (local.get $23)
)
- (local.get $18)
)
+ (local.get $23)
)
- (if
- (i32.ne
- (local.get $12)
- (i32.const -1)
+ )
+ (if
+ (i32.ne
+ (local.get $14)
+ (i32.const -1)
+ )
+ (block
+ (local.set $3
+ (local.get $14)
)
- (block
- (local.set $21
- (local.get $12)
- )
- (local.set $22
- (local.get $3)
- )
- (br $label$break$L257
- (i32.const 193)
- )
+ (local.set $10
+ (local.get $1)
+ )
+ (br $label$break$L257
+ (i32.const 193)
)
)
)
)
- (i32.store
- (i32.const 620)
- (i32.or
- (i32.load
- (i32.const 620)
- )
- (i32.const 4)
+ )
+ (i32.store
+ (i32.const 620)
+ (i32.or
+ (i32.load
+ (i32.const 620)
)
+ (i32.const 4)
)
- (i32.const 190)
)
+ (i32.const 190)
)
)
- (i32.const 190)
)
+ (i32.const 190)
)
+ )
+ (i32.and
(i32.and
- (i32.and
- (i32.ne
- (local.tee $3
- (call $_sbrk
- (local.get $4)
- )
+ (i32.ne
+ (local.tee $1
+ (call $_sbrk
+ (local.get $11)
)
- (i32.const -1)
)
- (i32.ne
- (local.tee $4
- (call $_sbrk
- (i32.const 0)
- )
+ (i32.const -1)
+ )
+ (i32.ne
+ (local.tee $11
+ (call $_sbrk
+ (i32.const 0)
)
- (i32.const -1)
)
- )
- (i32.lt_u
- (local.get $3)
- (local.get $4)
- )
- )
- (i32.const 0)
- )
- (i32.gt_u
- (local.tee $12
- (i32.sub
- (local.get $4)
- (local.get $3)
+ (i32.const -1)
)
)
- (i32.add
- (local.get $8)
- (i32.const 40)
+ (i32.lt_u
+ (local.get $1)
+ (local.get $11)
)
)
(i32.const 0)
)
- (block
- (local.set $21
- (local.get $3)
- )
- (local.set $22
- (local.get $12)
+ (i32.gt_u
+ (local.tee $14
+ (i32.sub
+ (local.get $11)
+ (local.get $1)
+ )
)
- (local.set $10
- (i32.const 193)
+ (i32.add
+ (local.get $4)
+ (i32.const 40)
)
)
+ (i32.const 0)
)
+ (block
+ (local.set $10
+ (local.get $14)
+ )
+ (local.set $9
+ (i32.const 193)
+ )
+ (local.set $3
+ (local.get $1)
+ )
+ )
+ )
+ (if
(i32.eq
- (local.get $10)
+ (local.get $9)
(i32.const 193)
)
- )
- (block
- (i32.store
- (i32.const 608)
- (local.tee $12
- (i32.add
- (local.get $22)
- (i32.load
- (i32.const 608)
+ (block
+ (i32.store
+ (i32.const 608)
+ (local.tee $0
+ (i32.add
+ (local.get $10)
+ (i32.load
+ (i32.const 608)
+ )
)
)
)
- )
- (if
- (i32.gt_u
- (local.get $12)
- (i32.load
- (i32.const 612)
+ (if
+ (i32.gt_u
+ (local.get $0)
+ (i32.load
+ (i32.const 612)
+ )
)
- )
- (i32.store
- (i32.const 612)
- (local.get $12)
- )
- )
- (if
- (local.tee $12
- (i32.load
- (i32.const 200)
+ (i32.store
+ (i32.const 612)
+ (local.get $0)
)
)
- (block $do-once40
- (local.set $3
- (i32.const 624)
+ (if
+ (local.tee $7
+ (i32.load
+ (i32.const 200)
+ )
)
- (loop $do-in
- (block $do-out
- (if
- (i32.eq
- (i32.add
- (local.tee $4
- (i32.load
- (local.get $3)
+ (block $do-once40
+ (local.set $1
+ (i32.const 624)
+ )
+ (loop $do-in
+ (block $do-out
+ (if
+ (i32.eq
+ (i32.add
+ (local.tee $0
+ (i32.load
+ (local.get $1)
+ )
)
- )
- (local.tee $13
- (i32.load
- (local.tee $18
- (i32.add
- (local.get $3)
- (i32.const 4)
+ (local.tee $2
+ (i32.load
+ (local.tee $6
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
+ )
)
)
)
)
- )
- (local.get $21)
- )
- (block
- (local.set $46
- (local.get $4)
- )
- (local.set $47
- (local.get $18)
- )
- (local.set $48
- (local.get $13)
- )
- (local.set $49
(local.get $3)
)
- (local.set $10
- (i32.const 203)
+ (block
+ (local.set $41
+ (local.get $0)
+ )
+ (local.set $42
+ (local.get $6)
+ )
+ (local.set $43
+ (local.get $2)
+ )
+ (local.set $44
+ (local.get $1)
+ )
+ (local.set $9
+ (i32.const 203)
+ )
+ (br $do-out)
)
- (br $do-out)
)
- )
- (br_if $do-in
- (local.tee $3
- (i32.load offset=8
- (local.get $3)
+ (br_if $do-in
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $1)
+ )
)
)
)
)
- )
- (if
- (if (result i32)
+ (if
(if (result i32)
- (i32.eq
- (local.get $10)
- (i32.const 203)
- )
- (i32.eqz
- (i32.and
- (i32.load offset=12
- (local.get $49)
+ (if (result i32)
+ (i32.eq
+ (local.get $9)
+ (i32.const 203)
+ )
+ (i32.eqz
+ (i32.and
+ (i32.load offset=12
+ (local.get $44)
+ )
+ (i32.const 8)
)
- (i32.const 8)
)
+ (i32.const 0)
)
- (i32.const 0)
- )
- (i32.and
- (i32.lt_u
- (local.get $12)
- (local.get $21)
- )
- (i32.ge_u
- (local.get $12)
- (local.get $46)
+ (i32.and
+ (i32.lt_u
+ (local.get $7)
+ (local.get $3)
+ )
+ (i32.ge_u
+ (local.get $7)
+ (local.get $41)
+ )
)
+ (i32.const 0)
)
- (i32.const 0)
- )
- (block
- (i32.store
- (local.get $47)
- (i32.add
- (local.get $22)
- (local.get $48)
+ (block
+ (i32.store
+ (local.get $42)
+ (i32.add
+ (local.get $10)
+ (local.get $43)
+ )
)
- )
- (local.set $3
- (i32.add
- (local.tee $13
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $3
- (i32.add
- (local.get $12)
- (i32.const 8)
+ (local.set $0
+ (i32.add
+ (local.get $7)
+ (local.tee $1
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $0
+ (i32.add
+ (local.get $7)
+ (i32.const 8)
+ )
)
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $0)
+ (i32.const 7)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $3)
- (i32.const 7)
)
)
)
- (local.get $12)
)
- )
- (local.set $18
- (i32.add
- (i32.load
- (i32.const 188)
- )
- (i32.sub
- (local.get $22)
- (local.get $13)
+ (local.set $1
+ (i32.add
+ (i32.load
+ (i32.const 188)
+ )
+ (i32.sub
+ (local.get $10)
+ (local.get $1)
+ )
)
)
- )
- (i32.store
- (i32.const 200)
- (local.get $3)
- )
- (i32.store
- (i32.const 188)
- (local.get $18)
- )
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $18)
- (i32.const 1)
+ (i32.store
+ (i32.const 200)
+ (local.get $0)
)
- )
- (i32.store offset=4
- (i32.add
- (local.get $3)
- (local.get $18)
+ (i32.store
+ (i32.const 188)
+ (local.get $1)
)
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
+ (i32.store offset=4
+ (local.get $0)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
)
+ (i32.store offset=4
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ (i32.const 40)
+ )
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
+ )
+ )
+ (br $do-once40)
)
- (br $do-once40)
)
- )
- (local.set $5
- (if (result i32)
+ (if
(i32.lt_u
- (local.get $21)
- (local.tee $18
+ (local.get $3)
+ (local.tee $6
(i32.load
(i32.const 192)
)
)
)
- (block (result i32)
+ (block
(i32.store
(i32.const 192)
- (local.get $21)
+ (local.get $3)
+ )
+ (local.set $6
+ (local.get $3)
)
- (local.get $21)
)
- (local.get $18)
)
- )
- (local.set $18
- (i32.add
- (local.get $21)
- (local.get $22)
+ (local.set $0
+ (i32.add
+ (local.get $3)
+ (local.get $10)
+ )
)
- )
- (local.set $3
- (i32.const 624)
- )
- (loop $while-in43
- (block $while-out42
- (if
- (i32.eq
- (local.get $18)
- (i32.load
- (local.get $3)
- )
- )
- (block
- (local.set $50
- (local.get $3)
- )
- (local.set $34
- (local.get $3)
+ (local.set $1
+ (i32.const 624)
+ )
+ (loop $while-in43
+ (block $while-out42
+ (if
+ (i32.eq
+ (local.get $0)
+ (i32.load
+ (local.get $1)
+ )
)
- (local.set $10
- (i32.const 211)
+ (block
+ (local.set $45
+ (local.get $1)
+ )
+ (local.set $28
+ (local.get $1)
+ )
+ (local.set $9
+ (i32.const 211)
+ )
+ (br $while-out42)
)
- (br $while-out42)
)
- )
- (br_if $while-in43
- (local.tee $3
- (i32.load offset=8
- (local.get $3)
+ (br_if $while-in43
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $1)
+ )
)
)
- )
- (local.set $27
- (i32.const 624)
+ (local.set $24
+ (i32.const 624)
+ )
)
)
- )
- (if
- (i32.eq
- (local.get $10)
- (i32.const 211)
- )
- (local.set $27
- (if (result i32)
- (i32.and
- (i32.load offset=12
- (local.get $34)
- )
- (i32.const 8)
- )
- (i32.const 624)
- (block
- (i32.store
- (local.get $50)
- (local.get $21)
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 211)
+ )
+ (local.set $24
+ (if (result i32)
+ (i32.and
+ (i32.load offset=12
+ (local.get $28)
+ )
+ (i32.const 8)
)
- (i32.store offset=4
- (local.get $34)
- (i32.add
- (local.get $22)
- (i32.load offset=4
- (local.get $34)
+ (i32.const 624)
+ (block
+ (i32.store
+ (local.get $45)
+ (local.get $3)
+ )
+ (i32.store offset=4
+ (local.get $28)
+ (i32.add
+ (local.get $10)
+ (i32.load offset=4
+ (local.get $28)
+ )
)
)
- )
- (local.set $13
- (i32.add
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $3
- (i32.add
- (local.get $21)
- (i32.const 8)
+ (local.set $5
+ (i32.add
+ (local.get $4)
+ (local.tee $14
+ (i32.add
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
)
)
+ (local.get $3)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $3)
- (i32.const 7)
)
)
- (local.get $21)
)
- )
- (local.set $4
- (i32.add
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $3
- (i32.add
- (local.get $18)
- (i32.const 8)
+ (local.set $8
+ (i32.sub
+ (i32.sub
+ (local.tee $2
+ (i32.add
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
+ )
)
+ (local.get $0)
)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $3)
- (i32.const 7)
+ (local.get $14)
)
+ (local.get $4)
)
- (local.get $18)
- )
- )
- (local.set $3
- (i32.add
- (local.get $8)
- (local.get $13)
)
- )
- (local.set $14
- (i32.sub
- (i32.sub
+ (i32.store offset=4
+ (local.get $14)
+ (i32.or
(local.get $4)
- (local.get $13)
+ (i32.const 3)
)
- (local.get $8)
- )
- )
- (i32.store offset=4
- (local.get $13)
- (i32.or
- (local.get $8)
- (i32.const 3)
- )
- )
- (if
- (i32.ne
- (local.get $4)
- (local.get $12)
)
- (block $do-once44
- (if
- (i32.eq
- (i32.load
- (i32.const 196)
+ (if
+ (i32.ne
+ (local.get $2)
+ (local.get $7)
+ )
+ (block $do-once44
+ (if
+ (i32.eq
+ (i32.load
+ (i32.const 196)
+ )
+ (local.get $2)
)
- (local.get $4)
- )
- (block
- (i32.store
- (i32.const 184)
- (local.tee $0
- (i32.add
- (local.get $14)
- (i32.load
- (i32.const 184)
+ (block
+ (i32.store
+ (i32.const 184)
+ (local.tee $0
+ (i32.add
+ (local.get $8)
+ (i32.load
+ (i32.const 184)
+ )
)
)
)
- )
- (i32.store
- (i32.const 196)
- (local.get $3)
- )
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $0)
- (i32.const 1)
- )
- )
- (i32.store
- (i32.add
- (local.get $0)
- (local.get $3)
+ (i32.store
+ (i32.const 196)
+ (local.get $5)
)
- (local.get $0)
- )
- (br $do-once44)
- )
- )
- (if
- (i32.eq
- (i32.and
- (local.tee $0
- (i32.load offset=4
- (local.get $4)
+ (i32.store offset=4
+ (local.get $5)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
)
)
- (i32.const 3)
- )
- (i32.const 1)
- )
- (block
- (local.set $1
- (i32.and
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (local.get $5)
+ )
(local.get $0)
- (i32.const -8)
)
+ (br $do-once44)
)
- (local.set $6
- (i32.shr_u
- (local.get $0)
- (i32.const 3)
+ )
+ (local.set $4
+ (if (result i32)
+ (i32.eq
+ (i32.and
+ (local.tee $0
+ (i32.load offset=4
+ (local.get $2)
+ )
+ )
+ (i32.const 3)
+ )
+ (i32.const 1)
)
- )
- (block $label$break$L331
- (if
- (i32.ge_u
- (local.get $0)
- (i32.const 256)
+ (block (result i32)
+ (local.set $7
+ (i32.and
+ (local.get $0)
+ (i32.const -8)
+ )
)
- (block
- (local.set $23
- (i32.load offset=24
- (local.get $4)
- )
+ (local.set $3
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 3)
)
+ )
+ (block $label$break$L331
(if
- (i32.eq
- (local.get $4)
- (local.tee $20
- (i32.load offset=12
- (local.get $4)
+ (i32.ge_u
+ (local.get $0)
+ (i32.const 256)
+ )
+ (block
+ (local.set $10
+ (i32.load offset=24
+ (local.get $2)
)
)
- )
- (block $do-once47
- (local.set $0
- (if (result i32)
- (local.tee $7
- (i32.load
- (local.tee $2
- (i32.add
- (local.tee $9
- (i32.add
- (local.get $4)
- (i32.const 16)
+ (if
+ (i32.eq
+ (local.get $2)
+ (local.tee $0
+ (i32.load offset=12
+ (local.get $2)
+ )
+ )
+ )
+ (block $do-once47
+ (if
+ (local.tee $0
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (local.tee $1
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
)
+ (i32.const 4)
)
- (i32.const 4)
)
)
)
- )
- (block (result i32)
- (local.set $9
- (local.get $2)
+ (local.set $1
+ (local.get $4)
)
- (local.get $7)
- )
- (if (result i32)
- (local.tee $16
- (i32.load
- (local.get $9)
+ (br_if $do-once47
+ (i32.eqz
+ (local.tee $0
+ (i32.load
+ (local.get $1)
+ )
+ )
)
)
- (local.get $16)
- (br $do-once47)
)
- )
- )
- (loop $while-in50
- (if
- (local.tee $7
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $0)
- (i32.const 20)
+ (loop $while-in50
+ (if
+ (local.tee $3
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (local.get $0)
+ (i32.const 20)
+ )
+ )
)
)
+ (block
+ (local.set $0
+ (local.get $3)
+ )
+ (local.set $1
+ (local.get $4)
+ )
+ (br $while-in50)
+ )
+ )
+ (if
+ (local.tee $3
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ )
+ )
+ )
+ (block
+ (local.set $0
+ (local.get $3)
+ )
+ (local.set $1
+ (local.get $4)
+ )
+ (br $while-in50)
+ )
)
)
- (block
- (local.set $0
- (local.get $7)
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (local.get $6)
)
- (local.set $9
- (local.get $2)
+ (call $_abort)
+ (block
+ (i32.store
+ (local.get $1)
+ (i32.const 0)
+ )
+ (local.set $16
+ (local.get $0)
+ )
)
- (br $while-in50)
)
)
- (if
- (local.tee $7
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $0)
- (i32.const 16)
+ (block
+ (if
+ (i32.lt_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $2)
)
)
+ (local.get $6)
)
+ (call $_abort)
)
- (block
- (local.set $0
- (local.get $7)
+ (if
+ (i32.ne
+ (local.get $2)
+ (i32.load offset=12
+ (local.get $1)
+ )
)
- (local.set $9
+ (call $_abort)
+ )
+ (if
+ (i32.eq
(local.get $2)
+ (i32.load offset=8
+ (local.get $0)
+ )
+ )
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $16
+ (local.get $0)
+ )
)
- (br $while-in50)
+ (call $_abort)
)
)
)
+ (br_if $label$break$L331
+ (i32.eqz
+ (local.get $10)
+ )
+ )
(if
- (i32.lt_u
- (local.get $9)
- (local.get $5)
+ (i32.ne
+ (i32.load offset=480
+ (local.tee $1
+ (i32.shl
+ (local.tee $0
+ (i32.load offset=28
+ (local.get $2)
+ )
+ )
+ (i32.const 2)
+ )
+ )
+ )
+ (local.get $2)
)
- (call $_abort)
(block
- (i32.store
- (local.get $9)
- (i32.const 0)
+ (if
+ (i32.lt_u
+ (local.get $10)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
)
- (local.set $24
- (local.get $0)
+ (if
+ (i32.eq
+ (local.get $2)
+ (i32.load offset=16
+ (local.get $10)
+ )
+ )
+ (i32.store offset=16
+ (local.get $10)
+ (local.get $16)
+ )
+ (i32.store offset=20
+ (local.get $10)
+ (local.get $16)
+ )
+ )
+ (br_if $label$break$L331
+ (i32.eqz
+ (local.get $16)
+ )
)
)
- )
- )
- (block
- (if
- (i32.lt_u
- (local.tee $2
- (i32.load offset=8
- (local.get $4)
+ (block $do-once51
+ (i32.store offset=480
+ (local.get $1)
+ (local.get $16)
+ )
+ (br_if $do-once51
+ (local.get $16)
+ )
+ (i32.store
+ (i32.const 180)
+ (i32.and
+ (i32.load
+ (i32.const 180)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
+ (i32.const -1)
+ )
)
)
- (local.get $5)
+ (br $label$break$L331)
)
- (call $_abort)
- )
- (local.set $0
- (local.get $2)
)
(if
- (i32.ne
- (local.get $4)
- (i32.load offset=12
- (local.get $0)
+ (i32.lt_u
+ (local.get $16)
+ (local.tee $1
+ (i32.load
+ (i32.const 192)
+ )
)
)
(call $_abort)
)
- (local.set $6
- (local.get $20)
+ (i32.store offset=24
+ (local.get $16)
+ (local.get $10)
)
(if
- (i32.eq
- (local.get $4)
- (i32.load offset=8
- (local.get $6)
+ (local.tee $0
+ (i32.load offset=16
+ (local.get $2)
)
)
- (block
- (i32.store offset=12
+ (if
+ (i32.lt_u
(local.get $0)
- (local.get $20)
- )
- (i32.store offset=8
- (local.get $6)
- (local.get $2)
+ (local.get $1)
)
- (local.set $24
- (local.get $20)
+ (call $_abort)
+ (block
+ (i32.store offset=16
+ (local.get $16)
+ (local.get $0)
+ )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $16)
+ )
)
)
- (call $_abort)
)
- )
- )
- (br_if $label$break$L331
- (i32.eqz
- (local.get $23)
- )
- )
- (local.set $0
- (i32.shl
- (local.tee $20
- (i32.load offset=28
- (local.get $4)
+ (br_if $label$break$L331
+ (i32.eqz
+ (local.tee $0
+ (i32.load offset=20
+ (local.get $2)
+ )
+ )
)
)
- (i32.const 2)
- )
- )
- (if
- (i32.ne
- (i32.load offset=480
- (local.get $0)
- )
- (local.get $4)
- )
- (block
(if
(i32.lt_u
- (local.get $23)
+ (local.get $0)
(i32.load
(i32.const 192)
)
)
(call $_abort)
- )
- (local.set $0
- (local.get $23)
- )
- (if
- (i32.eq
- (local.get $4)
- (i32.load offset=16
+ (block
+ (i32.store offset=20
+ (local.get $16)
(local.get $0)
)
- )
- (i32.store offset=16
- (local.get $0)
- (local.get $24)
- )
- (i32.store offset=20
- (local.get $23)
- (local.get $24)
- )
- )
- (br_if $label$break$L331
- (i32.eqz
- (local.get $24)
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $16)
+ )
)
)
)
- (block $do-once51
- (i32.store offset=480
- (local.get $0)
- (local.get $24)
- )
- (br_if $do-once51
- (local.get $24)
+ (block
+ (local.set $1
+ (i32.load offset=12
+ (local.get $2)
+ )
)
- (i32.store
- (i32.const 180)
- (i32.and
- (i32.load
- (i32.const 180)
+ (if
+ (i32.ne
+ (local.tee $4
+ (i32.load offset=8
+ (local.get $2)
+ )
)
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $20)
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.get $3)
+ (i32.const 3)
+ )
+ (i32.const 216)
)
- (i32.const -1)
)
)
- )
- (br $label$break$L331)
- )
- )
- (if
- (i32.lt_u
- (local.get $24)
- (local.tee $20
- (i32.load
- (i32.const 192)
- )
- )
- )
- (call $_abort)
- )
- (i32.store offset=24
- (local.get $24)
- (local.get $23)
- )
- (local.set $0
- (local.get $4)
- )
- (if
- (local.tee $9
- (i32.load offset=16
- (local.get $0)
- )
- )
- (if
- (i32.lt_u
- (local.get $9)
- (local.get $20)
- )
- (call $_abort)
- (block
- (i32.store offset=16
- (local.get $24)
- (local.get $9)
- )
- (i32.store offset=24
- (local.get $9)
- (local.get $24)
- )
- )
- )
- )
- (br_if $label$break$L331
- (i32.eqz
- (local.tee $9
- (i32.load offset=20
- (local.get $0)
- )
- )
- )
- )
- (if
- (i32.lt_u
- (local.get $9)
- (i32.load
- (i32.const 192)
- )
- )
- (call $_abort)
- (block
- (i32.store offset=20
- (local.get $24)
- (local.get $9)
- )
- (i32.store offset=24
- (local.get $9)
- (local.get $24)
- )
- )
- )
- )
- (block
- (local.set $20
- (i32.load offset=12
- (local.get $4)
- )
- )
- (if
- (i32.ne
- (local.tee $9
- (i32.load offset=8
- (local.get $4)
- )
- )
- (local.tee $23
- (i32.add
- (i32.shl
- (local.get $6)
- (i32.const 3)
+ (block $do-once55
+ (if
+ (i32.lt_u
+ (local.get $4)
+ (local.get $6)
+ )
+ (call $_abort)
)
- (i32.const 216)
+ (br_if $do-once55
+ (i32.eq
+ (local.get $2)
+ (i32.load offset=12
+ (local.get $4)
+ )
+ )
+ )
+ (call $_abort)
)
)
- )
- (block $do-once55
(if
- (i32.lt_u
- (local.get $9)
- (local.get $5)
- )
- (call $_abort)
- )
- (br_if $do-once55
(i32.eq
+ (local.get $1)
(local.get $4)
- (i32.load offset=12
- (local.get $9)
- )
)
- )
- (call $_abort)
- )
- )
- (if
- (i32.eq
- (local.get $9)
- (local.get $20)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.and
- (i32.load
+ (block
+ (i32.store
(i32.const 176)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $6)
+ (i32.and
+ (i32.load
+ (i32.const 176)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $3)
+ )
+ (i32.const -1)
+ )
)
- (i32.const -1)
)
+ (br $label$break$L331)
)
)
- (br $label$break$L331)
- )
- )
- (if
- (i32.eq
- (local.get $20)
- (local.get $23)
- )
- (local.set $39
- (i32.add
- (local.get $20)
- (i32.const 8)
- )
- )
- (block $do-once57
- (if
- (i32.lt_u
- (local.get $20)
- (local.get $5)
- )
- (call $_abort)
- )
(if
(i32.eq
- (local.get $4)
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $20)
- (i32.const 8)
- )
- )
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $32
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
)
)
- (block
- (local.set $39
- (local.get $2)
+ (block $do-once57
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (local.get $6)
+ )
+ (call $_abort)
+ )
+ (if
+ (i32.eq
+ (local.get $2)
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
+ )
+ )
+ )
+ (block
+ (local.set $32
+ (local.get $0)
+ )
+ (br $do-once57)
+ )
)
- (br $do-once57)
+ (call $_abort)
)
)
- (call $_abort)
+ (i32.store offset=12
+ (local.get $4)
+ (local.get $1)
+ )
+ (i32.store
+ (local.get $32)
+ (local.get $4)
+ )
)
)
- (i32.store offset=12
- (local.get $9)
- (local.get $20)
- )
- (i32.store
- (local.get $39)
- (local.get $9)
+ )
+ (local.set $2
+ (i32.add
+ (local.get $2)
+ (local.get $7)
)
)
+ (i32.add
+ (local.get $7)
+ (local.get $8)
+ )
)
+ (local.get $8)
)
- (local.set $4
- (i32.add
- (local.get $1)
- (local.get $4)
- )
- )
- (local.set $14
- (i32.add
- (local.get $1)
- (local.get $14)
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.and
+ (i32.load offset=4
+ (local.get $2)
)
+ (i32.const -2)
)
)
- )
- (i32.store offset=4
- (local.get $4)
- (i32.and
- (i32.load offset=4
+ (i32.store offset=4
+ (local.get $5)
+ (i32.or
(local.get $4)
+ (i32.const 1)
)
- (i32.const -2)
- )
- )
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $14)
- (i32.const 1)
)
- )
- (i32.store
- (i32.add
- (local.get $3)
- (local.get $14)
- )
- (local.get $14)
- )
- (local.set $6
- (i32.shr_u
- (local.get $14)
- (i32.const 3)
+ (i32.store
+ (i32.add
+ (local.get $4)
+ (local.get $5)
+ )
+ (local.get $4)
)
- )
- (if
- (i32.lt_u
- (local.get $14)
- (i32.const 256)
+ (local.set $1
+ (i32.shr_u
+ (local.get $4)
+ (i32.const 3)
+ )
)
- (block
- (local.set $0
- (i32.add
- (i32.shl
- (local.get $6)
- (i32.const 3)
- )
- (i32.const 216)
- )
+ (if
+ (i32.lt_u
+ (local.get $4)
+ (i32.const 256)
)
- (if
- (i32.and
- (local.tee $2
+ (block
+ (local.set $0
+ (i32.add
(i32.shl
- (i32.const 1)
- (local.get $6)
+ (local.get $1)
+ (i32.const 3)
)
+ (i32.const 216)
)
- (local.tee $23
- (i32.load
- (i32.const 176)
+ )
+ (if
+ (i32.and
+ (local.tee $4
+ (i32.load
+ (i32.const 176)
+ )
+ )
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
)
)
- )
- (block $do-once59
- (if
- (i32.ge_u
- (local.tee $7
- (i32.load
- (local.tee $6
- (i32.add
- (local.get $0)
- (i32.const 8)
+ (block $do-once59
+ (if
+ (i32.ge_u
+ (local.tee $4
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
)
)
)
+ (i32.load
+ (i32.const 192)
+ )
)
- (i32.load
- (i32.const 192)
+ (block
+ (local.set $33
+ (local.get $1)
+ )
+ (local.set $29
+ (local.get $4)
+ )
+ (br $do-once59)
)
)
- (block
- (local.set $40
- (local.get $6)
- )
- (local.set $35
- (local.get $7)
+ (call $_abort)
+ )
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (local.get $1)
+ (local.get $4)
)
- (br $do-once59)
)
- )
- (call $_abort)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (local.get $2)
- (local.get $23)
+ (local.set $33
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
)
- )
- (local.set $40
- (i32.add
+ (local.set $29
(local.get $0)
- (i32.const 8)
)
)
- (local.set $35
- (local.get $0)
- )
)
+ (i32.store
+ (local.get $33)
+ (local.get $5)
+ )
+ (i32.store offset=12
+ (local.get $29)
+ (local.get $5)
+ )
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $29)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $0)
+ )
+ (br $do-once44)
)
- (i32.store
- (local.get $40)
- (local.get $3)
- )
- (i32.store offset=12
- (local.get $35)
- (local.get $3)
- )
- (i32.store offset=8
- (local.get $3)
- (local.get $35)
- )
- (i32.store offset=12
- (local.get $3)
- (local.get $0)
- )
- (br $do-once44)
)
- )
- (local.set $2
- (i32.add
- (local.tee $6
- (i32.shl
- (local.tee $1
- (if (result i32)
- (local.tee $2
- (i32.shr_u
- (local.get $14)
- (i32.const 8)
- )
- )
+ (local.set $3
+ (i32.add
+ (local.tee $1
+ (i32.shl
+ (local.tee $0
(if (result i32)
- (i32.gt_u
- (local.get $14)
- (i32.const 16777215)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $4)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $7
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $1
- (i32.shl
- (local.get $2)
- (local.tee $23
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $2)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $4)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $0)
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $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 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $14)
- (i32.add
- (local.tee $16
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
- (local.tee $1
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $6
- (i32.shl
- (local.get $1)
- (local.get $7)
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $4)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
+ (i32.or
+ (local.tee $6
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $3)
+ (local.get $0)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
)
- )
- (i32.or
- (local.get $7)
- (local.get $23)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
+ )
)
)
- )
- (i32.shr_u
- (i32.shl
- (local.get $6)
- (local.get $1)
+ (i32.shr_u
+ (i32.shl
+ (local.get $3)
+ (local.get $6)
+ )
+ (i32.const 15)
)
- (i32.const 15)
)
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $16)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
+ (i32.const 2)
)
- (i32.const 2)
)
+ (i32.const 480)
)
- (i32.const 480)
)
- )
- (i32.store offset=28
- (local.get $3)
- (local.get $1)
- )
- (i32.store offset=20
- (local.get $3)
- (i32.const 0)
- )
- (i32.store offset=16
- (local.get $3)
- (i32.const 0)
- )
- (if
- (i32.eqz
- (i32.and
- (local.tee $16
- (i32.shl
- (i32.const 1)
- (local.get $1)
+ (i32.store offset=28
+ (local.get $5)
+ (local.get $0)
+ )
+ (i32.store offset=20
+ (local.get $5)
+ (i32.const 0)
+ )
+ (i32.store offset=16
+ (local.get $5)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (local.tee $6
+ (i32.load
+ (i32.const 180)
+ )
)
- )
- (local.tee $0
- (i32.load
- (i32.const 180)
+ (local.tee $2
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
)
)
)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.or
- (local.get $0)
- (local.get $16)
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.or
+ (local.get $2)
+ (local.get $6)
+ )
)
+ (i32.store offset=480
+ (local.get $1)
+ (local.get $5)
+ )
+ (i32.store offset=24
+ (local.get $5)
+ (local.get $3)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $5)
+ )
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $5)
+ )
+ (br $do-once44)
)
- (i32.store offset=480
- (local.get $6)
- (local.get $3)
- )
- (i32.store offset=24
- (local.get $3)
- (local.get $2)
- )
- (i32.store offset=12
- (local.get $3)
- (local.get $3)
- )
- (i32.store offset=8
- (local.get $3)
- (local.get $3)
- )
- (br $do-once44)
)
- )
- (local.set $16
- (i32.shl
- (local.get $14)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
- (local.get $1)
- (i32.const 1)
+ (local.set $17
+ (i32.shl
+ (local.get $4)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ (i32.eq
+ (local.get $0)
+ (i32.const 31)
)
- )
- (i32.eq
- (local.get $1)
- (i32.const 31)
)
)
)
- )
- (local.set $0
- (i32.load offset=480
- (local.get $6)
+ (local.set $0
+ (i32.load offset=480
+ (local.get $1)
+ )
)
- )
- (if
- (i32.eq
- (local.tee $10
- (loop $while-in64 (result i32)
- (block $while-out63 (result i32)
- (if
- (i32.eq
- (local.get $14)
- (i32.and
- (i32.load offset=4
- (local.get $0)
- )
- (i32.const -8)
- )
- )
- (block
- (local.set $41
- (local.get $0)
- )
- (br $while-out63
- (i32.const 281)
- )
+ (loop $while-in64
+ (block $while-out63
+ (if
+ (i32.eq
+ (local.get $4)
+ (i32.and
+ (i32.load offset=4
+ (local.get $0)
)
+ (i32.const -8)
)
- (if (result i32)
- (local.tee $1
- (i32.load
- (local.tee $2
+ )
+ (block
+ (local.set $34
+ (local.get $0)
+ )
+ (local.set $9
+ (i32.const 281)
+ )
+ (br $while-out63)
+ )
+ )
+ (local.set $35
+ (if (result i32)
+ (local.tee $1
+ (i32.load
+ (local.tee $3
+ (i32.add
(i32.add
- (i32.add
- (local.get $0)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $16)
- (i32.const 31)
- )
- (i32.const 2)
+ (local.get $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $17)
+ (i32.const 31)
)
+ (i32.const 2)
)
)
)
)
- (block
- (local.set $16
- (i32.shl
- (local.get $16)
- (i32.const 1)
- )
- )
- (local.set $0
- (local.get $1)
+ )
+ (block
+ (local.set $17
+ (i32.shl
+ (local.get $17)
+ (i32.const 1)
)
- (br $while-in64)
)
- (block (result i32)
- (local.set $42
- (local.get $2)
- )
- (local.set $51
- (local.get $0)
- )
+ (local.set $0
+ (local.get $1)
+ )
+ (br $while-in64)
+ )
+ (block (result i32)
+ (local.set $46
+ (local.get $0)
+ )
+ (local.set $9
(i32.const 278)
)
+ (local.get $3)
)
)
)
)
- (i32.const 278)
)
(if
- (i32.lt_u
- (local.get $42)
- (i32.load
- (i32.const 192)
- )
+ (i32.eq
+ (local.get $9)
+ (i32.const 278)
)
- (call $_abort)
- (block
- (i32.store
- (local.get $42)
- (local.get $3)
- )
- (i32.store offset=24
- (local.get $3)
- (local.get $51)
- )
- (i32.store offset=12
- (local.get $3)
- (local.get $3)
+ (if
+ (i32.lt_u
+ (local.get $35)
+ (i32.load
+ (i32.const 192)
+ )
)
- (i32.store offset=8
- (local.get $3)
- (local.get $3)
+ (call $_abort)
+ (block
+ (i32.store
+ (local.get $35)
+ (local.get $5)
+ )
+ (i32.store offset=24
+ (local.get $5)
+ (local.get $46)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $5)
+ )
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $5)
+ )
)
)
- )
- (if
- (i32.eq
- (local.get $10)
- (i32.const 281)
- )
- (block
- (local.set $0
- (local.get $41)
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 281)
)
(if
(i32.and
(i32.ge_u
- (local.tee $16
+ (local.tee $1
(i32.load offset=8
- (local.get $0)
+ (local.tee $0
+ (local.get $34)
+ )
)
)
- (local.tee $1
+ (local.tee $4
(i32.load
(i32.const 192)
)
@@ -4796,28 +4642,28 @@
)
(i32.ge_u
(local.get $0)
- (local.get $1)
+ (local.get $4)
)
)
(block
(i32.store offset=12
- (local.get $16)
- (local.get $3)
+ (local.get $1)
+ (local.get $5)
)
(i32.store offset=8
(local.get $0)
- (local.get $3)
+ (local.get $5)
)
(i32.store offset=8
- (local.get $3)
- (local.get $16)
+ (local.get $5)
+ (local.get $1)
)
(i32.store offset=12
- (local.get $3)
- (local.get $41)
+ (local.get $5)
+ (local.get $34)
)
(i32.store offset=24
- (local.get $3)
+ (local.get $5)
(i32.const 0)
)
)
@@ -4826,694 +4672,685 @@
)
)
)
- )
- (block
- (i32.store
- (i32.const 188)
- (local.tee $16
- (i32.add
- (local.get $14)
- (i32.load
- (i32.const 188)
+ (block
+ (i32.store
+ (i32.const 188)
+ (local.tee $0
+ (i32.add
+ (local.get $8)
+ (i32.load
+ (i32.const 188)
+ )
)
)
)
+ (i32.store
+ (i32.const 200)
+ (local.get $5)
+ )
+ (i32.store offset=4
+ (local.get $5)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
)
- (i32.store
- (i32.const 200)
- (local.get $3)
+ )
+ (return
+ (i32.add
+ (local.get $14)
+ (i32.const 8)
)
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $16)
- (i32.const 1)
+ )
+ )
+ )
+ )
+ )
+ (loop $while-in66
+ (if
+ (i32.eqz
+ (if (result i32)
+ (i32.le_u
+ (local.tee $0
+ (i32.load
+ (local.get $24)
)
)
+ (local.get $7)
)
+ (i32.gt_u
+ (local.tee $22
+ (i32.add
+ (i32.load offset=4
+ (local.get $24)
+ )
+ (local.get $0)
+ )
+ )
+ (local.get $7)
+ )
+ (i32.const 0)
)
- (return
- (i32.add
- (local.get $13)
- (i32.const 8)
+ )
+ (block
+ (local.set $24
+ (i32.load offset=8
+ (local.get $24)
)
)
+ (br $while-in66)
)
)
)
- )
- (local.set $3
- (i32.add
- (local.tee $1
- (local.tee $13
- (select
- (local.get $12)
- (local.tee $3
- (i32.add
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $14
- (i32.add
- (local.tee $13
- (i32.add
- (local.tee $0
- (loop $while-in66 (result i32)
- (if (result i32)
- (if (result i32)
- (i32.le_u
- (local.tee $3
- (i32.load
- (local.get $27)
- )
- )
- (local.get $12)
- )
- (i32.gt_u
- (local.tee $14
- (i32.add
- (i32.load offset=4
- (local.get $27)
- )
- (local.get $3)
- )
- )
- (local.get $12)
- )
- (i32.const 0)
- )
- (local.get $14)
- (block
- (local.set $27
- (i32.load offset=8
- (local.get $27)
- )
- )
- (br $while-in66)
- )
- )
- )
- )
- (i32.const -47)
- )
- )
- (i32.const 8)
- )
- )
- )
- (i32.const 7)
- )
+ (i32.store
+ (i32.const 200)
+ (local.tee $0
+ (i32.add
+ (local.get $3)
+ (local.tee $1
+ (select
+ (i32.and
+ (i32.sub
(i32.const 0)
- (i32.and
- (local.get $14)
- (i32.const 7)
+ (local.tee $0
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
)
)
- (local.get $13)
+ (i32.const 7)
)
- )
- (i32.lt_u
- (local.get $3)
- (local.tee $14
- (i32.add
- (local.get $12)
- (i32.const 16)
- )
+ (i32.const 0)
+ (i32.and
+ (local.get $0)
+ (i32.const 7)
)
)
)
)
)
- (i32.const 8)
)
- )
- (i32.store
- (i32.const 200)
- (local.tee $4
+ (i32.store
+ (i32.const 188)
+ (local.tee $1
+ (i32.sub
+ (i32.add
+ (local.get $10)
+ (i32.const -40)
+ )
+ (local.get $1)
+ )
+ )
+ )
+ (i32.store offset=4
+ (local.get $0)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4
(i32.add
- (local.get $21)
- (local.tee $18
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $4
- (i32.add
- (local.get $21)
- (i32.const 8)
+ (local.get $0)
+ (local.get $1)
+ )
+ (i32.const 40)
+ )
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
+ )
+ )
+ (i32.store offset=4
+ (local.tee $0
+ (select
+ (local.get $7)
+ (local.tee $0
+ (i32.add
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (local.get $22)
+ (i32.const -47)
+ )
+ )
+ (i32.const 8)
+ )
+ )
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
)
)
- (i32.const 7)
+ (local.get $0)
)
- (i32.const 0)
- (i32.and
- (local.get $4)
- (i32.const 7)
+ )
+ (i32.lt_u
+ (local.get $0)
+ (local.tee $2
+ (i32.add
+ (local.get $7)
+ (i32.const 16)
+ )
)
)
)
)
+ (i32.const 27)
)
- )
- (i32.store
- (i32.const 188)
- (local.tee $16
- (i32.sub
- (i32.add
- (local.get $22)
- (i32.const -40)
- )
- (local.get $18)
+ (i32.store offset=8
+ (local.get $0)
+ (i32.load
+ (i32.const 624)
)
)
- )
- (i32.store offset=4
- (local.get $4)
- (i32.or
- (local.get $16)
- (i32.const 1)
+ (i32.store offset=12
+ (local.get $0)
+ (i32.load
+ (i32.const 628)
+ )
)
- )
- (i32.store offset=4
- (i32.add
- (local.get $4)
- (local.get $16)
+ (i32.store offset=16
+ (local.get $0)
+ (i32.load
+ (i32.const 632)
+ )
)
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
+ (i32.store offset=20
+ (local.get $0)
+ (i32.load
+ (i32.const 636)
+ )
)
- )
- (local.set $2
- (local.get $13)
- )
- (i32.store offset=4
- (local.get $2)
- (i32.const 27)
- )
- (i32.store offset=8
- (local.get $1)
- (i32.load
+ (i32.store
(i32.const 624)
+ (local.get $3)
)
- )
- (i32.store offset=12
- (local.get $1)
- (i32.load
+ (i32.store
(i32.const 628)
+ (local.get $10)
)
- )
- (i32.store offset=16
- (local.get $1)
- (i32.load
- (i32.const 632)
- )
- )
- (i32.store offset=20
- (local.get $1)
- (i32.load
+ (i32.store
(i32.const 636)
+ (i32.const 0)
)
- )
- (i32.store
- (i32.const 624)
- (local.get $21)
- )
- (i32.store
- (i32.const 628)
- (local.get $22)
- )
- (i32.store
- (i32.const 636)
- (i32.const 0)
- )
- (i32.store
- (i32.const 632)
- (local.get $3)
- )
- (local.set $3
- (i32.add
- (local.get $2)
- (i32.const 24)
- )
- )
- (loop $do-in68
(i32.store
- (local.tee $3
- (i32.add
- (local.get $3)
- (i32.const 4)
- )
+ (i32.const 632)
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
)
- (i32.const 7)
)
- (br_if $do-in68
- (i32.lt_u
- (i32.add
- (local.get $3)
- (i32.const 4)
- )
+ (local.set $1
+ (i32.add
(local.get $0)
+ (i32.const 24)
)
)
- )
- (if
- (i32.ne
- (local.get $12)
- (local.get $13)
- )
- (block
- (i32.store offset=4
- (local.get $2)
- (i32.and
- (i32.load offset=4
- (local.get $2)
+ (loop $do-in68
+ (i32.store
+ (local.tee $1
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
)
- (i32.const -2)
)
+ (i32.const 7)
)
- (i32.store offset=4
- (local.get $12)
- (i32.or
- (local.tee $3
- (i32.sub
- (local.get $13)
- (local.get $12)
- )
+ (br_if $do-in68
+ (i32.lt_u
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
)
- (i32.const 1)
+ (local.get $22)
)
)
- (i32.store
- (local.get $13)
- (local.get $3)
- )
- (local.set $4
- (i32.shr_u
- (local.get $3)
- (i32.const 3)
- )
+ )
+ (if
+ (i32.ne
+ (local.get $0)
+ (local.get $7)
)
- (if
- (i32.lt_u
- (local.get $3)
- (i32.const 256)
+ (block
+ (i32.store offset=4
+ (local.get $0)
+ (i32.and
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const -2)
+ )
)
- (block
- (local.set $18
- (i32.add
- (i32.shl
- (local.get $4)
- (i32.const 3)
+ (i32.store offset=4
+ (local.get $7)
+ (i32.or
+ (local.tee $6
+ (i32.sub
+ (local.get $0)
+ (local.get $7)
)
- (i32.const 216)
)
+ (i32.const 1)
)
- (if
- (i32.and
- (local.tee $1
+ )
+ (i32.store
+ (local.get $0)
+ (local.get $6)
+ )
+ (local.set $1
+ (i32.shr_u
+ (local.get $6)
+ (i32.const 3)
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $6)
+ (i32.const 256)
+ )
+ (block
+ (local.set $0
+ (i32.add
(i32.shl
- (i32.const 1)
- (local.get $4)
- )
- )
- (local.tee $0
- (i32.load
- (i32.const 176)
+ (local.get $1)
+ (i32.const 3)
)
+ (i32.const 216)
)
)
(if
- (i32.lt_u
- (local.tee $2
+ (i32.and
+ (local.tee $3
(i32.load
- (local.tee $4
- (i32.add
- (local.get $18)
- (i32.const 8)
+ (i32.const 176)
+ )
+ )
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.tee $3
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
)
)
)
+ (i32.load
+ (i32.const 192)
+ )
)
- (i32.load
- (i32.const 192)
+ (call $_abort)
+ (block
+ (local.set $36
+ (local.get $1)
+ )
+ (local.set $30
+ (local.get $3)
+ )
)
)
- (call $_abort)
(block
- (local.set $43
- (local.get $4)
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (local.get $1)
+ (local.get $3)
+ )
)
(local.set $36
- (local.get $2)
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
)
- )
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
+ (local.set $30
(local.get $0)
- (local.get $1)
)
)
- (local.set $43
- (i32.add
- (local.get $18)
- (i32.const 8)
- )
- )
- (local.set $36
- (local.get $18)
- )
)
+ (i32.store
+ (local.get $36)
+ (local.get $7)
+ )
+ (i32.store offset=12
+ (local.get $30)
+ (local.get $7)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $30)
+ )
+ (i32.store offset=12
+ (local.get $7)
+ (local.get $0)
+ )
+ (br $do-once40)
)
- (i32.store
- (local.get $43)
- (local.get $12)
- )
- (i32.store offset=12
- (local.get $36)
- (local.get $12)
- )
- (i32.store offset=8
- (local.get $12)
- (local.get $36)
- )
- (i32.store offset=12
- (local.get $12)
- (local.get $18)
- )
- (br $do-once40)
)
- )
- (local.set $4
- (i32.add
- (local.tee $6
- (i32.shl
- (local.tee $1
- (if (result i32)
- (local.tee $18
- (i32.shr_u
- (local.get $3)
- (i32.const 8)
- )
- )
+ (local.set $3
+ (i32.add
+ (local.tee $1
+ (i32.shl
+ (local.tee $0
(if (result i32)
- (i32.gt_u
- (local.get $3)
- (i32.const 16777215)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $6)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $18
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $18)
- (local.tee $1
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $18)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $6)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $0)
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $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 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $3)
- (i32.add
- (local.tee $4
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
- (local.tee $0
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $2
- (i32.shl
- (local.get $0)
- (local.get $18)
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $6)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
+ (i32.or
+ (local.tee $8
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $3)
+ (local.get $0)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
)
- )
- (i32.or
- (local.get $1)
- (local.get $18)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
+ )
)
)
- )
- (i32.shr_u
- (i32.shl
- (local.get $2)
- (local.get $0)
+ (i32.shr_u
+ (i32.shl
+ (local.get $3)
+ (local.get $8)
+ )
+ (i32.const 15)
)
- (i32.const 15)
)
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $4)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
+ (i32.const 2)
)
- (i32.const 2)
)
+ (i32.const 480)
)
- (i32.const 480)
)
- )
- (i32.store offset=28
- (local.get $12)
- (local.get $1)
- )
- (i32.store offset=20
- (local.get $12)
- (i32.const 0)
- )
- (i32.store
- (local.get $14)
- (i32.const 0)
- )
- (if
- (i32.eqz
- (i32.and
- (local.tee $2
- (i32.shl
- (i32.const 1)
- (local.get $1)
+ (i32.store offset=28
+ (local.get $7)
+ (local.get $0)
+ )
+ (i32.store offset=20
+ (local.get $7)
+ (i32.const 0)
+ )
+ (i32.store
+ (local.get $2)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (local.tee $2
+ (i32.load
+ (i32.const 180)
+ )
)
- )
- (local.tee $0
- (i32.load
- (i32.const 180)
+ (local.tee $8
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
)
)
)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.or
- (local.get $0)
- (local.get $2)
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.or
+ (local.get $2)
+ (local.get $8)
+ )
)
+ (i32.store offset=480
+ (local.get $1)
+ (local.get $7)
+ )
+ (i32.store offset=24
+ (local.get $7)
+ (local.get $3)
+ )
+ (i32.store offset=12
+ (local.get $7)
+ (local.get $7)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $7)
+ )
+ (br $do-once40)
)
- (i32.store offset=480
- (local.get $6)
- (local.get $12)
- )
- (i32.store offset=24
- (local.get $12)
- (local.get $4)
- )
- (i32.store offset=12
- (local.get $12)
- (local.get $12)
- )
- (i32.store offset=8
- (local.get $12)
- (local.get $12)
- )
- (br $do-once40)
)
- )
- (local.set $2
- (i32.shl
- (local.get $3)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
- (local.get $1)
- (i32.const 1)
+ (local.set $5
+ (i32.shl
+ (local.get $6)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ (i32.eq
+ (local.get $0)
+ (i32.const 31)
)
- )
- (i32.eq
- (local.get $1)
- (i32.const 31)
)
)
)
- )
- (local.set $0
- (i32.load offset=480
- (local.get $6)
+ (local.set $0
+ (i32.load offset=480
+ (local.get $1)
+ )
)
- )
- (if
- (i32.eq
- (local.tee $10
- (loop $while-in70 (result i32)
- (block $while-out69 (result i32)
- (if
- (i32.eq
- (local.get $3)
- (i32.and
- (i32.load offset=4
- (local.get $0)
- )
- (i32.const -8)
- )
- )
- (block
- (local.set $44
- (local.get $0)
- )
- (br $while-out69
- (i32.const 307)
- )
+ (loop $while-in70
+ (block $while-out69
+ (if
+ (i32.eq
+ (local.get $6)
+ (i32.and
+ (i32.load offset=4
+ (local.get $0)
)
+ (i32.const -8)
)
- (if (result i32)
- (local.tee $1
- (i32.load
- (local.tee $4
+ )
+ (block
+ (local.set $37
+ (local.get $0)
+ )
+ (local.set $9
+ (i32.const 307)
+ )
+ (br $while-out69)
+ )
+ )
+ (local.set $38
+ (if (result i32)
+ (local.tee $1
+ (i32.load
+ (local.tee $3
+ (i32.add
(i32.add
- (i32.add
- (local.get $0)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $2)
- (i32.const 31)
- )
- (i32.const 2)
+ (local.get $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $5)
+ (i32.const 31)
)
+ (i32.const 2)
)
)
)
)
- (block
- (local.set $2
- (i32.shl
- (local.get $2)
- (i32.const 1)
- )
- )
- (local.set $0
- (local.get $1)
+ )
+ (block
+ (local.set $5
+ (i32.shl
+ (local.get $5)
+ (i32.const 1)
)
- (br $while-in70)
)
- (block (result i32)
- (local.set $45
- (local.get $4)
- )
- (local.set $52
- (local.get $0)
- )
+ (local.set $0
+ (local.get $1)
+ )
+ (br $while-in70)
+ )
+ (block (result i32)
+ (local.set $47
+ (local.get $0)
+ )
+ (local.set $9
(i32.const 304)
)
+ (local.get $3)
)
)
)
)
- (i32.const 304)
)
(if
- (i32.lt_u
- (local.get $45)
- (i32.load
- (i32.const 192)
- )
+ (i32.eq
+ (local.get $9)
+ (i32.const 304)
)
- (call $_abort)
- (block
- (i32.store
- (local.get $45)
- (local.get $12)
- )
- (i32.store offset=24
- (local.get $12)
- (local.get $52)
- )
- (i32.store offset=12
- (local.get $12)
- (local.get $12)
+ (if
+ (i32.lt_u
+ (local.get $38)
+ (i32.load
+ (i32.const 192)
+ )
)
- (i32.store offset=8
- (local.get $12)
- (local.get $12)
+ (call $_abort)
+ (block
+ (i32.store
+ (local.get $38)
+ (local.get $7)
+ )
+ (i32.store offset=24
+ (local.get $7)
+ (local.get $47)
+ )
+ (i32.store offset=12
+ (local.get $7)
+ (local.get $7)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $7)
+ )
)
)
- )
- (if
- (i32.eq
- (local.get $10)
- (i32.const 307)
- )
- (block
- (local.set $0
- (local.get $44)
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 307)
)
(if
(i32.and
(i32.ge_u
- (local.tee $2
+ (local.tee $1
(i32.load offset=8
- (local.get $0)
+ (local.tee $0
+ (local.get $37)
+ )
)
)
(local.tee $3
@@ -5529,23 +5366,23 @@
)
(block
(i32.store offset=12
- (local.get $2)
- (local.get $12)
+ (local.get $1)
+ (local.get $7)
)
(i32.store offset=8
(local.get $0)
- (local.get $12)
+ (local.get $7)
)
(i32.store offset=8
- (local.get $12)
- (local.get $2)
+ (local.get $7)
+ (local.get $1)
)
(i32.store offset=12
- (local.get $12)
- (local.get $44)
+ (local.get $7)
+ (local.get $37)
)
(i32.store offset=24
- (local.get $12)
+ (local.get $7)
(i32.const 0)
)
)
@@ -5556,208 +5393,206 @@
)
)
)
- )
- (block
- (if
- (i32.or
- (i32.eqz
- (local.tee $2
- (i32.load
- (i32.const 192)
+ (block
+ (if
+ (i32.or
+ (i32.eqz
+ (local.tee $0
+ (i32.load
+ (i32.const 192)
+ )
)
)
+ (i32.lt_u
+ (local.get $3)
+ (local.get $0)
+ )
)
- (i32.lt_u
- (local.get $21)
- (local.get $2)
+ (i32.store
+ (i32.const 192)
+ (local.get $3)
)
)
(i32.store
- (i32.const 192)
- (local.get $21)
+ (i32.const 624)
+ (local.get $3)
)
- )
- (i32.store
- (i32.const 624)
- (local.get $21)
- )
- (i32.store
- (i32.const 628)
- (local.get $22)
- )
- (i32.store
- (i32.const 636)
- (i32.const 0)
- )
- (i32.store
- (i32.const 212)
- (i32.load
- (i32.const 648)
+ (i32.store
+ (i32.const 628)
+ (local.get $10)
)
- )
- (i32.store
- (i32.const 208)
- (i32.const -1)
- )
- (local.set $2
- (i32.const 0)
- )
- (loop $do-in72
- (local.set $0
- (i32.add
- (local.tee $1
- (i32.shl
- (local.get $2)
- (i32.const 3)
- )
- )
- (i32.const 216)
+ (i32.store
+ (i32.const 636)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 212)
+ (i32.load
+ (i32.const 648)
)
)
- (i32.store offset=228
- (local.get $1)
- (local.get $0)
+ (i32.store
+ (i32.const 208)
+ (i32.const -1)
)
- (i32.store offset=224
- (local.get $1)
- (local.get $0)
+ (local.set $5
+ (i32.const 0)
)
- (br_if $do-in72
- (i32.ne
- (local.tee $2
- (i32.add
- (local.get $2)
- (i32.const 1)
+ (loop $do-in72
+ (local.set $1
+ (i32.add
+ (local.tee $0
+ (i32.shl
+ (local.get $5)
+ (i32.const 3)
+ )
)
+ (i32.const 216)
+ )
+ )
+ (i32.store offset=228
+ (local.get $0)
+ (local.get $1)
+ )
+ (i32.store offset=224
+ (local.get $0)
+ (local.get $1)
+ )
+ (br_if $do-in72
+ (i32.ne
+ (local.tee $5
+ (i32.add
+ (local.get $5)
+ (i32.const 1)
+ )
+ )
+ (i32.const 32)
)
- (i32.const 32)
)
)
- )
- (i32.store
- (i32.const 200)
- (local.tee $2
- (i32.add
- (local.get $21)
- (local.tee $0
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $2
- (i32.add
- (local.get $21)
- (i32.const 8)
+ (i32.store
+ (i32.const 200)
+ (local.tee $0
+ (i32.add
+ (local.get $3)
+ (local.tee $1
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $0
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
)
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $0)
+ (i32.const 7)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $2)
- (i32.const 7)
)
)
)
)
)
- )
- (i32.store
- (i32.const 188)
- (local.tee $3
- (i32.sub
- (i32.add
- (local.get $22)
- (i32.const -40)
+ (i32.store
+ (i32.const 188)
+ (local.tee $1
+ (i32.sub
+ (i32.add
+ (local.get $10)
+ (i32.const -40)
+ )
+ (local.get $1)
)
- (local.get $0)
)
)
- )
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $3)
- (i32.const 1)
- )
- )
- (i32.store offset=4
- (i32.add
- (local.get $2)
- (local.get $3)
- )
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
- )
- )
- )
- )
- (if
- (i32.gt_u
- (local.tee $22
- (i32.load
- (i32.const 188)
- )
- )
- (local.get $8)
- )
- (block
- (i32.store
- (i32.const 188)
- (local.tee $21
- (i32.sub
- (local.get $22)
- (local.get $8)
+ (i32.store offset=4
+ (local.get $0)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
)
)
- )
- (i32.store
- (i32.const 200)
- (local.tee $12
+ (i32.store offset=4
(i32.add
- (local.get $8)
- (local.tee $22
- (i32.load
- (i32.const 200)
- )
- )
+ (local.get $0)
+ (local.get $1)
)
+ (i32.const 40)
)
- )
- (i32.store offset=4
- (local.get $12)
- (i32.or
- (local.get $21)
- (i32.const 1)
- )
- )
- (i32.store offset=4
- (local.get $22)
- (i32.or
- (local.get $8)
- (i32.const 3)
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
+ )
)
)
- (return
- (i32.add
- (local.get $22)
- (i32.const 8)
+ )
+ (br_if $folding-inner0
+ (i32.gt_u
+ (local.tee $0
+ (i32.load
+ (i32.const 188)
+ )
)
+ (local.get $4)
)
)
)
)
+ (i32.store
+ (call $___errno_location)
+ (i32.const 12)
+ )
+ (return
+ (i32.const 0)
+ )
)
(i32.store
- (call $___errno_location)
- (i32.const 12)
+ (i32.const 188)
+ (local.tee $1
+ (i32.sub
+ (local.get $0)
+ (local.get $4)
+ )
+ )
+ )
+ (i32.store
+ (i32.const 200)
+ (local.tee $3
+ (i32.add
+ (local.get $4)
+ (local.tee $0
+ (i32.load
+ (i32.const 200)
+ )
+ )
+ )
+ )
+ )
+ (i32.store offset=4
+ (local.get $3)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4
+ (local.get $0)
+ (i32.or
+ (local.get $4)
+ (i32.const 3)
+ )
+ )
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
)
- (i32.const 0)
)
(func $_free (; 16 ;) (; has Stack IR ;) (param $0 i32)
(local $1 i32)
@@ -5786,7 +5621,7 @@
)
(if
(i32.lt_u
- (local.tee $1
+ (local.tee $3
(i32.add
(local.get $0)
(i32.const -8)
@@ -5802,9 +5637,9 @@
)
(if
(i32.eq
- (local.tee $0
+ (local.tee $10
(i32.and
- (local.tee $2
+ (local.tee $0
(i32.load
(i32.add
(local.get $0)
@@ -5819,12 +5654,12 @@
)
(call $_abort)
)
- (local.set $8
+ (local.set $6
(i32.add
- (local.get $1)
- (local.tee $7
+ (local.get $3)
+ (local.tee $4
(i32.and
- (local.get $2)
+ (local.get $0)
(i32.const -8)
)
)
@@ -5832,40 +5667,34 @@
)
(if
(i32.and
- (local.get $2)
+ (local.get $0)
(i32.const 1)
)
(block
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $3)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $4)
)
)
(block $do-once
(local.set $9
(i32.load
- (local.get $1)
+ (local.get $3)
)
)
(if
(i32.eqz
- (local.get $0)
+ (local.get $10)
)
(return)
)
- (local.set $7
- (i32.add
- (local.get $7)
- (local.get $9)
- )
- )
(if
(i32.lt_u
- (local.tee $1
+ (local.tee $0
(i32.sub
- (local.get $1)
+ (local.get $3)
(local.get $9)
)
)
@@ -5873,23 +5702,26 @@
)
(call $_abort)
)
+ (local.set $3
+ (i32.add
+ (local.get $4)
+ (local.get $9)
+ )
+ )
(if
(i32.eq
(i32.load
(i32.const 196)
)
- (local.get $1)
+ (local.get $0)
)
(block
- (local.set $0
- (local.get $8)
- )
(if
(i32.ne
(i32.and
- (local.tee $6
+ (local.tee $1
(i32.load offset=4
- (local.get $0)
+ (local.get $6)
)
)
(i32.const 3)
@@ -5897,44 +5729,44 @@
(i32.const 3)
)
(block
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
)
(i32.store
(i32.const 184)
- (local.get $7)
+ (local.get $3)
)
(i32.store offset=4
- (local.get $0)
+ (local.get $6)
(i32.and
- (local.get $6)
+ (local.get $1)
(i32.const -2)
)
)
(i32.store offset=4
- (local.get $1)
+ (local.get $0)
(i32.or
- (local.get $7)
+ (local.get $3)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $1)
- (local.get $7)
+ (local.get $0)
+ (local.get $3)
)
- (local.get $7)
+ (local.get $3)
)
(return)
)
)
- (local.set $6
+ (local.set $10
(i32.shr_u
(local.get $9)
(i32.const 3)
@@ -5946,22 +5778,22 @@
(i32.const 256)
)
(block
- (local.set $0
+ (local.set $2
(i32.load offset=12
- (local.get $1)
+ (local.get $0)
)
)
(if
(i32.ne
- (local.tee $9
+ (local.tee $4
(i32.load offset=8
- (local.get $1)
+ (local.get $0)
)
)
- (local.tee $2
+ (local.tee $1
(i32.add
(i32.shl
- (local.get $6)
+ (local.get $10)
(i32.const 3)
)
(i32.const 216)
@@ -5971,16 +5803,16 @@
(block
(if
(i32.lt_u
- (local.get $9)
+ (local.get $4)
(local.get $13)
)
(call $_abort)
)
(if
(i32.ne
- (local.get $1)
+ (local.get $0)
(i32.load offset=12
- (local.get $9)
+ (local.get $4)
)
)
(call $_abort)
@@ -5989,8 +5821,8 @@
)
(if
(i32.eq
- (local.get $0)
- (local.get $9)
+ (local.get $2)
+ (local.get $4)
)
(block
(i32.store
@@ -6002,99 +5834,99 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $6)
+ (local.get $10)
)
(i32.const -1)
)
)
)
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
)
(if
(i32.ne
- (local.get $0)
+ (local.get $1)
(local.get $2)
)
(block
(if
(i32.lt_u
- (local.get $0)
+ (local.get $2)
(local.get $13)
)
(call $_abort)
)
(if
(i32.eq
- (local.get $1)
+ (local.get $0)
(i32.load
- (local.tee $2
+ (local.tee $1
(i32.add
- (local.get $0)
+ (local.get $2)
(i32.const 8)
)
)
)
)
- (local.set $10
- (local.get $2)
+ (local.set $5
+ (local.get $1)
)
(call $_abort)
)
)
- (local.set $10
+ (local.set $5
(i32.add
- (local.get $0)
+ (local.get $2)
(i32.const 8)
)
)
)
(i32.store offset=12
- (local.get $9)
- (local.get $0)
+ (local.get $4)
+ (local.get $2)
)
(i32.store
- (local.get $10)
- (local.get $9)
+ (local.get $5)
+ (local.get $4)
)
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
)
- (local.set $9
+ (local.set $12
(i32.load offset=24
- (local.get $1)
+ (local.get $0)
)
)
(if
(i32.eq
- (local.get $1)
- (local.tee $0
+ (local.get $0)
+ (local.tee $4
(i32.load offset=12
- (local.get $1)
+ (local.get $0)
)
)
)
(block $do-once0
(if
- (local.tee $10
+ (local.tee $4
(i32.load
- (local.tee $6
+ (local.tee $9
(i32.add
- (local.tee $2
+ (local.tee $5
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 16)
)
)
@@ -6103,84 +5935,76 @@
)
)
)
- (block
- (local.set $0
- (local.get $10)
- )
- (local.set $2
- (local.get $6)
- )
+ (local.set $5
+ (local.get $9)
)
(br_if $do-once0
(i32.eqz
- (local.tee $0
+ (local.tee $4
(i32.load
- (local.get $2)
+ (local.get $5)
)
)
)
)
)
- (local.set $6
- (loop $while-in (result i32)
- (if
- (local.tee $10
- (i32.load
- (local.tee $6
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
+ (loop $while-in
+ (if
+ (local.tee $10
+ (i32.load
+ (local.tee $9
+ (i32.add
+ (local.get $4)
+ (i32.const 20)
)
)
)
- (block
- (local.set $0
- (local.get $10)
- )
- (local.set $2
- (local.get $6)
- )
- (br $while-in)
+ )
+ (block
+ (local.set $4
+ (local.get $10)
)
+ (local.set $5
+ (local.get $9)
+ )
+ (br $while-in)
)
- (if (result i32)
- (local.tee $10
- (i32.load
- (local.tee $6
- (i32.add
- (local.get $0)
- (i32.const 16)
- )
+ )
+ (if
+ (local.tee $10
+ (i32.load
+ (local.tee $9
+ (i32.add
+ (local.get $4)
+ (i32.const 16)
)
)
)
- (block
- (local.set $0
- (local.get $10)
- )
- (local.set $2
- (local.get $6)
- )
- (br $while-in)
+ )
+ (block
+ (local.set $4
+ (local.get $10)
)
- (local.get $0)
+ (local.set $5
+ (local.get $9)
+ )
+ (br $while-in)
)
)
)
(if
(i32.lt_u
- (local.get $2)
+ (local.get $5)
(local.get $13)
)
(call $_abort)
(block
(i32.store
- (local.get $2)
+ (local.get $5)
(i32.const 0)
)
- (local.set $5
- (local.get $6)
+ (local.set $7
+ (local.get $4)
)
)
)
@@ -6188,48 +6012,42 @@
(block
(if
(i32.lt_u
- (local.tee $6
+ (local.tee $5
(i32.load offset=8
- (local.get $1)
+ (local.get $0)
)
)
(local.get $13)
)
(call $_abort)
)
- (local.set $2
- (local.get $6)
- )
(if
(i32.ne
- (local.get $1)
+ (local.get $0)
(i32.load offset=12
- (local.get $2)
+ (local.get $5)
)
)
(call $_abort)
)
- (local.set $10
- (local.get $0)
- )
(if
(i32.eq
- (local.get $1)
+ (local.get $0)
(i32.load offset=8
- (local.get $0)
+ (local.get $4)
)
)
(block
(i32.store offset=12
- (local.get $2)
- (local.get $0)
+ (local.get $5)
+ (local.get $4)
)
(i32.store offset=8
- (local.get $10)
- (local.get $6)
+ (local.get $4)
+ (local.get $5)
)
- (local.set $5
- (local.get $0)
+ (local.set $7
+ (local.get $4)
)
)
(call $_abort)
@@ -6237,33 +6055,32 @@
)
)
(if
- (local.get $9)
+ (local.get $12)
(block
- (local.set $2
- (i32.shl
- (local.tee $0
- (i32.load offset=28
- (local.get $1)
- )
- )
- (i32.const 2)
- )
- )
(if
(i32.eq
(i32.load offset=480
- (local.get $2)
+ (local.tee $5
+ (i32.shl
+ (local.tee $4
+ (i32.load offset=28
+ (local.get $0)
+ )
+ )
+ (i32.const 2)
+ )
+ )
)
- (local.get $1)
+ (local.get $0)
)
(block
(i32.store offset=480
- (local.get $2)
(local.get $5)
+ (local.get $7)
)
(if
(i32.eqz
- (local.get $5)
+ (local.get $7)
)
(block
(i32.store
@@ -6275,17 +6092,17 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $0)
+ (local.get $4)
)
(i32.const -1)
)
)
)
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
@@ -6294,42 +6111,39 @@
(block
(if
(i32.lt_u
- (local.get $9)
+ (local.get $12)
(i32.load
(i32.const 192)
)
)
(call $_abort)
)
- (local.set $0
- (local.get $9)
- )
(if
(i32.eq
- (local.get $1)
+ (local.get $0)
(i32.load offset=16
- (local.get $0)
+ (local.get $12)
)
)
(i32.store offset=16
- (local.get $0)
- (local.get $5)
+ (local.get $12)
+ (local.get $7)
)
(i32.store offset=20
- (local.get $9)
- (local.get $5)
+ (local.get $12)
+ (local.get $7)
)
)
(if
(i32.eqz
- (local.get $5)
+ (local.get $7)
)
(block
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
@@ -6338,8 +6152,8 @@
)
(if
(i32.lt_u
- (local.get $5)
- (local.tee $0
+ (local.get $7)
+ (local.tee $5
(i32.load
(i32.const 192)
)
@@ -6348,45 +6162,42 @@
(call $_abort)
)
(i32.store offset=24
- (local.get $5)
- (local.get $9)
- )
- (local.set $6
- (local.get $1)
+ (local.get $7)
+ (local.get $12)
)
(if
- (local.tee $2
+ (local.tee $4
(i32.load offset=16
- (local.get $1)
+ (local.get $0)
)
)
(if
(i32.lt_u
- (local.get $2)
- (local.get $0)
+ (local.get $4)
+ (local.get $5)
)
(call $_abort)
(block
(i32.store offset=16
- (local.get $5)
- (local.get $2)
+ (local.get $7)
+ (local.get $4)
)
(i32.store offset=24
- (local.get $2)
- (local.get $5)
+ (local.get $4)
+ (local.get $7)
)
)
)
)
(if
- (local.tee $2
+ (local.tee $4
(i32.load offset=20
- (local.get $6)
+ (local.get $0)
)
)
(if
(i32.lt_u
- (local.get $2)
+ (local.get $4)
(i32.load
(i32.const 192)
)
@@ -6394,37 +6205,37 @@
(call $_abort)
(block
(i32.store offset=20
- (local.get $5)
- (local.get $2)
+ (local.get $7)
+ (local.get $4)
)
(i32.store offset=24
- (local.get $2)
- (local.get $5)
+ (local.get $4)
+ (local.get $7)
)
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
)
)
(block
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
)
)
)
(block
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
)
)
@@ -6432,20 +6243,17 @@
)
(if
(i32.ge_u
- (local.get $3)
- (local.get $8)
+ (local.get $2)
+ (local.get $6)
)
(call $_abort)
)
- (local.set $0
- (local.get $8)
- )
(if
(i32.eqz
(i32.and
- (local.tee $1
+ (local.tee $0
(i32.load offset=4
- (local.get $0)
+ (local.get $6)
)
)
(i32.const 1)
@@ -6453,637 +6261,619 @@
)
(call $_abort)
)
- (local.set $4
- (i32.shr_u
- (local.tee $0
- (if (result i32)
- (i32.and
- (local.get $1)
- (i32.const 2)
+ (if
+ (i32.and
+ (local.get $0)
+ (i32.const 2)
+ )
+ (block
+ (i32.store offset=4
+ (local.get $6)
+ (i32.and
+ (local.get $0)
+ (i32.const -2)
+ )
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (local.get $1)
+ (local.get $2)
+ )
+ (local.get $1)
+ )
+ )
+ (block
+ (if
+ (i32.eq
+ (i32.load
+ (i32.const 200)
)
- (block (result i32)
- (i32.store offset=4
- (local.get $0)
- (i32.and
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (i32.const 188)
+ (local.tee $0
+ (i32.add
(local.get $1)
- (i32.const -2)
+ (i32.load
+ (i32.const 188)
+ )
)
)
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $4)
- (i32.const 1)
- )
+ )
+ (i32.store
+ (i32.const 200)
+ (local.get $2)
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
)
- (i32.store
- (i32.add
- (local.get $3)
- (local.get $4)
+ )
+ (if
+ (i32.ne
+ (i32.load
+ (i32.const 196)
)
- (local.get $4)
+ (local.get $2)
)
- (local.get $4)
+ (return)
)
- (block (result i32)
- (if
- (i32.eq
+ (i32.store
+ (i32.const 196)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 184)
+ (i32.const 0)
+ )
+ (return)
+ )
+ )
+ (if
+ (i32.eq
+ (i32.load
+ (i32.const 196)
+ )
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (i32.const 184)
+ (local.tee $0
+ (i32.add
+ (local.get $1)
(i32.load
- (i32.const 200)
- )
- (local.get $8)
- )
- (block
- (i32.store
- (i32.const 188)
- (local.tee $5
- (i32.add
- (local.get $4)
- (i32.load
- (i32.const 188)
- )
- )
- )
- )
- (i32.store
- (i32.const 200)
- (local.get $3)
- )
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $5)
- (i32.const 1)
- )
- )
- (if
- (i32.ne
- (i32.load
- (i32.const 196)
- )
- (local.get $3)
- )
- (return)
- )
- (i32.store
- (i32.const 196)
- (i32.const 0)
- )
- (i32.store
(i32.const 184)
- (i32.const 0)
)
- (return)
+ )
+ )
+ )
+ (i32.store
+ (i32.const 196)
+ (local.get $2)
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (local.get $2)
+ )
+ (local.get $0)
+ )
+ (return)
+ )
+ )
+ (local.set $5
+ (i32.add
+ (local.get $1)
+ (i32.and
+ (local.get $0)
+ (i32.const -8)
+ )
+ )
+ )
+ (local.set $4
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 3)
+ )
+ )
+ (block $do-once4
+ (if
+ (i32.ge_u
+ (local.get $0)
+ (i32.const 256)
+ )
+ (block
+ (local.set $7
+ (i32.load offset=24
+ (local.get $6)
)
)
(if
(i32.eq
- (i32.load
- (i32.const 196)
+ (local.get $6)
+ (local.tee $0
+ (i32.load offset=12
+ (local.get $6)
+ )
)
- (local.get $8)
)
- (block
- (i32.store
- (i32.const 184)
- (local.tee $5
- (i32.add
- (local.get $4)
- (i32.load
- (i32.const 184)
+ (block $do-once6
+ (if
+ (local.tee $0
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.tee $1
+ (i32.add
+ (local.get $6)
+ (i32.const 16)
+ )
+ )
+ (i32.const 4)
+ )
)
)
)
- )
- (i32.store
- (i32.const 196)
- (local.get $3)
- )
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $5)
- (i32.const 1)
- )
- )
- (i32.store
- (i32.add
+ (local.set $1
(local.get $3)
- (local.get $5)
)
- (local.get $5)
- )
- (return)
- )
- )
- (local.set $5
- (i32.add
- (local.get $4)
- (i32.and
- (local.get $1)
- (i32.const -8)
- )
- )
- )
- (local.set $13
- (i32.shr_u
- (local.get $1)
- (i32.const 3)
- )
- )
- (block $do-once4
- (if
- (i32.ge_u
- (local.get $1)
- (i32.const 256)
- )
- (block
- (local.set $6
- (i32.load offset=24
- (local.get $8)
- )
- )
- (if
- (i32.eq
- (local.get $8)
- (local.tee $2
- (i32.load offset=12
- (local.get $8)
+ (br_if $do-once6
+ (i32.eqz
+ (local.tee $0
+ (i32.load
+ (local.get $1)
)
)
)
- (block $do-once6
- (local.set $4
- (if (result i32)
- (local.tee $10
- (i32.load
- (local.tee $0
- (i32.add
- (local.tee $2
- (i32.add
- (local.get $8)
- (i32.const 16)
- )
- )
- (i32.const 4)
- )
- )
- )
- )
- (block (result i32)
- (local.set $2
- (local.get $0)
- )
- (local.get $10)
- )
- (if (result i32)
- (local.tee $0
- (i32.load
- (local.get $2)
- )
- )
+ )
+ )
+ (loop $while-in9
+ (if
+ (local.tee $4
+ (i32.load
+ (local.tee $3
+ (i32.add
(local.get $0)
- (br $do-once6)
- )
- )
- )
- (loop $while-in9
- (if
- (local.tee $10
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $4)
- (i32.const 20)
- )
- )
- )
- )
- (block
- (local.set $4
- (local.get $10)
- )
- (local.set $2
- (local.get $0)
- )
- (br $while-in9)
- )
- )
- (if
- (local.tee $10
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $4)
- (i32.const 16)
- )
- )
- )
- )
- (block
- (local.set $4
- (local.get $10)
- )
- (local.set $2
- (local.get $0)
- )
- (br $while-in9)
- )
- )
- )
- (if
- (i32.lt_u
- (local.get $2)
- (i32.load
- (i32.const 192)
- )
- )
- (call $_abort)
- (block
- (i32.store
- (local.get $2)
- (i32.const 0)
- )
- (local.set $11
- (local.get $4)
+ (i32.const 20)
)
)
)
)
(block
- (if
- (i32.lt_u
- (local.tee $0
- (i32.load offset=8
- (local.get $8)
- )
- )
- (i32.load
- (i32.const 192)
- )
- )
- (call $_abort)
+ (local.set $0
+ (local.get $4)
)
- (local.set $4
- (local.get $0)
+ (local.set $1
+ (local.get $3)
)
- (if
- (i32.ne
- (local.get $8)
- (i32.load offset=12
+ (br $while-in9)
+ )
+ )
+ (if
+ (local.tee $4
+ (i32.load
+ (local.tee $3
+ (i32.add
(local.get $0)
+ (i32.const 16)
)
)
- (call $_abort)
+ )
+ )
+ (block
+ (local.set $0
+ (local.get $4)
)
(local.set $1
- (local.get $2)
+ (local.get $3)
)
- (if
- (i32.eq
- (local.get $8)
- (i32.load offset=8
- (local.get $1)
- )
- )
- (block
- (i32.store offset=12
- (local.get $4)
- (local.get $2)
- )
- (i32.store offset=8
- (local.get $1)
- (local.get $0)
- )
- (local.set $11
- (local.get $2)
- )
- )
- (call $_abort)
+ (br $while-in9)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
+ (block
+ (i32.store
+ (local.get $1)
+ (i32.const 0)
+ )
+ (local.set $8
+ (local.get $0)
+ )
+ )
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $6)
)
)
+ (i32.load
+ (i32.const 192)
+ )
)
- (if
+ (call $_abort)
+ )
+ (if
+ (i32.ne
(local.get $6)
- (block
- (local.set $0
+ (i32.load offset=12
+ (local.get $1)
+ )
+ )
+ (call $_abort)
+ )
+ (if
+ (i32.eq
+ (local.get $6)
+ (i32.load offset=8
+ (local.get $0)
+ )
+ )
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $8
+ (local.get $0)
+ )
+ )
+ (call $_abort)
+ )
+ )
+ )
+ (if
+ (local.get $7)
+ (block
+ (if
+ (i32.eq
+ (i32.load offset=480
+ (local.tee $1
(i32.shl
- (local.tee $2
+ (local.tee $0
(i32.load offset=28
- (local.get $8)
+ (local.get $6)
)
)
(i32.const 2)
)
)
- (if
- (i32.eq
- (i32.load offset=480
- (local.get $0)
- )
- (local.get $8)
- )
- (block
- (i32.store offset=480
- (local.get $0)
- (local.get $11)
- )
- (if
- (i32.eqz
- (local.get $11)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.and
- (i32.load
- (i32.const 180)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $2)
- )
- (i32.const -1)
- )
- )
- )
- (br $do-once4)
- )
- )
- )
- (block
- (if
- (i32.lt_u
- (local.get $6)
- (i32.load
- (i32.const 192)
- )
+ )
+ (local.get $6)
+ )
+ (block
+ (i32.store offset=480
+ (local.get $1)
+ (local.get $8)
+ )
+ (if
+ (i32.eqz
+ (local.get $8)
+ )
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.and
+ (i32.load
+ (i32.const 180)
)
- (call $_abort)
- )
- (local.set $0
- (local.get $6)
- )
- (if
- (i32.eq
- (local.get $8)
- (i32.load offset=16
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
(local.get $0)
)
- )
- (i32.store offset=16
- (local.get $0)
- (local.get $11)
- )
- (i32.store offset=20
- (local.get $6)
- (local.get $11)
- )
- )
- (br_if $do-once4
- (i32.eqz
- (local.get $11)
+ (i32.const -1)
)
)
)
+ (br $do-once4)
)
- (if
- (i32.lt_u
- (local.get $11)
- (local.tee $2
- (i32.load
- (i32.const 192)
- )
- )
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $7)
+ (i32.load
+ (i32.const 192)
)
- (call $_abort)
)
- (i32.store offset=24
- (local.get $11)
+ (call $_abort)
+ )
+ (if
+ (i32.eq
(local.get $6)
+ (i32.load offset=16
+ (local.get $7)
+ )
)
- (local.set $0
+ (i32.store offset=16
+ (local.get $7)
(local.get $8)
)
- (if
- (local.tee $1
- (i32.load offset=16
- (local.get $0)
- )
- )
- (if
- (i32.lt_u
- (local.get $1)
- (local.get $2)
- )
- (call $_abort)
- (block
- (i32.store offset=16
- (local.get $11)
- (local.get $1)
- )
- (i32.store offset=24
- (local.get $1)
- (local.get $11)
- )
- )
- )
+ (i32.store offset=20
+ (local.get $7)
+ (local.get $8)
)
- (if
- (local.tee $1
- (i32.load offset=20
- (local.get $0)
- )
- )
- (if
- (i32.lt_u
- (local.get $1)
- (i32.load
- (i32.const 192)
- )
- )
- (call $_abort)
- (block
- (i32.store offset=20
- (local.get $11)
- (local.get $1)
- )
- (i32.store offset=24
- (local.get $1)
- (local.get $11)
- )
- )
- )
+ )
+ (br_if $do-once4
+ (i32.eqz
+ (local.get $8)
)
)
)
)
- (block
- (local.set $2
- (i32.load offset=12
- (local.get $8)
- )
- )
- (if
- (i32.ne
- (local.tee $1
- (i32.load offset=8
- (local.get $8)
- )
- )
- (local.tee $6
- (i32.add
- (i32.shl
- (local.get $13)
- (i32.const 3)
- )
- (i32.const 216)
- )
+ (if
+ (i32.lt_u
+ (local.get $8)
+ (local.tee $1
+ (i32.load
+ (i32.const 192)
)
)
- (block
- (if
- (i32.lt_u
- (local.get $1)
- (i32.load
- (i32.const 192)
- )
- )
- (call $_abort)
- )
- (if
- (i32.ne
- (local.get $8)
- (i32.load offset=12
- (local.get $1)
- )
- )
- (call $_abort)
- )
+ )
+ (call $_abort)
+ )
+ (i32.store offset=24
+ (local.get $8)
+ (local.get $7)
+ )
+ (if
+ (local.tee $0
+ (i32.load offset=16
+ (local.get $6)
)
)
(if
- (i32.eq
+ (i32.lt_u
+ (local.get $0)
(local.get $1)
- (local.get $2)
)
+ (call $_abort)
(block
- (i32.store
- (i32.const 176)
- (i32.and
- (i32.load
- (i32.const 176)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $13)
- )
- (i32.const -1)
- )
- )
+ (i32.store offset=16
+ (local.get $8)
+ (local.get $0)
+ )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $8)
)
- (br $do-once4)
)
)
- (if
- (i32.ne
- (local.get $2)
+ )
+ (if
+ (local.tee $0
+ (i32.load offset=20
(local.get $6)
)
- (block
- (if
- (i32.lt_u
- (local.get $2)
- (i32.load
- (i32.const 192)
- )
- )
- (call $_abort)
- )
- (if
- (i32.eq
- (local.get $8)
- (i32.load
- (local.tee $6
- (i32.add
- (local.get $2)
- (i32.const 8)
- )
- )
- )
- )
- (local.set $15
- (local.get $6)
- )
- (call $_abort)
+ )
+ (if
+ (i32.lt_u
+ (local.get $0)
+ (i32.load
+ (i32.const 192)
)
)
- (local.set $15
- (i32.add
- (local.get $2)
- (i32.const 8)
+ (call $_abort)
+ (block
+ (i32.store offset=20
+ (local.get $8)
+ (local.get $0)
+ )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $8)
)
)
)
- (i32.store offset=12
- (local.get $1)
- (local.get $2)
- )
- (i32.store
- (local.get $15)
- (local.get $1)
- )
)
)
)
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $5)
- (i32.const 1)
+ )
+ (block
+ (local.set $1
+ (i32.load offset=12
+ (local.get $6)
)
)
- (i32.store
- (i32.add
- (local.get $3)
- (local.get $5)
+ (if
+ (i32.ne
+ (local.tee $3
+ (i32.load offset=8
+ (local.get $6)
+ )
+ )
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.get $4)
+ (i32.const 3)
+ )
+ (i32.const 216)
+ )
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $3)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
+ )
+ (if
+ (i32.ne
+ (local.get $6)
+ (i32.load offset=12
+ (local.get $3)
+ )
+ )
+ (call $_abort)
+ )
)
- (local.get $5)
)
- (if (result i32)
+ (if
(i32.eq
- (i32.load
- (i32.const 196)
- )
+ (local.get $1)
(local.get $3)
)
(block
(i32.store
- (i32.const 184)
- (local.get $5)
+ (i32.const 176)
+ (i32.and
+ (i32.load
+ (i32.const 176)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $4)
+ )
+ (i32.const -1)
+ )
+ )
)
- (return)
+ (br $do-once4)
)
+ )
+ (if
+ (i32.ne
+ (local.get $0)
+ (local.get $1)
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
+ )
+ (if
+ (i32.eq
+ (local.get $6)
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
+ )
+ )
+ )
+ (local.set $14
+ (local.get $0)
+ )
+ (call $_abort)
+ )
+ )
+ (local.set $14
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.store offset=12
+ (local.get $3)
+ (local.get $1)
+ )
+ (i32.store
+ (local.get $14)
+ (local.get $3)
+ )
+ )
+ )
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $5)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (local.get $2)
+ (local.get $5)
+ )
+ (local.get $5)
+ )
+ (local.set $1
+ (if (result i32)
+ (i32.eq
+ (i32.load
+ (i32.const 196)
+ )
+ (local.get $2)
+ )
+ (block
+ (i32.store
+ (i32.const 184)
(local.get $5)
)
+ (return)
)
+ (local.get $5)
)
)
+ )
+ )
+ (local.set $3
+ (i32.shr_u
+ (local.get $1)
(i32.const 3)
)
)
(if
(i32.lt_u
- (local.get $0)
+ (local.get $1)
(i32.const 256)
)
(block
- (local.set $1
+ (local.set $0
(i32.add
(i32.shl
- (local.get $4)
+ (local.get $3)
(i32.const 3)
)
(i32.const 216)
@@ -7091,25 +6881,25 @@
)
(if
(i32.and
- (local.tee $7
+ (local.tee $1
(i32.load
(i32.const 176)
)
)
- (local.tee $5
+ (local.tee $3
(i32.shl
(i32.const 1)
- (local.get $4)
+ (local.get $3)
)
)
)
(if
(i32.lt_u
- (local.tee $15
+ (local.tee $3
(i32.load
- (local.tee $4
+ (local.tee $1
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
@@ -7121,11 +6911,11 @@
)
(call $_abort)
(block
- (local.set $14
- (local.get $4)
+ (local.set $15
+ (local.get $1)
)
- (local.set $12
- (local.get $15)
+ (local.set $11
+ (local.get $3)
)
)
)
@@ -7133,71 +6923,71 @@
(i32.store
(i32.const 176)
(i32.or
- (local.get $5)
- (local.get $7)
+ (local.get $1)
+ (local.get $3)
)
)
- (local.set $14
+ (local.set $15
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
- (local.set $12
- (local.get $1)
+ (local.set $11
+ (local.get $0)
)
)
)
(i32.store
- (local.get $14)
- (local.get $3)
+ (local.get $15)
+ (local.get $2)
)
(i32.store offset=12
- (local.get $12)
- (local.get $3)
+ (local.get $11)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $3)
- (local.get $12)
+ (local.get $2)
+ (local.get $11)
)
(i32.store offset=12
- (local.get $3)
- (local.get $1)
+ (local.get $2)
+ (local.get $0)
)
(return)
)
)
- (local.set $7
+ (local.set $4
(i32.add
- (local.tee $1
+ (local.tee $3
(i32.shl
- (local.tee $4
+ (local.tee $0
(if (result i32)
- (local.tee $1
+ (local.tee $0
(i32.shr_u
- (local.get $0)
+ (local.get $1)
(i32.const 8)
)
)
(if (result i32)
(i32.gt_u
- (local.get $0)
+ (local.get $1)
(i32.const 16777215)
)
(i32.const 31)
(block (result i32)
- (local.set $1
+ (local.set $0
(i32.and
(i32.shr_u
(i32.add
- (local.tee $14
+ (local.tee $4
(i32.shl
- (local.get $1)
- (local.tee $12
+ (local.get $0)
+ (local.tee $3
(i32.and
(i32.shr_u
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 1048320)
)
(i32.const 16)
@@ -7217,21 +7007,21 @@
(i32.or
(i32.and
(i32.shr_u
- (local.get $0)
+ (local.get $1)
(i32.add
- (local.tee $7
+ (local.tee $0
(i32.add
(i32.sub
(i32.const 14)
(i32.or
- (local.tee $14
+ (local.tee $5
(i32.and
(i32.shr_u
(i32.add
- (local.tee $5
+ (local.tee $4
(i32.shl
- (local.get $14)
- (local.get $1)
+ (local.get $4)
+ (local.get $0)
)
)
(i32.const 245760)
@@ -7242,15 +7032,15 @@
)
)
(i32.or
- (local.get $1)
- (local.get $12)
+ (local.get $0)
+ (local.get $3)
)
)
)
(i32.shr_u
(i32.shl
+ (local.get $4)
(local.get $5)
- (local.get $14)
)
(i32.const 15)
)
@@ -7262,7 +7052,7 @@
(i32.const 1)
)
(i32.shl
- (local.get $7)
+ (local.get $0)
(i32.const 1)
)
)
@@ -7278,54 +7068,54 @@
)
)
(i32.store offset=28
- (local.get $3)
- (local.get $4)
+ (local.get $2)
+ (local.get $0)
)
(i32.store offset=20
- (local.get $3)
+ (local.get $2)
(i32.const 0)
)
(i32.store offset=16
- (local.get $3)
+ (local.get $2)
(i32.const 0)
)
(if
(i32.and
(local.tee $5
- (i32.shl
- (i32.const 1)
- (local.get $4)
- )
- )
- (local.tee $14
(i32.load
(i32.const 180)
)
)
+ (local.tee $7
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
+ )
)
(block
- (local.set $12
+ (local.set $11
(i32.shl
- (local.get $0)
+ (local.get $1)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (local.get $4)
+ (local.get $0)
(i32.const 1)
)
)
(i32.eq
- (local.get $4)
+ (local.get $0)
(i32.const 31)
)
)
)
)
- (local.set $1
+ (local.set $0
(i32.load offset=480
- (local.get $1)
+ (local.get $3)
)
)
(if
@@ -7335,17 +7125,17 @@
(block $while-out14 (result i32)
(if
(i32.eq
- (local.get $0)
+ (local.get $1)
(i32.and
(i32.load offset=4
- (local.get $1)
+ (local.get $0)
)
(i32.const -8)
)
)
(block
(local.set $16
- (local.get $1)
+ (local.get $0)
)
(br $while-out14
(i32.const 130)
@@ -7353,17 +7143,17 @@
)
)
(if (result i32)
- (local.tee $4
+ (local.tee $3
(i32.load
- (local.tee $15
+ (local.tee $4
(i32.add
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (local.get $12)
+ (local.get $11)
(i32.const 31)
)
(i32.const 2)
@@ -7373,23 +7163,23 @@
)
)
(block
- (local.set $12
+ (local.set $11
(i32.shl
- (local.get $12)
+ (local.get $11)
(i32.const 1)
)
)
- (local.set $1
- (local.get $4)
+ (local.set $0
+ (local.get $3)
)
(br $while-in15)
)
(block (result i32)
(local.set $17
- (local.get $15)
+ (local.get $4)
)
(local.set $18
- (local.get $1)
+ (local.get $0)
)
(i32.const 127)
)
@@ -7410,19 +7200,19 @@
(block
(i32.store
(local.get $17)
- (local.get $3)
+ (local.get $2)
)
(i32.store offset=24
- (local.get $3)
+ (local.get $2)
(local.get $18)
)
(i32.store offset=12
- (local.get $3)
- (local.get $3)
+ (local.get $2)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $3)
- (local.get $3)
+ (local.get $2)
+ (local.get $2)
)
)
)
@@ -7431,53 +7221,50 @@
(local.get $0)
(i32.const 130)
)
- (block
- (local.set $0
- (local.get $16)
- )
- (if
- (i32.and
- (i32.ge_u
- (local.tee $12
- (i32.load offset=8
- (local.get $0)
- )
- )
- (local.tee $7
- (i32.load
- (i32.const 192)
+ (if
+ (i32.and
+ (i32.ge_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.tee $0
+ (local.get $16)
)
)
)
- (i32.ge_u
- (local.get $0)
- (local.get $7)
+ (local.tee $3
+ (i32.load
+ (i32.const 192)
+ )
)
)
- (block
- (i32.store offset=12
- (local.get $12)
- (local.get $3)
- )
- (i32.store offset=8
- (local.get $0)
- (local.get $3)
- )
- (i32.store offset=8
- (local.get $3)
- (local.get $12)
- )
- (i32.store offset=12
- (local.get $3)
- (local.get $16)
- )
- (i32.store offset=24
- (local.get $3)
- (i32.const 0)
- )
+ (i32.ge_u
+ (local.get $0)
+ (local.get $3)
)
- (call $_abort)
)
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $2)
+ (local.get $1)
+ )
+ (i32.store offset=12
+ (local.get $2)
+ (local.get $16)
+ )
+ (i32.store offset=24
+ (local.get $2)
+ (i32.const 0)
+ )
+ )
+ (call $_abort)
)
)
)
@@ -7487,30 +7274,30 @@
(i32.const 180)
(i32.or
(local.get $5)
- (local.get $14)
+ (local.get $7)
)
)
(i32.store offset=480
- (local.get $1)
(local.get $3)
+ (local.get $2)
)
(i32.store offset=24
- (local.get $3)
- (local.get $7)
+ (local.get $2)
+ (local.get $4)
)
(i32.store offset=12
- (local.get $3)
- (local.get $3)
+ (local.get $2)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $3)
- (local.get $3)
+ (local.get $2)
+ (local.get $2)
)
)
)
(i32.store
(i32.const 208)
- (local.tee $3
+ (local.tee $0
(i32.add
(i32.load
(i32.const 208)
@@ -7521,14 +7308,14 @@
)
(local.set $0
(if (result i32)
- (local.get $3)
+ (local.get $0)
(return)
(i32.const 632)
)
)
(loop $while-in17
(if
- (local.tee $3
+ (local.tee $0
(i32.load
(local.get $0)
)
@@ -7536,7 +7323,7 @@
(block
(local.set $0
(i32.add
- (local.get $3)
+ (local.get $0)
(i32.const 8)
)
)
@@ -7561,9 +7348,7 @@
(local $11 i32)
(local $12 i32)
(local $13 i32)
- (local $14 i32)
- (local $15 i32)
- (local.set $10
+ (local.set $9
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -7574,129 +7359,123 @@
)
(local.set $7
(i32.add
- (local.get $10)
+ (local.get $9)
(i32.const 16)
)
)
(i32.store
- (local.tee $3
+ (local.tee $4
(i32.add
(local.tee $8
- (local.get $10)
+ (local.get $9)
)
(i32.const 32)
)
)
- (local.tee $4
+ (local.tee $3
(i32.load offset=28
(local.get $0)
)
)
)
(i32.store offset=4
- (local.get $3)
- (local.tee $6
+ (local.get $4)
+ (local.tee $3
(i32.sub
(i32.load offset=20
(local.get $0)
)
- (local.get $4)
+ (local.get $3)
)
)
)
(i32.store offset=8
- (local.get $3)
+ (local.get $4)
(local.get $1)
)
(i32.store offset=12
- (local.get $3)
+ (local.get $4)
(local.get $2)
)
- (local.set $11
- (local.get $0)
- )
- (local.set $12
- (local.get $0)
- )
(local.set $1
- (local.get $3)
+ (local.get $4)
)
- (local.set $3
+ (local.set $4
(i32.const 2)
)
- (local.set $4
+ (local.set $10
(i32.add
(local.get $2)
- (local.get $6)
+ (local.get $3)
)
)
(loop $while-in
(block $while-out
(if
- (i32.eq
- (local.get $4)
- (local.tee $5
- (if (result i32)
- (i32.load
- (i32.const 8)
- )
- (block (result i32)
- (call $_pthread_cleanup_push
- (i32.const 4)
- (local.get $0)
- )
- (i32.store
- (local.get $8)
- (i32.load offset=60
- (local.get $11)
- )
- )
- (i32.store offset=4
- (local.get $8)
- (local.get $1)
- )
- (i32.store offset=8
- (local.get $8)
- (local.get $3)
- )
- (local.set $6
- (call $___syscall_ret
- (call $___syscall146
- (i32.const 146)
- (local.get $8)
- )
- )
- )
- (call $_pthread_cleanup_pop
- (i32.const 0)
- )
- (local.get $6)
+ (i32.load
+ (i32.const 8)
+ )
+ (block
+ (call $_pthread_cleanup_push
+ (i32.const 4)
+ (local.get $0)
+ )
+ (i32.store
+ (local.get $8)
+ (i32.load offset=60
+ (local.get $0)
+ )
+ )
+ (i32.store offset=4
+ (local.get $8)
+ (local.get $1)
+ )
+ (i32.store offset=8
+ (local.get $8)
+ (local.get $4)
+ )
+ (local.set $3
+ (call $___syscall_ret
+ (call $___syscall146
+ (i32.const 146)
+ (local.get $8)
)
- (block (result i32)
- (i32.store
- (local.get $7)
- (i32.load offset=60
- (local.get $11)
- )
- )
- (i32.store offset=4
- (local.get $7)
- (local.get $1)
- )
- (i32.store offset=8
- (local.get $7)
- (local.get $3)
- )
- (call $___syscall_ret
- (call $___syscall146
- (i32.const 146)
- (local.get $7)
- )
- )
+ )
+ )
+ (call $_pthread_cleanup_pop
+ (i32.const 0)
+ )
+ )
+ (block
+ (i32.store
+ (local.get $7)
+ (i32.load offset=60
+ (local.get $0)
+ )
+ )
+ (i32.store offset=4
+ (local.get $7)
+ (local.get $1)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $4)
+ )
+ (local.set $3
+ (call $___syscall_ret
+ (call $___syscall146
+ (i32.const 146)
+ (local.get $7)
)
)
)
)
+ )
+ (if
+ (i32.eq
+ (local.get $3)
+ (local.get $10)
+ )
(block
(local.set $1
(i32.const 6)
@@ -7706,123 +7485,125 @@
)
(if
(i32.lt_s
- (local.get $5)
+ (local.get $3)
(i32.const 0)
)
(block
- (local.set $14
+ (local.set $12
(local.get $1)
)
- (local.set $15
- (local.get $3)
+ (local.set $13
+ (local.get $4)
)
(local.set $1
(i32.const 8)
)
- (br $while-out)
- )
- )
- (local.set $6
- (i32.sub
- (local.get $4)
- (local.get $5)
- )
- )
- (if
- (i32.le_u
- (local.get $5)
- (local.tee $4
- (i32.load offset=4
- (local.get $1)
- )
- )
)
(block
- (if
- (i32.eq
- (local.get $3)
- (i32.const 2)
- )
- (block
- (i32.store offset=28
- (local.get $0)
- (i32.add
- (local.get $5)
- (i32.load offset=28
- (local.get $0)
+ (local.set $5
+ (if (result i32)
+ (i32.le_u
+ (local.get $3)
+ (local.tee $5
+ (i32.load offset=4
+ (local.get $1)
)
)
)
- (local.set $3
- (i32.const 2)
+ (block (result i32)
+ (if
+ (i32.eq
+ (local.get $4)
+ (i32.const 2)
+ )
+ (block
+ (i32.store offset=28
+ (local.get $0)
+ (i32.add
+ (local.get $3)
+ (i32.load offset=28
+ (local.get $0)
+ )
+ )
+ )
+ (local.set $6
+ (local.get $5)
+ )
+ (local.set $4
+ (i32.const 2)
+ )
+ )
+ (local.set $6
+ (local.get $5)
+ )
+ )
+ (local.get $3)
)
- )
- )
- (local.set $9
- (local.get $4)
- )
- )
- (block
- (i32.store offset=28
- (local.get $0)
- (local.tee $9
- (i32.load offset=44
- (local.get $12)
+ (block (result i32)
+ (i32.store offset=28
+ (local.get $0)
+ (local.tee $6
+ (i32.load offset=44
+ (local.get $0)
+ )
+ )
+ )
+ (i32.store offset=20
+ (local.get $0)
+ (local.get $6)
+ )
+ (local.set $6
+ (i32.load offset=12
+ (local.get $1)
+ )
+ )
+ (local.set $1
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
+ )
+ (local.set $4
+ (i32.add
+ (local.get $4)
+ (i32.const -1)
+ )
+ )
+ (i32.sub
+ (local.get $3)
+ (local.get $5)
+ )
)
)
)
- (i32.store offset=20
- (local.get $0)
- (local.get $9)
- )
- (local.set $9
- (i32.load offset=12
- (local.get $1)
+ (i32.store
+ (local.get $1)
+ (i32.add
+ (local.get $5)
+ (i32.load
+ (local.get $1)
+ )
)
)
- (local.set $5
+ (i32.store offset=4
+ (local.get $1)
(i32.sub
+ (local.get $6)
(local.get $5)
- (local.get $4)
- )
- )
- (local.set $1
- (i32.add
- (local.get $1)
- (i32.const 8)
)
)
- (local.set $3
- (i32.add
+ (local.set $10
+ (i32.sub
+ (local.get $10)
(local.get $3)
- (i32.const -1)
)
)
+ (br $while-in)
)
)
- (i32.store
- (local.get $1)
- (i32.add
- (local.get $5)
- (i32.load
- (local.get $1)
- )
- )
- )
- (i32.store offset=4
- (local.get $1)
- (i32.sub
- (local.get $9)
- (local.get $5)
- )
- )
- (local.set $4
- (local.get $6)
- )
- (br $while-in)
)
)
- (local.set $13
+ (local.set $11
(if (result i32)
(i32.eq
(local.get $1)
@@ -7832,9 +7613,9 @@
(i32.store offset=16
(local.get $0)
(i32.add
- (local.tee $4
+ (local.tee $1
(i32.load offset=44
- (local.get $12)
+ (local.get $0)
)
)
(i32.load offset=48
@@ -7844,11 +7625,11 @@
)
(i32.store offset=28
(local.get $0)
- (local.get $4)
+ (local.get $1)
)
(i32.store offset=20
(local.get $0)
- (local.get $4)
+ (local.get $1)
)
(local.get $2)
)
@@ -7881,26 +7662,26 @@
)
(if (result i32)
(i32.eq
- (local.get $15)
+ (local.get $13)
(i32.const 2)
)
(i32.const 0)
(i32.sub
(local.get $2)
(i32.load offset=4
- (local.get $14)
+ (local.get $12)
)
)
)
)
- (local.get $13)
+ (local.get $11)
)
)
)
(global.set $STACKTOP
- (local.get $10)
+ (local.get $9)
)
- (local.get $13)
+ (local.get $11)
)
(func $___fwritex (; 18 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
@@ -7908,14 +7689,10 @@
(local $4 i32)
(local $5 i32)
(local $6 i32)
- (local $7 i32)
- (local.set $6
+ (local.set $5
(i32.const 672)
)
(local.set $3
- (local.get $1)
- )
- (local.set $5
(if (result i32)
(local.tee $4
(i32.load offset=16
@@ -7923,7 +7700,7 @@
)
)
(block (result i32)
- (local.set $7
+ (local.set $6
(i32.const 5)
)
(local.get $4)
@@ -7932,13 +7709,13 @@
(call $___towrite
(local.get $1)
)
- (local.get $5)
+ (local.get $3)
(block (result i32)
- (local.set $7
+ (local.set $6
(i32.const 5)
)
(i32.load offset=16
- (local.get $3)
+ (local.get $1)
)
)
)
@@ -7946,15 +7723,15 @@
)
(if
(i32.eq
- (local.get $7)
+ (local.get $6)
(i32.const 5)
)
(block $label$break$L5
(if
(i32.lt_u
(i32.sub
- (local.get $5)
- (local.tee $2
+ (local.get $3)
+ (local.tee $3
(i32.load offset=20
(local.get $1)
)
@@ -7982,9 +7759,6 @@
(br $label$break$L5)
)
)
- (local.set $4
- (local.get $2)
- )
(if
(i32.gt_s
(i32.load8_s offset=75
@@ -8011,7 +7785,7 @@
(if
(i32.ne
(i32.load8_s offset=672
- (local.tee $5
+ (local.tee $4
(i32.add
(local.get $2)
(i32.const -1)
@@ -8022,7 +7796,7 @@
)
(block
(local.set $2
- (local.get $5)
+ (local.get $4)
)
(br $while-in)
)
@@ -8053,35 +7827,32 @@
(local.get $2)
)
)
- (local.set $6
+ (local.set $5
(i32.add
(local.get $2)
(i32.const 672)
)
)
- (local.set $4
+ (local.set $3
(i32.load offset=20
- (local.get $3)
+ (local.get $1)
)
)
)
- (local.set $2
- (i32.const 0)
- )
)
(drop
(call $_memcpy
- (local.get $4)
- (local.get $6)
+ (local.get $3)
+ (local.get $5)
(local.get $0)
)
)
(i32.store offset=20
- (local.get $3)
+ (local.get $1)
(i32.add
(local.get $0)
(i32.load offset=20
- (local.get $3)
+ (local.get $1)
)
)
)
@@ -8097,10 +7868,9 @@
)
(func $_fflush (; 19 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
- (local $2 i32)
(if
(local.get $0)
- (local.set $1
+ (local.set $0
(block $do-once (result i32)
(if
(i32.le_s
@@ -8143,56 +7913,45 @@
(i32.const 32)
)
)
- (block
- (local.set $2
- (local.get $1)
- )
- (local.set $1
- (local.get $0)
+ (loop $while-in
+ (drop
+ (i32.load offset=76
+ (local.get $1)
+ )
)
- (loop $while-in
- (drop
- (i32.load offset=76
- (local.get $2)
+ (if
+ (i32.gt_u
+ (i32.load offset=20
+ (local.get $1)
)
- )
- (if
- (i32.gt_u
- (i32.load offset=20
- (local.get $2)
- )
- (i32.load offset=28
- (local.get $2)
- )
+ (i32.load offset=28
+ (local.get $1)
)
- (local.set $1
- (i32.or
- (call $___fflush_unlocked
- (local.get $2)
- )
+ )
+ (local.set $0
+ (i32.or
+ (call $___fflush_unlocked
(local.get $1)
)
+ (local.get $0)
)
)
- (br_if $while-in
- (local.tee $2
- (i32.load offset=56
- (local.get $2)
- )
+ )
+ (br_if $while-in
+ (local.tee $1
+ (i32.load offset=56
+ (local.get $1)
)
)
)
)
- (local.set $1
- (local.get $0)
- )
)
(call $___unlock
(i32.const 36)
)
)
)
- (local.get $1)
+ (local.get $0)
)
(func $_strlen (; 20 ;) (; has Stack IR ;) (result i32)
(local $0 i32)
@@ -8204,48 +7963,48 @@
(i32.const 672)
)
(block
- (local.set $1
+ (local.set $4
(i32.const 672)
)
- (local.set $2
+ (local.set $1
(i32.const 4)
)
)
(i32.sub
(if (result i32)
(i32.eq
- (local.get $2)
+ (local.get $1)
(i32.const 4)
)
(block (result i32)
- (local.set $2
- (local.get $1)
+ (local.set $1
+ (local.get $4)
)
(local.set $0
(loop $while-in1 (result i32)
(if (result i32)
(i32.and
(i32.add
- (local.tee $1
+ (local.tee $2
(i32.load
- (local.get $2)
+ (local.get $1)
)
)
(i32.const -16843009)
)
(i32.xor
(i32.and
- (local.get $1)
+ (local.get $2)
(i32.const -2139062144)
)
(i32.const -2139062144)
)
)
- (local.get $2)
+ (local.get $1)
(block
- (local.set $2
+ (local.set $1
(i32.add
- (local.get $2)
+ (local.get $1)
(i32.const 4)
)
)
@@ -8256,28 +8015,17 @@
)
(if
(i32.and
- (local.get $1)
+ (local.get $2)
(i32.const 255)
)
- (block
- (local.set $1
- (local.get $0)
- )
- (loop $while-in3
- (if
- (i32.load8_s
- (local.tee $0
- (i32.add
- (local.get $1)
- (i32.const 1)
- )
- )
- )
- (block
- (local.set $1
+ (loop $while-in3
+ (br_if $while-in3
+ (i32.load8_s
+ (local.tee $0
+ (i32.add
(local.get $0)
+ (i32.const 1)
)
- (br $while-in3)
)
)
)
@@ -8285,7 +8033,7 @@
)
(local.get $0)
)
- (local.get $4)
+ (local.get $2)
)
(i32.const 672)
)
@@ -8298,7 +8046,6 @@
(local $5 i32)
(local $6 i32)
(local $7 i32)
- (local $8 i32)
(local.set $3
(global.get $STACKTOP)
)
@@ -8314,18 +8061,15 @@
)
(i32.const 10)
)
- (local.set $7
- (local.get $0)
- )
(if
- (local.tee $2
+ (local.tee $1
(i32.load offset=16
(local.get $0)
)
)
(block
(local.set $5
- (local.get $2)
+ (local.get $1)
)
(local.set $6
(i32.const 4)
@@ -8335,13 +8079,13 @@
(call $___towrite
(local.get $0)
)
- (local.set $1
+ (local.set $2
(i32.const -1)
)
(block
(local.set $5
(i32.load offset=16
- (local.get $7)
+ (local.get $0)
)
)
(local.set $6
@@ -8355,15 +8099,12 @@
(local.get $6)
(i32.const 4)
)
- (local.set $1
+ (local.set $2
(block $do-once (result i32)
- (local.set $1
- (local.get $0)
- )
(if
(if (result i32)
(i32.lt_u
- (local.tee $2
+ (local.tee $1
(i32.load offset=20
(local.get $0)
)
@@ -8371,7 +8112,7 @@
(local.get $5)
)
(i32.ne
- (local.tee $8
+ (local.tee $7
(i32.const 10)
)
(i32.load8_s offset=75
@@ -8382,18 +8123,18 @@
)
(block
(i32.store offset=20
- (local.get $1)
+ (local.get $0)
(i32.add
- (local.get $2)
+ (local.get $1)
(i32.const 1)
)
)
(i32.store8
- (local.get $2)
+ (local.get $1)
(i32.const 10)
)
(br $do-once
- (local.get $8)
+ (local.get $7)
)
)
)
@@ -8426,7 +8167,7 @@
(global.set $STACKTOP
(local.get $3)
)
- (local.get $1)
+ (local.get $2)
)
(func $___fflush_unlocked (; 22 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
@@ -9115,7 +8856,7 @@
(i32.const -1)
)
)
- (local.set $3
+ (local.set $0
(call $___stdio_write
(local.get $0)
(local.get $1)
@@ -9125,7 +8866,7 @@
(global.set $STACKTOP
(local.get $4)
)
- (local.get $3)
+ (local.get $0)
)
(func $___stdio_close (; 31 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
diff --git a/test/emcc_O2_hello_world.fromasm.clamp b/test/emcc_O2_hello_world.fromasm.clamp
index 2ea71d54e..0c0c148a1 100644
--- a/test/emcc_O2_hello_world.fromasm.clamp
+++ b/test/emcc_O2_hello_world.fromasm.clamp
@@ -99,11 +99,6 @@
(local $45 i32)
(local $46 i32)
(local $47 i32)
- (local $48 i32)
- (local $49 i32)
- (local $50 i32)
- (local $51 i32)
- (local $52 i32)
(if
(i32.lt_u
(local.get $0)
@@ -112,16 +107,16 @@
(block
(if
(i32.and
- (local.tee $2
+ (local.tee $5
(i32.shr_u
- (local.tee $15
+ (local.tee $18
(i32.load
(i32.const 176)
)
)
(local.tee $6
(i32.shr_u
- (local.tee $8
+ (local.tee $4
(select
(i32.const 16)
(i32.and
@@ -145,74 +140,69 @@
(i32.const 3)
)
(block
- (local.set $8
- (local.tee $1
- (i32.add
- (i32.shl
- (local.tee $6
- (i32.add
- (local.get $6)
- (i32.xor
- (i32.and
- (local.get $2)
- (i32.const 1)
+ (local.set $0
+ (i32.load
+ (local.tee $6
+ (i32.add
+ (local.tee $4
+ (i32.load offset=8
+ (local.tee $1
+ (i32.add
+ (i32.shl
+ (local.tee $3
+ (i32.add
+ (local.get $6)
+ (i32.xor
+ (i32.and
+ (local.get $5)
+ (i32.const 1)
+ )
+ (i32.const 1)
+ )
+ )
+ )
+ (i32.const 3)
+ )
+ (i32.const 216)
)
- (i32.const 1)
)
)
)
- (i32.const 3)
+ (i32.const 8)
)
- (i32.const 216)
)
)
)
(if
(i32.ne
+ (local.get $0)
(local.get $1)
- (local.tee $7
- (i32.load
- (local.tee $17
- (i32.add
- (local.tee $0
- (i32.load offset=8
- (local.get $8)
- )
- )
- (i32.const 8)
- )
- )
- )
- )
)
(block
(if
(i32.lt_u
- (local.get $7)
+ (local.get $0)
(i32.load
(i32.const 192)
)
)
(call $_abort)
)
- (local.set $2
- (local.get $7)
- )
(if
(i32.eq
- (local.get $0)
+ (local.get $4)
(i32.load offset=12
- (local.get $2)
+ (local.get $0)
)
)
(block
(i32.store offset=12
- (local.get $2)
+ (local.get $0)
(local.get $1)
)
(i32.store offset=8
- (local.get $8)
- (local.get $7)
+ (local.get $1)
+ (local.get $0)
)
)
(call $_abort)
@@ -224,34 +214,33 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $6)
+ (local.get $3)
)
(i32.const -1)
)
- (local.get $15)
+ (local.get $18)
)
)
)
(i32.store offset=4
- (local.get $0)
+ (local.get $4)
(i32.or
- (local.tee $7
+ (local.tee $0
(i32.shl
- (local.get $6)
+ (local.get $3)
(i32.const 3)
)
)
(i32.const 3)
)
)
- (local.set $0
- (i32.add
- (local.get $0)
- (local.get $7)
- )
- )
(i32.store offset=4
- (local.get $0)
+ (local.tee $0
+ (i32.add
+ (local.get $0)
+ (local.get $4)
+ )
+ )
(i32.or
(i32.load offset=4
(local.get $0)
@@ -260,14 +249,14 @@
)
)
(return
- (local.get $17)
+ (local.get $6)
)
)
)
(if
(i32.gt_u
- (local.get $8)
- (local.tee $5
+ (local.get $4)
+ (local.tee $0
(i32.load
(i32.const 184)
)
@@ -275,12 +264,12 @@
)
(block
(if
- (local.get $2)
+ (local.get $5)
(block
(local.set $1
(i32.and
(i32.shr_u
- (local.tee $7
+ (local.tee $3
(i32.add
(i32.and
(i32.sub
@@ -290,17 +279,17 @@
(i32.or
(i32.sub
(i32.const 0)
- (local.tee $7
+ (local.tee $1
(i32.shl
(i32.const 2)
(local.get $6)
)
)
)
- (local.get $7)
+ (local.get $1)
)
(i32.shl
- (local.get $2)
+ (local.get $5)
(local.get $6)
)
)
@@ -316,12 +305,12 @@
(i32.const 16)
)
)
- (local.set $7
+ (local.set $3
(i32.and
(i32.shr_u
- (local.tee $10
+ (local.tee $6
(i32.shr_u
- (local.get $7)
+ (local.get $3)
(local.get $1)
)
)
@@ -330,13 +319,13 @@
(i32.const 8)
)
)
- (local.set $10
+ (local.set $6
(i32.and
(i32.shr_u
- (local.tee $0
+ (local.tee $2
(i32.shr_u
- (local.get $10)
- (local.get $7)
+ (local.get $6)
+ (local.get $3)
)
)
(i32.const 2)
@@ -344,13 +333,13 @@
(i32.const 4)
)
)
- (local.set $0
+ (local.set $2
(i32.and
(i32.shr_u
- (local.tee $11
+ (local.tee $5
(i32.shr_u
- (local.get $0)
- (local.get $10)
+ (local.get $2)
+ (local.get $6)
)
)
(i32.const 1)
@@ -358,67 +347,65 @@
(i32.const 2)
)
)
- (local.set $6
- (local.tee $11
- (i32.add
- (i32.shl
- (local.tee $7
- (i32.add
- (i32.or
- (local.tee $11
- (i32.and
- (i32.shr_u
- (local.tee $19
+ (local.set $1
+ (i32.load
+ (local.tee $10
+ (i32.add
+ (local.tee $6
+ (i32.load offset=8
+ (local.tee $3
+ (i32.add
+ (i32.shl
+ (local.tee $2
+ (i32.add
+ (i32.or
+ (local.tee $10
+ (i32.and
+ (i32.shr_u
+ (local.tee $5
+ (i32.shr_u
+ (local.get $5)
+ (local.get $2)
+ )
+ )
+ (i32.const 1)
+ )
+ (i32.const 1)
+ )
+ )
+ (i32.or
+ (local.get $2)
+ (i32.or
+ (local.get $6)
+ (i32.or
+ (local.get $1)
+ (local.get $3)
+ )
+ )
+ )
+ )
(i32.shr_u
- (local.get $11)
- (local.get $0)
+ (local.get $5)
+ (local.get $10)
)
)
- (i32.const 1)
- )
- (i32.const 1)
- )
- )
- (i32.or
- (local.get $0)
- (i32.or
- (local.get $10)
- (i32.or
- (local.get $1)
- (local.get $7)
)
+ (i32.const 3)
)
+ (i32.const 216)
)
)
- (i32.shr_u
- (local.get $19)
- (local.get $11)
- )
)
)
- (i32.const 3)
+ (i32.const 8)
)
- (i32.const 216)
)
)
)
(if
(i32.ne
- (local.tee $1
- (i32.load
- (local.tee $10
- (i32.add
- (local.tee $0
- (i32.load offset=8
- (local.get $6)
- )
- )
- (i32.const 8)
- )
- )
- )
- )
- (local.get $11)
+ (local.get $1)
+ (local.get $3)
)
(block
(if
@@ -430,26 +417,23 @@
)
(call $_abort)
)
- (local.set $2
- (local.get $1)
- )
(if
(i32.eq
- (local.get $0)
+ (local.get $6)
(i32.load offset=12
(local.get $1)
)
)
(block
(i32.store offset=12
- (local.get $2)
- (local.get $11)
+ (local.get $1)
+ (local.get $3)
)
(i32.store offset=8
- (local.get $6)
+ (local.get $3)
(local.get $1)
)
- (local.set $17
+ (local.set $13
(i32.load
(i32.const 184)
)
@@ -465,40 +449,40 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $7)
+ (local.get $2)
)
(i32.const -1)
)
- (local.get $15)
+ (local.get $18)
)
)
- (local.set $17
- (local.get $5)
+ (local.set $13
+ (local.get $0)
)
)
)
(i32.store offset=4
- (local.get $0)
+ (local.get $6)
(i32.or
- (local.get $8)
+ (local.get $4)
(i32.const 3)
)
)
(i32.store offset=4
- (local.tee $15
+ (local.tee $5
(i32.add
- (local.get $0)
- (local.get $8)
+ (local.get $4)
+ (local.get $6)
)
)
(i32.or
- (local.tee $5
+ (local.tee $6
(i32.sub
(i32.shl
- (local.get $7)
+ (local.get $2)
(i32.const 3)
)
- (local.get $8)
+ (local.get $4)
)
)
(i32.const 1)
@@ -507,24 +491,24 @@
(i32.store
(i32.add
(local.get $5)
- (local.get $15)
+ (local.get $6)
)
- (local.get $5)
+ (local.get $6)
)
(if
- (local.get $17)
+ (local.get $13)
(block
- (local.set $1
+ (local.set $3
(i32.load
(i32.const 196)
)
)
- (local.set $11
+ (local.set $0
(i32.add
(i32.shl
- (local.tee $19
+ (local.tee $1
(i32.shr_u
- (local.get $17)
+ (local.get $13)
(i32.const 3)
)
)
@@ -535,25 +519,25 @@
)
(if
(i32.and
- (local.tee $6
+ (local.tee $4
(i32.load
(i32.const 176)
)
)
- (local.tee $2
+ (local.tee $1
(i32.shl
(i32.const 1)
- (local.get $19)
+ (local.get $1)
)
)
)
(if
(i32.lt_u
- (local.tee $17
+ (local.tee $4
(i32.load
- (local.tee $19
+ (local.tee $1
(i32.add
- (local.get $11)
+ (local.get $0)
(i32.const 8)
)
)
@@ -565,11 +549,11 @@
)
(call $_abort)
(block
- (local.set $37
- (local.get $19)
+ (local.set $25
+ (local.get $1)
)
- (local.set $31
- (local.get $17)
+ (local.set $8
+ (local.get $4)
)
)
)
@@ -577,46 +561,46 @@
(i32.store
(i32.const 176)
(i32.or
- (local.get $2)
- (local.get $6)
+ (local.get $1)
+ (local.get $4)
)
)
- (local.set $37
+ (local.set $25
(i32.add
- (local.get $11)
+ (local.get $0)
(i32.const 8)
)
)
- (local.set $31
- (local.get $11)
+ (local.set $8
+ (local.get $0)
)
)
)
(i32.store
- (local.get $37)
- (local.get $1)
+ (local.get $25)
+ (local.get $3)
)
(i32.store offset=12
- (local.get $31)
- (local.get $1)
+ (local.get $8)
+ (local.get $3)
)
(i32.store offset=8
- (local.get $1)
- (local.get $31)
+ (local.get $3)
+ (local.get $8)
)
(i32.store offset=12
- (local.get $1)
- (local.get $11)
+ (local.get $3)
+ (local.get $0)
)
)
)
(i32.store
(i32.const 184)
- (local.get $5)
+ (local.get $6)
)
(i32.store
(i32.const 196)
- (local.get $15)
+ (local.get $5)
)
(return
(local.get $10)
@@ -624,23 +608,23 @@
)
)
(if
- (local.tee $15
+ (local.tee $0
(i32.load
(i32.const 180)
)
)
(block
- (local.set $15
+ (local.set $0
(i32.and
(i32.shr_u
- (local.tee $5
+ (local.tee $1
(i32.add
(i32.and
(i32.sub
(i32.const 0)
- (local.get $15)
+ (local.get $0)
)
- (local.get $15)
+ (local.get $0)
)
(i32.const -1)
)
@@ -650,13 +634,13 @@
(i32.const 16)
)
)
- (local.set $5
+ (local.set $1
(i32.and
(i32.shr_u
- (local.tee $11
+ (local.tee $3
(i32.shr_u
- (local.get $5)
- (local.get $15)
+ (local.get $1)
+ (local.get $0)
)
)
(i32.const 5)
@@ -664,13 +648,13 @@
(i32.const 8)
)
)
- (local.set $11
+ (local.set $3
(i32.and
(i32.shr_u
- (local.tee $1
+ (local.tee $6
(i32.shr_u
- (local.get $11)
- (local.get $5)
+ (local.get $3)
+ (local.get $1)
)
)
(i32.const 2)
@@ -678,13 +662,13 @@
(i32.const 4)
)
)
- (local.set $1
+ (local.set $6
(i32.and
(i32.shr_u
- (local.tee $2
+ (local.tee $8
(i32.shr_u
- (local.get $1)
- (local.get $11)
+ (local.get $6)
+ (local.get $3)
)
)
(i32.const 1)
@@ -692,22 +676,22 @@
(i32.const 2)
)
)
- (local.set $2
+ (local.set $5
(i32.sub
(i32.and
(i32.load offset=4
- (local.tee $17
+ (local.tee $1
(i32.load offset=480
(i32.shl
(i32.add
(i32.or
- (local.tee $2
+ (local.tee $5
(i32.and
(i32.shr_u
- (local.tee $6
+ (local.tee $8
(i32.shr_u
- (local.get $2)
- (local.get $1)
+ (local.get $8)
+ (local.get $6)
)
)
(i32.const 1)
@@ -716,19 +700,19 @@
)
)
(i32.or
- (local.get $1)
+ (local.get $6)
(i32.or
- (local.get $11)
+ (local.get $3)
(i32.or
- (local.get $5)
- (local.get $15)
+ (local.get $0)
+ (local.get $1)
)
)
)
)
(i32.shr_u
- (local.get $6)
- (local.get $2)
+ (local.get $8)
+ (local.get $5)
)
)
(i32.const 2)
@@ -738,70 +722,67 @@
)
(i32.const -8)
)
- (local.get $8)
+ (local.get $4)
)
)
- (local.set $1
- (local.tee $6
- (local.get $17)
- )
+ (local.set $0
+ (local.get $1)
)
(loop $while-in
(block $while-out
- (local.set $11
+ (if
+ (local.tee $3
+ (i32.load offset=16
+ (local.get $1)
+ )
+ )
+ (local.set $1
+ (local.get $3)
+ )
+ (if
+ (i32.eqz
+ (local.tee $1
+ (i32.load offset=20
+ (local.get $1)
+ )
+ )
+ )
+ (block
+ (local.set $8
+ (local.get $0)
+ )
+ (br $while-out)
+ )
+ )
+ )
+ (local.set $3
(i32.lt_u
- (local.tee $17
+ (local.tee $6
(i32.sub
(i32.and
(i32.load offset=4
- (local.tee $6
- (if (result i32)
- (local.tee $17
- (i32.load offset=16
- (local.get $6)
- )
- )
- (local.get $17)
- (if (result i32)
- (local.tee $11
- (i32.load offset=20
- (local.get $6)
- )
- )
- (local.get $11)
- (block
- (local.set $9
- (local.get $2)
- )
- (local.set $5
- (local.get $1)
- )
- (br $while-out)
- )
- )
- )
- )
+ (local.get $1)
)
(i32.const -8)
)
- (local.get $8)
+ (local.get $4)
)
)
- (local.get $2)
+ (local.get $5)
)
)
- (local.set $2
+ (local.set $5
(select
- (local.get $17)
- (local.get $2)
- (local.get $11)
+ (local.get $6)
+ (local.get $5)
+ (local.get $3)
)
)
- (local.set $1
+ (local.set $0
(select
- (local.get $6)
(local.get $1)
- (local.get $11)
+ (local.get $0)
+ (local.get $3)
)
)
(br $while-in)
@@ -809,8 +790,8 @@
)
(if
(i32.lt_u
- (local.get $5)
- (local.tee $1
+ (local.get $8)
+ (local.tee $18
(i32.load
(i32.const 192)
)
@@ -820,104 +801,98 @@
)
(if
(i32.ge_u
- (local.get $5)
- (local.tee $6
+ (local.get $8)
+ (local.tee $14
(i32.add
- (local.get $5)
+ (local.get $4)
(local.get $8)
)
)
)
(call $_abort)
)
- (local.set $2
+ (local.set $10
(i32.load offset=24
- (local.get $5)
+ (local.get $8)
)
)
(if
(i32.eq
- (local.tee $10
+ (local.get $8)
+ (local.tee $0
(i32.load offset=12
- (local.get $5)
+ (local.get $8)
)
)
- (local.get $5)
)
(block $do-once4
- (local.set $4
- (if (result i32)
- (local.tee $7
+ (if
+ (i32.eqz
+ (local.tee $0
(i32.load
- (local.tee $0
+ (local.tee $1
(i32.add
- (local.get $5)
+ (local.get $8)
(i32.const 20)
)
)
)
)
- (block (result i32)
- (local.set $17
- (local.get $7)
- )
- (local.get $0)
- )
- (if (result i32)
- (local.tee $17
+ )
+ (br_if $do-once4
+ (i32.eqz
+ (local.tee $0
(i32.load
- (local.tee $11
+ (local.tee $1
(i32.add
- (local.get $5)
+ (local.get $8)
(i32.const 16)
)
)
)
)
- (local.get $11)
- (br $do-once4)
)
)
)
(loop $while-in7
(if
- (local.tee $7
+ (local.tee $6
(i32.load
- (local.tee $0
+ (local.tee $3
(i32.add
- (local.get $17)
+ (local.get $0)
(i32.const 20)
)
)
)
)
(block
- (local.set $17
- (local.get $7)
+ (local.set $0
+ (local.get $6)
)
- (local.set $4
- (local.get $0)
+ (local.set $1
+ (local.get $3)
)
(br $while-in7)
)
)
(if
- (local.tee $7
+ (local.tee $6
(i32.load
- (local.tee $0
+ (local.tee $3
(i32.add
- (local.get $17)
+ (local.get $0)
(i32.const 16)
)
)
)
)
(block
- (local.set $17
- (local.get $7)
+ (local.set $0
+ (local.get $6)
)
- (local.set $4
- (local.get $0)
+ (local.set $1
+ (local.get $3)
)
(br $while-in7)
)
@@ -925,17 +900,17 @@
)
(if
(i32.lt_u
- (local.get $4)
(local.get $1)
+ (local.get $18)
)
(call $_abort)
(block
(i32.store
- (local.get $4)
+ (local.get $1)
(i32.const 0)
)
- (local.set $19
- (local.get $17)
+ (local.set $2
+ (local.get $0)
)
)
)
@@ -943,48 +918,42 @@
(block
(if
(i32.lt_u
- (local.tee $0
+ (local.tee $1
(i32.load offset=8
- (local.get $5)
+ (local.get $8)
)
)
- (local.get $1)
+ (local.get $18)
)
(call $_abort)
)
- (local.set $1
- (local.get $0)
- )
(if
(i32.ne
- (local.get $5)
+ (local.get $8)
(i32.load offset=12
- (local.get $0)
+ (local.get $1)
)
)
(call $_abort)
)
- (local.set $7
- (local.get $10)
- )
(if
(i32.eq
- (local.get $5)
+ (local.get $8)
(i32.load offset=8
- (local.get $7)
+ (local.get $0)
)
)
(block
(i32.store offset=12
(local.get $1)
- (local.get $10)
+ (local.get $0)
)
(i32.store offset=8
- (local.get $7)
(local.get $0)
+ (local.get $1)
)
- (local.set $19
- (local.get $10)
+ (local.set $2
+ (local.get $0)
)
)
(call $_abort)
@@ -992,33 +961,32 @@
)
)
(if
- (local.get $2)
+ (local.get $10)
(block $do-once8
- (local.set $0
- (i32.shl
- (local.tee $10
- (i32.load offset=28
- (local.get $5)
- )
- )
- (i32.const 2)
- )
- )
(if
(i32.eq
(i32.load offset=480
- (local.get $0)
+ (local.tee $1
+ (i32.shl
+ (local.tee $0
+ (i32.load offset=28
+ (local.get $8)
+ )
+ )
+ (i32.const 2)
+ )
+ )
)
- (local.get $5)
+ (local.get $8)
)
(block
(i32.store offset=480
- (local.get $0)
- (local.get $19)
+ (local.get $1)
+ (local.get $2)
)
(if
(i32.eqz
- (local.get $19)
+ (local.get $2)
)
(block
(i32.store
@@ -1030,7 +998,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $10)
+ (local.get $0)
)
(i32.const -1)
)
@@ -1043,43 +1011,40 @@
(block
(if
(i32.lt_u
- (local.get $2)
+ (local.get $10)
(i32.load
(i32.const 192)
)
)
(call $_abort)
)
- (local.set $0
- (local.get $2)
- )
(if
(i32.eq
- (local.get $5)
+ (local.get $8)
(i32.load offset=16
- (local.get $0)
+ (local.get $10)
)
)
(i32.store offset=16
- (local.get $0)
- (local.get $19)
+ (local.get $10)
+ (local.get $2)
)
(i32.store offset=20
+ (local.get $10)
(local.get $2)
- (local.get $19)
)
)
(br_if $do-once8
(i32.eqz
- (local.get $19)
+ (local.get $2)
)
)
)
)
(if
(i32.lt_u
- (local.get $19)
- (local.tee $10
+ (local.get $2)
+ (local.tee $1
(i32.load
(i32.const 192)
)
@@ -1088,42 +1053,42 @@
(call $_abort)
)
(i32.store offset=24
- (local.get $19)
(local.get $2)
+ (local.get $10)
)
(if
- (local.tee $1
+ (local.tee $0
(i32.load offset=16
- (local.get $5)
+ (local.get $8)
)
)
(if
(i32.lt_u
+ (local.get $0)
(local.get $1)
- (local.get $10)
)
(call $_abort)
(block
(i32.store offset=16
- (local.get $19)
- (local.get $1)
+ (local.get $2)
+ (local.get $0)
)
(i32.store offset=24
- (local.get $1)
- (local.get $19)
+ (local.get $0)
+ (local.get $2)
)
)
)
)
(if
- (local.tee $1
+ (local.tee $0
(i32.load offset=20
- (local.get $5)
+ (local.get $8)
)
)
(if
(i32.lt_u
- (local.get $1)
+ (local.get $0)
(i32.load
(i32.const 192)
)
@@ -1131,12 +1096,12 @@
(call $_abort)
(block
(i32.store offset=20
- (local.get $19)
- (local.get $1)
+ (local.get $2)
+ (local.get $0)
)
(i32.store offset=24
- (local.get $1)
- (local.get $19)
+ (local.get $0)
+ (local.get $2)
)
)
)
@@ -1145,30 +1110,29 @@
)
(if
(i32.lt_u
- (local.get $9)
+ (local.get $5)
(i32.const 16)
)
(block
(i32.store offset=4
- (local.get $5)
+ (local.get $8)
(i32.or
- (local.tee $2
+ (local.tee $0
(i32.add
- (local.get $8)
- (local.get $9)
+ (local.get $4)
+ (local.get $5)
)
)
(i32.const 3)
)
)
- (local.set $0
- (i32.add
- (local.get $2)
- (local.get $5)
- )
- )
(i32.store offset=4
- (local.get $0)
+ (local.tee $0
+ (i32.add
+ (local.get $0)
+ (local.get $8)
+ )
+ )
(i32.or
(i32.load offset=4
(local.get $0)
@@ -1179,44 +1143,44 @@
)
(block
(i32.store offset=4
- (local.get $5)
+ (local.get $8)
(i32.or
- (local.get $8)
+ (local.get $4)
(i32.const 3)
)
)
(i32.store offset=4
- (local.get $6)
+ (local.get $14)
(i32.or
- (local.get $9)
+ (local.get $5)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $6)
- (local.get $9)
+ (local.get $5)
+ (local.get $14)
)
- (local.get $9)
+ (local.get $5)
)
(if
- (local.tee $1
+ (local.tee $0
(i32.load
(i32.const 184)
)
)
(block
- (local.set $2
+ (local.set $3
(i32.load
(i32.const 196)
)
)
- (local.set $1
+ (local.set $0
(i32.add
(i32.shl
- (local.tee $10
+ (local.tee $1
(i32.shr_u
- (local.get $1)
+ (local.get $0)
(i32.const 3)
)
)
@@ -1227,25 +1191,25 @@
)
(if
(i32.and
- (local.tee $0
+ (local.tee $4
(i32.load
(i32.const 176)
)
)
- (local.tee $11
+ (local.tee $1
(i32.shl
(i32.const 1)
- (local.get $10)
+ (local.get $1)
)
)
)
(if
(i32.lt_u
- (local.tee $7
+ (local.tee $4
(i32.load
- (local.tee $10
+ (local.tee $1
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
@@ -1257,11 +1221,11 @@
)
(call $_abort)
(block
- (local.set $38
- (local.get $10)
+ (local.set $19
+ (local.get $1)
)
- (local.set $32
- (local.get $7)
+ (local.set $7
+ (local.get $4)
)
)
)
@@ -1269,52 +1233,52 @@
(i32.store
(i32.const 176)
(i32.or
- (local.get $0)
- (local.get $11)
+ (local.get $1)
+ (local.get $4)
)
)
- (local.set $38
+ (local.set $19
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
- (local.set $32
- (local.get $1)
+ (local.set $7
+ (local.get $0)
)
)
)
(i32.store
- (local.get $38)
- (local.get $2)
+ (local.get $19)
+ (local.get $3)
)
(i32.store offset=12
- (local.get $32)
- (local.get $2)
+ (local.get $7)
+ (local.get $3)
)
(i32.store offset=8
- (local.get $2)
- (local.get $32)
+ (local.get $3)
+ (local.get $7)
)
(i32.store offset=12
- (local.get $2)
- (local.get $1)
+ (local.get $3)
+ (local.get $0)
)
)
)
(i32.store
(i32.const 184)
- (local.get $9)
+ (local.get $5)
)
(i32.store
(i32.const 196)
- (local.get $6)
+ (local.get $14)
)
)
)
(return
(i32.add
- (local.get $5)
+ (local.get $8)
(i32.const 8)
)
)
@@ -1323,16 +1287,16 @@
)
)
)
- (local.set $8
+ (local.set $4
(if (result i32)
(i32.le_u
(local.get $0)
(i32.const -65)
)
(block $do-once (result i32)
- (local.set $2
+ (local.set $5
(i32.and
- (local.tee $1
+ (local.tee $0
(i32.add
(local.get $0)
(i32.const 11)
@@ -1342,162 +1306,157 @@
)
)
(if (result i32)
- (local.tee $11
+ (local.tee $39
(i32.load
(i32.const 180)
)
)
(block (result i32)
- (local.set $0
- (i32.sub
- (i32.const 0)
- (local.get $2)
- )
- )
- (if
- (local.tee $15
- (i32.load offset=480
- (i32.shl
- (local.tee $8
- (if (result i32)
- (local.tee $7
- (i32.shr_u
- (local.get $1)
- (i32.const 8)
- )
- )
- (if (result i32)
- (i32.gt_u
- (local.get $2)
- (i32.const 16777215)
- )
- (i32.const 31)
- (block (result i32)
- (local.set $7
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $10
- (i32.shl
- (local.get $7)
- (local.tee $1
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $7)
- (i32.const 1048320)
- )
- (i32.const 16)
- )
- (i32.const 8)
- )
- )
+ (local.set $19
+ (if (result i32)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 8)
+ )
+ )
+ (if (result i32)
+ (i32.gt_u
+ (local.get $5)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $8
+ (i32.shl
+ (local.get $0)
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $0)
+ (i32.const 1048320)
)
+ (i32.const 16)
)
- (i32.const 520192)
+ (i32.const 8)
)
- (i32.const 16)
)
- (i32.const 4)
)
)
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $2)
- (i32.add
- (local.tee $15
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
- (local.tee $10
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $17
- (i32.shl
- (local.get $10)
- (local.get $7)
- )
- )
- (i32.const 245760)
- )
- (i32.const 16)
- )
- (i32.const 2)
+ (i32.const 520192)
+ )
+ (i32.const 16)
+ )
+ (i32.const 4)
+ )
+ )
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $5)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
+ (i32.or
+ (local.tee $7
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $8
+ (i32.shl
+ (local.get $8)
+ (local.get $0)
)
)
- (i32.or
- (local.get $1)
- (local.get $7)
- )
+ (i32.const 245760)
)
+ (i32.const 16)
)
- (i32.shr_u
- (i32.shl
- (local.get $17)
- (local.get $10)
- )
- (i32.const 15)
- )
+ (i32.const 2)
)
)
- (i32.const 7)
+ (i32.or
+ (local.get $0)
+ (local.get $2)
+ )
)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $15)
- (i32.const 1)
+ (i32.shr_u
+ (i32.shl
+ (local.get $8)
+ (local.get $7)
+ )
+ (i32.const 15)
+ )
)
)
+ (i32.const 7)
)
)
- (i32.const 0)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
)
+ )
+ )
+ (i32.const 0)
+ )
+ )
+ (local.set $2
+ (i32.sub
+ (i32.const 0)
+ (local.get $5)
+ )
+ )
+ (if
+ (local.tee $7
+ (i32.load offset=480
+ (i32.shl
+ (local.get $19)
(i32.const 2)
)
)
)
(block $label$break$L123
- (local.set $10
- (local.get $0)
- )
- (local.set $17
- (i32.const 0)
- )
- (local.set $1
+ (local.set $0
(i32.shl
- (local.get $2)
+ (local.get $5)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (local.get $8)
+ (local.get $19)
(i32.const 1)
)
)
(i32.eq
- (local.get $8)
+ (local.get $19)
(i32.const 31)
)
)
)
)
- (local.set $7
- (local.get $15)
+ (local.set $8
+ (i32.const 0)
)
- (local.set $6
+ (local.set $18
(loop $while-in14 (result i32)
(if
(i32.lt_u
- (local.tee $0
+ (local.tee $13
(i32.sub
- (local.tee $19
+ (local.tee $9
(i32.and
(i32.load offset=4
(local.get $7)
@@ -1505,55 +1464,54 @@
(i32.const -8)
)
)
- (local.get $2)
+ (local.get $5)
)
)
- (local.get $10)
+ (local.get $2)
)
- (local.set $5
+ (local.set $2
(if (result i32)
(i32.eq
- (local.get $2)
- (local.get $19)
+ (local.get $5)
+ (local.get $9)
)
(block
- (local.set $28
- (local.get $0)
+ (local.set $4
+ (local.get $13)
)
- (local.set $25
+ (local.set $20
(local.get $7)
)
- (local.set $29
+ (local.set $6
(local.get $7)
)
- (local.set $10
+ (local.set $9
(i32.const 90)
)
(br $label$break$L123)
)
(block (result i32)
- (local.set $10
- (local.get $0)
+ (local.set $8
+ (local.get $7)
)
- (local.get $7)
+ (local.get $13)
)
)
)
)
- (local.set $19
+ (local.set $13
(select
- (local.get $17)
- (local.tee $0
+ (local.get $25)
+ (local.tee $13
(i32.load offset=20
(local.get $7)
)
)
(i32.or
(i32.eqz
- (local.get $0)
+ (local.get $13)
)
(i32.eq
- (local.get $0)
(local.tee $7
(i32.load
(i32.add
@@ -1563,7 +1521,7 @@
)
(i32.shl
(i32.shr_u
- (local.get $1)
+ (local.get $0)
(i32.const 31)
)
(i32.const 2)
@@ -1571,40 +1529,38 @@
)
)
)
+ (local.get $13)
)
)
)
)
(if (result i32)
- (local.tee $0
+ (local.tee $9
(i32.eqz
(local.get $7)
)
)
(block (result i32)
- (local.set $33
- (local.get $10)
+ (local.set $21
+ (local.get $13)
)
- (local.set $30
- (local.get $5)
+ (local.set $26
+ (local.get $8)
)
- (local.set $10
+ (local.set $9
(i32.const 86)
)
- (local.get $19)
+ (local.get $2)
)
(block
- (local.set $17
- (local.get $19)
+ (local.set $25
+ (local.get $13)
)
- (local.set $1
+ (local.set $0
(i32.shl
- (local.get $1)
+ (local.get $0)
(i32.xor
- (i32.and
- (local.get $0)
- (i32.const 1)
- )
+ (local.get $9)
(i32.const 1)
)
)
@@ -1616,47 +1572,47 @@
)
)
(block
- (local.set $33
- (local.get $0)
+ (local.set $18
+ (local.get $2)
)
- (local.set $10
+ (local.set $9
(i32.const 86)
)
)
)
(if
(i32.eq
- (local.get $10)
+ (local.get $9)
(i32.const 86)
)
(block
(if
(i32.eqz
(i32.or
- (local.get $6)
- (local.get $30)
+ (local.get $21)
+ (local.get $26)
)
)
(block
(drop
(br_if $do-once
- (local.get $2)
+ (local.get $5)
(i32.eqz
(local.tee $0
(i32.and
(i32.or
(i32.sub
(i32.const 0)
- (local.tee $15
+ (local.tee $0
(i32.shl
(i32.const 2)
- (local.get $8)
+ (local.get $19)
)
)
)
- (local.get $15)
+ (local.get $0)
)
- (local.get $11)
+ (local.get $39)
)
)
)
@@ -1665,7 +1621,7 @@
(local.set $0
(i32.and
(i32.shr_u
- (local.tee $15
+ (local.tee $2
(i32.add
(i32.and
(i32.sub
@@ -1682,12 +1638,12 @@
(i32.const 16)
)
)
- (local.set $15
+ (local.set $2
(i32.and
(i32.shr_u
(local.tee $8
(i32.shr_u
- (local.get $15)
+ (local.get $2)
(local.get $0)
)
)
@@ -1699,10 +1655,10 @@
(local.set $8
(i32.and
(i32.shr_u
- (local.tee $6
+ (local.tee $7
(i32.shr_u
(local.get $8)
- (local.get $15)
+ (local.get $2)
)
)
(i32.const 2)
@@ -1710,12 +1666,12 @@
(i32.const 4)
)
)
- (local.set $6
+ (local.set $7
(i32.and
(i32.shr_u
- (local.tee $5
+ (local.tee $13
(i32.shr_u
- (local.get $6)
+ (local.get $7)
(local.get $8)
)
)
@@ -1724,18 +1680,18 @@
(i32.const 2)
)
)
- (local.set $6
+ (local.set $21
(i32.load offset=480
(i32.shl
(i32.add
(i32.or
- (local.tee $5
+ (local.tee $21
(i32.and
(i32.shr_u
- (local.tee $1
+ (local.tee $13
(i32.shr_u
- (local.get $5)
- (local.get $6)
+ (local.get $13)
+ (local.get $7)
)
)
(i32.const 1)
@@ -1744,19 +1700,19 @@
)
)
(i32.or
- (local.get $6)
+ (local.get $7)
(i32.or
(local.get $8)
(i32.or
(local.get $0)
- (local.get $15)
+ (local.get $2)
)
)
)
)
(i32.shr_u
- (local.get $1)
- (local.get $5)
+ (local.get $13)
+ (local.get $21)
)
)
(i32.const 2)
@@ -1766,27 +1722,27 @@
)
)
(if
- (local.get $6)
+ (local.get $21)
(block
- (local.set $28
- (local.get $33)
+ (local.set $4
+ (local.get $18)
)
- (local.set $25
- (local.get $6)
+ (local.set $20
+ (local.get $21)
)
- (local.set $29
- (local.get $30)
+ (local.set $6
+ (local.get $26)
)
- (local.set $10
+ (local.set $9
(i32.const 90)
)
)
(block
- (local.set $4
- (local.get $33)
+ (local.set $11
+ (local.get $18)
)
- (local.set $13
- (local.get $30)
+ (local.set $12
+ (local.get $26)
)
)
)
@@ -1794,98 +1750,81 @@
)
(if
(i32.eq
- (local.get $10)
+ (local.get $9)
(i32.const 90)
)
- (local.set $4
+ (local.set $11
(loop $while-in16 (result i32)
- (local.set $10
+ (local.set $9
(i32.const 0)
)
- (local.set $1
+ (local.set $0
(i32.lt_u
- (local.tee $5
+ (local.tee $2
(i32.sub
(i32.and
(i32.load offset=4
- (local.get $25)
+ (local.get $20)
)
(i32.const -8)
)
- (local.get $2)
+ (local.get $5)
)
)
- (local.get $28)
+ (local.get $4)
)
)
- (local.set $6
+ (local.set $4
(select
- (local.get $5)
- (local.get $28)
- (local.get $1)
+ (local.get $2)
+ (local.get $4)
+ (local.get $0)
)
)
- (local.set $5
+ (local.set $6
(select
- (local.get $25)
- (local.get $29)
- (local.get $1)
+ (local.get $20)
+ (local.get $6)
+ (local.get $0)
)
)
(if
- (local.tee $1
+ (local.tee $0
(i32.load offset=16
- (local.get $25)
+ (local.get $20)
)
)
(block
- (local.set $28
- (local.get $6)
- )
- (local.set $25
- (local.get $1)
- )
- (local.set $29
- (local.get $5)
+ (local.set $20
+ (local.get $0)
)
(br $while-in16)
)
)
- (if (result i32)
- (local.tee $25
+ (br_if $while-in16
+ (local.tee $20
(i32.load offset=20
- (local.get $25)
+ (local.get $20)
)
)
- (block
- (local.set $28
- (local.get $6)
- )
- (local.set $29
- (local.get $5)
- )
- (br $while-in16)
- )
- (block (result i32)
- (local.set $13
- (local.get $5)
- )
- (local.get $6)
- )
)
+ (local.set $12
+ (local.get $6)
+ )
+ (local.get $4)
)
)
)
(if (result i32)
(if (result i32)
- (local.get $13)
+ (local.get $12)
(i32.lt_u
- (local.get $4)
+ (local.get $11)
(i32.sub
(i32.load
(i32.const 184)
)
- (local.get $2)
+ (local.get $5)
)
)
(i32.const 0)
@@ -1893,8 +1832,8 @@
(block
(if
(i32.lt_u
- (local.get $13)
- (local.tee $11
+ (local.get $12)
+ (local.tee $8
(i32.load
(i32.const 192)
)
@@ -1904,11 +1843,11 @@
)
(if
(i32.ge_u
- (local.get $13)
- (local.tee $5
+ (local.get $12)
+ (local.tee $2
(i32.add
- (local.get $2)
- (local.get $13)
+ (local.get $5)
+ (local.get $12)
)
)
)
@@ -1916,92 +1855,86 @@
)
(local.set $6
(i32.load offset=24
- (local.get $13)
+ (local.get $12)
)
)
(if
(i32.eq
- (local.tee $1
+ (local.get $12)
+ (local.tee $0
(i32.load offset=12
- (local.get $13)
+ (local.get $12)
)
)
- (local.get $13)
)
(block $do-once17
- (local.set $1
- (if (result i32)
+ (if
+ (i32.eqz
(local.tee $0
(i32.load
- (local.tee $8
+ (local.tee $1
(i32.add
- (local.get $13)
+ (local.get $12)
(i32.const 20)
)
)
)
)
- (block (result i32)
- (local.set $17
- (local.get $0)
- )
- (local.get $8)
- )
- (if (result i32)
- (local.tee $17
+ )
+ (br_if $do-once17
+ (i32.eqz
+ (local.tee $0
(i32.load
- (local.tee $15
+ (local.tee $1
(i32.add
- (local.get $13)
+ (local.get $12)
(i32.const 16)
)
)
)
)
- (local.get $15)
- (br $do-once17)
)
)
)
(loop $while-in20
(if
- (local.tee $0
+ (local.tee $3
(i32.load
- (local.tee $8
+ (local.tee $4
(i32.add
- (local.get $17)
+ (local.get $0)
(i32.const 20)
)
)
)
)
(block
- (local.set $17
- (local.get $0)
+ (local.set $0
+ (local.get $3)
)
(local.set $1
- (local.get $8)
+ (local.get $4)
)
(br $while-in20)
)
)
(if
- (local.tee $0
+ (local.tee $3
(i32.load
- (local.tee $8
+ (local.tee $4
(i32.add
- (local.get $17)
+ (local.get $0)
(i32.const 16)
)
)
)
)
(block
- (local.set $17
- (local.get $0)
+ (local.set $0
+ (local.get $3)
)
(local.set $1
- (local.get $8)
+ (local.get $4)
)
(br $while-in20)
)
@@ -2010,7 +1943,7 @@
(if
(i32.lt_u
(local.get $1)
- (local.get $11)
+ (local.get $8)
)
(call $_abort)
(block
@@ -2018,8 +1951,8 @@
(local.get $1)
(i32.const 0)
)
- (local.set $9
- (local.get $17)
+ (local.set $15
+ (local.get $0)
)
)
)
@@ -2027,49 +1960,43 @@
(block
(if
(i32.lt_u
- (local.tee $8
+ (local.tee $1
(i32.load offset=8
- (local.get $13)
+ (local.get $12)
)
)
- (local.get $11)
+ (local.get $8)
)
(call $_abort)
)
- (local.set $0
- (local.get $8)
- )
(if
(i32.ne
- (local.get $13)
+ (local.get $12)
(i32.load offset=12
- (local.get $0)
+ (local.get $1)
)
)
(call $_abort)
)
- (local.set $7
- (local.get $1)
- )
(if
(i32.eq
- (local.get $13)
+ (local.get $12)
(i32.load offset=8
- (local.get $1)
+ (local.get $0)
)
)
(block
(i32.store offset=12
- (local.get $0)
(local.get $1)
+ (local.get $0)
)
(i32.store offset=8
- (local.get $7)
- (local.get $8)
- )
- (local.set $9
+ (local.get $0)
(local.get $1)
)
+ (local.set $15
+ (local.get $0)
+ )
)
(call $_abort)
)
@@ -2078,31 +2005,30 @@
(if
(local.get $6)
(block $do-once21
- (local.set $0
- (i32.shl
- (local.tee $1
- (i32.load offset=28
- (local.get $13)
- )
- )
- (i32.const 2)
- )
- )
(if
(i32.eq
(i32.load offset=480
- (local.get $0)
+ (local.tee $1
+ (i32.shl
+ (local.tee $0
+ (i32.load offset=28
+ (local.get $12)
+ )
+ )
+ (i32.const 2)
+ )
+ )
)
- (local.get $13)
+ (local.get $12)
)
(block
(i32.store offset=480
- (local.get $0)
- (local.get $9)
+ (local.get $1)
+ (local.get $15)
)
(if
(i32.eqz
- (local.get $9)
+ (local.get $15)
)
(block
(i32.store
@@ -2114,7 +2040,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $1)
+ (local.get $0)
)
(i32.const -1)
)
@@ -2134,35 +2060,32 @@
)
(call $_abort)
)
- (local.set $0
- (local.get $6)
- )
(if
(i32.eq
- (local.get $13)
+ (local.get $12)
(i32.load offset=16
- (local.get $0)
+ (local.get $6)
)
)
(i32.store offset=16
- (local.get $0)
- (local.get $9)
+ (local.get $6)
+ (local.get $15)
)
(i32.store offset=20
(local.get $6)
- (local.get $9)
+ (local.get $15)
)
)
(br_if $do-once21
(i32.eqz
- (local.get $9)
+ (local.get $15)
)
)
)
)
(if
(i32.lt_u
- (local.get $9)
+ (local.get $15)
(local.tee $1
(i32.load
(i32.const 192)
@@ -2172,42 +2095,42 @@
(call $_abort)
)
(i32.store offset=24
- (local.get $9)
+ (local.get $15)
(local.get $6)
)
(if
- (local.tee $11
+ (local.tee $0
(i32.load offset=16
- (local.get $13)
+ (local.get $12)
)
)
(if
(i32.lt_u
- (local.get $11)
+ (local.get $0)
(local.get $1)
)
(call $_abort)
(block
(i32.store offset=16
- (local.get $9)
- (local.get $11)
+ (local.get $15)
+ (local.get $0)
)
(i32.store offset=24
- (local.get $11)
- (local.get $9)
+ (local.get $0)
+ (local.get $15)
)
)
)
)
(if
- (local.tee $11
+ (local.tee $0
(i32.load offset=20
- (local.get $13)
+ (local.get $12)
)
)
(if
(i32.lt_u
- (local.get $11)
+ (local.get $0)
(i32.load
(i32.const 192)
)
@@ -2215,12 +2138,12 @@
(call $_abort)
(block
(i32.store offset=20
- (local.get $9)
- (local.get $11)
+ (local.get $15)
+ (local.get $0)
)
(i32.store offset=24
- (local.get $11)
- (local.get $9)
+ (local.get $0)
+ (local.get $15)
)
)
)
@@ -2229,47 +2152,47 @@
)
(if
(i32.ge_u
- (local.get $4)
+ (local.get $11)
(i32.const 16)
)
(block $do-once25
(i32.store offset=4
- (local.get $13)
+ (local.get $12)
(i32.or
- (local.get $2)
+ (local.get $5)
(i32.const 3)
)
)
(i32.store offset=4
- (local.get $5)
+ (local.get $2)
(i32.or
- (local.get $4)
+ (local.get $11)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $4)
- (local.get $5)
+ (local.get $2)
+ (local.get $11)
)
- (local.get $4)
+ (local.get $11)
)
- (local.set $6
+ (local.set $1
(i32.shr_u
- (local.get $4)
+ (local.get $11)
(i32.const 3)
)
)
(if
(i32.lt_u
- (local.get $4)
+ (local.get $11)
(i32.const 256)
)
(block
- (local.set $11
+ (local.set $0
(i32.add
(i32.shl
- (local.get $6)
+ (local.get $1)
(i32.const 3)
)
(i32.const 216)
@@ -2277,25 +2200,25 @@
)
(if
(i32.and
- (local.tee $8
- (i32.shl
- (i32.const 1)
- (local.get $6)
+ (local.tee $4
+ (i32.load
+ (i32.const 176)
)
)
(local.tee $1
- (i32.load
- (i32.const 176)
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
)
)
)
(if
(i32.lt_u
- (local.tee $15
+ (local.tee $4
(i32.load
- (local.tee $6
+ (local.tee $1
(i32.add
- (local.get $11)
+ (local.get $0)
(i32.const 8)
)
)
@@ -2307,11 +2230,11 @@
)
(call $_abort)
(block
- (local.set $16
- (local.get $6)
+ (local.set $17
+ (local.get $1)
)
- (local.set $26
- (local.get $15)
+ (local.set $27
+ (local.get $4)
)
)
)
@@ -2320,70 +2243,70 @@
(i32.const 176)
(i32.or
(local.get $1)
- (local.get $8)
+ (local.get $4)
)
)
- (local.set $16
+ (local.set $17
(i32.add
- (local.get $11)
+ (local.get $0)
(i32.const 8)
)
)
- (local.set $26
- (local.get $11)
+ (local.set $27
+ (local.get $0)
)
)
)
(i32.store
- (local.get $16)
- (local.get $5)
+ (local.get $17)
+ (local.get $2)
)
(i32.store offset=12
- (local.get $26)
- (local.get $5)
+ (local.get $27)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $5)
- (local.get $26)
+ (local.get $2)
+ (local.get $27)
)
(i32.store offset=12
- (local.get $5)
- (local.get $11)
+ (local.get $2)
+ (local.get $0)
)
(br $do-once25)
)
)
- (local.set $6
+ (local.set $1
(i32.add
(local.tee $0
(i32.shl
- (local.tee $7
+ (local.tee $6
(if (result i32)
- (local.tee $11
+ (local.tee $0
(i32.shr_u
- (local.get $4)
+ (local.get $11)
(i32.const 8)
)
)
(if (result i32)
(i32.gt_u
- (local.get $4)
+ (local.get $11)
(i32.const 16777215)
)
(i32.const 31)
(block (result i32)
- (local.set $11
+ (local.set $0
(i32.and
(i32.shr_u
(i32.add
- (local.tee $1
+ (local.tee $4
(i32.shl
- (local.get $11)
- (local.tee $8
+ (local.get $0)
+ (local.tee $1
(i32.and
(i32.shr_u
(i32.add
- (local.get $11)
+ (local.get $0)
(i32.const 1048320)
)
(i32.const 16)
@@ -2403,21 +2326,21 @@
(i32.or
(i32.and
(i32.shr_u
- (local.get $4)
+ (local.get $11)
(i32.add
- (local.tee $6
+ (local.tee $0
(i32.add
(i32.sub
(i32.const 14)
(i32.or
- (local.tee $1
+ (local.tee $3
(i32.and
(i32.shr_u
(i32.add
- (local.tee $15
+ (local.tee $4
(i32.shl
- (local.get $1)
- (local.get $11)
+ (local.get $4)
+ (local.get $0)
)
)
(i32.const 245760)
@@ -2428,15 +2351,15 @@
)
)
(i32.or
- (local.get $8)
- (local.get $11)
+ (local.get $0)
+ (local.get $1)
)
)
)
(i32.shr_u
(i32.shl
- (local.get $15)
- (local.get $1)
+ (local.get $4)
+ (local.get $3)
)
(i32.const 15)
)
@@ -2448,7 +2371,7 @@
(i32.const 1)
)
(i32.shl
- (local.get $6)
+ (local.get $0)
(i32.const 1)
)
)
@@ -2464,158 +2387,160 @@
)
)
(i32.store offset=28
- (local.get $5)
- (local.get $7)
+ (local.get $2)
+ (local.get $6)
)
(i32.store offset=20
- (local.get $5)
+ (local.get $2)
(i32.const 0)
)
(i32.store offset=16
- (local.get $5)
+ (local.get $2)
(i32.const 0)
)
(if
(i32.eqz
(i32.and
- (local.tee $15
- (i32.shl
- (i32.const 1)
- (local.get $7)
- )
- )
- (local.tee $1
+ (local.tee $4
(i32.load
(i32.const 180)
)
)
+ (local.tee $3
+ (i32.shl
+ (i32.const 1)
+ (local.get $6)
+ )
+ )
)
)
(block
(i32.store
(i32.const 180)
(i32.or
- (local.get $1)
- (local.get $15)
+ (local.get $3)
+ (local.get $4)
)
)
(i32.store offset=480
(local.get $0)
- (local.get $5)
+ (local.get $2)
)
(i32.store offset=24
- (local.get $5)
- (local.get $6)
+ (local.get $2)
+ (local.get $1)
)
(i32.store offset=12
- (local.get $5)
- (local.get $5)
+ (local.get $2)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $5)
- (local.get $5)
+ (local.get $2)
+ (local.get $2)
)
(br $do-once25)
)
)
- (local.set $15
+ (local.set $3
(i32.shl
- (local.get $4)
+ (local.get $11)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (local.get $7)
+ (local.get $6)
(i32.const 1)
)
)
(i32.eq
- (local.get $7)
+ (local.get $6)
(i32.const 31)
)
)
)
)
- (local.set $1
+ (local.set $0
(i32.load offset=480
(local.get $0)
)
)
- (if
- (i32.eq
- (local.tee $10
- (loop $while-in28 (result i32)
- (block $while-out27 (result i32)
- (if
- (i32.eq
- (local.get $4)
- (i32.and
- (i32.load offset=4
- (local.get $1)
- )
- (i32.const -8)
- )
- )
- (block
- (local.set $14
- (local.get $1)
- )
- (br $while-out27
- (i32.const 148)
- )
- )
+ (loop $while-in28
+ (block $while-out27
+ (if
+ (i32.eq
+ (local.get $11)
+ (i32.and
+ (i32.load offset=4
+ (local.get $0)
)
- (if (result i32)
- (local.tee $8
- (i32.load
- (local.tee $6
- (i32.add
- (i32.add
- (local.get $1)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $15)
- (i32.const 31)
- )
- (i32.const 2)
- )
- )
+ (i32.const -8)
+ )
+ )
+ (block
+ (local.set $22
+ (local.get $0)
+ )
+ (local.set $9
+ (i32.const 148)
+ )
+ (br $while-out27)
+ )
+ )
+ (local.set $31
+ (if (result i32)
+ (local.tee $1
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
)
- )
- )
- (block
- (local.set $15
(i32.shl
- (local.get $15)
- (i32.const 1)
+ (i32.shr_u
+ (local.get $3)
+ (i32.const 31)
+ )
+ (i32.const 2)
)
)
- (local.set $1
- (local.get $8)
- )
- (br $while-in28)
)
- (block (result i32)
- (local.set $23
- (local.get $6)
- )
- (local.set $20
- (local.get $1)
- )
- (i32.const 145)
+ )
+ )
+ (block
+ (local.set $3
+ (i32.shl
+ (local.get $3)
+ (i32.const 1)
)
)
+ (local.set $0
+ (local.get $1)
+ )
+ (br $while-in28)
+ )
+ (block (result i32)
+ (local.set $40
+ (local.get $0)
+ )
+ (local.set $9
+ (i32.const 145)
+ )
+ (local.get $4)
)
)
)
+ )
+ )
+ (if
+ (i32.eq
+ (local.get $9)
(i32.const 145)
)
(if
(i32.lt_u
- (local.get $23)
+ (local.get $31)
(i32.load
(i32.const 192)
)
@@ -2623,100 +2548,96 @@
(call $_abort)
(block
(i32.store
- (local.get $23)
- (local.get $5)
+ (local.get $31)
+ (local.get $2)
)
(i32.store offset=24
- (local.get $5)
- (local.get $20)
+ (local.get $2)
+ (local.get $40)
)
(i32.store offset=12
- (local.get $5)
- (local.get $5)
+ (local.get $2)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $5)
- (local.get $5)
+ (local.get $2)
+ (local.get $2)
)
)
)
(if
(i32.eq
- (local.get $10)
+ (local.get $9)
(i32.const 148)
)
- (block
- (local.set $0
- (local.get $14)
- )
- (if
- (i32.and
- (i32.ge_u
- (local.tee $15
- (i32.load offset=8
- (local.get $0)
- )
- )
- (local.tee $8
- (i32.load
- (i32.const 192)
+ (if
+ (i32.and
+ (i32.ge_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.tee $0
+ (local.get $22)
)
)
)
- (i32.ge_u
- (local.get $0)
- (local.get $8)
+ (local.tee $4
+ (i32.load
+ (i32.const 192)
+ )
)
)
- (block
- (i32.store offset=12
- (local.get $15)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $0)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $15)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $14)
- )
- (i32.store offset=24
- (local.get $5)
- (i32.const 0)
- )
+ (i32.ge_u
+ (local.get $0)
+ (local.get $4)
)
- (call $_abort)
)
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $2)
+ (local.get $1)
+ )
+ (i32.store offset=12
+ (local.get $2)
+ (local.get $22)
+ )
+ (i32.store offset=24
+ (local.get $2)
+ (i32.const 0)
+ )
+ )
+ (call $_abort)
)
)
)
)
(block
(i32.store offset=4
- (local.get $13)
+ (local.get $12)
(i32.or
- (local.tee $15
+ (local.tee $0
(i32.add
- (local.get $2)
- (local.get $4)
+ (local.get $5)
+ (local.get $11)
)
)
(i32.const 3)
)
)
- (local.set $0
- (i32.add
- (local.get $13)
- (local.get $15)
- )
- )
(i32.store offset=4
- (local.get $0)
+ (local.tee $0
+ (i32.add
+ (local.get $0)
+ (local.get $12)
+ )
+ )
(i32.or
(i32.load offset=4
(local.get $0)
@@ -2728,15 +2649,15 @@
)
(return
(i32.add
- (local.get $13)
+ (local.get $12)
(i32.const 8)
)
)
)
- (local.get $2)
+ (local.get $5)
)
)
- (local.get $2)
+ (local.get $5)
)
)
(i32.const -1)
@@ -2745,25 +2666,25 @@
)
(if
(i32.ge_u
- (local.tee $13
+ (local.tee $6
(i32.load
(i32.const 184)
)
)
- (local.get $8)
+ (local.get $4)
)
(block
- (local.set $14
+ (local.set $0
(i32.load
(i32.const 196)
)
)
(if
(i32.gt_u
- (local.tee $4
+ (local.tee $1
(i32.sub
- (local.get $13)
- (local.get $8)
+ (local.get $6)
+ (local.get $4)
)
)
(i32.const 15)
@@ -2771,35 +2692,35 @@
(block
(i32.store
(i32.const 196)
- (local.tee $20
+ (local.tee $3
(i32.add
- (local.get $8)
- (local.get $14)
+ (local.get $0)
+ (local.get $4)
)
)
)
(i32.store
(i32.const 184)
- (local.get $4)
+ (local.get $1)
)
(i32.store offset=4
- (local.get $20)
+ (local.get $3)
(i32.or
- (local.get $4)
+ (local.get $1)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $4)
- (local.get $20)
+ (local.get $1)
+ (local.get $3)
)
- (local.get $4)
+ (local.get $1)
)
(i32.store offset=4
- (local.get $14)
+ (local.get $0)
(i32.or
- (local.get $8)
+ (local.get $4)
(i32.const 3)
)
)
@@ -2814,23 +2735,22 @@
(i32.const 0)
)
(i32.store offset=4
- (local.get $14)
+ (local.get $0)
(i32.or
- (local.get $13)
+ (local.get $6)
(i32.const 3)
)
)
- (local.set $0
- (i32.add
- (local.get $13)
- (local.get $14)
- )
- )
(i32.store offset=4
- (local.get $0)
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (local.get $6)
+ )
+ )
(i32.or
(i32.load offset=4
- (local.get $0)
+ (local.get $1)
)
(i32.const 1)
)
@@ -2839,1956 +2759,1882 @@
)
(return
(i32.add
- (local.get $14)
+ (local.get $0)
(i32.const 8)
)
)
)
)
- (if
- (i32.gt_u
- (local.tee $14
- (i32.load
- (i32.const 188)
+ (block $folding-inner0
+ (br_if $folding-inner0
+ (i32.gt_u
+ (local.tee $0
+ (i32.load
+ (i32.const 188)
+ )
)
+ (local.get $4)
)
- (local.get $8)
)
- (block
- (i32.store
- (i32.const 188)
- (local.tee $4
- (i32.sub
- (local.get $14)
- (local.get $8)
- )
+ (if
+ (i32.eqz
+ (i32.load
+ (i32.const 648)
)
)
- (i32.store
- (i32.const 200)
- (local.tee $13
+ (if
+ (i32.and
+ (local.tee $0
+ (call $_sysconf
+ (i32.const 30)
+ )
+ )
(i32.add
- (local.get $8)
- (local.tee $14
- (i32.load
- (i32.const 200)
+ (local.get $0)
+ (i32.const -1)
+ )
+ )
+ (call $_abort)
+ (block
+ (i32.store
+ (i32.const 656)
+ (local.get $0)
+ )
+ (i32.store
+ (i32.const 652)
+ (local.get $0)
+ )
+ (i32.store
+ (i32.const 660)
+ (i32.const -1)
+ )
+ (i32.store
+ (i32.const 664)
+ (i32.const -1)
+ )
+ (i32.store
+ (i32.const 668)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 620)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 648)
+ (i32.xor
+ (i32.and
+ (call $_time
+ (i32.const 0)
+ )
+ (i32.const -16)
)
+ (i32.const 1431655768)
)
)
)
)
- (i32.store offset=4
- (local.get $13)
- (i32.or
- (local.get $4)
- (i32.const 1)
- )
- )
- (i32.store offset=4
- (local.get $14)
- (i32.or
- (local.get $8)
- (i32.const 3)
- )
- )
- (return
- (i32.add
- (local.get $14)
- (i32.const 8)
- )
- )
)
- )
- (if
- (i32.eqz
- (i32.load
- (i32.const 648)
+ (local.set $22
+ (i32.add
+ (local.get $4)
+ (i32.const 48)
)
)
(if
- (i32.and
- (local.tee $14
- (call $_sysconf
- (i32.const 30)
- )
- )
- (i32.add
- (local.get $14)
- (i32.const -1)
- )
- )
- (call $_abort)
- (block
- (i32.store
- (i32.const 656)
- (local.get $14)
- )
- (i32.store
- (i32.const 652)
- (local.get $14)
- )
- (i32.store
- (i32.const 660)
- (i32.const -1)
- )
- (i32.store
- (i32.const 664)
- (i32.const -1)
- )
- (i32.store
- (i32.const 668)
- (i32.const 0)
- )
- (i32.store
- (i32.const 620)
- (i32.const 0)
- )
- (i32.store
- (i32.const 648)
- (i32.xor
- (i32.and
- (call $_time
+ (i32.le_u
+ (local.tee $11
+ (i32.and
+ (local.tee $2
+ (i32.add
+ (local.tee $0
+ (i32.load
+ (i32.const 656)
+ )
+ )
+ (local.tee $8
+ (i32.add
+ (local.get $4)
+ (i32.const 47)
+ )
+ )
+ )
+ )
+ (local.tee $0
+ (i32.sub
(i32.const 0)
+ (local.get $0)
)
- (i32.const -16)
)
- (i32.const 1431655768)
)
)
+ (local.get $4)
)
- )
- )
- (local.set $14
- (i32.add
- (local.get $8)
- (i32.const 48)
- )
- )
- (local.set $20
- (i32.add
- (local.tee $4
- (i32.load
- (i32.const 656)
- )
- )
- (local.tee $13
- (i32.add
- (local.get $8)
- (i32.const 47)
- )
+ (return
+ (i32.const 0)
)
)
- )
- (if
- (i32.le_u
- (local.tee $4
- (i32.and
- (local.tee $23
- (i32.sub
- (i32.const 0)
- (local.get $4)
- )
+ (if
+ (if (result i32)
+ (local.tee $6
+ (i32.load
+ (i32.const 616)
)
- (local.get $20)
)
- )
- (local.get $8)
- )
- (return
- (i32.const 0)
- )
- )
- (if
- (if (result i32)
- (local.tee $7
- (i32.load
- (i32.const 616)
- )
- )
- (i32.or
- (i32.le_u
- (local.tee $16
- (i32.add
- (local.get $4)
- (local.tee $26
- (i32.load
- (i32.const 608)
+ (i32.or
+ (i32.le_u
+ (local.tee $18
+ (i32.add
+ (local.get $11)
+ (local.tee $7
+ (i32.load
+ (i32.const 608)
+ )
)
)
)
+ (local.get $7)
+ )
+ (i32.gt_u
+ (local.get $18)
+ (local.get $6)
)
- (local.get $26)
- )
- (i32.gt_u
- (local.get $16)
- (local.get $7)
)
+ (i32.const 0)
+ )
+ (return
+ (i32.const 0)
)
- (i32.const 0)
- )
- (return
- (i32.const 0)
)
- )
- (if
- (block (result i32)
- (if
+ (if
+ (if (result i32)
(if (result i32)
- (if (result i32)
- (select
- (i32.lt_u
- (local.get $4)
- (i32.const 2147483647)
- )
- (i32.const 0)
- (i32.eq
- (local.tee $10
- (if (result i32)
- (i32.and
- (i32.load
- (i32.const 620)
- )
- (i32.const 4)
+ (select
+ (i32.lt_u
+ (local.get $11)
+ (i32.const 2147483647)
+ )
+ (i32.const 0)
+ (i32.eq
+ (local.tee $9
+ (if (result i32)
+ (i32.and
+ (i32.load
+ (i32.const 620)
)
- (i32.const 190)
- (block $label$break$L257 (result i32)
- (if
- (local.tee $7
- (i32.load
- (i32.const 200)
- )
+ (i32.const 4)
+ )
+ (i32.const 190)
+ (block $label$break$L257 (result i32)
+ (if
+ (local.tee $6
+ (i32.load
+ (i32.const 200)
)
- (block $label$break$L259
- (local.set $16
- (i32.const 624)
- )
- (loop $while-in34
- (block $while-out33
- (if
- (if (result i32)
- (i32.le_u
- (local.tee $26
- (i32.load
- (local.get $16)
- )
+ )
+ (block $label$break$L259
+ (local.set $17
+ (i32.const 624)
+ )
+ (loop $while-in34
+ (if
+ (i32.eqz
+ (if (result i32)
+ (i32.le_u
+ (local.tee $7
+ (i32.load
+ (local.get $17)
)
- (local.get $7)
)
- (i32.gt_u
- (i32.add
- (i32.load
- (local.tee $9
- (i32.add
- (local.get $16)
- (i32.const 4)
- )
+ (local.get $6)
+ )
+ (i32.gt_u
+ (i32.add
+ (i32.load
+ (local.tee $15
+ (i32.add
+ (local.get $17)
+ (i32.const 4)
)
)
- (local.get $26)
)
(local.get $7)
)
- (i32.const 0)
- )
- (block
- (local.set $6
- (local.get $16)
- )
- (local.set $1
- (local.get $9)
- )
- (br $while-out33)
+ (local.get $6)
)
+ (i32.const 0)
)
+ )
+ (block
(br_if $while-in34
- (local.tee $16
+ (local.tee $17
(i32.load offset=8
- (local.get $16)
+ (local.get $17)
)
)
)
- (local.set $10
+ (local.set $9
(i32.const 173)
)
(br $label$break$L259)
)
)
- (if
- (i32.lt_u
- (local.tee $16
- (i32.and
- (local.get $23)
- (i32.sub
- (local.get $20)
- (i32.load
- (i32.const 188)
- )
+ )
+ (if
+ (i32.lt_u
+ (local.tee $2
+ (i32.and
+ (local.get $0)
+ (i32.sub
+ (local.get $2)
+ (i32.load
+ (i32.const 188)
)
)
)
- (i32.const 2147483647)
)
- (block
- (local.set $9
- (call $_sbrk
- (local.get $16)
- )
+ (i32.const 2147483647)
+ )
+ (block
+ (local.set $0
+ (call $_sbrk
+ (local.get $2)
)
- (if
- (i32.eq
- (i32.add
- (i32.load
- (local.get $6)
- )
- (i32.load
- (local.get $1)
- )
- )
- (local.get $9)
- )
- (if
- (i32.ne
- (local.get $9)
- (i32.const -1)
+ )
+ (if
+ (i32.eq
+ (i32.add
+ (i32.load
+ (local.get $17)
)
- (block
- (local.set $21
- (local.get $9)
- )
- (local.set $22
- (local.get $16)
- )
- (br $label$break$L257
- (i32.const 193)
- )
+ (i32.load
+ (local.get $15)
)
)
+ (local.get $0)
+ )
+ (if
+ (i32.ne
+ (local.get $0)
+ (i32.const -1)
+ )
(block
- (local.set $12
- (local.get $9)
- )
- (local.set $18
- (local.get $16)
+ (local.set $3
+ (local.get $0)
)
(local.set $10
- (i32.const 183)
+ (local.get $2)
+ )
+ (br $label$break$L257
+ (i32.const 193)
)
)
)
+ (block
+ (local.set $14
+ (local.get $0)
+ )
+ (local.set $23
+ (local.get $2)
+ )
+ (local.set $9
+ (i32.const 183)
+ )
+ )
)
)
)
- (local.set $10
+ )
+ (local.set $9
+ (i32.const 173)
+ )
+ )
+ (if
+ (if (result i32)
+ (i32.eq
+ (local.get $9)
(i32.const 173)
)
- )
- (if
- (if (result i32)
- (i32.eq
- (local.get $10)
- (i32.const 173)
- )
- (i32.ne
- (local.tee $7
- (call $_sbrk
- (i32.const 0)
- )
+ (i32.ne
+ (local.tee $6
+ (call $_sbrk
+ (i32.const 0)
)
- (i32.const -1)
)
- (i32.const 0)
+ (i32.const -1)
)
- (block $do-once35
- (local.set $0
- (if (result i32)
- (i32.and
- (local.tee $2
- (local.get $7)
- )
- (local.tee $9
- (i32.add
- (local.tee $16
- (i32.load
- (i32.const 652)
+ (i32.const 0)
+ )
+ (block $do-once35
+ (local.set $5
+ (i32.add
+ (local.tee $0
+ (if (result i32)
+ (i32.and
+ (local.tee $0
+ (local.get $6)
+ )
+ (local.tee $5
+ (i32.add
+ (local.tee $2
+ (i32.load
+ (i32.const 652)
+ )
)
+ (i32.const -1)
)
- (i32.const -1)
)
)
- )
- (i32.add
- (i32.sub
- (local.get $4)
- (local.get $2)
- )
- (i32.and
- (i32.add
- (local.get $2)
- (local.get $9)
- )
+ (i32.add
(i32.sub
- (i32.const 0)
- (local.get $16)
+ (local.get $11)
+ (local.get $0)
+ )
+ (i32.and
+ (i32.add
+ (local.get $0)
+ (local.get $5)
+ )
+ (i32.sub
+ (i32.const 0)
+ (local.get $2)
+ )
)
)
+ (local.get $11)
)
- (local.get $4)
)
- )
- (local.set $2
- (i32.add
- (local.tee $16
- (i32.load
- (i32.const 608)
- )
+ (local.tee $2
+ (i32.load
+ (i32.const 608)
)
- (local.get $0)
)
)
- (if
- (i32.and
- (i32.lt_u
- (local.get $0)
- (i32.const 2147483647)
- )
- (i32.gt_u
- (local.get $0)
- (local.get $8)
- )
+ )
+ (if
+ (i32.and
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 2147483647)
)
- (block
- (br_if $do-once35
- (select
- (i32.or
- (i32.le_u
- (local.get $2)
- (local.get $16)
- )
- (i32.gt_u
- (local.get $2)
- (local.tee $9
- (i32.load
- (i32.const 616)
- )
+ (i32.gt_u
+ (local.get $0)
+ (local.get $4)
+ )
+ )
+ (block
+ (br_if $do-once35
+ (select
+ (i32.or
+ (i32.le_u
+ (local.get $5)
+ (local.get $2)
+ )
+ (i32.gt_u
+ (local.get $5)
+ (local.tee $2
+ (i32.load
+ (i32.const 616)
)
)
)
- (i32.const 0)
- (local.get $9)
)
+ (i32.const 0)
+ (local.get $2)
)
- (local.set $10
- (if (result i32)
- (i32.eq
- (local.tee $9
- (call $_sbrk
- (local.get $0)
- )
- )
- (local.get $7)
- )
- (block
- (local.set $21
- (local.get $7)
- )
- (local.set $22
+ )
+ (local.set $14
+ (if (result i32)
+ (i32.eq
+ (local.get $6)
+ (local.tee $2
+ (call $_sbrk
(local.get $0)
)
- (br $label$break$L257
- (i32.const 193)
- )
)
- (block (result i32)
- (local.set $12
- (local.get $9)
- )
- (local.set $18
- (local.get $0)
- )
+ )
+ (block
+ (local.set $3
+ (local.get $6)
+ )
+ (local.set $10
+ (local.get $0)
+ )
+ (br $label$break$L257
+ (i32.const 193)
+ )
+ )
+ (block (result i32)
+ (local.set $23
+ (local.get $0)
+ )
+ (local.set $9
(i32.const 183)
)
+ (local.get $2)
)
)
)
)
)
)
- (if
- (i32.eq
- (local.get $10)
- (i32.const 183)
- )
- (block $label$break$L279
- (local.set $9
- (i32.sub
- (i32.const 0)
- (local.get $18)
- )
+ )
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 183)
+ )
+ (block $label$break$L279
+ (local.set $0
+ (i32.sub
+ (i32.const 0)
+ (local.get $23)
)
- (local.set $3
+ )
+ (local.set $1
+ (if (result i32)
(if (result i32)
- (if (result i32)
+ (i32.and
(i32.and
- (i32.and
- (i32.ne
- (local.get $12)
- (i32.const -1)
- )
- (i32.lt_u
- (local.get $18)
- (i32.const 2147483647)
- )
- )
- (i32.gt_u
+ (i32.ne
(local.get $14)
- (local.get $18)
+ (i32.const -1)
+ )
+ (i32.lt_u
+ (local.get $23)
+ (i32.const 2147483647)
)
)
- (i32.lt_u
- (local.tee $2
- (i32.and
- (i32.add
- (local.tee $7
- (i32.load
- (i32.const 656)
- )
- )
- (i32.sub
- (local.get $13)
- (local.get $18)
+ (i32.gt_u
+ (local.get $22)
+ (local.get $23)
+ )
+ )
+ (i32.lt_u
+ (local.tee $5
+ (i32.and
+ (i32.add
+ (local.tee $6
+ (i32.load
+ (i32.const 656)
)
)
(i32.sub
- (i32.const 0)
- (local.get $7)
+ (local.get $8)
+ (local.get $23)
)
)
+ (i32.sub
+ (i32.const 0)
+ (local.get $6)
+ )
)
- (i32.const 2147483647)
)
- (i32.const 0)
+ (i32.const 2147483647)
)
- (if (result i32)
- (i32.eq
- (call $_sbrk
- (local.get $2)
- )
- (i32.const -1)
+ (i32.const 0)
+ )
+ (if (result i32)
+ (i32.eq
+ (call $_sbrk
+ (local.get $5)
)
- (block
- (drop
- (call $_sbrk
- (local.get $9)
- )
+ (i32.const -1)
+ )
+ (block
+ (drop
+ (call $_sbrk
+ (local.get $0)
)
- (br $label$break$L279)
- )
- (i32.add
- (local.get $2)
- (local.get $18)
)
+ (br $label$break$L279)
+ )
+ (i32.add
+ (local.get $5)
+ (local.get $23)
)
- (local.get $18)
)
+ (local.get $23)
)
- (if
- (i32.ne
- (local.get $12)
- (i32.const -1)
+ )
+ (if
+ (i32.ne
+ (local.get $14)
+ (i32.const -1)
+ )
+ (block
+ (local.set $3
+ (local.get $14)
)
- (block
- (local.set $21
- (local.get $12)
- )
- (local.set $22
- (local.get $3)
- )
- (br $label$break$L257
- (i32.const 193)
- )
+ (local.set $10
+ (local.get $1)
+ )
+ (br $label$break$L257
+ (i32.const 193)
)
)
)
)
- (i32.store
- (i32.const 620)
- (i32.or
- (i32.load
- (i32.const 620)
- )
- (i32.const 4)
+ )
+ (i32.store
+ (i32.const 620)
+ (i32.or
+ (i32.load
+ (i32.const 620)
)
+ (i32.const 4)
)
- (i32.const 190)
)
+ (i32.const 190)
)
)
- (i32.const 190)
)
+ (i32.const 190)
)
+ )
+ (i32.and
(i32.and
- (i32.and
- (i32.ne
- (local.tee $3
- (call $_sbrk
- (local.get $4)
- )
+ (i32.ne
+ (local.tee $1
+ (call $_sbrk
+ (local.get $11)
)
- (i32.const -1)
)
- (i32.ne
- (local.tee $4
- (call $_sbrk
- (i32.const 0)
- )
+ (i32.const -1)
+ )
+ (i32.ne
+ (local.tee $11
+ (call $_sbrk
+ (i32.const 0)
)
- (i32.const -1)
)
- )
- (i32.lt_u
- (local.get $3)
- (local.get $4)
- )
- )
- (i32.const 0)
- )
- (i32.gt_u
- (local.tee $12
- (i32.sub
- (local.get $4)
- (local.get $3)
+ (i32.const -1)
)
)
- (i32.add
- (local.get $8)
- (i32.const 40)
+ (i32.lt_u
+ (local.get $1)
+ (local.get $11)
)
)
(i32.const 0)
)
- (block
- (local.set $21
- (local.get $3)
- )
- (local.set $22
- (local.get $12)
+ (i32.gt_u
+ (local.tee $14
+ (i32.sub
+ (local.get $11)
+ (local.get $1)
+ )
)
- (local.set $10
- (i32.const 193)
+ (i32.add
+ (local.get $4)
+ (i32.const 40)
)
)
+ (i32.const 0)
)
+ (block
+ (local.set $10
+ (local.get $14)
+ )
+ (local.set $9
+ (i32.const 193)
+ )
+ (local.set $3
+ (local.get $1)
+ )
+ )
+ )
+ (if
(i32.eq
- (local.get $10)
+ (local.get $9)
(i32.const 193)
)
- )
- (block
- (i32.store
- (i32.const 608)
- (local.tee $12
- (i32.add
- (local.get $22)
- (i32.load
- (i32.const 608)
+ (block
+ (i32.store
+ (i32.const 608)
+ (local.tee $0
+ (i32.add
+ (local.get $10)
+ (i32.load
+ (i32.const 608)
+ )
)
)
)
- )
- (if
- (i32.gt_u
- (local.get $12)
- (i32.load
- (i32.const 612)
+ (if
+ (i32.gt_u
+ (local.get $0)
+ (i32.load
+ (i32.const 612)
+ )
)
- )
- (i32.store
- (i32.const 612)
- (local.get $12)
- )
- )
- (if
- (local.tee $12
- (i32.load
- (i32.const 200)
+ (i32.store
+ (i32.const 612)
+ (local.get $0)
)
)
- (block $do-once40
- (local.set $3
- (i32.const 624)
+ (if
+ (local.tee $7
+ (i32.load
+ (i32.const 200)
+ )
)
- (loop $do-in
- (block $do-out
- (if
- (i32.eq
- (i32.add
- (local.tee $4
- (i32.load
- (local.get $3)
+ (block $do-once40
+ (local.set $1
+ (i32.const 624)
+ )
+ (loop $do-in
+ (block $do-out
+ (if
+ (i32.eq
+ (i32.add
+ (local.tee $0
+ (i32.load
+ (local.get $1)
+ )
)
- )
- (local.tee $13
- (i32.load
- (local.tee $18
- (i32.add
- (local.get $3)
- (i32.const 4)
+ (local.tee $2
+ (i32.load
+ (local.tee $6
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
+ )
)
)
)
)
- )
- (local.get $21)
- )
- (block
- (local.set $46
- (local.get $4)
- )
- (local.set $47
- (local.get $18)
- )
- (local.set $48
- (local.get $13)
- )
- (local.set $49
(local.get $3)
)
- (local.set $10
- (i32.const 203)
+ (block
+ (local.set $41
+ (local.get $0)
+ )
+ (local.set $42
+ (local.get $6)
+ )
+ (local.set $43
+ (local.get $2)
+ )
+ (local.set $44
+ (local.get $1)
+ )
+ (local.set $9
+ (i32.const 203)
+ )
+ (br $do-out)
)
- (br $do-out)
)
- )
- (br_if $do-in
- (local.tee $3
- (i32.load offset=8
- (local.get $3)
+ (br_if $do-in
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $1)
+ )
)
)
)
)
- )
- (if
- (if (result i32)
+ (if
(if (result i32)
- (i32.eq
- (local.get $10)
- (i32.const 203)
- )
- (i32.eqz
- (i32.and
- (i32.load offset=12
- (local.get $49)
+ (if (result i32)
+ (i32.eq
+ (local.get $9)
+ (i32.const 203)
+ )
+ (i32.eqz
+ (i32.and
+ (i32.load offset=12
+ (local.get $44)
+ )
+ (i32.const 8)
)
- (i32.const 8)
)
+ (i32.const 0)
)
- (i32.const 0)
- )
- (i32.and
- (i32.lt_u
- (local.get $12)
- (local.get $21)
- )
- (i32.ge_u
- (local.get $12)
- (local.get $46)
+ (i32.and
+ (i32.lt_u
+ (local.get $7)
+ (local.get $3)
+ )
+ (i32.ge_u
+ (local.get $7)
+ (local.get $41)
+ )
)
+ (i32.const 0)
)
- (i32.const 0)
- )
- (block
- (i32.store
- (local.get $47)
- (i32.add
- (local.get $22)
- (local.get $48)
+ (block
+ (i32.store
+ (local.get $42)
+ (i32.add
+ (local.get $10)
+ (local.get $43)
+ )
)
- )
- (local.set $3
- (i32.add
- (local.tee $13
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $3
- (i32.add
- (local.get $12)
- (i32.const 8)
+ (local.set $0
+ (i32.add
+ (local.get $7)
+ (local.tee $1
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $0
+ (i32.add
+ (local.get $7)
+ (i32.const 8)
+ )
)
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $0)
+ (i32.const 7)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $3)
- (i32.const 7)
)
)
)
- (local.get $12)
)
- )
- (local.set $18
- (i32.add
- (i32.load
- (i32.const 188)
- )
- (i32.sub
- (local.get $22)
- (local.get $13)
+ (local.set $1
+ (i32.add
+ (i32.load
+ (i32.const 188)
+ )
+ (i32.sub
+ (local.get $10)
+ (local.get $1)
+ )
)
)
- )
- (i32.store
- (i32.const 200)
- (local.get $3)
- )
- (i32.store
- (i32.const 188)
- (local.get $18)
- )
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $18)
- (i32.const 1)
+ (i32.store
+ (i32.const 200)
+ (local.get $0)
)
- )
- (i32.store offset=4
- (i32.add
- (local.get $3)
- (local.get $18)
+ (i32.store
+ (i32.const 188)
+ (local.get $1)
)
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
+ (i32.store offset=4
+ (local.get $0)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
)
+ (i32.store offset=4
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ (i32.const 40)
+ )
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
+ )
+ )
+ (br $do-once40)
)
- (br $do-once40)
)
- )
- (local.set $5
- (if (result i32)
+ (if
(i32.lt_u
- (local.get $21)
- (local.tee $18
+ (local.get $3)
+ (local.tee $6
(i32.load
(i32.const 192)
)
)
)
- (block (result i32)
+ (block
(i32.store
(i32.const 192)
- (local.get $21)
+ (local.get $3)
+ )
+ (local.set $6
+ (local.get $3)
)
- (local.get $21)
)
- (local.get $18)
)
- )
- (local.set $18
- (i32.add
- (local.get $21)
- (local.get $22)
+ (local.set $0
+ (i32.add
+ (local.get $3)
+ (local.get $10)
+ )
)
- )
- (local.set $3
- (i32.const 624)
- )
- (loop $while-in43
- (block $while-out42
- (if
- (i32.eq
- (local.get $18)
- (i32.load
- (local.get $3)
- )
- )
- (block
- (local.set $50
- (local.get $3)
- )
- (local.set $34
- (local.get $3)
+ (local.set $1
+ (i32.const 624)
+ )
+ (loop $while-in43
+ (block $while-out42
+ (if
+ (i32.eq
+ (local.get $0)
+ (i32.load
+ (local.get $1)
+ )
)
- (local.set $10
- (i32.const 211)
+ (block
+ (local.set $45
+ (local.get $1)
+ )
+ (local.set $28
+ (local.get $1)
+ )
+ (local.set $9
+ (i32.const 211)
+ )
+ (br $while-out42)
)
- (br $while-out42)
)
- )
- (br_if $while-in43
- (local.tee $3
- (i32.load offset=8
- (local.get $3)
+ (br_if $while-in43
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $1)
+ )
)
)
- )
- (local.set $27
- (i32.const 624)
+ (local.set $24
+ (i32.const 624)
+ )
)
)
- )
- (if
- (i32.eq
- (local.get $10)
- (i32.const 211)
- )
- (local.set $27
- (if (result i32)
- (i32.and
- (i32.load offset=12
- (local.get $34)
- )
- (i32.const 8)
- )
- (i32.const 624)
- (block
- (i32.store
- (local.get $50)
- (local.get $21)
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 211)
+ )
+ (local.set $24
+ (if (result i32)
+ (i32.and
+ (i32.load offset=12
+ (local.get $28)
+ )
+ (i32.const 8)
)
- (i32.store offset=4
- (local.get $34)
- (i32.add
- (local.get $22)
- (i32.load offset=4
- (local.get $34)
+ (i32.const 624)
+ (block
+ (i32.store
+ (local.get $45)
+ (local.get $3)
+ )
+ (i32.store offset=4
+ (local.get $28)
+ (i32.add
+ (local.get $10)
+ (i32.load offset=4
+ (local.get $28)
+ )
)
)
- )
- (local.set $13
- (i32.add
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $3
- (i32.add
- (local.get $21)
- (i32.const 8)
+ (local.set $5
+ (i32.add
+ (local.get $4)
+ (local.tee $14
+ (i32.add
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
)
)
+ (local.get $3)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $3)
- (i32.const 7)
)
)
- (local.get $21)
)
- )
- (local.set $4
- (i32.add
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $3
- (i32.add
- (local.get $18)
- (i32.const 8)
+ (local.set $8
+ (i32.sub
+ (i32.sub
+ (local.tee $2
+ (i32.add
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
+ )
)
+ (local.get $0)
)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $3)
- (i32.const 7)
+ (local.get $14)
)
+ (local.get $4)
)
- (local.get $18)
- )
- )
- (local.set $3
- (i32.add
- (local.get $8)
- (local.get $13)
)
- )
- (local.set $14
- (i32.sub
- (i32.sub
+ (i32.store offset=4
+ (local.get $14)
+ (i32.or
(local.get $4)
- (local.get $13)
+ (i32.const 3)
)
- (local.get $8)
- )
- )
- (i32.store offset=4
- (local.get $13)
- (i32.or
- (local.get $8)
- (i32.const 3)
- )
- )
- (if
- (i32.ne
- (local.get $4)
- (local.get $12)
)
- (block $do-once44
- (if
- (i32.eq
- (i32.load
- (i32.const 196)
+ (if
+ (i32.ne
+ (local.get $2)
+ (local.get $7)
+ )
+ (block $do-once44
+ (if
+ (i32.eq
+ (i32.load
+ (i32.const 196)
+ )
+ (local.get $2)
)
- (local.get $4)
- )
- (block
- (i32.store
- (i32.const 184)
- (local.tee $0
- (i32.add
- (local.get $14)
- (i32.load
- (i32.const 184)
+ (block
+ (i32.store
+ (i32.const 184)
+ (local.tee $0
+ (i32.add
+ (local.get $8)
+ (i32.load
+ (i32.const 184)
+ )
)
)
)
- )
- (i32.store
- (i32.const 196)
- (local.get $3)
- )
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $0)
- (i32.const 1)
- )
- )
- (i32.store
- (i32.add
- (local.get $0)
- (local.get $3)
+ (i32.store
+ (i32.const 196)
+ (local.get $5)
)
- (local.get $0)
- )
- (br $do-once44)
- )
- )
- (if
- (i32.eq
- (i32.and
- (local.tee $0
- (i32.load offset=4
- (local.get $4)
+ (i32.store offset=4
+ (local.get $5)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
)
)
- (i32.const 3)
- )
- (i32.const 1)
- )
- (block
- (local.set $1
- (i32.and
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (local.get $5)
+ )
(local.get $0)
- (i32.const -8)
)
+ (br $do-once44)
)
- (local.set $6
- (i32.shr_u
- (local.get $0)
- (i32.const 3)
+ )
+ (local.set $4
+ (if (result i32)
+ (i32.eq
+ (i32.and
+ (local.tee $0
+ (i32.load offset=4
+ (local.get $2)
+ )
+ )
+ (i32.const 3)
+ )
+ (i32.const 1)
)
- )
- (block $label$break$L331
- (if
- (i32.ge_u
- (local.get $0)
- (i32.const 256)
+ (block (result i32)
+ (local.set $7
+ (i32.and
+ (local.get $0)
+ (i32.const -8)
+ )
)
- (block
- (local.set $23
- (i32.load offset=24
- (local.get $4)
- )
+ (local.set $3
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 3)
)
+ )
+ (block $label$break$L331
(if
- (i32.eq
- (local.get $4)
- (local.tee $20
- (i32.load offset=12
- (local.get $4)
+ (i32.ge_u
+ (local.get $0)
+ (i32.const 256)
+ )
+ (block
+ (local.set $10
+ (i32.load offset=24
+ (local.get $2)
)
)
- )
- (block $do-once47
- (local.set $0
- (if (result i32)
- (local.tee $7
- (i32.load
- (local.tee $2
- (i32.add
- (local.tee $9
- (i32.add
- (local.get $4)
- (i32.const 16)
+ (if
+ (i32.eq
+ (local.get $2)
+ (local.tee $0
+ (i32.load offset=12
+ (local.get $2)
+ )
+ )
+ )
+ (block $do-once47
+ (if
+ (local.tee $0
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (local.tee $1
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
)
+ (i32.const 4)
)
- (i32.const 4)
)
)
)
- )
- (block (result i32)
- (local.set $9
- (local.get $2)
+ (local.set $1
+ (local.get $4)
)
- (local.get $7)
- )
- (if (result i32)
- (local.tee $16
- (i32.load
- (local.get $9)
+ (br_if $do-once47
+ (i32.eqz
+ (local.tee $0
+ (i32.load
+ (local.get $1)
+ )
+ )
)
)
- (local.get $16)
- (br $do-once47)
)
- )
- )
- (loop $while-in50
- (if
- (local.tee $7
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $0)
- (i32.const 20)
+ (loop $while-in50
+ (if
+ (local.tee $3
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (local.get $0)
+ (i32.const 20)
+ )
+ )
)
)
+ (block
+ (local.set $0
+ (local.get $3)
+ )
+ (local.set $1
+ (local.get $4)
+ )
+ (br $while-in50)
+ )
+ )
+ (if
+ (local.tee $3
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ )
+ )
+ )
+ (block
+ (local.set $0
+ (local.get $3)
+ )
+ (local.set $1
+ (local.get $4)
+ )
+ (br $while-in50)
+ )
)
)
- (block
- (local.set $0
- (local.get $7)
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (local.get $6)
)
- (local.set $9
- (local.get $2)
+ (call $_abort)
+ (block
+ (i32.store
+ (local.get $1)
+ (i32.const 0)
+ )
+ (local.set $16
+ (local.get $0)
+ )
)
- (br $while-in50)
)
)
- (if
- (local.tee $7
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $0)
- (i32.const 16)
+ (block
+ (if
+ (i32.lt_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $2)
)
)
+ (local.get $6)
)
+ (call $_abort)
)
- (block
- (local.set $0
- (local.get $7)
+ (if
+ (i32.ne
+ (local.get $2)
+ (i32.load offset=12
+ (local.get $1)
+ )
)
- (local.set $9
+ (call $_abort)
+ )
+ (if
+ (i32.eq
(local.get $2)
+ (i32.load offset=8
+ (local.get $0)
+ )
+ )
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $16
+ (local.get $0)
+ )
)
- (br $while-in50)
+ (call $_abort)
)
)
)
+ (br_if $label$break$L331
+ (i32.eqz
+ (local.get $10)
+ )
+ )
(if
- (i32.lt_u
- (local.get $9)
- (local.get $5)
+ (i32.ne
+ (i32.load offset=480
+ (local.tee $1
+ (i32.shl
+ (local.tee $0
+ (i32.load offset=28
+ (local.get $2)
+ )
+ )
+ (i32.const 2)
+ )
+ )
+ )
+ (local.get $2)
)
- (call $_abort)
(block
- (i32.store
- (local.get $9)
- (i32.const 0)
+ (if
+ (i32.lt_u
+ (local.get $10)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
)
- (local.set $24
- (local.get $0)
+ (if
+ (i32.eq
+ (local.get $2)
+ (i32.load offset=16
+ (local.get $10)
+ )
+ )
+ (i32.store offset=16
+ (local.get $10)
+ (local.get $16)
+ )
+ (i32.store offset=20
+ (local.get $10)
+ (local.get $16)
+ )
+ )
+ (br_if $label$break$L331
+ (i32.eqz
+ (local.get $16)
+ )
)
)
- )
- )
- (block
- (if
- (i32.lt_u
- (local.tee $2
- (i32.load offset=8
- (local.get $4)
+ (block $do-once51
+ (i32.store offset=480
+ (local.get $1)
+ (local.get $16)
+ )
+ (br_if $do-once51
+ (local.get $16)
+ )
+ (i32.store
+ (i32.const 180)
+ (i32.and
+ (i32.load
+ (i32.const 180)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
+ (i32.const -1)
+ )
)
)
- (local.get $5)
+ (br $label$break$L331)
)
- (call $_abort)
- )
- (local.set $0
- (local.get $2)
)
(if
- (i32.ne
- (local.get $4)
- (i32.load offset=12
- (local.get $0)
+ (i32.lt_u
+ (local.get $16)
+ (local.tee $1
+ (i32.load
+ (i32.const 192)
+ )
)
)
(call $_abort)
)
- (local.set $6
- (local.get $20)
+ (i32.store offset=24
+ (local.get $16)
+ (local.get $10)
)
(if
- (i32.eq
- (local.get $4)
- (i32.load offset=8
- (local.get $6)
+ (local.tee $0
+ (i32.load offset=16
+ (local.get $2)
)
)
- (block
- (i32.store offset=12
+ (if
+ (i32.lt_u
(local.get $0)
- (local.get $20)
- )
- (i32.store offset=8
- (local.get $6)
- (local.get $2)
+ (local.get $1)
)
- (local.set $24
- (local.get $20)
+ (call $_abort)
+ (block
+ (i32.store offset=16
+ (local.get $16)
+ (local.get $0)
+ )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $16)
+ )
)
)
- (call $_abort)
)
- )
- )
- (br_if $label$break$L331
- (i32.eqz
- (local.get $23)
- )
- )
- (local.set $0
- (i32.shl
- (local.tee $20
- (i32.load offset=28
- (local.get $4)
+ (br_if $label$break$L331
+ (i32.eqz
+ (local.tee $0
+ (i32.load offset=20
+ (local.get $2)
+ )
+ )
)
)
- (i32.const 2)
- )
- )
- (if
- (i32.ne
- (i32.load offset=480
- (local.get $0)
- )
- (local.get $4)
- )
- (block
(if
(i32.lt_u
- (local.get $23)
+ (local.get $0)
(i32.load
(i32.const 192)
)
)
(call $_abort)
- )
- (local.set $0
- (local.get $23)
- )
- (if
- (i32.eq
- (local.get $4)
- (i32.load offset=16
+ (block
+ (i32.store offset=20
+ (local.get $16)
(local.get $0)
)
- )
- (i32.store offset=16
- (local.get $0)
- (local.get $24)
- )
- (i32.store offset=20
- (local.get $23)
- (local.get $24)
- )
- )
- (br_if $label$break$L331
- (i32.eqz
- (local.get $24)
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $16)
+ )
)
)
)
- (block $do-once51
- (i32.store offset=480
- (local.get $0)
- (local.get $24)
- )
- (br_if $do-once51
- (local.get $24)
+ (block
+ (local.set $1
+ (i32.load offset=12
+ (local.get $2)
+ )
)
- (i32.store
- (i32.const 180)
- (i32.and
- (i32.load
- (i32.const 180)
+ (if
+ (i32.ne
+ (local.tee $4
+ (i32.load offset=8
+ (local.get $2)
+ )
)
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $20)
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.get $3)
+ (i32.const 3)
+ )
+ (i32.const 216)
)
- (i32.const -1)
)
)
- )
- (br $label$break$L331)
- )
- )
- (if
- (i32.lt_u
- (local.get $24)
- (local.tee $20
- (i32.load
- (i32.const 192)
- )
- )
- )
- (call $_abort)
- )
- (i32.store offset=24
- (local.get $24)
- (local.get $23)
- )
- (local.set $0
- (local.get $4)
- )
- (if
- (local.tee $9
- (i32.load offset=16
- (local.get $0)
- )
- )
- (if
- (i32.lt_u
- (local.get $9)
- (local.get $20)
- )
- (call $_abort)
- (block
- (i32.store offset=16
- (local.get $24)
- (local.get $9)
- )
- (i32.store offset=24
- (local.get $9)
- (local.get $24)
- )
- )
- )
- )
- (br_if $label$break$L331
- (i32.eqz
- (local.tee $9
- (i32.load offset=20
- (local.get $0)
- )
- )
- )
- )
- (if
- (i32.lt_u
- (local.get $9)
- (i32.load
- (i32.const 192)
- )
- )
- (call $_abort)
- (block
- (i32.store offset=20
- (local.get $24)
- (local.get $9)
- )
- (i32.store offset=24
- (local.get $9)
- (local.get $24)
- )
- )
- )
- )
- (block
- (local.set $20
- (i32.load offset=12
- (local.get $4)
- )
- )
- (if
- (i32.ne
- (local.tee $9
- (i32.load offset=8
- (local.get $4)
- )
- )
- (local.tee $23
- (i32.add
- (i32.shl
- (local.get $6)
- (i32.const 3)
+ (block $do-once55
+ (if
+ (i32.lt_u
+ (local.get $4)
+ (local.get $6)
+ )
+ (call $_abort)
)
- (i32.const 216)
+ (br_if $do-once55
+ (i32.eq
+ (local.get $2)
+ (i32.load offset=12
+ (local.get $4)
+ )
+ )
+ )
+ (call $_abort)
)
)
- )
- (block $do-once55
(if
- (i32.lt_u
- (local.get $9)
- (local.get $5)
- )
- (call $_abort)
- )
- (br_if $do-once55
(i32.eq
+ (local.get $1)
(local.get $4)
- (i32.load offset=12
- (local.get $9)
- )
)
- )
- (call $_abort)
- )
- )
- (if
- (i32.eq
- (local.get $9)
- (local.get $20)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.and
- (i32.load
+ (block
+ (i32.store
(i32.const 176)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $6)
+ (i32.and
+ (i32.load
+ (i32.const 176)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $3)
+ )
+ (i32.const -1)
+ )
)
- (i32.const -1)
)
+ (br $label$break$L331)
)
)
- (br $label$break$L331)
- )
- )
- (if
- (i32.eq
- (local.get $20)
- (local.get $23)
- )
- (local.set $39
- (i32.add
- (local.get $20)
- (i32.const 8)
- )
- )
- (block $do-once57
- (if
- (i32.lt_u
- (local.get $20)
- (local.get $5)
- )
- (call $_abort)
- )
(if
(i32.eq
- (local.get $4)
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $20)
- (i32.const 8)
- )
- )
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $32
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
)
)
- (block
- (local.set $39
- (local.get $2)
+ (block $do-once57
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (local.get $6)
+ )
+ (call $_abort)
+ )
+ (if
+ (i32.eq
+ (local.get $2)
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
+ )
+ )
+ )
+ (block
+ (local.set $32
+ (local.get $0)
+ )
+ (br $do-once57)
+ )
)
- (br $do-once57)
+ (call $_abort)
)
)
- (call $_abort)
+ (i32.store offset=12
+ (local.get $4)
+ (local.get $1)
+ )
+ (i32.store
+ (local.get $32)
+ (local.get $4)
+ )
)
)
- (i32.store offset=12
- (local.get $9)
- (local.get $20)
- )
- (i32.store
- (local.get $39)
- (local.get $9)
+ )
+ (local.set $2
+ (i32.add
+ (local.get $2)
+ (local.get $7)
)
)
+ (i32.add
+ (local.get $7)
+ (local.get $8)
+ )
)
+ (local.get $8)
)
- (local.set $4
- (i32.add
- (local.get $1)
- (local.get $4)
- )
- )
- (local.set $14
- (i32.add
- (local.get $1)
- (local.get $14)
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.and
+ (i32.load offset=4
+ (local.get $2)
)
+ (i32.const -2)
)
)
- )
- (i32.store offset=4
- (local.get $4)
- (i32.and
- (i32.load offset=4
+ (i32.store offset=4
+ (local.get $5)
+ (i32.or
(local.get $4)
+ (i32.const 1)
)
- (i32.const -2)
- )
- )
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $14)
- (i32.const 1)
)
- )
- (i32.store
- (i32.add
- (local.get $3)
- (local.get $14)
- )
- (local.get $14)
- )
- (local.set $6
- (i32.shr_u
- (local.get $14)
- (i32.const 3)
+ (i32.store
+ (i32.add
+ (local.get $4)
+ (local.get $5)
+ )
+ (local.get $4)
)
- )
- (if
- (i32.lt_u
- (local.get $14)
- (i32.const 256)
+ (local.set $1
+ (i32.shr_u
+ (local.get $4)
+ (i32.const 3)
+ )
)
- (block
- (local.set $0
- (i32.add
- (i32.shl
- (local.get $6)
- (i32.const 3)
- )
- (i32.const 216)
- )
+ (if
+ (i32.lt_u
+ (local.get $4)
+ (i32.const 256)
)
- (if
- (i32.and
- (local.tee $2
+ (block
+ (local.set $0
+ (i32.add
(i32.shl
- (i32.const 1)
- (local.get $6)
+ (local.get $1)
+ (i32.const 3)
)
+ (i32.const 216)
)
- (local.tee $23
- (i32.load
- (i32.const 176)
+ )
+ (if
+ (i32.and
+ (local.tee $4
+ (i32.load
+ (i32.const 176)
+ )
+ )
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
)
)
- )
- (block $do-once59
- (if
- (i32.ge_u
- (local.tee $7
- (i32.load
- (local.tee $6
- (i32.add
- (local.get $0)
- (i32.const 8)
+ (block $do-once59
+ (if
+ (i32.ge_u
+ (local.tee $4
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
)
)
)
+ (i32.load
+ (i32.const 192)
+ )
)
- (i32.load
- (i32.const 192)
+ (block
+ (local.set $33
+ (local.get $1)
+ )
+ (local.set $29
+ (local.get $4)
+ )
+ (br $do-once59)
)
)
- (block
- (local.set $40
- (local.get $6)
- )
- (local.set $35
- (local.get $7)
+ (call $_abort)
+ )
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (local.get $1)
+ (local.get $4)
)
- (br $do-once59)
)
- )
- (call $_abort)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (local.get $2)
- (local.get $23)
+ (local.set $33
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
)
- )
- (local.set $40
- (i32.add
+ (local.set $29
(local.get $0)
- (i32.const 8)
)
)
- (local.set $35
- (local.get $0)
- )
)
+ (i32.store
+ (local.get $33)
+ (local.get $5)
+ )
+ (i32.store offset=12
+ (local.get $29)
+ (local.get $5)
+ )
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $29)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $0)
+ )
+ (br $do-once44)
)
- (i32.store
- (local.get $40)
- (local.get $3)
- )
- (i32.store offset=12
- (local.get $35)
- (local.get $3)
- )
- (i32.store offset=8
- (local.get $3)
- (local.get $35)
- )
- (i32.store offset=12
- (local.get $3)
- (local.get $0)
- )
- (br $do-once44)
)
- )
- (local.set $2
- (i32.add
- (local.tee $6
- (i32.shl
- (local.tee $1
- (if (result i32)
- (local.tee $2
- (i32.shr_u
- (local.get $14)
- (i32.const 8)
- )
- )
+ (local.set $3
+ (i32.add
+ (local.tee $1
+ (i32.shl
+ (local.tee $0
(if (result i32)
- (i32.gt_u
- (local.get $14)
- (i32.const 16777215)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $4)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $7
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $1
- (i32.shl
- (local.get $2)
- (local.tee $23
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $2)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $4)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $0)
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $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 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $14)
- (i32.add
- (local.tee $16
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
- (local.tee $1
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $6
- (i32.shl
- (local.get $1)
- (local.get $7)
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $4)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
+ (i32.or
+ (local.tee $6
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $3)
+ (local.get $0)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
)
- )
- (i32.or
- (local.get $7)
- (local.get $23)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
+ )
)
)
- )
- (i32.shr_u
- (i32.shl
- (local.get $6)
- (local.get $1)
+ (i32.shr_u
+ (i32.shl
+ (local.get $3)
+ (local.get $6)
+ )
+ (i32.const 15)
)
- (i32.const 15)
)
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $16)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
+ (i32.const 2)
)
- (i32.const 2)
)
+ (i32.const 480)
)
- (i32.const 480)
)
- )
- (i32.store offset=28
- (local.get $3)
- (local.get $1)
- )
- (i32.store offset=20
- (local.get $3)
- (i32.const 0)
- )
- (i32.store offset=16
- (local.get $3)
- (i32.const 0)
- )
- (if
- (i32.eqz
- (i32.and
- (local.tee $16
- (i32.shl
- (i32.const 1)
- (local.get $1)
+ (i32.store offset=28
+ (local.get $5)
+ (local.get $0)
+ )
+ (i32.store offset=20
+ (local.get $5)
+ (i32.const 0)
+ )
+ (i32.store offset=16
+ (local.get $5)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (local.tee $6
+ (i32.load
+ (i32.const 180)
+ )
)
- )
- (local.tee $0
- (i32.load
- (i32.const 180)
+ (local.tee $2
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
)
)
)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.or
- (local.get $0)
- (local.get $16)
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.or
+ (local.get $2)
+ (local.get $6)
+ )
)
+ (i32.store offset=480
+ (local.get $1)
+ (local.get $5)
+ )
+ (i32.store offset=24
+ (local.get $5)
+ (local.get $3)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $5)
+ )
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $5)
+ )
+ (br $do-once44)
)
- (i32.store offset=480
- (local.get $6)
- (local.get $3)
- )
- (i32.store offset=24
- (local.get $3)
- (local.get $2)
- )
- (i32.store offset=12
- (local.get $3)
- (local.get $3)
- )
- (i32.store offset=8
- (local.get $3)
- (local.get $3)
- )
- (br $do-once44)
)
- )
- (local.set $16
- (i32.shl
- (local.get $14)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
- (local.get $1)
- (i32.const 1)
+ (local.set $17
+ (i32.shl
+ (local.get $4)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ (i32.eq
+ (local.get $0)
+ (i32.const 31)
)
- )
- (i32.eq
- (local.get $1)
- (i32.const 31)
)
)
)
- )
- (local.set $0
- (i32.load offset=480
- (local.get $6)
+ (local.set $0
+ (i32.load offset=480
+ (local.get $1)
+ )
)
- )
- (if
- (i32.eq
- (local.tee $10
- (loop $while-in64 (result i32)
- (block $while-out63 (result i32)
- (if
- (i32.eq
- (local.get $14)
- (i32.and
- (i32.load offset=4
- (local.get $0)
- )
- (i32.const -8)
- )
- )
- (block
- (local.set $41
- (local.get $0)
- )
- (br $while-out63
- (i32.const 281)
- )
+ (loop $while-in64
+ (block $while-out63
+ (if
+ (i32.eq
+ (local.get $4)
+ (i32.and
+ (i32.load offset=4
+ (local.get $0)
)
+ (i32.const -8)
)
- (if (result i32)
- (local.tee $1
- (i32.load
- (local.tee $2
+ )
+ (block
+ (local.set $34
+ (local.get $0)
+ )
+ (local.set $9
+ (i32.const 281)
+ )
+ (br $while-out63)
+ )
+ )
+ (local.set $35
+ (if (result i32)
+ (local.tee $1
+ (i32.load
+ (local.tee $3
+ (i32.add
(i32.add
- (i32.add
- (local.get $0)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $16)
- (i32.const 31)
- )
- (i32.const 2)
+ (local.get $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $17)
+ (i32.const 31)
)
+ (i32.const 2)
)
)
)
)
- (block
- (local.set $16
- (i32.shl
- (local.get $16)
- (i32.const 1)
- )
- )
- (local.set $0
- (local.get $1)
+ )
+ (block
+ (local.set $17
+ (i32.shl
+ (local.get $17)
+ (i32.const 1)
)
- (br $while-in64)
)
- (block (result i32)
- (local.set $42
- (local.get $2)
- )
- (local.set $51
- (local.get $0)
- )
+ (local.set $0
+ (local.get $1)
+ )
+ (br $while-in64)
+ )
+ (block (result i32)
+ (local.set $46
+ (local.get $0)
+ )
+ (local.set $9
(i32.const 278)
)
+ (local.get $3)
)
)
)
)
- (i32.const 278)
)
(if
- (i32.lt_u
- (local.get $42)
- (i32.load
- (i32.const 192)
- )
+ (i32.eq
+ (local.get $9)
+ (i32.const 278)
)
- (call $_abort)
- (block
- (i32.store
- (local.get $42)
- (local.get $3)
- )
- (i32.store offset=24
- (local.get $3)
- (local.get $51)
- )
- (i32.store offset=12
- (local.get $3)
- (local.get $3)
+ (if
+ (i32.lt_u
+ (local.get $35)
+ (i32.load
+ (i32.const 192)
+ )
)
- (i32.store offset=8
- (local.get $3)
- (local.get $3)
+ (call $_abort)
+ (block
+ (i32.store
+ (local.get $35)
+ (local.get $5)
+ )
+ (i32.store offset=24
+ (local.get $5)
+ (local.get $46)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $5)
+ )
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $5)
+ )
)
)
- )
- (if
- (i32.eq
- (local.get $10)
- (i32.const 281)
- )
- (block
- (local.set $0
- (local.get $41)
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 281)
)
(if
(i32.and
(i32.ge_u
- (local.tee $16
+ (local.tee $1
(i32.load offset=8
- (local.get $0)
+ (local.tee $0
+ (local.get $34)
+ )
)
)
- (local.tee $1
+ (local.tee $4
(i32.load
(i32.const 192)
)
@@ -4796,28 +4642,28 @@
)
(i32.ge_u
(local.get $0)
- (local.get $1)
+ (local.get $4)
)
)
(block
(i32.store offset=12
- (local.get $16)
- (local.get $3)
+ (local.get $1)
+ (local.get $5)
)
(i32.store offset=8
(local.get $0)
- (local.get $3)
+ (local.get $5)
)
(i32.store offset=8
- (local.get $3)
- (local.get $16)
+ (local.get $5)
+ (local.get $1)
)
(i32.store offset=12
- (local.get $3)
- (local.get $41)
+ (local.get $5)
+ (local.get $34)
)
(i32.store offset=24
- (local.get $3)
+ (local.get $5)
(i32.const 0)
)
)
@@ -4826,694 +4672,685 @@
)
)
)
- )
- (block
- (i32.store
- (i32.const 188)
- (local.tee $16
- (i32.add
- (local.get $14)
- (i32.load
- (i32.const 188)
+ (block
+ (i32.store
+ (i32.const 188)
+ (local.tee $0
+ (i32.add
+ (local.get $8)
+ (i32.load
+ (i32.const 188)
+ )
)
)
)
+ (i32.store
+ (i32.const 200)
+ (local.get $5)
+ )
+ (i32.store offset=4
+ (local.get $5)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
)
- (i32.store
- (i32.const 200)
- (local.get $3)
+ )
+ (return
+ (i32.add
+ (local.get $14)
+ (i32.const 8)
)
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $16)
- (i32.const 1)
+ )
+ )
+ )
+ )
+ )
+ (loop $while-in66
+ (if
+ (i32.eqz
+ (if (result i32)
+ (i32.le_u
+ (local.tee $0
+ (i32.load
+ (local.get $24)
)
)
+ (local.get $7)
)
+ (i32.gt_u
+ (local.tee $22
+ (i32.add
+ (i32.load offset=4
+ (local.get $24)
+ )
+ (local.get $0)
+ )
+ )
+ (local.get $7)
+ )
+ (i32.const 0)
)
- (return
- (i32.add
- (local.get $13)
- (i32.const 8)
+ )
+ (block
+ (local.set $24
+ (i32.load offset=8
+ (local.get $24)
)
)
+ (br $while-in66)
)
)
)
- )
- (local.set $3
- (i32.add
- (local.tee $1
- (local.tee $13
- (select
- (local.get $12)
- (local.tee $3
- (i32.add
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $14
- (i32.add
- (local.tee $13
- (i32.add
- (local.tee $0
- (loop $while-in66 (result i32)
- (if (result i32)
- (if (result i32)
- (i32.le_u
- (local.tee $3
- (i32.load
- (local.get $27)
- )
- )
- (local.get $12)
- )
- (i32.gt_u
- (local.tee $14
- (i32.add
- (i32.load offset=4
- (local.get $27)
- )
- (local.get $3)
- )
- )
- (local.get $12)
- )
- (i32.const 0)
- )
- (local.get $14)
- (block
- (local.set $27
- (i32.load offset=8
- (local.get $27)
- )
- )
- (br $while-in66)
- )
- )
- )
- )
- (i32.const -47)
- )
- )
- (i32.const 8)
- )
- )
- )
- (i32.const 7)
- )
+ (i32.store
+ (i32.const 200)
+ (local.tee $0
+ (i32.add
+ (local.get $3)
+ (local.tee $1
+ (select
+ (i32.and
+ (i32.sub
(i32.const 0)
- (i32.and
- (local.get $14)
- (i32.const 7)
+ (local.tee $0
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
)
)
- (local.get $13)
+ (i32.const 7)
)
- )
- (i32.lt_u
- (local.get $3)
- (local.tee $14
- (i32.add
- (local.get $12)
- (i32.const 16)
- )
+ (i32.const 0)
+ (i32.and
+ (local.get $0)
+ (i32.const 7)
)
)
)
)
)
- (i32.const 8)
)
- )
- (i32.store
- (i32.const 200)
- (local.tee $4
+ (i32.store
+ (i32.const 188)
+ (local.tee $1
+ (i32.sub
+ (i32.add
+ (local.get $10)
+ (i32.const -40)
+ )
+ (local.get $1)
+ )
+ )
+ )
+ (i32.store offset=4
+ (local.get $0)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4
(i32.add
- (local.get $21)
- (local.tee $18
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $4
- (i32.add
- (local.get $21)
- (i32.const 8)
+ (local.get $0)
+ (local.get $1)
+ )
+ (i32.const 40)
+ )
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
+ )
+ )
+ (i32.store offset=4
+ (local.tee $0
+ (select
+ (local.get $7)
+ (local.tee $0
+ (i32.add
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (local.get $22)
+ (i32.const -47)
+ )
+ )
+ (i32.const 8)
+ )
+ )
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
)
)
- (i32.const 7)
+ (local.get $0)
)
- (i32.const 0)
- (i32.and
- (local.get $4)
- (i32.const 7)
+ )
+ (i32.lt_u
+ (local.get $0)
+ (local.tee $2
+ (i32.add
+ (local.get $7)
+ (i32.const 16)
+ )
)
)
)
)
+ (i32.const 27)
)
- )
- (i32.store
- (i32.const 188)
- (local.tee $16
- (i32.sub
- (i32.add
- (local.get $22)
- (i32.const -40)
- )
- (local.get $18)
+ (i32.store offset=8
+ (local.get $0)
+ (i32.load
+ (i32.const 624)
)
)
- )
- (i32.store offset=4
- (local.get $4)
- (i32.or
- (local.get $16)
- (i32.const 1)
+ (i32.store offset=12
+ (local.get $0)
+ (i32.load
+ (i32.const 628)
+ )
)
- )
- (i32.store offset=4
- (i32.add
- (local.get $4)
- (local.get $16)
+ (i32.store offset=16
+ (local.get $0)
+ (i32.load
+ (i32.const 632)
+ )
)
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
+ (i32.store offset=20
+ (local.get $0)
+ (i32.load
+ (i32.const 636)
+ )
)
- )
- (local.set $2
- (local.get $13)
- )
- (i32.store offset=4
- (local.get $2)
- (i32.const 27)
- )
- (i32.store offset=8
- (local.get $1)
- (i32.load
+ (i32.store
(i32.const 624)
+ (local.get $3)
)
- )
- (i32.store offset=12
- (local.get $1)
- (i32.load
+ (i32.store
(i32.const 628)
+ (local.get $10)
)
- )
- (i32.store offset=16
- (local.get $1)
- (i32.load
- (i32.const 632)
- )
- )
- (i32.store offset=20
- (local.get $1)
- (i32.load
+ (i32.store
(i32.const 636)
+ (i32.const 0)
)
- )
- (i32.store
- (i32.const 624)
- (local.get $21)
- )
- (i32.store
- (i32.const 628)
- (local.get $22)
- )
- (i32.store
- (i32.const 636)
- (i32.const 0)
- )
- (i32.store
- (i32.const 632)
- (local.get $3)
- )
- (local.set $3
- (i32.add
- (local.get $2)
- (i32.const 24)
- )
- )
- (loop $do-in68
(i32.store
- (local.tee $3
- (i32.add
- (local.get $3)
- (i32.const 4)
- )
+ (i32.const 632)
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
)
- (i32.const 7)
)
- (br_if $do-in68
- (i32.lt_u
- (i32.add
- (local.get $3)
- (i32.const 4)
- )
+ (local.set $1
+ (i32.add
(local.get $0)
+ (i32.const 24)
)
)
- )
- (if
- (i32.ne
- (local.get $12)
- (local.get $13)
- )
- (block
- (i32.store offset=4
- (local.get $2)
- (i32.and
- (i32.load offset=4
- (local.get $2)
+ (loop $do-in68
+ (i32.store
+ (local.tee $1
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
)
- (i32.const -2)
)
+ (i32.const 7)
)
- (i32.store offset=4
- (local.get $12)
- (i32.or
- (local.tee $3
- (i32.sub
- (local.get $13)
- (local.get $12)
- )
+ (br_if $do-in68
+ (i32.lt_u
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
)
- (i32.const 1)
+ (local.get $22)
)
)
- (i32.store
- (local.get $13)
- (local.get $3)
- )
- (local.set $4
- (i32.shr_u
- (local.get $3)
- (i32.const 3)
- )
+ )
+ (if
+ (i32.ne
+ (local.get $0)
+ (local.get $7)
)
- (if
- (i32.lt_u
- (local.get $3)
- (i32.const 256)
+ (block
+ (i32.store offset=4
+ (local.get $0)
+ (i32.and
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const -2)
+ )
)
- (block
- (local.set $18
- (i32.add
- (i32.shl
- (local.get $4)
- (i32.const 3)
+ (i32.store offset=4
+ (local.get $7)
+ (i32.or
+ (local.tee $6
+ (i32.sub
+ (local.get $0)
+ (local.get $7)
)
- (i32.const 216)
)
+ (i32.const 1)
)
- (if
- (i32.and
- (local.tee $1
+ )
+ (i32.store
+ (local.get $0)
+ (local.get $6)
+ )
+ (local.set $1
+ (i32.shr_u
+ (local.get $6)
+ (i32.const 3)
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $6)
+ (i32.const 256)
+ )
+ (block
+ (local.set $0
+ (i32.add
(i32.shl
- (i32.const 1)
- (local.get $4)
- )
- )
- (local.tee $0
- (i32.load
- (i32.const 176)
+ (local.get $1)
+ (i32.const 3)
)
+ (i32.const 216)
)
)
(if
- (i32.lt_u
- (local.tee $2
+ (i32.and
+ (local.tee $3
(i32.load
- (local.tee $4
- (i32.add
- (local.get $18)
- (i32.const 8)
+ (i32.const 176)
+ )
+ )
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.tee $3
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
)
)
)
+ (i32.load
+ (i32.const 192)
+ )
)
- (i32.load
- (i32.const 192)
+ (call $_abort)
+ (block
+ (local.set $36
+ (local.get $1)
+ )
+ (local.set $30
+ (local.get $3)
+ )
)
)
- (call $_abort)
(block
- (local.set $43
- (local.get $4)
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (local.get $1)
+ (local.get $3)
+ )
)
(local.set $36
- (local.get $2)
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
)
- )
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
+ (local.set $30
(local.get $0)
- (local.get $1)
)
)
- (local.set $43
- (i32.add
- (local.get $18)
- (i32.const 8)
- )
- )
- (local.set $36
- (local.get $18)
- )
)
+ (i32.store
+ (local.get $36)
+ (local.get $7)
+ )
+ (i32.store offset=12
+ (local.get $30)
+ (local.get $7)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $30)
+ )
+ (i32.store offset=12
+ (local.get $7)
+ (local.get $0)
+ )
+ (br $do-once40)
)
- (i32.store
- (local.get $43)
- (local.get $12)
- )
- (i32.store offset=12
- (local.get $36)
- (local.get $12)
- )
- (i32.store offset=8
- (local.get $12)
- (local.get $36)
- )
- (i32.store offset=12
- (local.get $12)
- (local.get $18)
- )
- (br $do-once40)
)
- )
- (local.set $4
- (i32.add
- (local.tee $6
- (i32.shl
- (local.tee $1
- (if (result i32)
- (local.tee $18
- (i32.shr_u
- (local.get $3)
- (i32.const 8)
- )
- )
+ (local.set $3
+ (i32.add
+ (local.tee $1
+ (i32.shl
+ (local.tee $0
(if (result i32)
- (i32.gt_u
- (local.get $3)
- (i32.const 16777215)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $6)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $18
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $18)
- (local.tee $1
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $18)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $6)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $0)
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $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 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $3)
- (i32.add
- (local.tee $4
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
- (local.tee $0
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $2
- (i32.shl
- (local.get $0)
- (local.get $18)
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $6)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
+ (i32.or
+ (local.tee $8
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $3)
+ (local.get $0)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
)
- )
- (i32.or
- (local.get $1)
- (local.get $18)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
+ )
)
)
- )
- (i32.shr_u
- (i32.shl
- (local.get $2)
- (local.get $0)
+ (i32.shr_u
+ (i32.shl
+ (local.get $3)
+ (local.get $8)
+ )
+ (i32.const 15)
)
- (i32.const 15)
)
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $4)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
+ (i32.const 2)
)
- (i32.const 2)
)
+ (i32.const 480)
)
- (i32.const 480)
)
- )
- (i32.store offset=28
- (local.get $12)
- (local.get $1)
- )
- (i32.store offset=20
- (local.get $12)
- (i32.const 0)
- )
- (i32.store
- (local.get $14)
- (i32.const 0)
- )
- (if
- (i32.eqz
- (i32.and
- (local.tee $2
- (i32.shl
- (i32.const 1)
- (local.get $1)
+ (i32.store offset=28
+ (local.get $7)
+ (local.get $0)
+ )
+ (i32.store offset=20
+ (local.get $7)
+ (i32.const 0)
+ )
+ (i32.store
+ (local.get $2)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (local.tee $2
+ (i32.load
+ (i32.const 180)
+ )
)
- )
- (local.tee $0
- (i32.load
- (i32.const 180)
+ (local.tee $8
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
)
)
)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.or
- (local.get $0)
- (local.get $2)
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.or
+ (local.get $2)
+ (local.get $8)
+ )
)
+ (i32.store offset=480
+ (local.get $1)
+ (local.get $7)
+ )
+ (i32.store offset=24
+ (local.get $7)
+ (local.get $3)
+ )
+ (i32.store offset=12
+ (local.get $7)
+ (local.get $7)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $7)
+ )
+ (br $do-once40)
)
- (i32.store offset=480
- (local.get $6)
- (local.get $12)
- )
- (i32.store offset=24
- (local.get $12)
- (local.get $4)
- )
- (i32.store offset=12
- (local.get $12)
- (local.get $12)
- )
- (i32.store offset=8
- (local.get $12)
- (local.get $12)
- )
- (br $do-once40)
)
- )
- (local.set $2
- (i32.shl
- (local.get $3)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
- (local.get $1)
- (i32.const 1)
+ (local.set $5
+ (i32.shl
+ (local.get $6)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ (i32.eq
+ (local.get $0)
+ (i32.const 31)
)
- )
- (i32.eq
- (local.get $1)
- (i32.const 31)
)
)
)
- )
- (local.set $0
- (i32.load offset=480
- (local.get $6)
+ (local.set $0
+ (i32.load offset=480
+ (local.get $1)
+ )
)
- )
- (if
- (i32.eq
- (local.tee $10
- (loop $while-in70 (result i32)
- (block $while-out69 (result i32)
- (if
- (i32.eq
- (local.get $3)
- (i32.and
- (i32.load offset=4
- (local.get $0)
- )
- (i32.const -8)
- )
- )
- (block
- (local.set $44
- (local.get $0)
- )
- (br $while-out69
- (i32.const 307)
- )
+ (loop $while-in70
+ (block $while-out69
+ (if
+ (i32.eq
+ (local.get $6)
+ (i32.and
+ (i32.load offset=4
+ (local.get $0)
)
+ (i32.const -8)
)
- (if (result i32)
- (local.tee $1
- (i32.load
- (local.tee $4
+ )
+ (block
+ (local.set $37
+ (local.get $0)
+ )
+ (local.set $9
+ (i32.const 307)
+ )
+ (br $while-out69)
+ )
+ )
+ (local.set $38
+ (if (result i32)
+ (local.tee $1
+ (i32.load
+ (local.tee $3
+ (i32.add
(i32.add
- (i32.add
- (local.get $0)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $2)
- (i32.const 31)
- )
- (i32.const 2)
+ (local.get $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $5)
+ (i32.const 31)
)
+ (i32.const 2)
)
)
)
)
- (block
- (local.set $2
- (i32.shl
- (local.get $2)
- (i32.const 1)
- )
- )
- (local.set $0
- (local.get $1)
+ )
+ (block
+ (local.set $5
+ (i32.shl
+ (local.get $5)
+ (i32.const 1)
)
- (br $while-in70)
)
- (block (result i32)
- (local.set $45
- (local.get $4)
- )
- (local.set $52
- (local.get $0)
- )
+ (local.set $0
+ (local.get $1)
+ )
+ (br $while-in70)
+ )
+ (block (result i32)
+ (local.set $47
+ (local.get $0)
+ )
+ (local.set $9
(i32.const 304)
)
+ (local.get $3)
)
)
)
)
- (i32.const 304)
)
(if
- (i32.lt_u
- (local.get $45)
- (i32.load
- (i32.const 192)
- )
+ (i32.eq
+ (local.get $9)
+ (i32.const 304)
)
- (call $_abort)
- (block
- (i32.store
- (local.get $45)
- (local.get $12)
- )
- (i32.store offset=24
- (local.get $12)
- (local.get $52)
- )
- (i32.store offset=12
- (local.get $12)
- (local.get $12)
+ (if
+ (i32.lt_u
+ (local.get $38)
+ (i32.load
+ (i32.const 192)
+ )
)
- (i32.store offset=8
- (local.get $12)
- (local.get $12)
+ (call $_abort)
+ (block
+ (i32.store
+ (local.get $38)
+ (local.get $7)
+ )
+ (i32.store offset=24
+ (local.get $7)
+ (local.get $47)
+ )
+ (i32.store offset=12
+ (local.get $7)
+ (local.get $7)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $7)
+ )
)
)
- )
- (if
- (i32.eq
- (local.get $10)
- (i32.const 307)
- )
- (block
- (local.set $0
- (local.get $44)
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 307)
)
(if
(i32.and
(i32.ge_u
- (local.tee $2
+ (local.tee $1
(i32.load offset=8
- (local.get $0)
+ (local.tee $0
+ (local.get $37)
+ )
)
)
(local.tee $3
@@ -5529,23 +5366,23 @@
)
(block
(i32.store offset=12
- (local.get $2)
- (local.get $12)
+ (local.get $1)
+ (local.get $7)
)
(i32.store offset=8
(local.get $0)
- (local.get $12)
+ (local.get $7)
)
(i32.store offset=8
- (local.get $12)
- (local.get $2)
+ (local.get $7)
+ (local.get $1)
)
(i32.store offset=12
- (local.get $12)
- (local.get $44)
+ (local.get $7)
+ (local.get $37)
)
(i32.store offset=24
- (local.get $12)
+ (local.get $7)
(i32.const 0)
)
)
@@ -5556,208 +5393,206 @@
)
)
)
- )
- (block
- (if
- (i32.or
- (i32.eqz
- (local.tee $2
- (i32.load
- (i32.const 192)
+ (block
+ (if
+ (i32.or
+ (i32.eqz
+ (local.tee $0
+ (i32.load
+ (i32.const 192)
+ )
)
)
+ (i32.lt_u
+ (local.get $3)
+ (local.get $0)
+ )
)
- (i32.lt_u
- (local.get $21)
- (local.get $2)
+ (i32.store
+ (i32.const 192)
+ (local.get $3)
)
)
(i32.store
- (i32.const 192)
- (local.get $21)
+ (i32.const 624)
+ (local.get $3)
)
- )
- (i32.store
- (i32.const 624)
- (local.get $21)
- )
- (i32.store
- (i32.const 628)
- (local.get $22)
- )
- (i32.store
- (i32.const 636)
- (i32.const 0)
- )
- (i32.store
- (i32.const 212)
- (i32.load
- (i32.const 648)
+ (i32.store
+ (i32.const 628)
+ (local.get $10)
)
- )
- (i32.store
- (i32.const 208)
- (i32.const -1)
- )
- (local.set $2
- (i32.const 0)
- )
- (loop $do-in72
- (local.set $0
- (i32.add
- (local.tee $1
- (i32.shl
- (local.get $2)
- (i32.const 3)
- )
- )
- (i32.const 216)
+ (i32.store
+ (i32.const 636)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 212)
+ (i32.load
+ (i32.const 648)
)
)
- (i32.store offset=228
- (local.get $1)
- (local.get $0)
+ (i32.store
+ (i32.const 208)
+ (i32.const -1)
)
- (i32.store offset=224
- (local.get $1)
- (local.get $0)
+ (local.set $5
+ (i32.const 0)
)
- (br_if $do-in72
- (i32.ne
- (local.tee $2
- (i32.add
- (local.get $2)
- (i32.const 1)
+ (loop $do-in72
+ (local.set $1
+ (i32.add
+ (local.tee $0
+ (i32.shl
+ (local.get $5)
+ (i32.const 3)
+ )
)
+ (i32.const 216)
+ )
+ )
+ (i32.store offset=228
+ (local.get $0)
+ (local.get $1)
+ )
+ (i32.store offset=224
+ (local.get $0)
+ (local.get $1)
+ )
+ (br_if $do-in72
+ (i32.ne
+ (local.tee $5
+ (i32.add
+ (local.get $5)
+ (i32.const 1)
+ )
+ )
+ (i32.const 32)
)
- (i32.const 32)
)
)
- )
- (i32.store
- (i32.const 200)
- (local.tee $2
- (i32.add
- (local.get $21)
- (local.tee $0
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $2
- (i32.add
- (local.get $21)
- (i32.const 8)
+ (i32.store
+ (i32.const 200)
+ (local.tee $0
+ (i32.add
+ (local.get $3)
+ (local.tee $1
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $0
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
)
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $0)
+ (i32.const 7)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $2)
- (i32.const 7)
)
)
)
)
)
- )
- (i32.store
- (i32.const 188)
- (local.tee $3
- (i32.sub
- (i32.add
- (local.get $22)
- (i32.const -40)
+ (i32.store
+ (i32.const 188)
+ (local.tee $1
+ (i32.sub
+ (i32.add
+ (local.get $10)
+ (i32.const -40)
+ )
+ (local.get $1)
)
- (local.get $0)
)
)
- )
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $3)
- (i32.const 1)
- )
- )
- (i32.store offset=4
- (i32.add
- (local.get $2)
- (local.get $3)
- )
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
- )
- )
- )
- )
- (if
- (i32.gt_u
- (local.tee $22
- (i32.load
- (i32.const 188)
- )
- )
- (local.get $8)
- )
- (block
- (i32.store
- (i32.const 188)
- (local.tee $21
- (i32.sub
- (local.get $22)
- (local.get $8)
+ (i32.store offset=4
+ (local.get $0)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
)
)
- )
- (i32.store
- (i32.const 200)
- (local.tee $12
+ (i32.store offset=4
(i32.add
- (local.get $8)
- (local.tee $22
- (i32.load
- (i32.const 200)
- )
- )
+ (local.get $0)
+ (local.get $1)
)
+ (i32.const 40)
)
- )
- (i32.store offset=4
- (local.get $12)
- (i32.or
- (local.get $21)
- (i32.const 1)
- )
- )
- (i32.store offset=4
- (local.get $22)
- (i32.or
- (local.get $8)
- (i32.const 3)
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
+ )
)
)
- (return
- (i32.add
- (local.get $22)
- (i32.const 8)
+ )
+ (br_if $folding-inner0
+ (i32.gt_u
+ (local.tee $0
+ (i32.load
+ (i32.const 188)
+ )
)
+ (local.get $4)
)
)
)
)
+ (i32.store
+ (call $___errno_location)
+ (i32.const 12)
+ )
+ (return
+ (i32.const 0)
+ )
)
(i32.store
- (call $___errno_location)
- (i32.const 12)
+ (i32.const 188)
+ (local.tee $1
+ (i32.sub
+ (local.get $0)
+ (local.get $4)
+ )
+ )
+ )
+ (i32.store
+ (i32.const 200)
+ (local.tee $3
+ (i32.add
+ (local.get $4)
+ (local.tee $0
+ (i32.load
+ (i32.const 200)
+ )
+ )
+ )
+ )
+ )
+ (i32.store offset=4
+ (local.get $3)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4
+ (local.get $0)
+ (i32.or
+ (local.get $4)
+ (i32.const 3)
+ )
+ )
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
)
- (i32.const 0)
)
(func $_free (; 16 ;) (; has Stack IR ;) (param $0 i32)
(local $1 i32)
@@ -5786,7 +5621,7 @@
)
(if
(i32.lt_u
- (local.tee $1
+ (local.tee $3
(i32.add
(local.get $0)
(i32.const -8)
@@ -5802,9 +5637,9 @@
)
(if
(i32.eq
- (local.tee $0
+ (local.tee $10
(i32.and
- (local.tee $2
+ (local.tee $0
(i32.load
(i32.add
(local.get $0)
@@ -5819,12 +5654,12 @@
)
(call $_abort)
)
- (local.set $8
+ (local.set $6
(i32.add
- (local.get $1)
- (local.tee $7
+ (local.get $3)
+ (local.tee $4
(i32.and
- (local.get $2)
+ (local.get $0)
(i32.const -8)
)
)
@@ -5832,40 +5667,34 @@
)
(if
(i32.and
- (local.get $2)
+ (local.get $0)
(i32.const 1)
)
(block
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $3)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $4)
)
)
(block $do-once
(local.set $9
(i32.load
- (local.get $1)
+ (local.get $3)
)
)
(if
(i32.eqz
- (local.get $0)
+ (local.get $10)
)
(return)
)
- (local.set $7
- (i32.add
- (local.get $7)
- (local.get $9)
- )
- )
(if
(i32.lt_u
- (local.tee $1
+ (local.tee $0
(i32.sub
- (local.get $1)
+ (local.get $3)
(local.get $9)
)
)
@@ -5873,23 +5702,26 @@
)
(call $_abort)
)
+ (local.set $3
+ (i32.add
+ (local.get $4)
+ (local.get $9)
+ )
+ )
(if
(i32.eq
(i32.load
(i32.const 196)
)
- (local.get $1)
+ (local.get $0)
)
(block
- (local.set $0
- (local.get $8)
- )
(if
(i32.ne
(i32.and
- (local.tee $6
+ (local.tee $1
(i32.load offset=4
- (local.get $0)
+ (local.get $6)
)
)
(i32.const 3)
@@ -5897,44 +5729,44 @@
(i32.const 3)
)
(block
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
)
(i32.store
(i32.const 184)
- (local.get $7)
+ (local.get $3)
)
(i32.store offset=4
- (local.get $0)
+ (local.get $6)
(i32.and
- (local.get $6)
+ (local.get $1)
(i32.const -2)
)
)
(i32.store offset=4
- (local.get $1)
+ (local.get $0)
(i32.or
- (local.get $7)
+ (local.get $3)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $1)
- (local.get $7)
+ (local.get $0)
+ (local.get $3)
)
- (local.get $7)
+ (local.get $3)
)
(return)
)
)
- (local.set $6
+ (local.set $10
(i32.shr_u
(local.get $9)
(i32.const 3)
@@ -5946,22 +5778,22 @@
(i32.const 256)
)
(block
- (local.set $0
+ (local.set $2
(i32.load offset=12
- (local.get $1)
+ (local.get $0)
)
)
(if
(i32.ne
- (local.tee $9
+ (local.tee $4
(i32.load offset=8
- (local.get $1)
+ (local.get $0)
)
)
- (local.tee $2
+ (local.tee $1
(i32.add
(i32.shl
- (local.get $6)
+ (local.get $10)
(i32.const 3)
)
(i32.const 216)
@@ -5971,16 +5803,16 @@
(block
(if
(i32.lt_u
- (local.get $9)
+ (local.get $4)
(local.get $13)
)
(call $_abort)
)
(if
(i32.ne
- (local.get $1)
+ (local.get $0)
(i32.load offset=12
- (local.get $9)
+ (local.get $4)
)
)
(call $_abort)
@@ -5989,8 +5821,8 @@
)
(if
(i32.eq
- (local.get $0)
- (local.get $9)
+ (local.get $2)
+ (local.get $4)
)
(block
(i32.store
@@ -6002,99 +5834,99 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $6)
+ (local.get $10)
)
(i32.const -1)
)
)
)
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
)
(if
(i32.ne
- (local.get $0)
+ (local.get $1)
(local.get $2)
)
(block
(if
(i32.lt_u
- (local.get $0)
+ (local.get $2)
(local.get $13)
)
(call $_abort)
)
(if
(i32.eq
- (local.get $1)
+ (local.get $0)
(i32.load
- (local.tee $2
+ (local.tee $1
(i32.add
- (local.get $0)
+ (local.get $2)
(i32.const 8)
)
)
)
)
- (local.set $10
- (local.get $2)
+ (local.set $5
+ (local.get $1)
)
(call $_abort)
)
)
- (local.set $10
+ (local.set $5
(i32.add
- (local.get $0)
+ (local.get $2)
(i32.const 8)
)
)
)
(i32.store offset=12
- (local.get $9)
- (local.get $0)
+ (local.get $4)
+ (local.get $2)
)
(i32.store
- (local.get $10)
- (local.get $9)
+ (local.get $5)
+ (local.get $4)
)
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
)
- (local.set $9
+ (local.set $12
(i32.load offset=24
- (local.get $1)
+ (local.get $0)
)
)
(if
(i32.eq
- (local.get $1)
- (local.tee $0
+ (local.get $0)
+ (local.tee $4
(i32.load offset=12
- (local.get $1)
+ (local.get $0)
)
)
)
(block $do-once0
(if
- (local.tee $10
+ (local.tee $4
(i32.load
- (local.tee $6
+ (local.tee $9
(i32.add
- (local.tee $2
+ (local.tee $5
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 16)
)
)
@@ -6103,84 +5935,76 @@
)
)
)
- (block
- (local.set $0
- (local.get $10)
- )
- (local.set $2
- (local.get $6)
- )
+ (local.set $5
+ (local.get $9)
)
(br_if $do-once0
(i32.eqz
- (local.tee $0
+ (local.tee $4
(i32.load
- (local.get $2)
+ (local.get $5)
)
)
)
)
)
- (local.set $6
- (loop $while-in (result i32)
- (if
- (local.tee $10
- (i32.load
- (local.tee $6
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
+ (loop $while-in
+ (if
+ (local.tee $10
+ (i32.load
+ (local.tee $9
+ (i32.add
+ (local.get $4)
+ (i32.const 20)
)
)
)
- (block
- (local.set $0
- (local.get $10)
- )
- (local.set $2
- (local.get $6)
- )
- (br $while-in)
+ )
+ (block
+ (local.set $4
+ (local.get $10)
)
+ (local.set $5
+ (local.get $9)
+ )
+ (br $while-in)
)
- (if (result i32)
- (local.tee $10
- (i32.load
- (local.tee $6
- (i32.add
- (local.get $0)
- (i32.const 16)
- )
+ )
+ (if
+ (local.tee $10
+ (i32.load
+ (local.tee $9
+ (i32.add
+ (local.get $4)
+ (i32.const 16)
)
)
)
- (block
- (local.set $0
- (local.get $10)
- )
- (local.set $2
- (local.get $6)
- )
- (br $while-in)
+ )
+ (block
+ (local.set $4
+ (local.get $10)
)
- (local.get $0)
+ (local.set $5
+ (local.get $9)
+ )
+ (br $while-in)
)
)
)
(if
(i32.lt_u
- (local.get $2)
+ (local.get $5)
(local.get $13)
)
(call $_abort)
(block
(i32.store
- (local.get $2)
+ (local.get $5)
(i32.const 0)
)
- (local.set $5
- (local.get $6)
+ (local.set $7
+ (local.get $4)
)
)
)
@@ -6188,48 +6012,42 @@
(block
(if
(i32.lt_u
- (local.tee $6
+ (local.tee $5
(i32.load offset=8
- (local.get $1)
+ (local.get $0)
)
)
(local.get $13)
)
(call $_abort)
)
- (local.set $2
- (local.get $6)
- )
(if
(i32.ne
- (local.get $1)
+ (local.get $0)
(i32.load offset=12
- (local.get $2)
+ (local.get $5)
)
)
(call $_abort)
)
- (local.set $10
- (local.get $0)
- )
(if
(i32.eq
- (local.get $1)
+ (local.get $0)
(i32.load offset=8
- (local.get $0)
+ (local.get $4)
)
)
(block
(i32.store offset=12
- (local.get $2)
- (local.get $0)
+ (local.get $5)
+ (local.get $4)
)
(i32.store offset=8
- (local.get $10)
- (local.get $6)
+ (local.get $4)
+ (local.get $5)
)
- (local.set $5
- (local.get $0)
+ (local.set $7
+ (local.get $4)
)
)
(call $_abort)
@@ -6237,33 +6055,32 @@
)
)
(if
- (local.get $9)
+ (local.get $12)
(block
- (local.set $2
- (i32.shl
- (local.tee $0
- (i32.load offset=28
- (local.get $1)
- )
- )
- (i32.const 2)
- )
- )
(if
(i32.eq
(i32.load offset=480
- (local.get $2)
+ (local.tee $5
+ (i32.shl
+ (local.tee $4
+ (i32.load offset=28
+ (local.get $0)
+ )
+ )
+ (i32.const 2)
+ )
+ )
)
- (local.get $1)
+ (local.get $0)
)
(block
(i32.store offset=480
- (local.get $2)
(local.get $5)
+ (local.get $7)
)
(if
(i32.eqz
- (local.get $5)
+ (local.get $7)
)
(block
(i32.store
@@ -6275,17 +6092,17 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $0)
+ (local.get $4)
)
(i32.const -1)
)
)
)
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
@@ -6294,42 +6111,39 @@
(block
(if
(i32.lt_u
- (local.get $9)
+ (local.get $12)
(i32.load
(i32.const 192)
)
)
(call $_abort)
)
- (local.set $0
- (local.get $9)
- )
(if
(i32.eq
- (local.get $1)
+ (local.get $0)
(i32.load offset=16
- (local.get $0)
+ (local.get $12)
)
)
(i32.store offset=16
- (local.get $0)
- (local.get $5)
+ (local.get $12)
+ (local.get $7)
)
(i32.store offset=20
- (local.get $9)
- (local.get $5)
+ (local.get $12)
+ (local.get $7)
)
)
(if
(i32.eqz
- (local.get $5)
+ (local.get $7)
)
(block
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
@@ -6338,8 +6152,8 @@
)
(if
(i32.lt_u
- (local.get $5)
- (local.tee $0
+ (local.get $7)
+ (local.tee $5
(i32.load
(i32.const 192)
)
@@ -6348,45 +6162,42 @@
(call $_abort)
)
(i32.store offset=24
- (local.get $5)
- (local.get $9)
- )
- (local.set $6
- (local.get $1)
+ (local.get $7)
+ (local.get $12)
)
(if
- (local.tee $2
+ (local.tee $4
(i32.load offset=16
- (local.get $1)
+ (local.get $0)
)
)
(if
(i32.lt_u
- (local.get $2)
- (local.get $0)
+ (local.get $4)
+ (local.get $5)
)
(call $_abort)
(block
(i32.store offset=16
- (local.get $5)
- (local.get $2)
+ (local.get $7)
+ (local.get $4)
)
(i32.store offset=24
- (local.get $2)
- (local.get $5)
+ (local.get $4)
+ (local.get $7)
)
)
)
)
(if
- (local.tee $2
+ (local.tee $4
(i32.load offset=20
- (local.get $6)
+ (local.get $0)
)
)
(if
(i32.lt_u
- (local.get $2)
+ (local.get $4)
(i32.load
(i32.const 192)
)
@@ -6394,37 +6205,37 @@
(call $_abort)
(block
(i32.store offset=20
- (local.get $5)
- (local.get $2)
+ (local.get $7)
+ (local.get $4)
)
(i32.store offset=24
- (local.get $2)
- (local.get $5)
+ (local.get $4)
+ (local.get $7)
)
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
)
)
(block
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
)
)
)
(block
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
)
)
@@ -6432,20 +6243,17 @@
)
(if
(i32.ge_u
- (local.get $3)
- (local.get $8)
+ (local.get $2)
+ (local.get $6)
)
(call $_abort)
)
- (local.set $0
- (local.get $8)
- )
(if
(i32.eqz
(i32.and
- (local.tee $1
+ (local.tee $0
(i32.load offset=4
- (local.get $0)
+ (local.get $6)
)
)
(i32.const 1)
@@ -6453,637 +6261,619 @@
)
(call $_abort)
)
- (local.set $4
- (i32.shr_u
- (local.tee $0
- (if (result i32)
- (i32.and
- (local.get $1)
- (i32.const 2)
+ (if
+ (i32.and
+ (local.get $0)
+ (i32.const 2)
+ )
+ (block
+ (i32.store offset=4
+ (local.get $6)
+ (i32.and
+ (local.get $0)
+ (i32.const -2)
+ )
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (local.get $1)
+ (local.get $2)
+ )
+ (local.get $1)
+ )
+ )
+ (block
+ (if
+ (i32.eq
+ (i32.load
+ (i32.const 200)
)
- (block (result i32)
- (i32.store offset=4
- (local.get $0)
- (i32.and
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (i32.const 188)
+ (local.tee $0
+ (i32.add
(local.get $1)
- (i32.const -2)
+ (i32.load
+ (i32.const 188)
+ )
)
)
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $4)
- (i32.const 1)
- )
+ )
+ (i32.store
+ (i32.const 200)
+ (local.get $2)
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
)
- (i32.store
- (i32.add
- (local.get $3)
- (local.get $4)
+ )
+ (if
+ (i32.ne
+ (i32.load
+ (i32.const 196)
)
- (local.get $4)
+ (local.get $2)
)
- (local.get $4)
+ (return)
)
- (block (result i32)
- (if
- (i32.eq
+ (i32.store
+ (i32.const 196)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 184)
+ (i32.const 0)
+ )
+ (return)
+ )
+ )
+ (if
+ (i32.eq
+ (i32.load
+ (i32.const 196)
+ )
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (i32.const 184)
+ (local.tee $0
+ (i32.add
+ (local.get $1)
(i32.load
- (i32.const 200)
- )
- (local.get $8)
- )
- (block
- (i32.store
- (i32.const 188)
- (local.tee $5
- (i32.add
- (local.get $4)
- (i32.load
- (i32.const 188)
- )
- )
- )
- )
- (i32.store
- (i32.const 200)
- (local.get $3)
- )
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $5)
- (i32.const 1)
- )
- )
- (if
- (i32.ne
- (i32.load
- (i32.const 196)
- )
- (local.get $3)
- )
- (return)
- )
- (i32.store
- (i32.const 196)
- (i32.const 0)
- )
- (i32.store
(i32.const 184)
- (i32.const 0)
)
- (return)
+ )
+ )
+ )
+ (i32.store
+ (i32.const 196)
+ (local.get $2)
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (local.get $2)
+ )
+ (local.get $0)
+ )
+ (return)
+ )
+ )
+ (local.set $5
+ (i32.add
+ (local.get $1)
+ (i32.and
+ (local.get $0)
+ (i32.const -8)
+ )
+ )
+ )
+ (local.set $4
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 3)
+ )
+ )
+ (block $do-once4
+ (if
+ (i32.ge_u
+ (local.get $0)
+ (i32.const 256)
+ )
+ (block
+ (local.set $7
+ (i32.load offset=24
+ (local.get $6)
)
)
(if
(i32.eq
- (i32.load
- (i32.const 196)
+ (local.get $6)
+ (local.tee $0
+ (i32.load offset=12
+ (local.get $6)
+ )
)
- (local.get $8)
)
- (block
- (i32.store
- (i32.const 184)
- (local.tee $5
- (i32.add
- (local.get $4)
- (i32.load
- (i32.const 184)
+ (block $do-once6
+ (if
+ (local.tee $0
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.tee $1
+ (i32.add
+ (local.get $6)
+ (i32.const 16)
+ )
+ )
+ (i32.const 4)
+ )
)
)
)
- )
- (i32.store
- (i32.const 196)
- (local.get $3)
- )
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $5)
- (i32.const 1)
- )
- )
- (i32.store
- (i32.add
+ (local.set $1
(local.get $3)
- (local.get $5)
)
- (local.get $5)
- )
- (return)
- )
- )
- (local.set $5
- (i32.add
- (local.get $4)
- (i32.and
- (local.get $1)
- (i32.const -8)
- )
- )
- )
- (local.set $13
- (i32.shr_u
- (local.get $1)
- (i32.const 3)
- )
- )
- (block $do-once4
- (if
- (i32.ge_u
- (local.get $1)
- (i32.const 256)
- )
- (block
- (local.set $6
- (i32.load offset=24
- (local.get $8)
- )
- )
- (if
- (i32.eq
- (local.get $8)
- (local.tee $2
- (i32.load offset=12
- (local.get $8)
+ (br_if $do-once6
+ (i32.eqz
+ (local.tee $0
+ (i32.load
+ (local.get $1)
)
)
)
- (block $do-once6
- (local.set $4
- (if (result i32)
- (local.tee $10
- (i32.load
- (local.tee $0
- (i32.add
- (local.tee $2
- (i32.add
- (local.get $8)
- (i32.const 16)
- )
- )
- (i32.const 4)
- )
- )
- )
- )
- (block (result i32)
- (local.set $2
- (local.get $0)
- )
- (local.get $10)
- )
- (if (result i32)
- (local.tee $0
- (i32.load
- (local.get $2)
- )
- )
+ )
+ )
+ (loop $while-in9
+ (if
+ (local.tee $4
+ (i32.load
+ (local.tee $3
+ (i32.add
(local.get $0)
- (br $do-once6)
- )
- )
- )
- (loop $while-in9
- (if
- (local.tee $10
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $4)
- (i32.const 20)
- )
- )
- )
- )
- (block
- (local.set $4
- (local.get $10)
- )
- (local.set $2
- (local.get $0)
- )
- (br $while-in9)
- )
- )
- (if
- (local.tee $10
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $4)
- (i32.const 16)
- )
- )
- )
- )
- (block
- (local.set $4
- (local.get $10)
- )
- (local.set $2
- (local.get $0)
- )
- (br $while-in9)
- )
- )
- )
- (if
- (i32.lt_u
- (local.get $2)
- (i32.load
- (i32.const 192)
- )
- )
- (call $_abort)
- (block
- (i32.store
- (local.get $2)
- (i32.const 0)
- )
- (local.set $11
- (local.get $4)
+ (i32.const 20)
)
)
)
)
(block
- (if
- (i32.lt_u
- (local.tee $0
- (i32.load offset=8
- (local.get $8)
- )
- )
- (i32.load
- (i32.const 192)
- )
- )
- (call $_abort)
+ (local.set $0
+ (local.get $4)
)
- (local.set $4
- (local.get $0)
+ (local.set $1
+ (local.get $3)
)
- (if
- (i32.ne
- (local.get $8)
- (i32.load offset=12
+ (br $while-in9)
+ )
+ )
+ (if
+ (local.tee $4
+ (i32.load
+ (local.tee $3
+ (i32.add
(local.get $0)
+ (i32.const 16)
)
)
- (call $_abort)
+ )
+ )
+ (block
+ (local.set $0
+ (local.get $4)
)
(local.set $1
- (local.get $2)
+ (local.get $3)
)
- (if
- (i32.eq
- (local.get $8)
- (i32.load offset=8
- (local.get $1)
- )
- )
- (block
- (i32.store offset=12
- (local.get $4)
- (local.get $2)
- )
- (i32.store offset=8
- (local.get $1)
- (local.get $0)
- )
- (local.set $11
- (local.get $2)
- )
- )
- (call $_abort)
+ (br $while-in9)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
+ (block
+ (i32.store
+ (local.get $1)
+ (i32.const 0)
+ )
+ (local.set $8
+ (local.get $0)
+ )
+ )
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $6)
)
)
+ (i32.load
+ (i32.const 192)
+ )
)
- (if
+ (call $_abort)
+ )
+ (if
+ (i32.ne
(local.get $6)
- (block
- (local.set $0
+ (i32.load offset=12
+ (local.get $1)
+ )
+ )
+ (call $_abort)
+ )
+ (if
+ (i32.eq
+ (local.get $6)
+ (i32.load offset=8
+ (local.get $0)
+ )
+ )
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $8
+ (local.get $0)
+ )
+ )
+ (call $_abort)
+ )
+ )
+ )
+ (if
+ (local.get $7)
+ (block
+ (if
+ (i32.eq
+ (i32.load offset=480
+ (local.tee $1
(i32.shl
- (local.tee $2
+ (local.tee $0
(i32.load offset=28
- (local.get $8)
+ (local.get $6)
)
)
(i32.const 2)
)
)
- (if
- (i32.eq
- (i32.load offset=480
- (local.get $0)
- )
- (local.get $8)
- )
- (block
- (i32.store offset=480
- (local.get $0)
- (local.get $11)
- )
- (if
- (i32.eqz
- (local.get $11)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.and
- (i32.load
- (i32.const 180)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $2)
- )
- (i32.const -1)
- )
- )
- )
- (br $do-once4)
- )
- )
- )
- (block
- (if
- (i32.lt_u
- (local.get $6)
- (i32.load
- (i32.const 192)
- )
+ )
+ (local.get $6)
+ )
+ (block
+ (i32.store offset=480
+ (local.get $1)
+ (local.get $8)
+ )
+ (if
+ (i32.eqz
+ (local.get $8)
+ )
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.and
+ (i32.load
+ (i32.const 180)
)
- (call $_abort)
- )
- (local.set $0
- (local.get $6)
- )
- (if
- (i32.eq
- (local.get $8)
- (i32.load offset=16
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
(local.get $0)
)
- )
- (i32.store offset=16
- (local.get $0)
- (local.get $11)
- )
- (i32.store offset=20
- (local.get $6)
- (local.get $11)
- )
- )
- (br_if $do-once4
- (i32.eqz
- (local.get $11)
+ (i32.const -1)
)
)
)
+ (br $do-once4)
)
- (if
- (i32.lt_u
- (local.get $11)
- (local.tee $2
- (i32.load
- (i32.const 192)
- )
- )
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $7)
+ (i32.load
+ (i32.const 192)
)
- (call $_abort)
)
- (i32.store offset=24
- (local.get $11)
+ (call $_abort)
+ )
+ (if
+ (i32.eq
(local.get $6)
+ (i32.load offset=16
+ (local.get $7)
+ )
)
- (local.set $0
+ (i32.store offset=16
+ (local.get $7)
(local.get $8)
)
- (if
- (local.tee $1
- (i32.load offset=16
- (local.get $0)
- )
- )
- (if
- (i32.lt_u
- (local.get $1)
- (local.get $2)
- )
- (call $_abort)
- (block
- (i32.store offset=16
- (local.get $11)
- (local.get $1)
- )
- (i32.store offset=24
- (local.get $1)
- (local.get $11)
- )
- )
- )
+ (i32.store offset=20
+ (local.get $7)
+ (local.get $8)
)
- (if
- (local.tee $1
- (i32.load offset=20
- (local.get $0)
- )
- )
- (if
- (i32.lt_u
- (local.get $1)
- (i32.load
- (i32.const 192)
- )
- )
- (call $_abort)
- (block
- (i32.store offset=20
- (local.get $11)
- (local.get $1)
- )
- (i32.store offset=24
- (local.get $1)
- (local.get $11)
- )
- )
- )
+ )
+ (br_if $do-once4
+ (i32.eqz
+ (local.get $8)
)
)
)
)
- (block
- (local.set $2
- (i32.load offset=12
- (local.get $8)
- )
- )
- (if
- (i32.ne
- (local.tee $1
- (i32.load offset=8
- (local.get $8)
- )
- )
- (local.tee $6
- (i32.add
- (i32.shl
- (local.get $13)
- (i32.const 3)
- )
- (i32.const 216)
- )
+ (if
+ (i32.lt_u
+ (local.get $8)
+ (local.tee $1
+ (i32.load
+ (i32.const 192)
)
)
- (block
- (if
- (i32.lt_u
- (local.get $1)
- (i32.load
- (i32.const 192)
- )
- )
- (call $_abort)
- )
- (if
- (i32.ne
- (local.get $8)
- (i32.load offset=12
- (local.get $1)
- )
- )
- (call $_abort)
- )
+ )
+ (call $_abort)
+ )
+ (i32.store offset=24
+ (local.get $8)
+ (local.get $7)
+ )
+ (if
+ (local.tee $0
+ (i32.load offset=16
+ (local.get $6)
)
)
(if
- (i32.eq
+ (i32.lt_u
+ (local.get $0)
(local.get $1)
- (local.get $2)
)
+ (call $_abort)
(block
- (i32.store
- (i32.const 176)
- (i32.and
- (i32.load
- (i32.const 176)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $13)
- )
- (i32.const -1)
- )
- )
+ (i32.store offset=16
+ (local.get $8)
+ (local.get $0)
+ )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $8)
)
- (br $do-once4)
)
)
- (if
- (i32.ne
- (local.get $2)
+ )
+ (if
+ (local.tee $0
+ (i32.load offset=20
(local.get $6)
)
- (block
- (if
- (i32.lt_u
- (local.get $2)
- (i32.load
- (i32.const 192)
- )
- )
- (call $_abort)
- )
- (if
- (i32.eq
- (local.get $8)
- (i32.load
- (local.tee $6
- (i32.add
- (local.get $2)
- (i32.const 8)
- )
- )
- )
- )
- (local.set $15
- (local.get $6)
- )
- (call $_abort)
+ )
+ (if
+ (i32.lt_u
+ (local.get $0)
+ (i32.load
+ (i32.const 192)
)
)
- (local.set $15
- (i32.add
- (local.get $2)
- (i32.const 8)
+ (call $_abort)
+ (block
+ (i32.store offset=20
+ (local.get $8)
+ (local.get $0)
+ )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $8)
)
)
)
- (i32.store offset=12
- (local.get $1)
- (local.get $2)
- )
- (i32.store
- (local.get $15)
- (local.get $1)
- )
)
)
)
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $5)
- (i32.const 1)
+ )
+ (block
+ (local.set $1
+ (i32.load offset=12
+ (local.get $6)
)
)
- (i32.store
- (i32.add
- (local.get $3)
- (local.get $5)
+ (if
+ (i32.ne
+ (local.tee $3
+ (i32.load offset=8
+ (local.get $6)
+ )
+ )
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.get $4)
+ (i32.const 3)
+ )
+ (i32.const 216)
+ )
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $3)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
+ )
+ (if
+ (i32.ne
+ (local.get $6)
+ (i32.load offset=12
+ (local.get $3)
+ )
+ )
+ (call $_abort)
+ )
)
- (local.get $5)
)
- (if (result i32)
+ (if
(i32.eq
- (i32.load
- (i32.const 196)
- )
+ (local.get $1)
(local.get $3)
)
(block
(i32.store
- (i32.const 184)
- (local.get $5)
+ (i32.const 176)
+ (i32.and
+ (i32.load
+ (i32.const 176)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $4)
+ )
+ (i32.const -1)
+ )
+ )
)
- (return)
+ (br $do-once4)
)
+ )
+ (if
+ (i32.ne
+ (local.get $0)
+ (local.get $1)
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
+ )
+ (if
+ (i32.eq
+ (local.get $6)
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
+ )
+ )
+ )
+ (local.set $14
+ (local.get $0)
+ )
+ (call $_abort)
+ )
+ )
+ (local.set $14
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.store offset=12
+ (local.get $3)
+ (local.get $1)
+ )
+ (i32.store
+ (local.get $14)
+ (local.get $3)
+ )
+ )
+ )
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $5)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (local.get $2)
+ (local.get $5)
+ )
+ (local.get $5)
+ )
+ (local.set $1
+ (if (result i32)
+ (i32.eq
+ (i32.load
+ (i32.const 196)
+ )
+ (local.get $2)
+ )
+ (block
+ (i32.store
+ (i32.const 184)
(local.get $5)
)
+ (return)
)
+ (local.get $5)
)
)
+ )
+ )
+ (local.set $3
+ (i32.shr_u
+ (local.get $1)
(i32.const 3)
)
)
(if
(i32.lt_u
- (local.get $0)
+ (local.get $1)
(i32.const 256)
)
(block
- (local.set $1
+ (local.set $0
(i32.add
(i32.shl
- (local.get $4)
+ (local.get $3)
(i32.const 3)
)
(i32.const 216)
@@ -7091,25 +6881,25 @@
)
(if
(i32.and
- (local.tee $7
+ (local.tee $1
(i32.load
(i32.const 176)
)
)
- (local.tee $5
+ (local.tee $3
(i32.shl
(i32.const 1)
- (local.get $4)
+ (local.get $3)
)
)
)
(if
(i32.lt_u
- (local.tee $15
+ (local.tee $3
(i32.load
- (local.tee $4
+ (local.tee $1
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
@@ -7121,11 +6911,11 @@
)
(call $_abort)
(block
- (local.set $14
- (local.get $4)
+ (local.set $15
+ (local.get $1)
)
- (local.set $12
- (local.get $15)
+ (local.set $11
+ (local.get $3)
)
)
)
@@ -7133,71 +6923,71 @@
(i32.store
(i32.const 176)
(i32.or
- (local.get $5)
- (local.get $7)
+ (local.get $1)
+ (local.get $3)
)
)
- (local.set $14
+ (local.set $15
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
- (local.set $12
- (local.get $1)
+ (local.set $11
+ (local.get $0)
)
)
)
(i32.store
- (local.get $14)
- (local.get $3)
+ (local.get $15)
+ (local.get $2)
)
(i32.store offset=12
- (local.get $12)
- (local.get $3)
+ (local.get $11)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $3)
- (local.get $12)
+ (local.get $2)
+ (local.get $11)
)
(i32.store offset=12
- (local.get $3)
- (local.get $1)
+ (local.get $2)
+ (local.get $0)
)
(return)
)
)
- (local.set $7
+ (local.set $4
(i32.add
- (local.tee $1
+ (local.tee $3
(i32.shl
- (local.tee $4
+ (local.tee $0
(if (result i32)
- (local.tee $1
+ (local.tee $0
(i32.shr_u
- (local.get $0)
+ (local.get $1)
(i32.const 8)
)
)
(if (result i32)
(i32.gt_u
- (local.get $0)
+ (local.get $1)
(i32.const 16777215)
)
(i32.const 31)
(block (result i32)
- (local.set $1
+ (local.set $0
(i32.and
(i32.shr_u
(i32.add
- (local.tee $14
+ (local.tee $4
(i32.shl
- (local.get $1)
- (local.tee $12
+ (local.get $0)
+ (local.tee $3
(i32.and
(i32.shr_u
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 1048320)
)
(i32.const 16)
@@ -7217,21 +7007,21 @@
(i32.or
(i32.and
(i32.shr_u
- (local.get $0)
+ (local.get $1)
(i32.add
- (local.tee $7
+ (local.tee $0
(i32.add
(i32.sub
(i32.const 14)
(i32.or
- (local.tee $14
+ (local.tee $5
(i32.and
(i32.shr_u
(i32.add
- (local.tee $5
+ (local.tee $4
(i32.shl
- (local.get $14)
- (local.get $1)
+ (local.get $4)
+ (local.get $0)
)
)
(i32.const 245760)
@@ -7242,15 +7032,15 @@
)
)
(i32.or
- (local.get $1)
- (local.get $12)
+ (local.get $0)
+ (local.get $3)
)
)
)
(i32.shr_u
(i32.shl
+ (local.get $4)
(local.get $5)
- (local.get $14)
)
(i32.const 15)
)
@@ -7262,7 +7052,7 @@
(i32.const 1)
)
(i32.shl
- (local.get $7)
+ (local.get $0)
(i32.const 1)
)
)
@@ -7278,54 +7068,54 @@
)
)
(i32.store offset=28
- (local.get $3)
- (local.get $4)
+ (local.get $2)
+ (local.get $0)
)
(i32.store offset=20
- (local.get $3)
+ (local.get $2)
(i32.const 0)
)
(i32.store offset=16
- (local.get $3)
+ (local.get $2)
(i32.const 0)
)
(if
(i32.and
(local.tee $5
- (i32.shl
- (i32.const 1)
- (local.get $4)
- )
- )
- (local.tee $14
(i32.load
(i32.const 180)
)
)
+ (local.tee $7
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
+ )
)
(block
- (local.set $12
+ (local.set $11
(i32.shl
- (local.get $0)
+ (local.get $1)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (local.get $4)
+ (local.get $0)
(i32.const 1)
)
)
(i32.eq
- (local.get $4)
+ (local.get $0)
(i32.const 31)
)
)
)
)
- (local.set $1
+ (local.set $0
(i32.load offset=480
- (local.get $1)
+ (local.get $3)
)
)
(if
@@ -7335,17 +7125,17 @@
(block $while-out14 (result i32)
(if
(i32.eq
- (local.get $0)
+ (local.get $1)
(i32.and
(i32.load offset=4
- (local.get $1)
+ (local.get $0)
)
(i32.const -8)
)
)
(block
(local.set $16
- (local.get $1)
+ (local.get $0)
)
(br $while-out14
(i32.const 130)
@@ -7353,17 +7143,17 @@
)
)
(if (result i32)
- (local.tee $4
+ (local.tee $3
(i32.load
- (local.tee $15
+ (local.tee $4
(i32.add
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (local.get $12)
+ (local.get $11)
(i32.const 31)
)
(i32.const 2)
@@ -7373,23 +7163,23 @@
)
)
(block
- (local.set $12
+ (local.set $11
(i32.shl
- (local.get $12)
+ (local.get $11)
(i32.const 1)
)
)
- (local.set $1
- (local.get $4)
+ (local.set $0
+ (local.get $3)
)
(br $while-in15)
)
(block (result i32)
(local.set $17
- (local.get $15)
+ (local.get $4)
)
(local.set $18
- (local.get $1)
+ (local.get $0)
)
(i32.const 127)
)
@@ -7410,19 +7200,19 @@
(block
(i32.store
(local.get $17)
- (local.get $3)
+ (local.get $2)
)
(i32.store offset=24
- (local.get $3)
+ (local.get $2)
(local.get $18)
)
(i32.store offset=12
- (local.get $3)
- (local.get $3)
+ (local.get $2)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $3)
- (local.get $3)
+ (local.get $2)
+ (local.get $2)
)
)
)
@@ -7431,53 +7221,50 @@
(local.get $0)
(i32.const 130)
)
- (block
- (local.set $0
- (local.get $16)
- )
- (if
- (i32.and
- (i32.ge_u
- (local.tee $12
- (i32.load offset=8
- (local.get $0)
- )
- )
- (local.tee $7
- (i32.load
- (i32.const 192)
+ (if
+ (i32.and
+ (i32.ge_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.tee $0
+ (local.get $16)
)
)
)
- (i32.ge_u
- (local.get $0)
- (local.get $7)
+ (local.tee $3
+ (i32.load
+ (i32.const 192)
+ )
)
)
- (block
- (i32.store offset=12
- (local.get $12)
- (local.get $3)
- )
- (i32.store offset=8
- (local.get $0)
- (local.get $3)
- )
- (i32.store offset=8
- (local.get $3)
- (local.get $12)
- )
- (i32.store offset=12
- (local.get $3)
- (local.get $16)
- )
- (i32.store offset=24
- (local.get $3)
- (i32.const 0)
- )
+ (i32.ge_u
+ (local.get $0)
+ (local.get $3)
)
- (call $_abort)
)
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $2)
+ (local.get $1)
+ )
+ (i32.store offset=12
+ (local.get $2)
+ (local.get $16)
+ )
+ (i32.store offset=24
+ (local.get $2)
+ (i32.const 0)
+ )
+ )
+ (call $_abort)
)
)
)
@@ -7487,30 +7274,30 @@
(i32.const 180)
(i32.or
(local.get $5)
- (local.get $14)
+ (local.get $7)
)
)
(i32.store offset=480
- (local.get $1)
(local.get $3)
+ (local.get $2)
)
(i32.store offset=24
- (local.get $3)
- (local.get $7)
+ (local.get $2)
+ (local.get $4)
)
(i32.store offset=12
- (local.get $3)
- (local.get $3)
+ (local.get $2)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $3)
- (local.get $3)
+ (local.get $2)
+ (local.get $2)
)
)
)
(i32.store
(i32.const 208)
- (local.tee $3
+ (local.tee $0
(i32.add
(i32.load
(i32.const 208)
@@ -7521,14 +7308,14 @@
)
(local.set $0
(if (result i32)
- (local.get $3)
+ (local.get $0)
(return)
(i32.const 632)
)
)
(loop $while-in17
(if
- (local.tee $3
+ (local.tee $0
(i32.load
(local.get $0)
)
@@ -7536,7 +7323,7 @@
(block
(local.set $0
(i32.add
- (local.get $3)
+ (local.get $0)
(i32.const 8)
)
)
@@ -7561,9 +7348,7 @@
(local $11 i32)
(local $12 i32)
(local $13 i32)
- (local $14 i32)
- (local $15 i32)
- (local.set $10
+ (local.set $9
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -7574,129 +7359,123 @@
)
(local.set $7
(i32.add
- (local.get $10)
+ (local.get $9)
(i32.const 16)
)
)
(i32.store
- (local.tee $3
+ (local.tee $4
(i32.add
(local.tee $8
- (local.get $10)
+ (local.get $9)
)
(i32.const 32)
)
)
- (local.tee $4
+ (local.tee $3
(i32.load offset=28
(local.get $0)
)
)
)
(i32.store offset=4
- (local.get $3)
- (local.tee $6
+ (local.get $4)
+ (local.tee $3
(i32.sub
(i32.load offset=20
(local.get $0)
)
- (local.get $4)
+ (local.get $3)
)
)
)
(i32.store offset=8
- (local.get $3)
+ (local.get $4)
(local.get $1)
)
(i32.store offset=12
- (local.get $3)
+ (local.get $4)
(local.get $2)
)
- (local.set $11
- (local.get $0)
- )
- (local.set $12
- (local.get $0)
- )
(local.set $1
- (local.get $3)
+ (local.get $4)
)
- (local.set $3
+ (local.set $4
(i32.const 2)
)
- (local.set $4
+ (local.set $10
(i32.add
(local.get $2)
- (local.get $6)
+ (local.get $3)
)
)
(loop $while-in
(block $while-out
(if
- (i32.eq
- (local.get $4)
- (local.tee $5
- (if (result i32)
- (i32.load
- (i32.const 8)
- )
- (block (result i32)
- (call $_pthread_cleanup_push
- (i32.const 4)
- (local.get $0)
- )
- (i32.store
- (local.get $8)
- (i32.load offset=60
- (local.get $11)
- )
- )
- (i32.store offset=4
- (local.get $8)
- (local.get $1)
- )
- (i32.store offset=8
- (local.get $8)
- (local.get $3)
- )
- (local.set $6
- (call $___syscall_ret
- (call $___syscall146
- (i32.const 146)
- (local.get $8)
- )
- )
- )
- (call $_pthread_cleanup_pop
- (i32.const 0)
- )
- (local.get $6)
+ (i32.load
+ (i32.const 8)
+ )
+ (block
+ (call $_pthread_cleanup_push
+ (i32.const 4)
+ (local.get $0)
+ )
+ (i32.store
+ (local.get $8)
+ (i32.load offset=60
+ (local.get $0)
+ )
+ )
+ (i32.store offset=4
+ (local.get $8)
+ (local.get $1)
+ )
+ (i32.store offset=8
+ (local.get $8)
+ (local.get $4)
+ )
+ (local.set $3
+ (call $___syscall_ret
+ (call $___syscall146
+ (i32.const 146)
+ (local.get $8)
)
- (block (result i32)
- (i32.store
- (local.get $7)
- (i32.load offset=60
- (local.get $11)
- )
- )
- (i32.store offset=4
- (local.get $7)
- (local.get $1)
- )
- (i32.store offset=8
- (local.get $7)
- (local.get $3)
- )
- (call $___syscall_ret
- (call $___syscall146
- (i32.const 146)
- (local.get $7)
- )
- )
+ )
+ )
+ (call $_pthread_cleanup_pop
+ (i32.const 0)
+ )
+ )
+ (block
+ (i32.store
+ (local.get $7)
+ (i32.load offset=60
+ (local.get $0)
+ )
+ )
+ (i32.store offset=4
+ (local.get $7)
+ (local.get $1)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $4)
+ )
+ (local.set $3
+ (call $___syscall_ret
+ (call $___syscall146
+ (i32.const 146)
+ (local.get $7)
)
)
)
)
+ )
+ (if
+ (i32.eq
+ (local.get $3)
+ (local.get $10)
+ )
(block
(local.set $1
(i32.const 6)
@@ -7706,123 +7485,125 @@
)
(if
(i32.lt_s
- (local.get $5)
+ (local.get $3)
(i32.const 0)
)
(block
- (local.set $14
+ (local.set $12
(local.get $1)
)
- (local.set $15
- (local.get $3)
+ (local.set $13
+ (local.get $4)
)
(local.set $1
(i32.const 8)
)
- (br $while-out)
- )
- )
- (local.set $6
- (i32.sub
- (local.get $4)
- (local.get $5)
- )
- )
- (if
- (i32.le_u
- (local.get $5)
- (local.tee $4
- (i32.load offset=4
- (local.get $1)
- )
- )
)
(block
- (if
- (i32.eq
- (local.get $3)
- (i32.const 2)
- )
- (block
- (i32.store offset=28
- (local.get $0)
- (i32.add
- (local.get $5)
- (i32.load offset=28
- (local.get $0)
+ (local.set $5
+ (if (result i32)
+ (i32.le_u
+ (local.get $3)
+ (local.tee $5
+ (i32.load offset=4
+ (local.get $1)
)
)
)
- (local.set $3
- (i32.const 2)
+ (block (result i32)
+ (if
+ (i32.eq
+ (local.get $4)
+ (i32.const 2)
+ )
+ (block
+ (i32.store offset=28
+ (local.get $0)
+ (i32.add
+ (local.get $3)
+ (i32.load offset=28
+ (local.get $0)
+ )
+ )
+ )
+ (local.set $6
+ (local.get $5)
+ )
+ (local.set $4
+ (i32.const 2)
+ )
+ )
+ (local.set $6
+ (local.get $5)
+ )
+ )
+ (local.get $3)
)
- )
- )
- (local.set $9
- (local.get $4)
- )
- )
- (block
- (i32.store offset=28
- (local.get $0)
- (local.tee $9
- (i32.load offset=44
- (local.get $12)
+ (block (result i32)
+ (i32.store offset=28
+ (local.get $0)
+ (local.tee $6
+ (i32.load offset=44
+ (local.get $0)
+ )
+ )
+ )
+ (i32.store offset=20
+ (local.get $0)
+ (local.get $6)
+ )
+ (local.set $6
+ (i32.load offset=12
+ (local.get $1)
+ )
+ )
+ (local.set $1
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
+ )
+ (local.set $4
+ (i32.add
+ (local.get $4)
+ (i32.const -1)
+ )
+ )
+ (i32.sub
+ (local.get $3)
+ (local.get $5)
+ )
)
)
)
- (i32.store offset=20
- (local.get $0)
- (local.get $9)
- )
- (local.set $9
- (i32.load offset=12
- (local.get $1)
+ (i32.store
+ (local.get $1)
+ (i32.add
+ (local.get $5)
+ (i32.load
+ (local.get $1)
+ )
)
)
- (local.set $5
+ (i32.store offset=4
+ (local.get $1)
(i32.sub
+ (local.get $6)
(local.get $5)
- (local.get $4)
- )
- )
- (local.set $1
- (i32.add
- (local.get $1)
- (i32.const 8)
)
)
- (local.set $3
- (i32.add
+ (local.set $10
+ (i32.sub
+ (local.get $10)
(local.get $3)
- (i32.const -1)
)
)
+ (br $while-in)
)
)
- (i32.store
- (local.get $1)
- (i32.add
- (local.get $5)
- (i32.load
- (local.get $1)
- )
- )
- )
- (i32.store offset=4
- (local.get $1)
- (i32.sub
- (local.get $9)
- (local.get $5)
- )
- )
- (local.set $4
- (local.get $6)
- )
- (br $while-in)
)
)
- (local.set $13
+ (local.set $11
(if (result i32)
(i32.eq
(local.get $1)
@@ -7832,9 +7613,9 @@
(i32.store offset=16
(local.get $0)
(i32.add
- (local.tee $4
+ (local.tee $1
(i32.load offset=44
- (local.get $12)
+ (local.get $0)
)
)
(i32.load offset=48
@@ -7844,11 +7625,11 @@
)
(i32.store offset=28
(local.get $0)
- (local.get $4)
+ (local.get $1)
)
(i32.store offset=20
(local.get $0)
- (local.get $4)
+ (local.get $1)
)
(local.get $2)
)
@@ -7881,26 +7662,26 @@
)
(if (result i32)
(i32.eq
- (local.get $15)
+ (local.get $13)
(i32.const 2)
)
(i32.const 0)
(i32.sub
(local.get $2)
(i32.load offset=4
- (local.get $14)
+ (local.get $12)
)
)
)
)
- (local.get $13)
+ (local.get $11)
)
)
)
(global.set $STACKTOP
- (local.get $10)
+ (local.get $9)
)
- (local.get $13)
+ (local.get $11)
)
(func $___fwritex (; 18 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
@@ -7908,14 +7689,10 @@
(local $4 i32)
(local $5 i32)
(local $6 i32)
- (local $7 i32)
- (local.set $6
+ (local.set $5
(i32.const 672)
)
(local.set $3
- (local.get $1)
- )
- (local.set $5
(if (result i32)
(local.tee $4
(i32.load offset=16
@@ -7923,7 +7700,7 @@
)
)
(block (result i32)
- (local.set $7
+ (local.set $6
(i32.const 5)
)
(local.get $4)
@@ -7932,13 +7709,13 @@
(call $___towrite
(local.get $1)
)
- (local.get $5)
+ (local.get $3)
(block (result i32)
- (local.set $7
+ (local.set $6
(i32.const 5)
)
(i32.load offset=16
- (local.get $3)
+ (local.get $1)
)
)
)
@@ -7946,15 +7723,15 @@
)
(if
(i32.eq
- (local.get $7)
+ (local.get $6)
(i32.const 5)
)
(block $label$break$L5
(if
(i32.lt_u
(i32.sub
- (local.get $5)
- (local.tee $2
+ (local.get $3)
+ (local.tee $3
(i32.load offset=20
(local.get $1)
)
@@ -7982,9 +7759,6 @@
(br $label$break$L5)
)
)
- (local.set $4
- (local.get $2)
- )
(if
(i32.gt_s
(i32.load8_s offset=75
@@ -8011,7 +7785,7 @@
(if
(i32.ne
(i32.load8_s offset=672
- (local.tee $5
+ (local.tee $4
(i32.add
(local.get $2)
(i32.const -1)
@@ -8022,7 +7796,7 @@
)
(block
(local.set $2
- (local.get $5)
+ (local.get $4)
)
(br $while-in)
)
@@ -8053,35 +7827,32 @@
(local.get $2)
)
)
- (local.set $6
+ (local.set $5
(i32.add
(local.get $2)
(i32.const 672)
)
)
- (local.set $4
+ (local.set $3
(i32.load offset=20
- (local.get $3)
+ (local.get $1)
)
)
)
- (local.set $2
- (i32.const 0)
- )
)
(drop
(call $_memcpy
- (local.get $4)
- (local.get $6)
+ (local.get $3)
+ (local.get $5)
(local.get $0)
)
)
(i32.store offset=20
- (local.get $3)
+ (local.get $1)
(i32.add
(local.get $0)
(i32.load offset=20
- (local.get $3)
+ (local.get $1)
)
)
)
@@ -8097,10 +7868,9 @@
)
(func $_fflush (; 19 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
- (local $2 i32)
(if
(local.get $0)
- (local.set $1
+ (local.set $0
(block $do-once (result i32)
(if
(i32.le_s
@@ -8143,56 +7913,45 @@
(i32.const 32)
)
)
- (block
- (local.set $2
- (local.get $1)
- )
- (local.set $1
- (local.get $0)
+ (loop $while-in
+ (drop
+ (i32.load offset=76
+ (local.get $1)
+ )
)
- (loop $while-in
- (drop
- (i32.load offset=76
- (local.get $2)
+ (if
+ (i32.gt_u
+ (i32.load offset=20
+ (local.get $1)
)
- )
- (if
- (i32.gt_u
- (i32.load offset=20
- (local.get $2)
- )
- (i32.load offset=28
- (local.get $2)
- )
+ (i32.load offset=28
+ (local.get $1)
)
- (local.set $1
- (i32.or
- (call $___fflush_unlocked
- (local.get $2)
- )
+ )
+ (local.set $0
+ (i32.or
+ (call $___fflush_unlocked
(local.get $1)
)
+ (local.get $0)
)
)
- (br_if $while-in
- (local.tee $2
- (i32.load offset=56
- (local.get $2)
- )
+ )
+ (br_if $while-in
+ (local.tee $1
+ (i32.load offset=56
+ (local.get $1)
)
)
)
)
- (local.set $1
- (local.get $0)
- )
)
(call $___unlock
(i32.const 36)
)
)
)
- (local.get $1)
+ (local.get $0)
)
(func $_strlen (; 20 ;) (; has Stack IR ;) (result i32)
(local $0 i32)
@@ -8204,48 +7963,48 @@
(i32.const 672)
)
(block
- (local.set $1
+ (local.set $4
(i32.const 672)
)
- (local.set $2
+ (local.set $1
(i32.const 4)
)
)
(i32.sub
(if (result i32)
(i32.eq
- (local.get $2)
+ (local.get $1)
(i32.const 4)
)
(block (result i32)
- (local.set $2
- (local.get $1)
+ (local.set $1
+ (local.get $4)
)
(local.set $0
(loop $while-in1 (result i32)
(if (result i32)
(i32.and
(i32.add
- (local.tee $1
+ (local.tee $2
(i32.load
- (local.get $2)
+ (local.get $1)
)
)
(i32.const -16843009)
)
(i32.xor
(i32.and
- (local.get $1)
+ (local.get $2)
(i32.const -2139062144)
)
(i32.const -2139062144)
)
)
- (local.get $2)
+ (local.get $1)
(block
- (local.set $2
+ (local.set $1
(i32.add
- (local.get $2)
+ (local.get $1)
(i32.const 4)
)
)
@@ -8256,28 +8015,17 @@
)
(if
(i32.and
- (local.get $1)
+ (local.get $2)
(i32.const 255)
)
- (block
- (local.set $1
- (local.get $0)
- )
- (loop $while-in3
- (if
- (i32.load8_s
- (local.tee $0
- (i32.add
- (local.get $1)
- (i32.const 1)
- )
- )
- )
- (block
- (local.set $1
+ (loop $while-in3
+ (br_if $while-in3
+ (i32.load8_s
+ (local.tee $0
+ (i32.add
(local.get $0)
+ (i32.const 1)
)
- (br $while-in3)
)
)
)
@@ -8285,7 +8033,7 @@
)
(local.get $0)
)
- (local.get $4)
+ (local.get $2)
)
(i32.const 672)
)
@@ -8298,7 +8046,6 @@
(local $5 i32)
(local $6 i32)
(local $7 i32)
- (local $8 i32)
(local.set $3
(global.get $STACKTOP)
)
@@ -8314,18 +8061,15 @@
)
(i32.const 10)
)
- (local.set $7
- (local.get $0)
- )
(if
- (local.tee $2
+ (local.tee $1
(i32.load offset=16
(local.get $0)
)
)
(block
(local.set $5
- (local.get $2)
+ (local.get $1)
)
(local.set $6
(i32.const 4)
@@ -8335,13 +8079,13 @@
(call $___towrite
(local.get $0)
)
- (local.set $1
+ (local.set $2
(i32.const -1)
)
(block
(local.set $5
(i32.load offset=16
- (local.get $7)
+ (local.get $0)
)
)
(local.set $6
@@ -8355,15 +8099,12 @@
(local.get $6)
(i32.const 4)
)
- (local.set $1
+ (local.set $2
(block $do-once (result i32)
- (local.set $1
- (local.get $0)
- )
(if
(if (result i32)
(i32.lt_u
- (local.tee $2
+ (local.tee $1
(i32.load offset=20
(local.get $0)
)
@@ -8371,7 +8112,7 @@
(local.get $5)
)
(i32.ne
- (local.tee $8
+ (local.tee $7
(i32.const 10)
)
(i32.load8_s offset=75
@@ -8382,18 +8123,18 @@
)
(block
(i32.store offset=20
- (local.get $1)
+ (local.get $0)
(i32.add
- (local.get $2)
+ (local.get $1)
(i32.const 1)
)
)
(i32.store8
- (local.get $2)
+ (local.get $1)
(i32.const 10)
)
(br $do-once
- (local.get $8)
+ (local.get $7)
)
)
)
@@ -8426,7 +8167,7 @@
(global.set $STACKTOP
(local.get $3)
)
- (local.get $1)
+ (local.get $2)
)
(func $___fflush_unlocked (; 22 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
@@ -9115,7 +8856,7 @@
(i32.const -1)
)
)
- (local.set $3
+ (local.set $0
(call $___stdio_write
(local.get $0)
(local.get $1)
@@ -9125,7 +8866,7 @@
(global.set $STACKTOP
(local.get $4)
)
- (local.get $3)
+ (local.get $0)
)
(func $___stdio_close (; 31 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
diff --git a/test/emcc_O2_hello_world.fromasm.imprecise b/test/emcc_O2_hello_world.fromasm.imprecise
index 2d1eb6660..9439cf363 100644
--- a/test/emcc_O2_hello_world.fromasm.imprecise
+++ b/test/emcc_O2_hello_world.fromasm.imprecise
@@ -98,11 +98,6 @@
(local $45 i32)
(local $46 i32)
(local $47 i32)
- (local $48 i32)
- (local $49 i32)
- (local $50 i32)
- (local $51 i32)
- (local $52 i32)
(if
(i32.lt_u
(local.get $0)
@@ -111,16 +106,16 @@
(block
(if
(i32.and
- (local.tee $2
+ (local.tee $5
(i32.shr_u
- (local.tee $15
+ (local.tee $18
(i32.load
(i32.const 176)
)
)
(local.tee $6
(i32.shr_u
- (local.tee $8
+ (local.tee $4
(select
(i32.const 16)
(i32.and
@@ -144,74 +139,69 @@
(i32.const 3)
)
(block
- (local.set $8
- (local.tee $1
- (i32.add
- (i32.shl
- (local.tee $6
- (i32.add
- (local.get $6)
- (i32.xor
- (i32.and
- (local.get $2)
- (i32.const 1)
+ (local.set $0
+ (i32.load
+ (local.tee $6
+ (i32.add
+ (local.tee $4
+ (i32.load offset=8
+ (local.tee $1
+ (i32.add
+ (i32.shl
+ (local.tee $3
+ (i32.add
+ (local.get $6)
+ (i32.xor
+ (i32.and
+ (local.get $5)
+ (i32.const 1)
+ )
+ (i32.const 1)
+ )
+ )
+ )
+ (i32.const 3)
+ )
+ (i32.const 216)
)
- (i32.const 1)
)
)
)
- (i32.const 3)
+ (i32.const 8)
)
- (i32.const 216)
)
)
)
(if
(i32.ne
+ (local.get $0)
(local.get $1)
- (local.tee $7
- (i32.load
- (local.tee $17
- (i32.add
- (local.tee $0
- (i32.load offset=8
- (local.get $8)
- )
- )
- (i32.const 8)
- )
- )
- )
- )
)
(block
(if
(i32.lt_u
- (local.get $7)
+ (local.get $0)
(i32.load
(i32.const 192)
)
)
(call $_abort)
)
- (local.set $2
- (local.get $7)
- )
(if
(i32.eq
- (local.get $0)
+ (local.get $4)
(i32.load offset=12
- (local.get $2)
+ (local.get $0)
)
)
(block
(i32.store offset=12
- (local.get $2)
+ (local.get $0)
(local.get $1)
)
(i32.store offset=8
- (local.get $8)
- (local.get $7)
+ (local.get $1)
+ (local.get $0)
)
)
(call $_abort)
@@ -223,34 +213,33 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $6)
+ (local.get $3)
)
(i32.const -1)
)
- (local.get $15)
+ (local.get $18)
)
)
)
(i32.store offset=4
- (local.get $0)
+ (local.get $4)
(i32.or
- (local.tee $7
+ (local.tee $0
(i32.shl
- (local.get $6)
+ (local.get $3)
(i32.const 3)
)
)
(i32.const 3)
)
)
- (local.set $0
- (i32.add
- (local.get $0)
- (local.get $7)
- )
- )
(i32.store offset=4
- (local.get $0)
+ (local.tee $0
+ (i32.add
+ (local.get $0)
+ (local.get $4)
+ )
+ )
(i32.or
(i32.load offset=4
(local.get $0)
@@ -259,14 +248,14 @@
)
)
(return
- (local.get $17)
+ (local.get $6)
)
)
)
(if
(i32.gt_u
- (local.get $8)
- (local.tee $5
+ (local.get $4)
+ (local.tee $0
(i32.load
(i32.const 184)
)
@@ -274,12 +263,12 @@
)
(block
(if
- (local.get $2)
+ (local.get $5)
(block
(local.set $1
(i32.and
(i32.shr_u
- (local.tee $7
+ (local.tee $3
(i32.add
(i32.and
(i32.sub
@@ -289,17 +278,17 @@
(i32.or
(i32.sub
(i32.const 0)
- (local.tee $7
+ (local.tee $1
(i32.shl
(i32.const 2)
(local.get $6)
)
)
)
- (local.get $7)
+ (local.get $1)
)
(i32.shl
- (local.get $2)
+ (local.get $5)
(local.get $6)
)
)
@@ -315,12 +304,12 @@
(i32.const 16)
)
)
- (local.set $7
+ (local.set $3
(i32.and
(i32.shr_u
- (local.tee $10
+ (local.tee $6
(i32.shr_u
- (local.get $7)
+ (local.get $3)
(local.get $1)
)
)
@@ -329,13 +318,13 @@
(i32.const 8)
)
)
- (local.set $10
+ (local.set $6
(i32.and
(i32.shr_u
- (local.tee $0
+ (local.tee $2
(i32.shr_u
- (local.get $10)
- (local.get $7)
+ (local.get $6)
+ (local.get $3)
)
)
(i32.const 2)
@@ -343,13 +332,13 @@
(i32.const 4)
)
)
- (local.set $0
+ (local.set $2
(i32.and
(i32.shr_u
- (local.tee $11
+ (local.tee $5
(i32.shr_u
- (local.get $0)
- (local.get $10)
+ (local.get $2)
+ (local.get $6)
)
)
(i32.const 1)
@@ -357,67 +346,65 @@
(i32.const 2)
)
)
- (local.set $6
- (local.tee $11
- (i32.add
- (i32.shl
- (local.tee $7
- (i32.add
- (i32.or
- (local.tee $11
- (i32.and
- (i32.shr_u
- (local.tee $19
+ (local.set $1
+ (i32.load
+ (local.tee $10
+ (i32.add
+ (local.tee $6
+ (i32.load offset=8
+ (local.tee $3
+ (i32.add
+ (i32.shl
+ (local.tee $2
+ (i32.add
+ (i32.or
+ (local.tee $10
+ (i32.and
+ (i32.shr_u
+ (local.tee $5
+ (i32.shr_u
+ (local.get $5)
+ (local.get $2)
+ )
+ )
+ (i32.const 1)
+ )
+ (i32.const 1)
+ )
+ )
+ (i32.or
+ (local.get $2)
+ (i32.or
+ (local.get $6)
+ (i32.or
+ (local.get $1)
+ (local.get $3)
+ )
+ )
+ )
+ )
(i32.shr_u
- (local.get $11)
- (local.get $0)
+ (local.get $5)
+ (local.get $10)
)
)
- (i32.const 1)
- )
- (i32.const 1)
- )
- )
- (i32.or
- (local.get $0)
- (i32.or
- (local.get $10)
- (i32.or
- (local.get $1)
- (local.get $7)
)
+ (i32.const 3)
)
+ (i32.const 216)
)
)
- (i32.shr_u
- (local.get $19)
- (local.get $11)
- )
)
)
- (i32.const 3)
+ (i32.const 8)
)
- (i32.const 216)
)
)
)
(if
(i32.ne
- (local.tee $1
- (i32.load
- (local.tee $10
- (i32.add
- (local.tee $0
- (i32.load offset=8
- (local.get $6)
- )
- )
- (i32.const 8)
- )
- )
- )
- )
- (local.get $11)
+ (local.get $1)
+ (local.get $3)
)
(block
(if
@@ -429,26 +416,23 @@
)
(call $_abort)
)
- (local.set $2
- (local.get $1)
- )
(if
(i32.eq
- (local.get $0)
+ (local.get $6)
(i32.load offset=12
(local.get $1)
)
)
(block
(i32.store offset=12
- (local.get $2)
- (local.get $11)
+ (local.get $1)
+ (local.get $3)
)
(i32.store offset=8
- (local.get $6)
+ (local.get $3)
(local.get $1)
)
- (local.set $17
+ (local.set $13
(i32.load
(i32.const 184)
)
@@ -464,40 +448,40 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $7)
+ (local.get $2)
)
(i32.const -1)
)
- (local.get $15)
+ (local.get $18)
)
)
- (local.set $17
- (local.get $5)
+ (local.set $13
+ (local.get $0)
)
)
)
(i32.store offset=4
- (local.get $0)
+ (local.get $6)
(i32.or
- (local.get $8)
+ (local.get $4)
(i32.const 3)
)
)
(i32.store offset=4
- (local.tee $15
+ (local.tee $5
(i32.add
- (local.get $0)
- (local.get $8)
+ (local.get $4)
+ (local.get $6)
)
)
(i32.or
- (local.tee $5
+ (local.tee $6
(i32.sub
(i32.shl
- (local.get $7)
+ (local.get $2)
(i32.const 3)
)
- (local.get $8)
+ (local.get $4)
)
)
(i32.const 1)
@@ -506,24 +490,24 @@
(i32.store
(i32.add
(local.get $5)
- (local.get $15)
+ (local.get $6)
)
- (local.get $5)
+ (local.get $6)
)
(if
- (local.get $17)
+ (local.get $13)
(block
- (local.set $1
+ (local.set $3
(i32.load
(i32.const 196)
)
)
- (local.set $11
+ (local.set $0
(i32.add
(i32.shl
- (local.tee $19
+ (local.tee $1
(i32.shr_u
- (local.get $17)
+ (local.get $13)
(i32.const 3)
)
)
@@ -534,25 +518,25 @@
)
(if
(i32.and
- (local.tee $6
+ (local.tee $4
(i32.load
(i32.const 176)
)
)
- (local.tee $2
+ (local.tee $1
(i32.shl
(i32.const 1)
- (local.get $19)
+ (local.get $1)
)
)
)
(if
(i32.lt_u
- (local.tee $17
+ (local.tee $4
(i32.load
- (local.tee $19
+ (local.tee $1
(i32.add
- (local.get $11)
+ (local.get $0)
(i32.const 8)
)
)
@@ -564,11 +548,11 @@
)
(call $_abort)
(block
- (local.set $37
- (local.get $19)
+ (local.set $25
+ (local.get $1)
)
- (local.set $31
- (local.get $17)
+ (local.set $8
+ (local.get $4)
)
)
)
@@ -576,46 +560,46 @@
(i32.store
(i32.const 176)
(i32.or
- (local.get $2)
- (local.get $6)
+ (local.get $1)
+ (local.get $4)
)
)
- (local.set $37
+ (local.set $25
(i32.add
- (local.get $11)
+ (local.get $0)
(i32.const 8)
)
)
- (local.set $31
- (local.get $11)
+ (local.set $8
+ (local.get $0)
)
)
)
(i32.store
- (local.get $37)
- (local.get $1)
+ (local.get $25)
+ (local.get $3)
)
(i32.store offset=12
- (local.get $31)
- (local.get $1)
+ (local.get $8)
+ (local.get $3)
)
(i32.store offset=8
- (local.get $1)
- (local.get $31)
+ (local.get $3)
+ (local.get $8)
)
(i32.store offset=12
- (local.get $1)
- (local.get $11)
+ (local.get $3)
+ (local.get $0)
)
)
)
(i32.store
(i32.const 184)
- (local.get $5)
+ (local.get $6)
)
(i32.store
(i32.const 196)
- (local.get $15)
+ (local.get $5)
)
(return
(local.get $10)
@@ -623,23 +607,23 @@
)
)
(if
- (local.tee $15
+ (local.tee $0
(i32.load
(i32.const 180)
)
)
(block
- (local.set $15
+ (local.set $0
(i32.and
(i32.shr_u
- (local.tee $5
+ (local.tee $1
(i32.add
(i32.and
(i32.sub
(i32.const 0)
- (local.get $15)
+ (local.get $0)
)
- (local.get $15)
+ (local.get $0)
)
(i32.const -1)
)
@@ -649,13 +633,13 @@
(i32.const 16)
)
)
- (local.set $5
+ (local.set $1
(i32.and
(i32.shr_u
- (local.tee $11
+ (local.tee $3
(i32.shr_u
- (local.get $5)
- (local.get $15)
+ (local.get $1)
+ (local.get $0)
)
)
(i32.const 5)
@@ -663,13 +647,13 @@
(i32.const 8)
)
)
- (local.set $11
+ (local.set $3
(i32.and
(i32.shr_u
- (local.tee $1
+ (local.tee $6
(i32.shr_u
- (local.get $11)
- (local.get $5)
+ (local.get $3)
+ (local.get $1)
)
)
(i32.const 2)
@@ -677,13 +661,13 @@
(i32.const 4)
)
)
- (local.set $1
+ (local.set $6
(i32.and
(i32.shr_u
- (local.tee $2
+ (local.tee $8
(i32.shr_u
- (local.get $1)
- (local.get $11)
+ (local.get $6)
+ (local.get $3)
)
)
(i32.const 1)
@@ -691,22 +675,22 @@
(i32.const 2)
)
)
- (local.set $2
+ (local.set $5
(i32.sub
(i32.and
(i32.load offset=4
- (local.tee $17
+ (local.tee $1
(i32.load offset=480
(i32.shl
(i32.add
(i32.or
- (local.tee $2
+ (local.tee $5
(i32.and
(i32.shr_u
- (local.tee $6
+ (local.tee $8
(i32.shr_u
- (local.get $2)
- (local.get $1)
+ (local.get $8)
+ (local.get $6)
)
)
(i32.const 1)
@@ -715,19 +699,19 @@
)
)
(i32.or
- (local.get $1)
+ (local.get $6)
(i32.or
- (local.get $11)
+ (local.get $3)
(i32.or
- (local.get $5)
- (local.get $15)
+ (local.get $0)
+ (local.get $1)
)
)
)
)
(i32.shr_u
- (local.get $6)
- (local.get $2)
+ (local.get $8)
+ (local.get $5)
)
)
(i32.const 2)
@@ -737,70 +721,67 @@
)
(i32.const -8)
)
- (local.get $8)
+ (local.get $4)
)
)
- (local.set $1
- (local.tee $6
- (local.get $17)
- )
+ (local.set $0
+ (local.get $1)
)
(loop $while-in
(block $while-out
- (local.set $11
+ (if
+ (local.tee $3
+ (i32.load offset=16
+ (local.get $1)
+ )
+ )
+ (local.set $1
+ (local.get $3)
+ )
+ (if
+ (i32.eqz
+ (local.tee $1
+ (i32.load offset=20
+ (local.get $1)
+ )
+ )
+ )
+ (block
+ (local.set $8
+ (local.get $0)
+ )
+ (br $while-out)
+ )
+ )
+ )
+ (local.set $3
(i32.lt_u
- (local.tee $17
+ (local.tee $6
(i32.sub
(i32.and
(i32.load offset=4
- (local.tee $6
- (if (result i32)
- (local.tee $17
- (i32.load offset=16
- (local.get $6)
- )
- )
- (local.get $17)
- (if (result i32)
- (local.tee $11
- (i32.load offset=20
- (local.get $6)
- )
- )
- (local.get $11)
- (block
- (local.set $9
- (local.get $2)
- )
- (local.set $5
- (local.get $1)
- )
- (br $while-out)
- )
- )
- )
- )
+ (local.get $1)
)
(i32.const -8)
)
- (local.get $8)
+ (local.get $4)
)
)
- (local.get $2)
+ (local.get $5)
)
)
- (local.set $2
+ (local.set $5
(select
- (local.get $17)
- (local.get $2)
- (local.get $11)
+ (local.get $6)
+ (local.get $5)
+ (local.get $3)
)
)
- (local.set $1
+ (local.set $0
(select
- (local.get $6)
(local.get $1)
- (local.get $11)
+ (local.get $0)
+ (local.get $3)
)
)
(br $while-in)
@@ -808,8 +789,8 @@
)
(if
(i32.lt_u
- (local.get $5)
- (local.tee $1
+ (local.get $8)
+ (local.tee $18
(i32.load
(i32.const 192)
)
@@ -819,104 +800,98 @@
)
(if
(i32.ge_u
- (local.get $5)
- (local.tee $6
+ (local.get $8)
+ (local.tee $14
(i32.add
- (local.get $5)
+ (local.get $4)
(local.get $8)
)
)
)
(call $_abort)
)
- (local.set $2
+ (local.set $10
(i32.load offset=24
- (local.get $5)
+ (local.get $8)
)
)
(if
(i32.eq
- (local.tee $10
+ (local.get $8)
+ (local.tee $0
(i32.load offset=12
- (local.get $5)
+ (local.get $8)
)
)
- (local.get $5)
)
(block $do-once4
- (local.set $4
- (if (result i32)
- (local.tee $7
+ (if
+ (i32.eqz
+ (local.tee $0
(i32.load
- (local.tee $0
+ (local.tee $1
(i32.add
- (local.get $5)
+ (local.get $8)
(i32.const 20)
)
)
)
)
- (block (result i32)
- (local.set $17
- (local.get $7)
- )
- (local.get $0)
- )
- (if (result i32)
- (local.tee $17
+ )
+ (br_if $do-once4
+ (i32.eqz
+ (local.tee $0
(i32.load
- (local.tee $11
+ (local.tee $1
(i32.add
- (local.get $5)
+ (local.get $8)
(i32.const 16)
)
)
)
)
- (local.get $11)
- (br $do-once4)
)
)
)
(loop $while-in7
(if
- (local.tee $7
+ (local.tee $6
(i32.load
- (local.tee $0
+ (local.tee $3
(i32.add
- (local.get $17)
+ (local.get $0)
(i32.const 20)
)
)
)
)
(block
- (local.set $17
- (local.get $7)
+ (local.set $0
+ (local.get $6)
)
- (local.set $4
- (local.get $0)
+ (local.set $1
+ (local.get $3)
)
(br $while-in7)
)
)
(if
- (local.tee $7
+ (local.tee $6
(i32.load
- (local.tee $0
+ (local.tee $3
(i32.add
- (local.get $17)
+ (local.get $0)
(i32.const 16)
)
)
)
)
(block
- (local.set $17
- (local.get $7)
+ (local.set $0
+ (local.get $6)
)
- (local.set $4
- (local.get $0)
+ (local.set $1
+ (local.get $3)
)
(br $while-in7)
)
@@ -924,17 +899,17 @@
)
(if
(i32.lt_u
- (local.get $4)
(local.get $1)
+ (local.get $18)
)
(call $_abort)
(block
(i32.store
- (local.get $4)
+ (local.get $1)
(i32.const 0)
)
- (local.set $19
- (local.get $17)
+ (local.set $2
+ (local.get $0)
)
)
)
@@ -942,48 +917,42 @@
(block
(if
(i32.lt_u
- (local.tee $0
+ (local.tee $1
(i32.load offset=8
- (local.get $5)
+ (local.get $8)
)
)
- (local.get $1)
+ (local.get $18)
)
(call $_abort)
)
- (local.set $1
- (local.get $0)
- )
(if
(i32.ne
- (local.get $5)
+ (local.get $8)
(i32.load offset=12
- (local.get $0)
+ (local.get $1)
)
)
(call $_abort)
)
- (local.set $7
- (local.get $10)
- )
(if
(i32.eq
- (local.get $5)
+ (local.get $8)
(i32.load offset=8
- (local.get $7)
+ (local.get $0)
)
)
(block
(i32.store offset=12
(local.get $1)
- (local.get $10)
+ (local.get $0)
)
(i32.store offset=8
- (local.get $7)
(local.get $0)
+ (local.get $1)
)
- (local.set $19
- (local.get $10)
+ (local.set $2
+ (local.get $0)
)
)
(call $_abort)
@@ -991,33 +960,32 @@
)
)
(if
- (local.get $2)
+ (local.get $10)
(block $do-once8
- (local.set $0
- (i32.shl
- (local.tee $10
- (i32.load offset=28
- (local.get $5)
- )
- )
- (i32.const 2)
- )
- )
(if
(i32.eq
(i32.load offset=480
- (local.get $0)
+ (local.tee $1
+ (i32.shl
+ (local.tee $0
+ (i32.load offset=28
+ (local.get $8)
+ )
+ )
+ (i32.const 2)
+ )
+ )
)
- (local.get $5)
+ (local.get $8)
)
(block
(i32.store offset=480
- (local.get $0)
- (local.get $19)
+ (local.get $1)
+ (local.get $2)
)
(if
(i32.eqz
- (local.get $19)
+ (local.get $2)
)
(block
(i32.store
@@ -1029,7 +997,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $10)
+ (local.get $0)
)
(i32.const -1)
)
@@ -1042,43 +1010,40 @@
(block
(if
(i32.lt_u
- (local.get $2)
+ (local.get $10)
(i32.load
(i32.const 192)
)
)
(call $_abort)
)
- (local.set $0
- (local.get $2)
- )
(if
(i32.eq
- (local.get $5)
+ (local.get $8)
(i32.load offset=16
- (local.get $0)
+ (local.get $10)
)
)
(i32.store offset=16
- (local.get $0)
- (local.get $19)
+ (local.get $10)
+ (local.get $2)
)
(i32.store offset=20
+ (local.get $10)
(local.get $2)
- (local.get $19)
)
)
(br_if $do-once8
(i32.eqz
- (local.get $19)
+ (local.get $2)
)
)
)
)
(if
(i32.lt_u
- (local.get $19)
- (local.tee $10
+ (local.get $2)
+ (local.tee $1
(i32.load
(i32.const 192)
)
@@ -1087,42 +1052,42 @@
(call $_abort)
)
(i32.store offset=24
- (local.get $19)
(local.get $2)
+ (local.get $10)
)
(if
- (local.tee $1
+ (local.tee $0
(i32.load offset=16
- (local.get $5)
+ (local.get $8)
)
)
(if
(i32.lt_u
+ (local.get $0)
(local.get $1)
- (local.get $10)
)
(call $_abort)
(block
(i32.store offset=16
- (local.get $19)
- (local.get $1)
+ (local.get $2)
+ (local.get $0)
)
(i32.store offset=24
- (local.get $1)
- (local.get $19)
+ (local.get $0)
+ (local.get $2)
)
)
)
)
(if
- (local.tee $1
+ (local.tee $0
(i32.load offset=20
- (local.get $5)
+ (local.get $8)
)
)
(if
(i32.lt_u
- (local.get $1)
+ (local.get $0)
(i32.load
(i32.const 192)
)
@@ -1130,12 +1095,12 @@
(call $_abort)
(block
(i32.store offset=20
- (local.get $19)
- (local.get $1)
+ (local.get $2)
+ (local.get $0)
)
(i32.store offset=24
- (local.get $1)
- (local.get $19)
+ (local.get $0)
+ (local.get $2)
)
)
)
@@ -1144,30 +1109,29 @@
)
(if
(i32.lt_u
- (local.get $9)
+ (local.get $5)
(i32.const 16)
)
(block
(i32.store offset=4
- (local.get $5)
+ (local.get $8)
(i32.or
- (local.tee $2
+ (local.tee $0
(i32.add
- (local.get $8)
- (local.get $9)
+ (local.get $4)
+ (local.get $5)
)
)
(i32.const 3)
)
)
- (local.set $0
- (i32.add
- (local.get $2)
- (local.get $5)
- )
- )
(i32.store offset=4
- (local.get $0)
+ (local.tee $0
+ (i32.add
+ (local.get $0)
+ (local.get $8)
+ )
+ )
(i32.or
(i32.load offset=4
(local.get $0)
@@ -1178,44 +1142,44 @@
)
(block
(i32.store offset=4
- (local.get $5)
+ (local.get $8)
(i32.or
- (local.get $8)
+ (local.get $4)
(i32.const 3)
)
)
(i32.store offset=4
- (local.get $6)
+ (local.get $14)
(i32.or
- (local.get $9)
+ (local.get $5)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $6)
- (local.get $9)
+ (local.get $5)
+ (local.get $14)
)
- (local.get $9)
+ (local.get $5)
)
(if
- (local.tee $1
+ (local.tee $0
(i32.load
(i32.const 184)
)
)
(block
- (local.set $2
+ (local.set $3
(i32.load
(i32.const 196)
)
)
- (local.set $1
+ (local.set $0
(i32.add
(i32.shl
- (local.tee $10
+ (local.tee $1
(i32.shr_u
- (local.get $1)
+ (local.get $0)
(i32.const 3)
)
)
@@ -1226,25 +1190,25 @@
)
(if
(i32.and
- (local.tee $0
+ (local.tee $4
(i32.load
(i32.const 176)
)
)
- (local.tee $11
+ (local.tee $1
(i32.shl
(i32.const 1)
- (local.get $10)
+ (local.get $1)
)
)
)
(if
(i32.lt_u
- (local.tee $7
+ (local.tee $4
(i32.load
- (local.tee $10
+ (local.tee $1
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
@@ -1256,11 +1220,11 @@
)
(call $_abort)
(block
- (local.set $38
- (local.get $10)
+ (local.set $19
+ (local.get $1)
)
- (local.set $32
- (local.get $7)
+ (local.set $7
+ (local.get $4)
)
)
)
@@ -1268,52 +1232,52 @@
(i32.store
(i32.const 176)
(i32.or
- (local.get $0)
- (local.get $11)
+ (local.get $1)
+ (local.get $4)
)
)
- (local.set $38
+ (local.set $19
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
- (local.set $32
- (local.get $1)
+ (local.set $7
+ (local.get $0)
)
)
)
(i32.store
- (local.get $38)
- (local.get $2)
+ (local.get $19)
+ (local.get $3)
)
(i32.store offset=12
- (local.get $32)
- (local.get $2)
+ (local.get $7)
+ (local.get $3)
)
(i32.store offset=8
- (local.get $2)
- (local.get $32)
+ (local.get $3)
+ (local.get $7)
)
(i32.store offset=12
- (local.get $2)
- (local.get $1)
+ (local.get $3)
+ (local.get $0)
)
)
)
(i32.store
(i32.const 184)
- (local.get $9)
+ (local.get $5)
)
(i32.store
(i32.const 196)
- (local.get $6)
+ (local.get $14)
)
)
)
(return
(i32.add
- (local.get $5)
+ (local.get $8)
(i32.const 8)
)
)
@@ -1322,16 +1286,16 @@
)
)
)
- (local.set $8
+ (local.set $4
(if (result i32)
(i32.le_u
(local.get $0)
(i32.const -65)
)
(block $do-once (result i32)
- (local.set $2
+ (local.set $5
(i32.and
- (local.tee $1
+ (local.tee $0
(i32.add
(local.get $0)
(i32.const 11)
@@ -1341,162 +1305,157 @@
)
)
(if (result i32)
- (local.tee $11
+ (local.tee $39
(i32.load
(i32.const 180)
)
)
(block (result i32)
- (local.set $0
- (i32.sub
- (i32.const 0)
- (local.get $2)
- )
- )
- (if
- (local.tee $15
- (i32.load offset=480
- (i32.shl
- (local.tee $8
- (if (result i32)
- (local.tee $7
- (i32.shr_u
- (local.get $1)
- (i32.const 8)
- )
- )
- (if (result i32)
- (i32.gt_u
- (local.get $2)
- (i32.const 16777215)
- )
- (i32.const 31)
- (block (result i32)
- (local.set $7
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $10
- (i32.shl
- (local.get $7)
- (local.tee $1
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $7)
- (i32.const 1048320)
- )
- (i32.const 16)
- )
- (i32.const 8)
- )
- )
+ (local.set $19
+ (if (result i32)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 8)
+ )
+ )
+ (if (result i32)
+ (i32.gt_u
+ (local.get $5)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $8
+ (i32.shl
+ (local.get $0)
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $0)
+ (i32.const 1048320)
)
+ (i32.const 16)
)
- (i32.const 520192)
+ (i32.const 8)
)
- (i32.const 16)
)
- (i32.const 4)
)
)
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $2)
- (i32.add
- (local.tee $15
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
- (local.tee $10
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $17
- (i32.shl
- (local.get $10)
- (local.get $7)
- )
- )
- (i32.const 245760)
- )
- (i32.const 16)
- )
- (i32.const 2)
+ (i32.const 520192)
+ )
+ (i32.const 16)
+ )
+ (i32.const 4)
+ )
+ )
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $5)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
+ (i32.or
+ (local.tee $7
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $8
+ (i32.shl
+ (local.get $8)
+ (local.get $0)
)
)
- (i32.or
- (local.get $1)
- (local.get $7)
- )
+ (i32.const 245760)
)
+ (i32.const 16)
)
- (i32.shr_u
- (i32.shl
- (local.get $17)
- (local.get $10)
- )
- (i32.const 15)
- )
+ (i32.const 2)
)
)
- (i32.const 7)
+ (i32.or
+ (local.get $0)
+ (local.get $2)
+ )
)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $15)
- (i32.const 1)
+ (i32.shr_u
+ (i32.shl
+ (local.get $8)
+ (local.get $7)
+ )
+ (i32.const 15)
+ )
)
)
+ (i32.const 7)
)
)
- (i32.const 0)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
)
+ )
+ )
+ (i32.const 0)
+ )
+ )
+ (local.set $2
+ (i32.sub
+ (i32.const 0)
+ (local.get $5)
+ )
+ )
+ (if
+ (local.tee $7
+ (i32.load offset=480
+ (i32.shl
+ (local.get $19)
(i32.const 2)
)
)
)
(block $label$break$L123
- (local.set $10
- (local.get $0)
- )
- (local.set $17
- (i32.const 0)
- )
- (local.set $1
+ (local.set $0
(i32.shl
- (local.get $2)
+ (local.get $5)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (local.get $8)
+ (local.get $19)
(i32.const 1)
)
)
(i32.eq
- (local.get $8)
+ (local.get $19)
(i32.const 31)
)
)
)
)
- (local.set $7
- (local.get $15)
+ (local.set $8
+ (i32.const 0)
)
- (local.set $6
+ (local.set $18
(loop $while-in14 (result i32)
(if
(i32.lt_u
- (local.tee $0
+ (local.tee $13
(i32.sub
- (local.tee $19
+ (local.tee $9
(i32.and
(i32.load offset=4
(local.get $7)
@@ -1504,55 +1463,54 @@
(i32.const -8)
)
)
- (local.get $2)
+ (local.get $5)
)
)
- (local.get $10)
+ (local.get $2)
)
- (local.set $5
+ (local.set $2
(if (result i32)
(i32.eq
- (local.get $2)
- (local.get $19)
+ (local.get $5)
+ (local.get $9)
)
(block
- (local.set $28
- (local.get $0)
+ (local.set $4
+ (local.get $13)
)
- (local.set $25
+ (local.set $20
(local.get $7)
)
- (local.set $29
+ (local.set $6
(local.get $7)
)
- (local.set $10
+ (local.set $9
(i32.const 90)
)
(br $label$break$L123)
)
(block (result i32)
- (local.set $10
- (local.get $0)
+ (local.set $8
+ (local.get $7)
)
- (local.get $7)
+ (local.get $13)
)
)
)
)
- (local.set $19
+ (local.set $13
(select
- (local.get $17)
- (local.tee $0
+ (local.get $25)
+ (local.tee $13
(i32.load offset=20
(local.get $7)
)
)
(i32.or
(i32.eqz
- (local.get $0)
+ (local.get $13)
)
(i32.eq
- (local.get $0)
(local.tee $7
(i32.load
(i32.add
@@ -1562,7 +1520,7 @@
)
(i32.shl
(i32.shr_u
- (local.get $1)
+ (local.get $0)
(i32.const 31)
)
(i32.const 2)
@@ -1570,40 +1528,38 @@
)
)
)
+ (local.get $13)
)
)
)
)
(if (result i32)
- (local.tee $0
+ (local.tee $9
(i32.eqz
(local.get $7)
)
)
(block (result i32)
- (local.set $33
- (local.get $10)
+ (local.set $21
+ (local.get $13)
)
- (local.set $30
- (local.get $5)
+ (local.set $26
+ (local.get $8)
)
- (local.set $10
+ (local.set $9
(i32.const 86)
)
- (local.get $19)
+ (local.get $2)
)
(block
- (local.set $17
- (local.get $19)
+ (local.set $25
+ (local.get $13)
)
- (local.set $1
+ (local.set $0
(i32.shl
- (local.get $1)
+ (local.get $0)
(i32.xor
- (i32.and
- (local.get $0)
- (i32.const 1)
- )
+ (local.get $9)
(i32.const 1)
)
)
@@ -1615,47 +1571,47 @@
)
)
(block
- (local.set $33
- (local.get $0)
+ (local.set $18
+ (local.get $2)
)
- (local.set $10
+ (local.set $9
(i32.const 86)
)
)
)
(if
(i32.eq
- (local.get $10)
+ (local.get $9)
(i32.const 86)
)
(block
(if
(i32.eqz
(i32.or
- (local.get $6)
- (local.get $30)
+ (local.get $21)
+ (local.get $26)
)
)
(block
(drop
(br_if $do-once
- (local.get $2)
+ (local.get $5)
(i32.eqz
(local.tee $0
(i32.and
(i32.or
(i32.sub
(i32.const 0)
- (local.tee $15
+ (local.tee $0
(i32.shl
(i32.const 2)
- (local.get $8)
+ (local.get $19)
)
)
)
- (local.get $15)
+ (local.get $0)
)
- (local.get $11)
+ (local.get $39)
)
)
)
@@ -1664,7 +1620,7 @@
(local.set $0
(i32.and
(i32.shr_u
- (local.tee $15
+ (local.tee $2
(i32.add
(i32.and
(i32.sub
@@ -1681,12 +1637,12 @@
(i32.const 16)
)
)
- (local.set $15
+ (local.set $2
(i32.and
(i32.shr_u
(local.tee $8
(i32.shr_u
- (local.get $15)
+ (local.get $2)
(local.get $0)
)
)
@@ -1698,10 +1654,10 @@
(local.set $8
(i32.and
(i32.shr_u
- (local.tee $6
+ (local.tee $7
(i32.shr_u
(local.get $8)
- (local.get $15)
+ (local.get $2)
)
)
(i32.const 2)
@@ -1709,12 +1665,12 @@
(i32.const 4)
)
)
- (local.set $6
+ (local.set $7
(i32.and
(i32.shr_u
- (local.tee $5
+ (local.tee $13
(i32.shr_u
- (local.get $6)
+ (local.get $7)
(local.get $8)
)
)
@@ -1723,18 +1679,18 @@
(i32.const 2)
)
)
- (local.set $6
+ (local.set $21
(i32.load offset=480
(i32.shl
(i32.add
(i32.or
- (local.tee $5
+ (local.tee $21
(i32.and
(i32.shr_u
- (local.tee $1
+ (local.tee $13
(i32.shr_u
- (local.get $5)
- (local.get $6)
+ (local.get $13)
+ (local.get $7)
)
)
(i32.const 1)
@@ -1743,19 +1699,19 @@
)
)
(i32.or
- (local.get $6)
+ (local.get $7)
(i32.or
(local.get $8)
(i32.or
(local.get $0)
- (local.get $15)
+ (local.get $2)
)
)
)
)
(i32.shr_u
- (local.get $1)
- (local.get $5)
+ (local.get $13)
+ (local.get $21)
)
)
(i32.const 2)
@@ -1765,27 +1721,27 @@
)
)
(if
- (local.get $6)
+ (local.get $21)
(block
- (local.set $28
- (local.get $33)
+ (local.set $4
+ (local.get $18)
)
- (local.set $25
- (local.get $6)
+ (local.set $20
+ (local.get $21)
)
- (local.set $29
- (local.get $30)
+ (local.set $6
+ (local.get $26)
)
- (local.set $10
+ (local.set $9
(i32.const 90)
)
)
(block
- (local.set $4
- (local.get $33)
+ (local.set $11
+ (local.get $18)
)
- (local.set $13
- (local.get $30)
+ (local.set $12
+ (local.get $26)
)
)
)
@@ -1796,106 +1752,89 @@
(block (result i32)
(if
(i32.eq
- (local.get $10)
+ (local.get $9)
(i32.const 90)
)
- (local.set $4
+ (local.set $11
(loop $while-in16 (result i32)
- (local.set $10
+ (local.set $9
(i32.const 0)
)
- (local.set $1
+ (local.set $0
(i32.lt_u
- (local.tee $5
+ (local.tee $2
(i32.sub
(i32.and
(i32.load offset=4
- (local.get $25)
+ (local.get $20)
)
(i32.const -8)
)
- (local.get $2)
+ (local.get $5)
)
)
- (local.get $28)
+ (local.get $4)
)
)
- (local.set $6
+ (local.set $4
(select
- (local.get $5)
- (local.get $28)
- (local.get $1)
+ (local.get $2)
+ (local.get $4)
+ (local.get $0)
)
)
- (local.set $5
+ (local.set $6
(select
- (local.get $25)
- (local.get $29)
- (local.get $1)
+ (local.get $20)
+ (local.get $6)
+ (local.get $0)
)
)
(if
- (local.tee $1
+ (local.tee $0
(i32.load offset=16
- (local.get $25)
+ (local.get $20)
)
)
(block
- (local.set $28
- (local.get $6)
- )
- (local.set $25
- (local.get $1)
- )
- (local.set $29
- (local.get $5)
+ (local.set $20
+ (local.get $0)
)
(br $while-in16)
)
)
- (if (result i32)
- (local.tee $25
+ (br_if $while-in16
+ (local.tee $20
(i32.load offset=20
- (local.get $25)
- )
- )
- (block
- (local.set $28
- (local.get $6)
- )
- (local.set $29
- (local.get $5)
- )
- (br $while-in16)
- )
- (block (result i32)
- (local.set $13
- (local.get $5)
+ (local.get $20)
)
- (local.get $6)
)
)
+ (local.set $12
+ (local.get $6)
+ )
+ (local.get $4)
)
)
)
(i32.lt_u
- (local.get $4)
+ (local.get $11)
(i32.sub
(i32.load
(i32.const 184)
)
- (local.get $2)
+ (local.get $5)
)
)
)
(i32.const 0)
- (local.get $13)
+ (local.get $12)
)
(block
(if
(i32.lt_u
- (local.get $13)
- (local.tee $11
+ (local.get $12)
+ (local.tee $8
(i32.load
(i32.const 192)
)
@@ -1905,11 +1844,11 @@
)
(if
(i32.ge_u
- (local.get $13)
- (local.tee $5
+ (local.get $12)
+ (local.tee $2
(i32.add
- (local.get $2)
- (local.get $13)
+ (local.get $5)
+ (local.get $12)
)
)
)
@@ -1917,92 +1856,86 @@
)
(local.set $6
(i32.load offset=24
- (local.get $13)
+ (local.get $12)
)
)
(if
(i32.eq
- (local.tee $1
+ (local.get $12)
+ (local.tee $0
(i32.load offset=12
- (local.get $13)
+ (local.get $12)
)
)
- (local.get $13)
)
(block $do-once17
- (local.set $1
- (if (result i32)
+ (if
+ (i32.eqz
(local.tee $0
(i32.load
- (local.tee $8
+ (local.tee $1
(i32.add
- (local.get $13)
+ (local.get $12)
(i32.const 20)
)
)
)
)
- (block (result i32)
- (local.set $17
- (local.get $0)
- )
- (local.get $8)
- )
- (if (result i32)
- (local.tee $17
+ )
+ (br_if $do-once17
+ (i32.eqz
+ (local.tee $0
(i32.load
- (local.tee $15
+ (local.tee $1
(i32.add
- (local.get $13)
+ (local.get $12)
(i32.const 16)
)
)
)
)
- (local.get $15)
- (br $do-once17)
)
)
)
(loop $while-in20
(if
- (local.tee $0
+ (local.tee $3
(i32.load
- (local.tee $8
+ (local.tee $4
(i32.add
- (local.get $17)
+ (local.get $0)
(i32.const 20)
)
)
)
)
(block
- (local.set $17
- (local.get $0)
+ (local.set $0
+ (local.get $3)
)
(local.set $1
- (local.get $8)
+ (local.get $4)
)
(br $while-in20)
)
)
(if
- (local.tee $0
+ (local.tee $3
(i32.load
- (local.tee $8
+ (local.tee $4
(i32.add
- (local.get $17)
+ (local.get $0)
(i32.const 16)
)
)
)
)
(block
- (local.set $17
- (local.get $0)
+ (local.set $0
+ (local.get $3)
)
(local.set $1
- (local.get $8)
+ (local.get $4)
)
(br $while-in20)
)
@@ -2011,7 +1944,7 @@
(if
(i32.lt_u
(local.get $1)
- (local.get $11)
+ (local.get $8)
)
(call $_abort)
(block
@@ -2019,8 +1952,8 @@
(local.get $1)
(i32.const 0)
)
- (local.set $9
- (local.get $17)
+ (local.set $15
+ (local.get $0)
)
)
)
@@ -2028,49 +1961,43 @@
(block
(if
(i32.lt_u
- (local.tee $8
+ (local.tee $1
(i32.load offset=8
- (local.get $13)
+ (local.get $12)
)
)
- (local.get $11)
+ (local.get $8)
)
(call $_abort)
)
- (local.set $0
- (local.get $8)
- )
(if
(i32.ne
- (local.get $13)
+ (local.get $12)
(i32.load offset=12
- (local.get $0)
+ (local.get $1)
)
)
(call $_abort)
)
- (local.set $7
- (local.get $1)
- )
(if
(i32.eq
- (local.get $13)
+ (local.get $12)
(i32.load offset=8
- (local.get $1)
+ (local.get $0)
)
)
(block
(i32.store offset=12
- (local.get $0)
(local.get $1)
+ (local.get $0)
)
(i32.store offset=8
- (local.get $7)
- (local.get $8)
- )
- (local.set $9
+ (local.get $0)
(local.get $1)
)
+ (local.set $15
+ (local.get $0)
+ )
)
(call $_abort)
)
@@ -2079,31 +2006,30 @@
(if
(local.get $6)
(block $do-once21
- (local.set $0
- (i32.shl
- (local.tee $1
- (i32.load offset=28
- (local.get $13)
- )
- )
- (i32.const 2)
- )
- )
(if
(i32.eq
(i32.load offset=480
- (local.get $0)
+ (local.tee $1
+ (i32.shl
+ (local.tee $0
+ (i32.load offset=28
+ (local.get $12)
+ )
+ )
+ (i32.const 2)
+ )
+ )
)
- (local.get $13)
+ (local.get $12)
)
(block
(i32.store offset=480
- (local.get $0)
- (local.get $9)
+ (local.get $1)
+ (local.get $15)
)
(if
(i32.eqz
- (local.get $9)
+ (local.get $15)
)
(block
(i32.store
@@ -2115,7 +2041,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $1)
+ (local.get $0)
)
(i32.const -1)
)
@@ -2135,35 +2061,32 @@
)
(call $_abort)
)
- (local.set $0
- (local.get $6)
- )
(if
(i32.eq
- (local.get $13)
+ (local.get $12)
(i32.load offset=16
- (local.get $0)
+ (local.get $6)
)
)
(i32.store offset=16
- (local.get $0)
- (local.get $9)
+ (local.get $6)
+ (local.get $15)
)
(i32.store offset=20
(local.get $6)
- (local.get $9)
+ (local.get $15)
)
)
(br_if $do-once21
(i32.eqz
- (local.get $9)
+ (local.get $15)
)
)
)
)
(if
(i32.lt_u
- (local.get $9)
+ (local.get $15)
(local.tee $1
(i32.load
(i32.const 192)
@@ -2173,42 +2096,42 @@
(call $_abort)
)
(i32.store offset=24
- (local.get $9)
+ (local.get $15)
(local.get $6)
)
(if
- (local.tee $11
+ (local.tee $0
(i32.load offset=16
- (local.get $13)
+ (local.get $12)
)
)
(if
(i32.lt_u
- (local.get $11)
+ (local.get $0)
(local.get $1)
)
(call $_abort)
(block
(i32.store offset=16
- (local.get $9)
- (local.get $11)
+ (local.get $15)
+ (local.get $0)
)
(i32.store offset=24
- (local.get $11)
- (local.get $9)
+ (local.get $0)
+ (local.get $15)
)
)
)
)
(if
- (local.tee $11
+ (local.tee $0
(i32.load offset=20
- (local.get $13)
+ (local.get $12)
)
)
(if
(i32.lt_u
- (local.get $11)
+ (local.get $0)
(i32.load
(i32.const 192)
)
@@ -2216,12 +2139,12 @@
(call $_abort)
(block
(i32.store offset=20
- (local.get $9)
- (local.get $11)
+ (local.get $15)
+ (local.get $0)
)
(i32.store offset=24
- (local.get $11)
- (local.get $9)
+ (local.get $0)
+ (local.get $15)
)
)
)
@@ -2230,47 +2153,47 @@
)
(if
(i32.ge_u
- (local.get $4)
+ (local.get $11)
(i32.const 16)
)
(block $do-once25
(i32.store offset=4
- (local.get $13)
+ (local.get $12)
(i32.or
- (local.get $2)
+ (local.get $5)
(i32.const 3)
)
)
(i32.store offset=4
- (local.get $5)
+ (local.get $2)
(i32.or
- (local.get $4)
+ (local.get $11)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $4)
- (local.get $5)
+ (local.get $2)
+ (local.get $11)
)
- (local.get $4)
+ (local.get $11)
)
- (local.set $6
+ (local.set $1
(i32.shr_u
- (local.get $4)
+ (local.get $11)
(i32.const 3)
)
)
(if
(i32.lt_u
- (local.get $4)
+ (local.get $11)
(i32.const 256)
)
(block
- (local.set $11
+ (local.set $0
(i32.add
(i32.shl
- (local.get $6)
+ (local.get $1)
(i32.const 3)
)
(i32.const 216)
@@ -2278,25 +2201,25 @@
)
(if
(i32.and
- (local.tee $8
- (i32.shl
- (i32.const 1)
- (local.get $6)
+ (local.tee $4
+ (i32.load
+ (i32.const 176)
)
)
(local.tee $1
- (i32.load
- (i32.const 176)
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
)
)
)
(if
(i32.lt_u
- (local.tee $15
+ (local.tee $4
(i32.load
- (local.tee $6
+ (local.tee $1
(i32.add
- (local.get $11)
+ (local.get $0)
(i32.const 8)
)
)
@@ -2308,11 +2231,11 @@
)
(call $_abort)
(block
- (local.set $16
- (local.get $6)
+ (local.set $17
+ (local.get $1)
)
- (local.set $26
- (local.get $15)
+ (local.set $27
+ (local.get $4)
)
)
)
@@ -2321,70 +2244,70 @@
(i32.const 176)
(i32.or
(local.get $1)
- (local.get $8)
+ (local.get $4)
)
)
- (local.set $16
+ (local.set $17
(i32.add
- (local.get $11)
+ (local.get $0)
(i32.const 8)
)
)
- (local.set $26
- (local.get $11)
+ (local.set $27
+ (local.get $0)
)
)
)
(i32.store
- (local.get $16)
- (local.get $5)
+ (local.get $17)
+ (local.get $2)
)
(i32.store offset=12
- (local.get $26)
- (local.get $5)
+ (local.get $27)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $5)
- (local.get $26)
+ (local.get $2)
+ (local.get $27)
)
(i32.store offset=12
- (local.get $5)
- (local.get $11)
+ (local.get $2)
+ (local.get $0)
)
(br $do-once25)
)
)
- (local.set $6
+ (local.set $1
(i32.add
(local.tee $0
(i32.shl
- (local.tee $7
+ (local.tee $6
(if (result i32)
- (local.tee $11
+ (local.tee $0
(i32.shr_u
- (local.get $4)
+ (local.get $11)
(i32.const 8)
)
)
(if (result i32)
(i32.gt_u
- (local.get $4)
+ (local.get $11)
(i32.const 16777215)
)
(i32.const 31)
(block (result i32)
- (local.set $11
+ (local.set $0
(i32.and
(i32.shr_u
(i32.add
- (local.tee $1
+ (local.tee $4
(i32.shl
- (local.get $11)
- (local.tee $8
+ (local.get $0)
+ (local.tee $1
(i32.and
(i32.shr_u
(i32.add
- (local.get $11)
+ (local.get $0)
(i32.const 1048320)
)
(i32.const 16)
@@ -2404,21 +2327,21 @@
(i32.or
(i32.and
(i32.shr_u
- (local.get $4)
+ (local.get $11)
(i32.add
- (local.tee $6
+ (local.tee $0
(i32.add
(i32.sub
(i32.const 14)
(i32.or
- (local.tee $1
+ (local.tee $3
(i32.and
(i32.shr_u
(i32.add
- (local.tee $15
+ (local.tee $4
(i32.shl
- (local.get $1)
- (local.get $11)
+ (local.get $4)
+ (local.get $0)
)
)
(i32.const 245760)
@@ -2429,15 +2352,15 @@
)
)
(i32.or
- (local.get $8)
- (local.get $11)
+ (local.get $0)
+ (local.get $1)
)
)
)
(i32.shr_u
(i32.shl
- (local.get $15)
- (local.get $1)
+ (local.get $4)
+ (local.get $3)
)
(i32.const 15)
)
@@ -2449,7 +2372,7 @@
(i32.const 1)
)
(i32.shl
- (local.get $6)
+ (local.get $0)
(i32.const 1)
)
)
@@ -2465,158 +2388,160 @@
)
)
(i32.store offset=28
- (local.get $5)
- (local.get $7)
+ (local.get $2)
+ (local.get $6)
)
(i32.store offset=20
- (local.get $5)
+ (local.get $2)
(i32.const 0)
)
(i32.store offset=16
- (local.get $5)
+ (local.get $2)
(i32.const 0)
)
(if
(i32.eqz
(i32.and
- (local.tee $15
- (i32.shl
- (i32.const 1)
- (local.get $7)
- )
- )
- (local.tee $1
+ (local.tee $4
(i32.load
(i32.const 180)
)
)
+ (local.tee $3
+ (i32.shl
+ (i32.const 1)
+ (local.get $6)
+ )
+ )
)
)
(block
(i32.store
(i32.const 180)
(i32.or
- (local.get $1)
- (local.get $15)
+ (local.get $3)
+ (local.get $4)
)
)
(i32.store offset=480
(local.get $0)
- (local.get $5)
+ (local.get $2)
)
(i32.store offset=24
- (local.get $5)
- (local.get $6)
+ (local.get $2)
+ (local.get $1)
)
(i32.store offset=12
- (local.get $5)
- (local.get $5)
+ (local.get $2)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $5)
- (local.get $5)
+ (local.get $2)
+ (local.get $2)
)
(br $do-once25)
)
)
- (local.set $15
+ (local.set $3
(i32.shl
- (local.get $4)
+ (local.get $11)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (local.get $7)
+ (local.get $6)
(i32.const 1)
)
)
(i32.eq
- (local.get $7)
+ (local.get $6)
(i32.const 31)
)
)
)
)
- (local.set $1
+ (local.set $0
(i32.load offset=480
(local.get $0)
)
)
- (if
- (i32.eq
- (local.tee $10
- (loop $while-in28 (result i32)
- (block $while-out27 (result i32)
- (if
- (i32.eq
- (local.get $4)
- (i32.and
- (i32.load offset=4
- (local.get $1)
- )
- (i32.const -8)
- )
- )
- (block
- (local.set $14
- (local.get $1)
- )
- (br $while-out27
- (i32.const 148)
- )
- )
+ (loop $while-in28
+ (block $while-out27
+ (if
+ (i32.eq
+ (local.get $11)
+ (i32.and
+ (i32.load offset=4
+ (local.get $0)
)
- (if (result i32)
- (local.tee $8
- (i32.load
- (local.tee $6
- (i32.add
- (i32.add
- (local.get $1)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $15)
- (i32.const 31)
- )
- (i32.const 2)
- )
- )
+ (i32.const -8)
+ )
+ )
+ (block
+ (local.set $22
+ (local.get $0)
+ )
+ (local.set $9
+ (i32.const 148)
+ )
+ (br $while-out27)
+ )
+ )
+ (local.set $31
+ (if (result i32)
+ (local.tee $1
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
)
- )
- )
- (block
- (local.set $15
(i32.shl
- (local.get $15)
- (i32.const 1)
+ (i32.shr_u
+ (local.get $3)
+ (i32.const 31)
+ )
+ (i32.const 2)
)
)
- (local.set $1
- (local.get $8)
- )
- (br $while-in28)
)
- (block (result i32)
- (local.set $23
- (local.get $6)
- )
- (local.set $20
- (local.get $1)
- )
- (i32.const 145)
+ )
+ )
+ (block
+ (local.set $3
+ (i32.shl
+ (local.get $3)
+ (i32.const 1)
)
)
+ (local.set $0
+ (local.get $1)
+ )
+ (br $while-in28)
+ )
+ (block (result i32)
+ (local.set $40
+ (local.get $0)
+ )
+ (local.set $9
+ (i32.const 145)
+ )
+ (local.get $4)
)
)
)
+ )
+ )
+ (if
+ (i32.eq
+ (local.get $9)
(i32.const 145)
)
(if
(i32.lt_u
- (local.get $23)
+ (local.get $31)
(i32.load
(i32.const 192)
)
@@ -2624,100 +2549,96 @@
(call $_abort)
(block
(i32.store
- (local.get $23)
- (local.get $5)
+ (local.get $31)
+ (local.get $2)
)
(i32.store offset=24
- (local.get $5)
- (local.get $20)
+ (local.get $2)
+ (local.get $40)
)
(i32.store offset=12
- (local.get $5)
- (local.get $5)
+ (local.get $2)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $5)
- (local.get $5)
+ (local.get $2)
+ (local.get $2)
)
)
)
(if
(i32.eq
- (local.get $10)
+ (local.get $9)
(i32.const 148)
)
- (block
- (local.set $0
- (local.get $14)
- )
- (if
- (i32.and
- (i32.ge_u
- (local.tee $15
- (i32.load offset=8
- (local.get $0)
- )
- )
- (local.tee $8
- (i32.load
- (i32.const 192)
+ (if
+ (i32.and
+ (i32.ge_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.tee $0
+ (local.get $22)
)
)
)
- (i32.ge_u
- (local.get $0)
- (local.get $8)
+ (local.tee $4
+ (i32.load
+ (i32.const 192)
+ )
)
)
- (block
- (i32.store offset=12
- (local.get $15)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $0)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $15)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $14)
- )
- (i32.store offset=24
- (local.get $5)
- (i32.const 0)
- )
+ (i32.ge_u
+ (local.get $0)
+ (local.get $4)
+ )
+ )
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $2)
+ (local.get $1)
+ )
+ (i32.store offset=12
+ (local.get $2)
+ (local.get $22)
+ )
+ (i32.store offset=24
+ (local.get $2)
+ (i32.const 0)
)
- (call $_abort)
)
+ (call $_abort)
)
)
)
)
(block
(i32.store offset=4
- (local.get $13)
+ (local.get $12)
(i32.or
- (local.tee $15
+ (local.tee $0
(i32.add
- (local.get $2)
- (local.get $4)
+ (local.get $5)
+ (local.get $11)
)
)
(i32.const 3)
)
)
- (local.set $0
- (i32.add
- (local.get $13)
- (local.get $15)
- )
- )
(i32.store offset=4
- (local.get $0)
+ (local.tee $0
+ (i32.add
+ (local.get $0)
+ (local.get $12)
+ )
+ )
(i32.or
(i32.load offset=4
(local.get $0)
@@ -2729,15 +2650,15 @@
)
(return
(i32.add
- (local.get $13)
+ (local.get $12)
(i32.const 8)
)
)
)
- (local.get $2)
+ (local.get $5)
)
)
- (local.get $2)
+ (local.get $5)
)
)
(i32.const -1)
@@ -2746,25 +2667,25 @@
)
(if
(i32.ge_u
- (local.tee $13
+ (local.tee $6
(i32.load
(i32.const 184)
)
)
- (local.get $8)
+ (local.get $4)
)
(block
- (local.set $14
+ (local.set $0
(i32.load
(i32.const 196)
)
)
(if
(i32.gt_u
- (local.tee $4
+ (local.tee $1
(i32.sub
- (local.get $13)
- (local.get $8)
+ (local.get $6)
+ (local.get $4)
)
)
(i32.const 15)
@@ -2772,35 +2693,35 @@
(block
(i32.store
(i32.const 196)
- (local.tee $20
+ (local.tee $3
(i32.add
- (local.get $8)
- (local.get $14)
+ (local.get $0)
+ (local.get $4)
)
)
)
(i32.store
(i32.const 184)
- (local.get $4)
+ (local.get $1)
)
(i32.store offset=4
- (local.get $20)
+ (local.get $3)
(i32.or
- (local.get $4)
+ (local.get $1)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $4)
- (local.get $20)
+ (local.get $1)
+ (local.get $3)
)
- (local.get $4)
+ (local.get $1)
)
(i32.store offset=4
- (local.get $14)
+ (local.get $0)
(i32.or
- (local.get $8)
+ (local.get $4)
(i32.const 3)
)
)
@@ -2815,23 +2736,22 @@
(i32.const 0)
)
(i32.store offset=4
- (local.get $14)
+ (local.get $0)
(i32.or
- (local.get $13)
+ (local.get $6)
(i32.const 3)
)
)
- (local.set $0
- (i32.add
- (local.get $13)
- (local.get $14)
- )
- )
(i32.store offset=4
- (local.get $0)
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (local.get $6)
+ )
+ )
(i32.or
(i32.load offset=4
- (local.get $0)
+ (local.get $1)
)
(i32.const 1)
)
@@ -2840,1956 +2760,1882 @@
)
(return
(i32.add
- (local.get $14)
+ (local.get $0)
(i32.const 8)
)
)
)
)
- (if
- (i32.gt_u
- (local.tee $14
- (i32.load
- (i32.const 188)
+ (block $folding-inner0
+ (br_if $folding-inner0
+ (i32.gt_u
+ (local.tee $0
+ (i32.load
+ (i32.const 188)
+ )
)
+ (local.get $4)
)
- (local.get $8)
)
- (block
- (i32.store
- (i32.const 188)
- (local.tee $4
- (i32.sub
- (local.get $14)
- (local.get $8)
- )
+ (if
+ (i32.eqz
+ (i32.load
+ (i32.const 648)
)
)
- (i32.store
- (i32.const 200)
- (local.tee $13
+ (if
+ (i32.and
+ (local.tee $0
+ (call $_sysconf
+ (i32.const 30)
+ )
+ )
(i32.add
- (local.get $8)
- (local.tee $14
- (i32.load
- (i32.const 200)
+ (local.get $0)
+ (i32.const -1)
+ )
+ )
+ (call $_abort)
+ (block
+ (i32.store
+ (i32.const 656)
+ (local.get $0)
+ )
+ (i32.store
+ (i32.const 652)
+ (local.get $0)
+ )
+ (i32.store
+ (i32.const 660)
+ (i32.const -1)
+ )
+ (i32.store
+ (i32.const 664)
+ (i32.const -1)
+ )
+ (i32.store
+ (i32.const 668)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 620)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 648)
+ (i32.xor
+ (i32.and
+ (call $_time
+ (i32.const 0)
+ )
+ (i32.const -16)
)
+ (i32.const 1431655768)
)
)
)
)
- (i32.store offset=4
- (local.get $13)
- (i32.or
- (local.get $4)
- (i32.const 1)
- )
- )
- (i32.store offset=4
- (local.get $14)
- (i32.or
- (local.get $8)
- (i32.const 3)
- )
- )
- (return
- (i32.add
- (local.get $14)
- (i32.const 8)
- )
- )
)
- )
- (if
- (i32.eqz
- (i32.load
- (i32.const 648)
+ (local.set $22
+ (i32.add
+ (local.get $4)
+ (i32.const 48)
)
)
(if
- (i32.and
- (local.tee $14
- (call $_sysconf
- (i32.const 30)
- )
- )
- (i32.add
- (local.get $14)
- (i32.const -1)
- )
- )
- (call $_abort)
- (block
- (i32.store
- (i32.const 656)
- (local.get $14)
- )
- (i32.store
- (i32.const 652)
- (local.get $14)
- )
- (i32.store
- (i32.const 660)
- (i32.const -1)
- )
- (i32.store
- (i32.const 664)
- (i32.const -1)
- )
- (i32.store
- (i32.const 668)
- (i32.const 0)
- )
- (i32.store
- (i32.const 620)
- (i32.const 0)
- )
- (i32.store
- (i32.const 648)
- (i32.xor
- (i32.and
- (call $_time
+ (i32.le_u
+ (local.tee $11
+ (i32.and
+ (local.tee $2
+ (i32.add
+ (local.tee $0
+ (i32.load
+ (i32.const 656)
+ )
+ )
+ (local.tee $8
+ (i32.add
+ (local.get $4)
+ (i32.const 47)
+ )
+ )
+ )
+ )
+ (local.tee $0
+ (i32.sub
(i32.const 0)
+ (local.get $0)
)
- (i32.const -16)
)
- (i32.const 1431655768)
)
)
+ (local.get $4)
)
- )
- )
- (local.set $14
- (i32.add
- (local.get $8)
- (i32.const 48)
- )
- )
- (local.set $20
- (i32.add
- (local.tee $4
- (i32.load
- (i32.const 656)
- )
- )
- (local.tee $13
- (i32.add
- (local.get $8)
- (i32.const 47)
- )
+ (return
+ (i32.const 0)
)
)
- )
- (if
- (i32.le_u
- (local.tee $4
- (i32.and
- (local.tee $23
- (i32.sub
- (i32.const 0)
- (local.get $4)
- )
+ (if
+ (if (result i32)
+ (local.tee $6
+ (i32.load
+ (i32.const 616)
)
- (local.get $20)
)
- )
- (local.get $8)
- )
- (return
- (i32.const 0)
- )
- )
- (if
- (if (result i32)
- (local.tee $7
- (i32.load
- (i32.const 616)
- )
- )
- (i32.or
- (i32.le_u
- (local.tee $16
- (i32.add
- (local.get $4)
- (local.tee $26
- (i32.load
- (i32.const 608)
+ (i32.or
+ (i32.le_u
+ (local.tee $18
+ (i32.add
+ (local.get $11)
+ (local.tee $7
+ (i32.load
+ (i32.const 608)
+ )
)
)
)
+ (local.get $7)
+ )
+ (i32.gt_u
+ (local.get $18)
+ (local.get $6)
)
- (local.get $26)
- )
- (i32.gt_u
- (local.get $16)
- (local.get $7)
)
+ (i32.const 0)
+ )
+ (return
+ (i32.const 0)
)
- (i32.const 0)
- )
- (return
- (i32.const 0)
)
- )
- (if
- (block (result i32)
- (if
+ (if
+ (if (result i32)
(if (result i32)
- (if (result i32)
- (select
- (i32.lt_u
- (local.get $4)
- (i32.const 2147483647)
- )
- (i32.const 0)
- (i32.eq
- (local.tee $10
- (if (result i32)
- (i32.and
- (i32.load
- (i32.const 620)
- )
- (i32.const 4)
+ (select
+ (i32.lt_u
+ (local.get $11)
+ (i32.const 2147483647)
+ )
+ (i32.const 0)
+ (i32.eq
+ (local.tee $9
+ (if (result i32)
+ (i32.and
+ (i32.load
+ (i32.const 620)
)
- (i32.const 190)
- (block $label$break$L257 (result i32)
- (if
- (local.tee $7
- (i32.load
- (i32.const 200)
- )
+ (i32.const 4)
+ )
+ (i32.const 190)
+ (block $label$break$L257 (result i32)
+ (if
+ (local.tee $6
+ (i32.load
+ (i32.const 200)
)
- (block $label$break$L259
- (local.set $16
- (i32.const 624)
- )
- (loop $while-in34
- (block $while-out33
- (if
- (if (result i32)
- (i32.le_u
- (local.tee $26
- (i32.load
- (local.get $16)
- )
+ )
+ (block $label$break$L259
+ (local.set $17
+ (i32.const 624)
+ )
+ (loop $while-in34
+ (if
+ (i32.eqz
+ (if (result i32)
+ (i32.le_u
+ (local.tee $7
+ (i32.load
+ (local.get $17)
)
- (local.get $7)
)
- (i32.gt_u
- (i32.add
- (i32.load
- (local.tee $9
- (i32.add
- (local.get $16)
- (i32.const 4)
- )
+ (local.get $6)
+ )
+ (i32.gt_u
+ (i32.add
+ (i32.load
+ (local.tee $15
+ (i32.add
+ (local.get $17)
+ (i32.const 4)
)
)
- (local.get $26)
)
(local.get $7)
)
- (i32.const 0)
- )
- (block
- (local.set $6
- (local.get $16)
- )
- (local.set $1
- (local.get $9)
- )
- (br $while-out33)
+ (local.get $6)
)
+ (i32.const 0)
)
+ )
+ (block
(br_if $while-in34
- (local.tee $16
+ (local.tee $17
(i32.load offset=8
- (local.get $16)
+ (local.get $17)
)
)
)
- (local.set $10
+ (local.set $9
(i32.const 173)
)
(br $label$break$L259)
)
)
- (if
- (i32.lt_u
- (local.tee $16
- (i32.and
- (local.get $23)
- (i32.sub
- (local.get $20)
- (i32.load
- (i32.const 188)
- )
+ )
+ (if
+ (i32.lt_u
+ (local.tee $2
+ (i32.and
+ (local.get $0)
+ (i32.sub
+ (local.get $2)
+ (i32.load
+ (i32.const 188)
)
)
)
- (i32.const 2147483647)
)
- (block
- (local.set $9
- (call $_sbrk
- (local.get $16)
- )
+ (i32.const 2147483647)
+ )
+ (block
+ (local.set $0
+ (call $_sbrk
+ (local.get $2)
)
- (if
- (i32.eq
- (i32.add
- (i32.load
- (local.get $6)
- )
- (i32.load
- (local.get $1)
- )
- )
- (local.get $9)
- )
- (if
- (i32.ne
- (local.get $9)
- (i32.const -1)
+ )
+ (if
+ (i32.eq
+ (i32.add
+ (i32.load
+ (local.get $17)
)
- (block
- (local.set $21
- (local.get $9)
- )
- (local.set $22
- (local.get $16)
- )
- (br $label$break$L257
- (i32.const 193)
- )
+ (i32.load
+ (local.get $15)
)
)
+ (local.get $0)
+ )
+ (if
+ (i32.ne
+ (local.get $0)
+ (i32.const -1)
+ )
(block
- (local.set $12
- (local.get $9)
- )
- (local.set $18
- (local.get $16)
+ (local.set $3
+ (local.get $0)
)
(local.set $10
- (i32.const 183)
+ (local.get $2)
+ )
+ (br $label$break$L257
+ (i32.const 193)
)
)
)
+ (block
+ (local.set $14
+ (local.get $0)
+ )
+ (local.set $23
+ (local.get $2)
+ )
+ (local.set $9
+ (i32.const 183)
+ )
+ )
)
)
)
- (local.set $10
+ )
+ (local.set $9
+ (i32.const 173)
+ )
+ )
+ (if
+ (if (result i32)
+ (i32.eq
+ (local.get $9)
(i32.const 173)
)
- )
- (if
- (if (result i32)
- (i32.eq
- (local.get $10)
- (i32.const 173)
- )
- (i32.ne
- (local.tee $7
- (call $_sbrk
- (i32.const 0)
- )
+ (i32.ne
+ (local.tee $6
+ (call $_sbrk
+ (i32.const 0)
)
- (i32.const -1)
)
- (i32.const 0)
+ (i32.const -1)
)
- (block $do-once35
- (local.set $0
- (if (result i32)
- (i32.and
- (local.tee $2
- (local.get $7)
- )
- (local.tee $9
- (i32.add
- (local.tee $16
- (i32.load
- (i32.const 652)
+ (i32.const 0)
+ )
+ (block $do-once35
+ (local.set $5
+ (i32.add
+ (local.tee $0
+ (if (result i32)
+ (i32.and
+ (local.tee $0
+ (local.get $6)
+ )
+ (local.tee $5
+ (i32.add
+ (local.tee $2
+ (i32.load
+ (i32.const 652)
+ )
)
+ (i32.const -1)
)
- (i32.const -1)
)
)
- )
- (i32.add
- (i32.sub
- (local.get $4)
- (local.get $2)
- )
- (i32.and
- (i32.add
- (local.get $2)
- (local.get $9)
- )
+ (i32.add
(i32.sub
- (i32.const 0)
- (local.get $16)
+ (local.get $11)
+ (local.get $0)
+ )
+ (i32.and
+ (i32.add
+ (local.get $0)
+ (local.get $5)
+ )
+ (i32.sub
+ (i32.const 0)
+ (local.get $2)
+ )
)
)
+ (local.get $11)
)
- (local.get $4)
)
- )
- (local.set $2
- (i32.add
- (local.tee $16
- (i32.load
- (i32.const 608)
- )
+ (local.tee $2
+ (i32.load
+ (i32.const 608)
)
- (local.get $0)
)
)
- (if
- (i32.and
- (i32.lt_u
- (local.get $0)
- (i32.const 2147483647)
- )
- (i32.gt_u
- (local.get $0)
- (local.get $8)
- )
+ )
+ (if
+ (i32.and
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 2147483647)
)
- (block
- (br_if $do-once35
- (select
- (i32.or
- (i32.le_u
- (local.get $2)
- (local.get $16)
- )
- (i32.gt_u
- (local.get $2)
- (local.tee $9
- (i32.load
- (i32.const 616)
- )
+ (i32.gt_u
+ (local.get $0)
+ (local.get $4)
+ )
+ )
+ (block
+ (br_if $do-once35
+ (select
+ (i32.or
+ (i32.le_u
+ (local.get $5)
+ (local.get $2)
+ )
+ (i32.gt_u
+ (local.get $5)
+ (local.tee $2
+ (i32.load
+ (i32.const 616)
)
)
)
- (i32.const 0)
- (local.get $9)
)
+ (i32.const 0)
+ (local.get $2)
)
- (local.set $10
- (if (result i32)
- (i32.eq
- (local.tee $9
- (call $_sbrk
- (local.get $0)
- )
- )
- (local.get $7)
- )
- (block
- (local.set $21
- (local.get $7)
- )
- (local.set $22
+ )
+ (local.set $14
+ (if (result i32)
+ (i32.eq
+ (local.get $6)
+ (local.tee $2
+ (call $_sbrk
(local.get $0)
)
- (br $label$break$L257
- (i32.const 193)
- )
)
- (block (result i32)
- (local.set $12
- (local.get $9)
- )
- (local.set $18
- (local.get $0)
- )
+ )
+ (block
+ (local.set $3
+ (local.get $6)
+ )
+ (local.set $10
+ (local.get $0)
+ )
+ (br $label$break$L257
+ (i32.const 193)
+ )
+ )
+ (block (result i32)
+ (local.set $23
+ (local.get $0)
+ )
+ (local.set $9
(i32.const 183)
)
+ (local.get $2)
)
)
)
)
)
)
- (if
- (i32.eq
- (local.get $10)
- (i32.const 183)
- )
- (block $label$break$L279
- (local.set $9
- (i32.sub
- (i32.const 0)
- (local.get $18)
- )
+ )
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 183)
+ )
+ (block $label$break$L279
+ (local.set $0
+ (i32.sub
+ (i32.const 0)
+ (local.get $23)
)
- (local.set $3
+ )
+ (local.set $1
+ (if (result i32)
(if (result i32)
- (if (result i32)
+ (i32.and
(i32.and
- (i32.and
- (i32.ne
- (local.get $12)
- (i32.const -1)
- )
- (i32.lt_u
- (local.get $18)
- (i32.const 2147483647)
- )
- )
- (i32.gt_u
+ (i32.ne
(local.get $14)
- (local.get $18)
+ (i32.const -1)
+ )
+ (i32.lt_u
+ (local.get $23)
+ (i32.const 2147483647)
)
)
- (i32.lt_u
- (local.tee $2
- (i32.and
- (i32.add
- (local.tee $7
- (i32.load
- (i32.const 656)
- )
- )
- (i32.sub
- (local.get $13)
- (local.get $18)
+ (i32.gt_u
+ (local.get $22)
+ (local.get $23)
+ )
+ )
+ (i32.lt_u
+ (local.tee $5
+ (i32.and
+ (i32.add
+ (local.tee $6
+ (i32.load
+ (i32.const 656)
)
)
(i32.sub
- (i32.const 0)
- (local.get $7)
+ (local.get $8)
+ (local.get $23)
)
)
+ (i32.sub
+ (i32.const 0)
+ (local.get $6)
+ )
)
- (i32.const 2147483647)
)
- (i32.const 0)
+ (i32.const 2147483647)
)
- (if (result i32)
- (i32.eq
- (call $_sbrk
- (local.get $2)
- )
- (i32.const -1)
+ (i32.const 0)
+ )
+ (if (result i32)
+ (i32.eq
+ (call $_sbrk
+ (local.get $5)
)
- (block
- (drop
- (call $_sbrk
- (local.get $9)
- )
+ (i32.const -1)
+ )
+ (block
+ (drop
+ (call $_sbrk
+ (local.get $0)
)
- (br $label$break$L279)
- )
- (i32.add
- (local.get $2)
- (local.get $18)
)
+ (br $label$break$L279)
+ )
+ (i32.add
+ (local.get $5)
+ (local.get $23)
)
- (local.get $18)
)
+ (local.get $23)
)
- (if
- (i32.ne
- (local.get $12)
- (i32.const -1)
+ )
+ (if
+ (i32.ne
+ (local.get $14)
+ (i32.const -1)
+ )
+ (block
+ (local.set $3
+ (local.get $14)
)
- (block
- (local.set $21
- (local.get $12)
- )
- (local.set $22
- (local.get $3)
- )
- (br $label$break$L257
- (i32.const 193)
- )
+ (local.set $10
+ (local.get $1)
+ )
+ (br $label$break$L257
+ (i32.const 193)
)
)
)
)
- (i32.store
- (i32.const 620)
- (i32.or
- (i32.load
- (i32.const 620)
- )
- (i32.const 4)
+ )
+ (i32.store
+ (i32.const 620)
+ (i32.or
+ (i32.load
+ (i32.const 620)
)
+ (i32.const 4)
)
- (i32.const 190)
)
+ (i32.const 190)
)
)
- (i32.const 190)
)
+ (i32.const 190)
)
+ )
+ (i32.and
(i32.and
- (i32.and
- (i32.ne
- (local.tee $3
- (call $_sbrk
- (local.get $4)
- )
+ (i32.ne
+ (local.tee $1
+ (call $_sbrk
+ (local.get $11)
)
- (i32.const -1)
)
- (i32.ne
- (local.tee $4
- (call $_sbrk
- (i32.const 0)
- )
+ (i32.const -1)
+ )
+ (i32.ne
+ (local.tee $11
+ (call $_sbrk
+ (i32.const 0)
)
- (i32.const -1)
)
- )
- (i32.lt_u
- (local.get $3)
- (local.get $4)
- )
- )
- (i32.const 0)
- )
- (i32.gt_u
- (local.tee $12
- (i32.sub
- (local.get $4)
- (local.get $3)
+ (i32.const -1)
)
)
- (i32.add
- (local.get $8)
- (i32.const 40)
+ (i32.lt_u
+ (local.get $1)
+ (local.get $11)
)
)
(i32.const 0)
)
- (block
- (local.set $21
- (local.get $3)
- )
- (local.set $22
- (local.get $12)
+ (i32.gt_u
+ (local.tee $14
+ (i32.sub
+ (local.get $11)
+ (local.get $1)
+ )
)
- (local.set $10
- (i32.const 193)
+ (i32.add
+ (local.get $4)
+ (i32.const 40)
)
)
+ (i32.const 0)
)
+ (block
+ (local.set $10
+ (local.get $14)
+ )
+ (local.set $9
+ (i32.const 193)
+ )
+ (local.set $3
+ (local.get $1)
+ )
+ )
+ )
+ (if
(i32.eq
- (local.get $10)
+ (local.get $9)
(i32.const 193)
)
- )
- (block
- (i32.store
- (i32.const 608)
- (local.tee $12
- (i32.add
- (local.get $22)
- (i32.load
- (i32.const 608)
+ (block
+ (i32.store
+ (i32.const 608)
+ (local.tee $0
+ (i32.add
+ (local.get $10)
+ (i32.load
+ (i32.const 608)
+ )
)
)
)
- )
- (if
- (i32.gt_u
- (local.get $12)
- (i32.load
- (i32.const 612)
+ (if
+ (i32.gt_u
+ (local.get $0)
+ (i32.load
+ (i32.const 612)
+ )
)
- )
- (i32.store
- (i32.const 612)
- (local.get $12)
- )
- )
- (if
- (local.tee $12
- (i32.load
- (i32.const 200)
+ (i32.store
+ (i32.const 612)
+ (local.get $0)
)
)
- (block $do-once40
- (local.set $3
- (i32.const 624)
+ (if
+ (local.tee $7
+ (i32.load
+ (i32.const 200)
+ )
)
- (loop $do-in
- (block $do-out
- (if
- (i32.eq
- (i32.add
- (local.tee $4
- (i32.load
- (local.get $3)
+ (block $do-once40
+ (local.set $1
+ (i32.const 624)
+ )
+ (loop $do-in
+ (block $do-out
+ (if
+ (i32.eq
+ (i32.add
+ (local.tee $0
+ (i32.load
+ (local.get $1)
+ )
)
- )
- (local.tee $13
- (i32.load
- (local.tee $18
- (i32.add
- (local.get $3)
- (i32.const 4)
+ (local.tee $2
+ (i32.load
+ (local.tee $6
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
+ )
)
)
)
)
- )
- (local.get $21)
- )
- (block
- (local.set $46
- (local.get $4)
- )
- (local.set $47
- (local.get $18)
- )
- (local.set $48
- (local.get $13)
- )
- (local.set $49
(local.get $3)
)
- (local.set $10
- (i32.const 203)
+ (block
+ (local.set $41
+ (local.get $0)
+ )
+ (local.set $42
+ (local.get $6)
+ )
+ (local.set $43
+ (local.get $2)
+ )
+ (local.set $44
+ (local.get $1)
+ )
+ (local.set $9
+ (i32.const 203)
+ )
+ (br $do-out)
)
- (br $do-out)
)
- )
- (br_if $do-in
- (local.tee $3
- (i32.load offset=8
- (local.get $3)
+ (br_if $do-in
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $1)
+ )
)
)
)
)
- )
- (if
- (select
- (i32.and
- (i32.lt_u
- (local.get $12)
- (local.get $21)
- )
- (i32.ge_u
- (local.get $12)
- (local.get $46)
- )
- )
- (i32.const 0)
+ (if
(select
- (i32.eqz
- (i32.and
- (i32.load offset=12
- (local.get $49)
- )
- (i32.const 8)
+ (i32.and
+ (i32.lt_u
+ (local.get $7)
+ (local.get $3)
+ )
+ (i32.ge_u
+ (local.get $7)
+ (local.get $41)
)
)
(i32.const 0)
- (i32.eq
- (local.get $10)
- (i32.const 203)
+ (select
+ (i32.eqz
+ (i32.and
+ (i32.load offset=12
+ (local.get $44)
+ )
+ (i32.const 8)
+ )
+ )
+ (i32.const 0)
+ (i32.eq
+ (local.get $9)
+ (i32.const 203)
+ )
)
)
- )
- (block
- (i32.store
- (local.get $47)
- (i32.add
- (local.get $22)
- (local.get $48)
+ (block
+ (i32.store
+ (local.get $42)
+ (i32.add
+ (local.get $10)
+ (local.get $43)
+ )
)
- )
- (local.set $3
- (i32.add
- (local.tee $13
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $3
- (i32.add
- (local.get $12)
- (i32.const 8)
+ (local.set $0
+ (i32.add
+ (local.get $7)
+ (local.tee $1
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $0
+ (i32.add
+ (local.get $7)
+ (i32.const 8)
+ )
)
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $0)
+ (i32.const 7)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $3)
- (i32.const 7)
)
)
)
- (local.get $12)
)
- )
- (local.set $18
- (i32.add
- (i32.load
- (i32.const 188)
- )
- (i32.sub
- (local.get $22)
- (local.get $13)
+ (local.set $1
+ (i32.add
+ (i32.load
+ (i32.const 188)
+ )
+ (i32.sub
+ (local.get $10)
+ (local.get $1)
+ )
)
)
- )
- (i32.store
- (i32.const 200)
- (local.get $3)
- )
- (i32.store
- (i32.const 188)
- (local.get $18)
- )
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $18)
- (i32.const 1)
+ (i32.store
+ (i32.const 200)
+ (local.get $0)
)
- )
- (i32.store offset=4
- (i32.add
- (local.get $3)
- (local.get $18)
+ (i32.store
+ (i32.const 188)
+ (local.get $1)
)
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
+ (i32.store offset=4
+ (local.get $0)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
)
+ (i32.store offset=4
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ (i32.const 40)
+ )
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
+ )
+ )
+ (br $do-once40)
)
- (br $do-once40)
)
- )
- (local.set $5
- (if (result i32)
+ (if
(i32.lt_u
- (local.get $21)
- (local.tee $18
+ (local.get $3)
+ (local.tee $6
(i32.load
(i32.const 192)
)
)
)
- (block (result i32)
+ (block
(i32.store
(i32.const 192)
- (local.get $21)
+ (local.get $3)
+ )
+ (local.set $6
+ (local.get $3)
)
- (local.get $21)
)
- (local.get $18)
)
- )
- (local.set $18
- (i32.add
- (local.get $21)
- (local.get $22)
+ (local.set $0
+ (i32.add
+ (local.get $3)
+ (local.get $10)
+ )
)
- )
- (local.set $3
- (i32.const 624)
- )
- (loop $while-in43
- (block $while-out42
- (if
- (i32.eq
- (local.get $18)
- (i32.load
- (local.get $3)
- )
- )
- (block
- (local.set $50
- (local.get $3)
- )
- (local.set $34
- (local.get $3)
+ (local.set $1
+ (i32.const 624)
+ )
+ (loop $while-in43
+ (block $while-out42
+ (if
+ (i32.eq
+ (local.get $0)
+ (i32.load
+ (local.get $1)
+ )
)
- (local.set $10
- (i32.const 211)
+ (block
+ (local.set $45
+ (local.get $1)
+ )
+ (local.set $28
+ (local.get $1)
+ )
+ (local.set $9
+ (i32.const 211)
+ )
+ (br $while-out42)
)
- (br $while-out42)
)
- )
- (br_if $while-in43
- (local.tee $3
- (i32.load offset=8
- (local.get $3)
+ (br_if $while-in43
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $1)
+ )
)
)
+ (local.set $24
+ (i32.const 624)
+ )
)
- (local.set $27
- (i32.const 624)
- )
- )
- )
- (if
- (i32.eq
- (local.get $10)
- (i32.const 211)
)
- (local.set $27
- (if (result i32)
- (i32.and
- (i32.load offset=12
- (local.get $34)
- )
- (i32.const 8)
- )
- (i32.const 624)
- (block
- (i32.store
- (local.get $50)
- (local.get $21)
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 211)
+ )
+ (local.set $24
+ (if (result i32)
+ (i32.and
+ (i32.load offset=12
+ (local.get $28)
+ )
+ (i32.const 8)
)
- (i32.store offset=4
- (local.get $34)
- (i32.add
- (local.get $22)
- (i32.load offset=4
- (local.get $34)
+ (i32.const 624)
+ (block
+ (i32.store
+ (local.get $45)
+ (local.get $3)
+ )
+ (i32.store offset=4
+ (local.get $28)
+ (i32.add
+ (local.get $10)
+ (i32.load offset=4
+ (local.get $28)
+ )
)
)
- )
- (local.set $13
- (i32.add
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $3
- (i32.add
- (local.get $21)
- (i32.const 8)
+ (local.set $5
+ (i32.add
+ (local.get $4)
+ (local.tee $14
+ (i32.add
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
)
)
+ (local.get $3)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $3)
- (i32.const 7)
)
)
- (local.get $21)
)
- )
- (local.set $4
- (i32.add
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $3
- (i32.add
- (local.get $18)
- (i32.const 8)
+ (local.set $8
+ (i32.sub
+ (i32.sub
+ (local.tee $2
+ (i32.add
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
+ )
)
+ (local.get $0)
)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $3)
- (i32.const 7)
+ (local.get $14)
)
+ (local.get $4)
)
- (local.get $18)
)
- )
- (local.set $3
- (i32.add
- (local.get $8)
- (local.get $13)
- )
- )
- (local.set $14
- (i32.sub
- (i32.sub
+ (i32.store offset=4
+ (local.get $14)
+ (i32.or
(local.get $4)
- (local.get $13)
+ (i32.const 3)
)
- (local.get $8)
- )
- )
- (i32.store offset=4
- (local.get $13)
- (i32.or
- (local.get $8)
- (i32.const 3)
)
- )
- (if
- (i32.ne
- (local.get $4)
- (local.get $12)
- )
- (block $do-once44
- (if
- (i32.eq
- (i32.load
- (i32.const 196)
+ (if
+ (i32.ne
+ (local.get $2)
+ (local.get $7)
+ )
+ (block $do-once44
+ (if
+ (i32.eq
+ (i32.load
+ (i32.const 196)
+ )
+ (local.get $2)
)
- (local.get $4)
- )
- (block
- (i32.store
- (i32.const 184)
- (local.tee $0
- (i32.add
- (local.get $14)
- (i32.load
- (i32.const 184)
+ (block
+ (i32.store
+ (i32.const 184)
+ (local.tee $0
+ (i32.add
+ (local.get $8)
+ (i32.load
+ (i32.const 184)
+ )
)
)
)
- )
- (i32.store
- (i32.const 196)
- (local.get $3)
- )
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $0)
- (i32.const 1)
- )
- )
- (i32.store
- (i32.add
- (local.get $0)
- (local.get $3)
+ (i32.store
+ (i32.const 196)
+ (local.get $5)
)
- (local.get $0)
- )
- (br $do-once44)
- )
- )
- (if
- (i32.eq
- (i32.and
- (local.tee $0
- (i32.load offset=4
- (local.get $4)
+ (i32.store offset=4
+ (local.get $5)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
)
)
- (i32.const 3)
- )
- (i32.const 1)
- )
- (block
- (local.set $1
- (i32.and
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (local.get $5)
+ )
(local.get $0)
- (i32.const -8)
)
+ (br $do-once44)
)
- (local.set $6
- (i32.shr_u
- (local.get $0)
- (i32.const 3)
+ )
+ (local.set $4
+ (if (result i32)
+ (i32.eq
+ (i32.and
+ (local.tee $0
+ (i32.load offset=4
+ (local.get $2)
+ )
+ )
+ (i32.const 3)
+ )
+ (i32.const 1)
)
- )
- (block $label$break$L331
- (if
- (i32.ge_u
- (local.get $0)
- (i32.const 256)
+ (block (result i32)
+ (local.set $7
+ (i32.and
+ (local.get $0)
+ (i32.const -8)
+ )
)
- (block
- (local.set $23
- (i32.load offset=24
- (local.get $4)
- )
+ (local.set $3
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 3)
)
+ )
+ (block $label$break$L331
(if
- (i32.eq
- (local.get $4)
- (local.tee $20
- (i32.load offset=12
- (local.get $4)
+ (i32.ge_u
+ (local.get $0)
+ (i32.const 256)
+ )
+ (block
+ (local.set $10
+ (i32.load offset=24
+ (local.get $2)
)
)
- )
- (block $do-once47
- (local.set $0
- (if (result i32)
- (local.tee $7
- (i32.load
- (local.tee $2
- (i32.add
- (local.tee $9
- (i32.add
- (local.get $4)
- (i32.const 16)
+ (if
+ (i32.eq
+ (local.get $2)
+ (local.tee $0
+ (i32.load offset=12
+ (local.get $2)
+ )
+ )
+ )
+ (block $do-once47
+ (if
+ (local.tee $0
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (local.tee $1
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
)
+ (i32.const 4)
)
- (i32.const 4)
)
)
)
- )
- (block (result i32)
- (local.set $9
- (local.get $2)
+ (local.set $1
+ (local.get $4)
)
- (local.get $7)
- )
- (if (result i32)
- (local.tee $16
- (i32.load
- (local.get $9)
+ (br_if $do-once47
+ (i32.eqz
+ (local.tee $0
+ (i32.load
+ (local.get $1)
+ )
+ )
)
)
- (local.get $16)
- (br $do-once47)
)
- )
- )
- (loop $while-in50
- (if
- (local.tee $7
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $0)
- (i32.const 20)
+ (loop $while-in50
+ (if
+ (local.tee $3
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (local.get $0)
+ (i32.const 20)
+ )
+ )
+ )
+ )
+ (block
+ (local.set $0
+ (local.get $3)
)
+ (local.set $1
+ (local.get $4)
+ )
+ (br $while-in50)
+ )
+ )
+ (if
+ (local.tee $3
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ )
+ )
+ )
+ (block
+ (local.set $0
+ (local.get $3)
+ )
+ (local.set $1
+ (local.get $4)
+ )
+ (br $while-in50)
)
)
)
- (block
- (local.set $0
- (local.get $7)
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (local.get $6)
)
- (local.set $9
- (local.get $2)
+ (call $_abort)
+ (block
+ (i32.store
+ (local.get $1)
+ (i32.const 0)
+ )
+ (local.set $16
+ (local.get $0)
+ )
)
- (br $while-in50)
)
)
- (if
- (local.tee $7
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $0)
- (i32.const 16)
+ (block
+ (if
+ (i32.lt_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $2)
)
)
+ (local.get $6)
)
+ (call $_abort)
)
- (block
- (local.set $0
- (local.get $7)
+ (if
+ (i32.ne
+ (local.get $2)
+ (i32.load offset=12
+ (local.get $1)
+ )
)
- (local.set $9
+ (call $_abort)
+ )
+ (if
+ (i32.eq
(local.get $2)
+ (i32.load offset=8
+ (local.get $0)
+ )
)
- (br $while-in50)
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $16
+ (local.get $0)
+ )
+ )
+ (call $_abort)
)
)
)
+ (br_if $label$break$L331
+ (i32.eqz
+ (local.get $10)
+ )
+ )
(if
- (i32.lt_u
- (local.get $9)
- (local.get $5)
+ (i32.ne
+ (i32.load offset=480
+ (local.tee $1
+ (i32.shl
+ (local.tee $0
+ (i32.load offset=28
+ (local.get $2)
+ )
+ )
+ (i32.const 2)
+ )
+ )
+ )
+ (local.get $2)
)
- (call $_abort)
(block
- (i32.store
- (local.get $9)
- (i32.const 0)
+ (if
+ (i32.lt_u
+ (local.get $10)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
)
- (local.set $24
- (local.get $0)
+ (if
+ (i32.eq
+ (local.get $2)
+ (i32.load offset=16
+ (local.get $10)
+ )
+ )
+ (i32.store offset=16
+ (local.get $10)
+ (local.get $16)
+ )
+ (i32.store offset=20
+ (local.get $10)
+ (local.get $16)
+ )
+ )
+ (br_if $label$break$L331
+ (i32.eqz
+ (local.get $16)
+ )
)
)
- )
- )
- (block
- (if
- (i32.lt_u
- (local.tee $2
- (i32.load offset=8
- (local.get $4)
+ (block $do-once51
+ (i32.store offset=480
+ (local.get $1)
+ (local.get $16)
+ )
+ (br_if $do-once51
+ (local.get $16)
+ )
+ (i32.store
+ (i32.const 180)
+ (i32.and
+ (i32.load
+ (i32.const 180)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
+ (i32.const -1)
+ )
)
)
- (local.get $5)
+ (br $label$break$L331)
)
- (call $_abort)
- )
- (local.set $0
- (local.get $2)
)
(if
- (i32.ne
- (local.get $4)
- (i32.load offset=12
- (local.get $0)
+ (i32.lt_u
+ (local.get $16)
+ (local.tee $1
+ (i32.load
+ (i32.const 192)
+ )
)
)
(call $_abort)
)
- (local.set $6
- (local.get $20)
+ (i32.store offset=24
+ (local.get $16)
+ (local.get $10)
)
(if
- (i32.eq
- (local.get $4)
- (i32.load offset=8
- (local.get $6)
+ (local.tee $0
+ (i32.load offset=16
+ (local.get $2)
)
)
- (block
- (i32.store offset=12
+ (if
+ (i32.lt_u
(local.get $0)
- (local.get $20)
- )
- (i32.store offset=8
- (local.get $6)
- (local.get $2)
+ (local.get $1)
)
- (local.set $24
- (local.get $20)
+ (call $_abort)
+ (block
+ (i32.store offset=16
+ (local.get $16)
+ (local.get $0)
+ )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $16)
+ )
)
)
- (call $_abort)
)
- )
- )
- (br_if $label$break$L331
- (i32.eqz
- (local.get $23)
- )
- )
- (local.set $0
- (i32.shl
- (local.tee $20
- (i32.load offset=28
- (local.get $4)
+ (br_if $label$break$L331
+ (i32.eqz
+ (local.tee $0
+ (i32.load offset=20
+ (local.get $2)
+ )
+ )
)
)
- (i32.const 2)
- )
- )
- (if
- (i32.ne
- (i32.load offset=480
- (local.get $0)
- )
- (local.get $4)
- )
- (block
(if
(i32.lt_u
- (local.get $23)
+ (local.get $0)
(i32.load
(i32.const 192)
)
)
(call $_abort)
- )
- (local.set $0
- (local.get $23)
- )
- (if
- (i32.eq
- (local.get $4)
- (i32.load offset=16
+ (block
+ (i32.store offset=20
+ (local.get $16)
(local.get $0)
)
- )
- (i32.store offset=16
- (local.get $0)
- (local.get $24)
- )
- (i32.store offset=20
- (local.get $23)
- (local.get $24)
- )
- )
- (br_if $label$break$L331
- (i32.eqz
- (local.get $24)
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $16)
+ )
)
)
)
- (block $do-once51
- (i32.store offset=480
- (local.get $0)
- (local.get $24)
- )
- (br_if $do-once51
- (local.get $24)
+ (block
+ (local.set $1
+ (i32.load offset=12
+ (local.get $2)
+ )
)
- (i32.store
- (i32.const 180)
- (i32.and
- (i32.load
- (i32.const 180)
+ (if
+ (i32.ne
+ (local.tee $4
+ (i32.load offset=8
+ (local.get $2)
+ )
)
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $20)
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.get $3)
+ (i32.const 3)
+ )
+ (i32.const 216)
)
- (i32.const -1)
)
)
- )
- (br $label$break$L331)
- )
- )
- (if
- (i32.lt_u
- (local.get $24)
- (local.tee $20
- (i32.load
- (i32.const 192)
- )
- )
- )
- (call $_abort)
- )
- (i32.store offset=24
- (local.get $24)
- (local.get $23)
- )
- (local.set $0
- (local.get $4)
- )
- (if
- (local.tee $9
- (i32.load offset=16
- (local.get $0)
- )
- )
- (if
- (i32.lt_u
- (local.get $9)
- (local.get $20)
- )
- (call $_abort)
- (block
- (i32.store offset=16
- (local.get $24)
- (local.get $9)
- )
- (i32.store offset=24
- (local.get $9)
- (local.get $24)
- )
- )
- )
- )
- (br_if $label$break$L331
- (i32.eqz
- (local.tee $9
- (i32.load offset=20
- (local.get $0)
- )
- )
- )
- )
- (if
- (i32.lt_u
- (local.get $9)
- (i32.load
- (i32.const 192)
- )
- )
- (call $_abort)
- (block
- (i32.store offset=20
- (local.get $24)
- (local.get $9)
- )
- (i32.store offset=24
- (local.get $9)
- (local.get $24)
- )
- )
- )
- )
- (block
- (local.set $20
- (i32.load offset=12
- (local.get $4)
- )
- )
- (if
- (i32.ne
- (local.tee $9
- (i32.load offset=8
- (local.get $4)
- )
- )
- (local.tee $23
- (i32.add
- (i32.shl
- (local.get $6)
- (i32.const 3)
+ (block $do-once55
+ (if
+ (i32.lt_u
+ (local.get $4)
+ (local.get $6)
+ )
+ (call $_abort)
+ )
+ (br_if $do-once55
+ (i32.eq
+ (local.get $2)
+ (i32.load offset=12
+ (local.get $4)
+ )
+ )
)
- (i32.const 216)
+ (call $_abort)
)
)
- )
- (block $do-once55
(if
- (i32.lt_u
- (local.get $9)
- (local.get $5)
- )
- (call $_abort)
- )
- (br_if $do-once55
(i32.eq
+ (local.get $1)
(local.get $4)
- (i32.load offset=12
- (local.get $9)
- )
)
- )
- (call $_abort)
- )
- )
- (if
- (i32.eq
- (local.get $9)
- (local.get $20)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.and
- (i32.load
+ (block
+ (i32.store
(i32.const 176)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $6)
+ (i32.and
+ (i32.load
+ (i32.const 176)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $3)
+ )
+ (i32.const -1)
+ )
)
- (i32.const -1)
)
+ (br $label$break$L331)
)
)
- (br $label$break$L331)
- )
- )
- (if
- (i32.eq
- (local.get $20)
- (local.get $23)
- )
- (local.set $39
- (i32.add
- (local.get $20)
- (i32.const 8)
- )
- )
- (block $do-once57
- (if
- (i32.lt_u
- (local.get $20)
- (local.get $5)
- )
- (call $_abort)
- )
(if
(i32.eq
- (local.get $4)
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $20)
- (i32.const 8)
- )
- )
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $32
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
)
)
- (block
- (local.set $39
- (local.get $2)
+ (block $do-once57
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (local.get $6)
+ )
+ (call $_abort)
)
- (br $do-once57)
+ (if
+ (i32.eq
+ (local.get $2)
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
+ )
+ )
+ )
+ (block
+ (local.set $32
+ (local.get $0)
+ )
+ (br $do-once57)
+ )
+ )
+ (call $_abort)
)
)
- (call $_abort)
+ (i32.store offset=12
+ (local.get $4)
+ (local.get $1)
+ )
+ (i32.store
+ (local.get $32)
+ (local.get $4)
+ )
)
)
- (i32.store offset=12
- (local.get $9)
- (local.get $20)
- )
- (i32.store
- (local.get $39)
- (local.get $9)
+ )
+ (local.set $2
+ (i32.add
+ (local.get $2)
+ (local.get $7)
)
)
+ (i32.add
+ (local.get $7)
+ (local.get $8)
+ )
)
+ (local.get $8)
)
- (local.set $4
- (i32.add
- (local.get $1)
- (local.get $4)
- )
- )
- (local.set $14
- (i32.add
- (local.get $1)
- (local.get $14)
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.and
+ (i32.load offset=4
+ (local.get $2)
)
+ (i32.const -2)
)
)
- )
- (i32.store offset=4
- (local.get $4)
- (i32.and
- (i32.load offset=4
+ (i32.store offset=4
+ (local.get $5)
+ (i32.or
(local.get $4)
+ (i32.const 1)
)
- (i32.const -2)
)
- )
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $14)
- (i32.const 1)
- )
- )
- (i32.store
- (i32.add
- (local.get $3)
- (local.get $14)
- )
- (local.get $14)
- )
- (local.set $6
- (i32.shr_u
- (local.get $14)
- (i32.const 3)
+ (i32.store
+ (i32.add
+ (local.get $4)
+ (local.get $5)
+ )
+ (local.get $4)
)
- )
- (if
- (i32.lt_u
- (local.get $14)
- (i32.const 256)
+ (local.set $1
+ (i32.shr_u
+ (local.get $4)
+ (i32.const 3)
+ )
)
- (block
- (local.set $0
- (i32.add
- (i32.shl
- (local.get $6)
- (i32.const 3)
- )
- (i32.const 216)
- )
+ (if
+ (i32.lt_u
+ (local.get $4)
+ (i32.const 256)
)
- (if
- (i32.and
- (local.tee $2
+ (block
+ (local.set $0
+ (i32.add
(i32.shl
- (i32.const 1)
- (local.get $6)
+ (local.get $1)
+ (i32.const 3)
)
+ (i32.const 216)
)
- (local.tee $23
- (i32.load
- (i32.const 176)
+ )
+ (if
+ (i32.and
+ (local.tee $4
+ (i32.load
+ (i32.const 176)
+ )
+ )
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
)
)
- )
- (block $do-once59
- (if
- (i32.ge_u
- (local.tee $7
- (i32.load
- (local.tee $6
- (i32.add
- (local.get $0)
- (i32.const 8)
+ (block $do-once59
+ (if
+ (i32.ge_u
+ (local.tee $4
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
)
)
)
+ (i32.load
+ (i32.const 192)
+ )
)
- (i32.load
- (i32.const 192)
+ (block
+ (local.set $33
+ (local.get $1)
+ )
+ (local.set $29
+ (local.get $4)
+ )
+ (br $do-once59)
)
)
- (block
- (local.set $40
- (local.get $6)
- )
- (local.set $35
- (local.get $7)
+ (call $_abort)
+ )
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (local.get $1)
+ (local.get $4)
)
- (br $do-once59)
)
- )
- (call $_abort)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (local.get $2)
- (local.get $23)
+ (local.set $33
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
)
- )
- (local.set $40
- (i32.add
+ (local.set $29
(local.get $0)
- (i32.const 8)
)
)
- (local.set $35
- (local.get $0)
- )
)
+ (i32.store
+ (local.get $33)
+ (local.get $5)
+ )
+ (i32.store offset=12
+ (local.get $29)
+ (local.get $5)
+ )
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $29)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $0)
+ )
+ (br $do-once44)
)
- (i32.store
- (local.get $40)
- (local.get $3)
- )
- (i32.store offset=12
- (local.get $35)
- (local.get $3)
- )
- (i32.store offset=8
- (local.get $3)
- (local.get $35)
- )
- (i32.store offset=12
- (local.get $3)
- (local.get $0)
- )
- (br $do-once44)
)
- )
- (local.set $2
- (i32.add
- (local.tee $6
- (i32.shl
- (local.tee $1
- (if (result i32)
- (local.tee $2
- (i32.shr_u
- (local.get $14)
- (i32.const 8)
- )
- )
+ (local.set $3
+ (i32.add
+ (local.tee $1
+ (i32.shl
+ (local.tee $0
(if (result i32)
- (i32.gt_u
- (local.get $14)
- (i32.const 16777215)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $4)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $7
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $1
- (i32.shl
- (local.get $2)
- (local.tee $23
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $2)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $4)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $0)
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $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 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $14)
- (i32.add
- (local.tee $16
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
- (local.tee $1
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $6
- (i32.shl
- (local.get $1)
- (local.get $7)
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $4)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
+ (i32.or
+ (local.tee $6
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $3)
+ (local.get $0)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
)
- )
- (i32.or
- (local.get $7)
- (local.get $23)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
+ )
)
)
- )
- (i32.shr_u
- (i32.shl
- (local.get $6)
- (local.get $1)
+ (i32.shr_u
+ (i32.shl
+ (local.get $3)
+ (local.get $6)
+ )
+ (i32.const 15)
)
- (i32.const 15)
)
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $16)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
+ (i32.const 2)
)
- (i32.const 2)
)
+ (i32.const 480)
)
- (i32.const 480)
)
- )
- (i32.store offset=28
- (local.get $3)
- (local.get $1)
- )
- (i32.store offset=20
- (local.get $3)
- (i32.const 0)
- )
- (i32.store offset=16
- (local.get $3)
- (i32.const 0)
- )
- (if
- (i32.eqz
- (i32.and
- (local.tee $16
- (i32.shl
- (i32.const 1)
- (local.get $1)
+ (i32.store offset=28
+ (local.get $5)
+ (local.get $0)
+ )
+ (i32.store offset=20
+ (local.get $5)
+ (i32.const 0)
+ )
+ (i32.store offset=16
+ (local.get $5)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (local.tee $6
+ (i32.load
+ (i32.const 180)
+ )
)
- )
- (local.tee $0
- (i32.load
- (i32.const 180)
+ (local.tee $2
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
)
)
)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.or
- (local.get $0)
- (local.get $16)
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.or
+ (local.get $2)
+ (local.get $6)
+ )
)
+ (i32.store offset=480
+ (local.get $1)
+ (local.get $5)
+ )
+ (i32.store offset=24
+ (local.get $5)
+ (local.get $3)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $5)
+ )
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $5)
+ )
+ (br $do-once44)
)
- (i32.store offset=480
- (local.get $6)
- (local.get $3)
- )
- (i32.store offset=24
- (local.get $3)
- (local.get $2)
- )
- (i32.store offset=12
- (local.get $3)
- (local.get $3)
- )
- (i32.store offset=8
- (local.get $3)
- (local.get $3)
- )
- (br $do-once44)
)
- )
- (local.set $16
- (i32.shl
- (local.get $14)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
- (local.get $1)
- (i32.const 1)
+ (local.set $17
+ (i32.shl
+ (local.get $4)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ (i32.eq
+ (local.get $0)
+ (i32.const 31)
)
- )
- (i32.eq
- (local.get $1)
- (i32.const 31)
)
)
)
- )
- (local.set $0
- (i32.load offset=480
- (local.get $6)
+ (local.set $0
+ (i32.load offset=480
+ (local.get $1)
+ )
)
- )
- (if
- (i32.eq
- (local.tee $10
- (loop $while-in64 (result i32)
- (block $while-out63 (result i32)
- (if
- (i32.eq
- (local.get $14)
- (i32.and
- (i32.load offset=4
- (local.get $0)
- )
- (i32.const -8)
- )
- )
- (block
- (local.set $41
- (local.get $0)
- )
- (br $while-out63
- (i32.const 281)
- )
+ (loop $while-in64
+ (block $while-out63
+ (if
+ (i32.eq
+ (local.get $4)
+ (i32.and
+ (i32.load offset=4
+ (local.get $0)
)
+ (i32.const -8)
)
- (if (result i32)
- (local.tee $1
- (i32.load
- (local.tee $2
+ )
+ (block
+ (local.set $34
+ (local.get $0)
+ )
+ (local.set $9
+ (i32.const 281)
+ )
+ (br $while-out63)
+ )
+ )
+ (local.set $35
+ (if (result i32)
+ (local.tee $1
+ (i32.load
+ (local.tee $3
+ (i32.add
(i32.add
- (i32.add
- (local.get $0)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $16)
- (i32.const 31)
- )
- (i32.const 2)
+ (local.get $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $17)
+ (i32.const 31)
)
+ (i32.const 2)
)
)
)
)
- (block
- (local.set $16
- (i32.shl
- (local.get $16)
- (i32.const 1)
- )
- )
- (local.set $0
- (local.get $1)
+ )
+ (block
+ (local.set $17
+ (i32.shl
+ (local.get $17)
+ (i32.const 1)
)
- (br $while-in64)
)
- (block (result i32)
- (local.set $42
- (local.get $2)
- )
- (local.set $51
- (local.get $0)
- )
+ (local.set $0
+ (local.get $1)
+ )
+ (br $while-in64)
+ )
+ (block (result i32)
+ (local.set $46
+ (local.get $0)
+ )
+ (local.set $9
(i32.const 278)
)
+ (local.get $3)
)
)
)
)
- (i32.const 278)
)
(if
- (i32.lt_u
- (local.get $42)
- (i32.load
- (i32.const 192)
- )
+ (i32.eq
+ (local.get $9)
+ (i32.const 278)
)
- (call $_abort)
- (block
- (i32.store
- (local.get $42)
- (local.get $3)
- )
- (i32.store offset=24
- (local.get $3)
- (local.get $51)
- )
- (i32.store offset=12
- (local.get $3)
- (local.get $3)
+ (if
+ (i32.lt_u
+ (local.get $35)
+ (i32.load
+ (i32.const 192)
+ )
)
- (i32.store offset=8
- (local.get $3)
- (local.get $3)
+ (call $_abort)
+ (block
+ (i32.store
+ (local.get $35)
+ (local.get $5)
+ )
+ (i32.store offset=24
+ (local.get $5)
+ (local.get $46)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $5)
+ )
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $5)
+ )
)
)
- )
- (if
- (i32.eq
- (local.get $10)
- (i32.const 281)
- )
- (block
- (local.set $0
- (local.get $41)
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 281)
)
(if
(i32.and
(i32.ge_u
- (local.tee $16
+ (local.tee $1
(i32.load offset=8
- (local.get $0)
+ (local.tee $0
+ (local.get $34)
+ )
)
)
- (local.tee $1
+ (local.tee $4
(i32.load
(i32.const 192)
)
@@ -4797,28 +4643,28 @@
)
(i32.ge_u
(local.get $0)
- (local.get $1)
+ (local.get $4)
)
)
(block
(i32.store offset=12
- (local.get $16)
- (local.get $3)
+ (local.get $1)
+ (local.get $5)
)
(i32.store offset=8
(local.get $0)
- (local.get $3)
+ (local.get $5)
)
(i32.store offset=8
- (local.get $3)
- (local.get $16)
+ (local.get $5)
+ (local.get $1)
)
(i32.store offset=12
- (local.get $3)
- (local.get $41)
+ (local.get $5)
+ (local.get $34)
)
(i32.store offset=24
- (local.get $3)
+ (local.get $5)
(i32.const 0)
)
)
@@ -4827,694 +4673,685 @@
)
)
)
- )
- (block
- (i32.store
- (i32.const 188)
- (local.tee $16
- (i32.add
- (local.get $14)
- (i32.load
- (i32.const 188)
+ (block
+ (i32.store
+ (i32.const 188)
+ (local.tee $0
+ (i32.add
+ (local.get $8)
+ (i32.load
+ (i32.const 188)
+ )
)
)
)
+ (i32.store
+ (i32.const 200)
+ (local.get $5)
+ )
+ (i32.store offset=4
+ (local.get $5)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
)
- (i32.store
- (i32.const 200)
- (local.get $3)
+ )
+ (return
+ (i32.add
+ (local.get $14)
+ (i32.const 8)
)
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $16)
- (i32.const 1)
+ )
+ )
+ )
+ )
+ )
+ (loop $while-in66
+ (if
+ (i32.eqz
+ (if (result i32)
+ (i32.le_u
+ (local.tee $0
+ (i32.load
+ (local.get $24)
+ )
+ )
+ (local.get $7)
+ )
+ (i32.gt_u
+ (local.tee $22
+ (i32.add
+ (i32.load offset=4
+ (local.get $24)
+ )
+ (local.get $0)
)
)
+ (local.get $7)
)
+ (i32.const 0)
)
- (return
- (i32.add
- (local.get $13)
- (i32.const 8)
+ )
+ (block
+ (local.set $24
+ (i32.load offset=8
+ (local.get $24)
)
)
+ (br $while-in66)
)
)
)
- )
- (local.set $3
- (i32.add
- (local.tee $1
- (local.tee $13
- (select
- (local.get $12)
- (local.tee $3
- (i32.add
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $14
- (i32.add
- (local.tee $13
- (i32.add
- (local.tee $0
- (loop $while-in66 (result i32)
- (if (result i32)
- (if (result i32)
- (i32.le_u
- (local.tee $3
- (i32.load
- (local.get $27)
- )
- )
- (local.get $12)
- )
- (i32.gt_u
- (local.tee $14
- (i32.add
- (i32.load offset=4
- (local.get $27)
- )
- (local.get $3)
- )
- )
- (local.get $12)
- )
- (i32.const 0)
- )
- (local.get $14)
- (block
- (local.set $27
- (i32.load offset=8
- (local.get $27)
- )
- )
- (br $while-in66)
- )
- )
- )
- )
- (i32.const -47)
- )
- )
- (i32.const 8)
- )
- )
- )
- (i32.const 7)
- )
+ (i32.store
+ (i32.const 200)
+ (local.tee $0
+ (i32.add
+ (local.get $3)
+ (local.tee $1
+ (select
+ (i32.and
+ (i32.sub
(i32.const 0)
- (i32.and
- (local.get $14)
- (i32.const 7)
+ (local.tee $0
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
)
)
- (local.get $13)
+ (i32.const 7)
)
- )
- (i32.lt_u
- (local.get $3)
- (local.tee $14
- (i32.add
- (local.get $12)
- (i32.const 16)
- )
+ (i32.const 0)
+ (i32.and
+ (local.get $0)
+ (i32.const 7)
)
)
)
)
)
- (i32.const 8)
)
- )
- (i32.store
- (i32.const 200)
- (local.tee $4
+ (i32.store
+ (i32.const 188)
+ (local.tee $1
+ (i32.sub
+ (i32.add
+ (local.get $10)
+ (i32.const -40)
+ )
+ (local.get $1)
+ )
+ )
+ )
+ (i32.store offset=4
+ (local.get $0)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4
(i32.add
- (local.get $21)
- (local.tee $18
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $4
- (i32.add
- (local.get $21)
- (i32.const 8)
+ (local.get $0)
+ (local.get $1)
+ )
+ (i32.const 40)
+ )
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
+ )
+ )
+ (i32.store offset=4
+ (local.tee $0
+ (select
+ (local.get $7)
+ (local.tee $0
+ (i32.add
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (local.get $22)
+ (i32.const -47)
+ )
+ )
+ (i32.const 8)
+ )
+ )
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
)
)
- (i32.const 7)
+ (local.get $0)
)
- (i32.const 0)
- (i32.and
- (local.get $4)
- (i32.const 7)
+ )
+ (i32.lt_u
+ (local.get $0)
+ (local.tee $2
+ (i32.add
+ (local.get $7)
+ (i32.const 16)
+ )
)
)
)
)
+ (i32.const 27)
)
- )
- (i32.store
- (i32.const 188)
- (local.tee $16
- (i32.sub
- (i32.add
- (local.get $22)
- (i32.const -40)
- )
- (local.get $18)
+ (i32.store offset=8
+ (local.get $0)
+ (i32.load
+ (i32.const 624)
)
)
- )
- (i32.store offset=4
- (local.get $4)
- (i32.or
- (local.get $16)
- (i32.const 1)
+ (i32.store offset=12
+ (local.get $0)
+ (i32.load
+ (i32.const 628)
+ )
)
- )
- (i32.store offset=4
- (i32.add
- (local.get $4)
- (local.get $16)
+ (i32.store offset=16
+ (local.get $0)
+ (i32.load
+ (i32.const 632)
+ )
)
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
+ (i32.store offset=20
+ (local.get $0)
+ (i32.load
+ (i32.const 636)
+ )
)
- )
- (local.set $2
- (local.get $13)
- )
- (i32.store offset=4
- (local.get $2)
- (i32.const 27)
- )
- (i32.store offset=8
- (local.get $1)
- (i32.load
+ (i32.store
(i32.const 624)
+ (local.get $3)
)
- )
- (i32.store offset=12
- (local.get $1)
- (i32.load
+ (i32.store
(i32.const 628)
+ (local.get $10)
)
- )
- (i32.store offset=16
- (local.get $1)
- (i32.load
- (i32.const 632)
- )
- )
- (i32.store offset=20
- (local.get $1)
- (i32.load
+ (i32.store
(i32.const 636)
+ (i32.const 0)
)
- )
- (i32.store
- (i32.const 624)
- (local.get $21)
- )
- (i32.store
- (i32.const 628)
- (local.get $22)
- )
- (i32.store
- (i32.const 636)
- (i32.const 0)
- )
- (i32.store
- (i32.const 632)
- (local.get $3)
- )
- (local.set $3
- (i32.add
- (local.get $2)
- (i32.const 24)
- )
- )
- (loop $do-in68
(i32.store
- (local.tee $3
- (i32.add
- (local.get $3)
- (i32.const 4)
- )
+ (i32.const 632)
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
)
- (i32.const 7)
)
- (br_if $do-in68
- (i32.lt_u
- (i32.add
- (local.get $3)
- (i32.const 4)
- )
+ (local.set $1
+ (i32.add
(local.get $0)
+ (i32.const 24)
)
)
- )
- (if
- (i32.ne
- (local.get $12)
- (local.get $13)
- )
- (block
- (i32.store offset=4
- (local.get $2)
- (i32.and
- (i32.load offset=4
- (local.get $2)
+ (loop $do-in68
+ (i32.store
+ (local.tee $1
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
)
- (i32.const -2)
)
+ (i32.const 7)
)
- (i32.store offset=4
- (local.get $12)
- (i32.or
- (local.tee $3
- (i32.sub
- (local.get $13)
- (local.get $12)
- )
+ (br_if $do-in68
+ (i32.lt_u
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
)
- (i32.const 1)
+ (local.get $22)
)
)
- (i32.store
- (local.get $13)
- (local.get $3)
- )
- (local.set $4
- (i32.shr_u
- (local.get $3)
- (i32.const 3)
- )
+ )
+ (if
+ (i32.ne
+ (local.get $0)
+ (local.get $7)
)
- (if
- (i32.lt_u
- (local.get $3)
- (i32.const 256)
+ (block
+ (i32.store offset=4
+ (local.get $0)
+ (i32.and
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const -2)
+ )
)
- (block
- (local.set $18
- (i32.add
- (i32.shl
- (local.get $4)
- (i32.const 3)
+ (i32.store offset=4
+ (local.get $7)
+ (i32.or
+ (local.tee $6
+ (i32.sub
+ (local.get $0)
+ (local.get $7)
)
- (i32.const 216)
)
+ (i32.const 1)
)
- (if
- (i32.and
- (local.tee $1
+ )
+ (i32.store
+ (local.get $0)
+ (local.get $6)
+ )
+ (local.set $1
+ (i32.shr_u
+ (local.get $6)
+ (i32.const 3)
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $6)
+ (i32.const 256)
+ )
+ (block
+ (local.set $0
+ (i32.add
(i32.shl
- (i32.const 1)
- (local.get $4)
- )
- )
- (local.tee $0
- (i32.load
- (i32.const 176)
+ (local.get $1)
+ (i32.const 3)
)
+ (i32.const 216)
)
)
(if
- (i32.lt_u
- (local.tee $2
+ (i32.and
+ (local.tee $3
(i32.load
- (local.tee $4
- (i32.add
- (local.get $18)
- (i32.const 8)
+ (i32.const 176)
+ )
+ )
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.tee $3
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
)
)
)
+ (i32.load
+ (i32.const 192)
+ )
)
- (i32.load
- (i32.const 192)
+ (call $_abort)
+ (block
+ (local.set $36
+ (local.get $1)
+ )
+ (local.set $30
+ (local.get $3)
+ )
)
)
- (call $_abort)
(block
- (local.set $43
- (local.get $4)
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (local.get $1)
+ (local.get $3)
+ )
)
(local.set $36
- (local.get $2)
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
)
- )
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
+ (local.set $30
(local.get $0)
- (local.get $1)
)
)
- (local.set $43
- (i32.add
- (local.get $18)
- (i32.const 8)
- )
- )
- (local.set $36
- (local.get $18)
- )
)
+ (i32.store
+ (local.get $36)
+ (local.get $7)
+ )
+ (i32.store offset=12
+ (local.get $30)
+ (local.get $7)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $30)
+ )
+ (i32.store offset=12
+ (local.get $7)
+ (local.get $0)
+ )
+ (br $do-once40)
)
- (i32.store
- (local.get $43)
- (local.get $12)
- )
- (i32.store offset=12
- (local.get $36)
- (local.get $12)
- )
- (i32.store offset=8
- (local.get $12)
- (local.get $36)
- )
- (i32.store offset=12
- (local.get $12)
- (local.get $18)
- )
- (br $do-once40)
)
- )
- (local.set $4
- (i32.add
- (local.tee $6
- (i32.shl
- (local.tee $1
- (if (result i32)
- (local.tee $18
- (i32.shr_u
- (local.get $3)
- (i32.const 8)
- )
- )
+ (local.set $3
+ (i32.add
+ (local.tee $1
+ (i32.shl
+ (local.tee $0
(if (result i32)
- (i32.gt_u
- (local.get $3)
- (i32.const 16777215)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $6)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $18
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $18)
- (local.tee $1
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $18)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $6)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $0)
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $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 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $3)
- (i32.add
- (local.tee $4
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
- (local.tee $0
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $2
- (i32.shl
- (local.get $0)
- (local.get $18)
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $6)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
+ (i32.or
+ (local.tee $8
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $3)
+ (local.get $0)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
)
- )
- (i32.or
- (local.get $1)
- (local.get $18)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
+ )
)
)
- )
- (i32.shr_u
- (i32.shl
- (local.get $2)
- (local.get $0)
+ (i32.shr_u
+ (i32.shl
+ (local.get $3)
+ (local.get $8)
+ )
+ (i32.const 15)
)
- (i32.const 15)
)
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $4)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
+ (i32.const 2)
)
- (i32.const 2)
)
+ (i32.const 480)
)
- (i32.const 480)
)
- )
- (i32.store offset=28
- (local.get $12)
- (local.get $1)
- )
- (i32.store offset=20
- (local.get $12)
- (i32.const 0)
- )
- (i32.store
- (local.get $14)
- (i32.const 0)
- )
- (if
- (i32.eqz
- (i32.and
- (local.tee $2
- (i32.shl
- (i32.const 1)
- (local.get $1)
+ (i32.store offset=28
+ (local.get $7)
+ (local.get $0)
+ )
+ (i32.store offset=20
+ (local.get $7)
+ (i32.const 0)
+ )
+ (i32.store
+ (local.get $2)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (local.tee $2
+ (i32.load
+ (i32.const 180)
+ )
)
- )
- (local.tee $0
- (i32.load
- (i32.const 180)
+ (local.tee $8
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
)
)
)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.or
- (local.get $0)
- (local.get $2)
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.or
+ (local.get $2)
+ (local.get $8)
+ )
)
+ (i32.store offset=480
+ (local.get $1)
+ (local.get $7)
+ )
+ (i32.store offset=24
+ (local.get $7)
+ (local.get $3)
+ )
+ (i32.store offset=12
+ (local.get $7)
+ (local.get $7)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $7)
+ )
+ (br $do-once40)
)
- (i32.store offset=480
- (local.get $6)
- (local.get $12)
- )
- (i32.store offset=24
- (local.get $12)
- (local.get $4)
- )
- (i32.store offset=12
- (local.get $12)
- (local.get $12)
- )
- (i32.store offset=8
- (local.get $12)
- (local.get $12)
- )
- (br $do-once40)
)
- )
- (local.set $2
- (i32.shl
- (local.get $3)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
- (local.get $1)
- (i32.const 1)
+ (local.set $5
+ (i32.shl
+ (local.get $6)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ (i32.eq
+ (local.get $0)
+ (i32.const 31)
)
- )
- (i32.eq
- (local.get $1)
- (i32.const 31)
)
)
)
- )
- (local.set $0
- (i32.load offset=480
- (local.get $6)
+ (local.set $0
+ (i32.load offset=480
+ (local.get $1)
+ )
)
- )
- (if
- (i32.eq
- (local.tee $10
- (loop $while-in70 (result i32)
- (block $while-out69 (result i32)
- (if
- (i32.eq
- (local.get $3)
- (i32.and
- (i32.load offset=4
- (local.get $0)
- )
- (i32.const -8)
- )
- )
- (block
- (local.set $44
- (local.get $0)
- )
- (br $while-out69
- (i32.const 307)
- )
+ (loop $while-in70
+ (block $while-out69
+ (if
+ (i32.eq
+ (local.get $6)
+ (i32.and
+ (i32.load offset=4
+ (local.get $0)
)
+ (i32.const -8)
)
- (if (result i32)
- (local.tee $1
- (i32.load
- (local.tee $4
+ )
+ (block
+ (local.set $37
+ (local.get $0)
+ )
+ (local.set $9
+ (i32.const 307)
+ )
+ (br $while-out69)
+ )
+ )
+ (local.set $38
+ (if (result i32)
+ (local.tee $1
+ (i32.load
+ (local.tee $3
+ (i32.add
(i32.add
- (i32.add
- (local.get $0)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $2)
- (i32.const 31)
- )
- (i32.const 2)
+ (local.get $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $5)
+ (i32.const 31)
)
+ (i32.const 2)
)
)
)
)
- (block
- (local.set $2
- (i32.shl
- (local.get $2)
- (i32.const 1)
- )
- )
- (local.set $0
- (local.get $1)
+ )
+ (block
+ (local.set $5
+ (i32.shl
+ (local.get $5)
+ (i32.const 1)
)
- (br $while-in70)
)
- (block (result i32)
- (local.set $45
- (local.get $4)
- )
- (local.set $52
- (local.get $0)
- )
+ (local.set $0
+ (local.get $1)
+ )
+ (br $while-in70)
+ )
+ (block (result i32)
+ (local.set $47
+ (local.get $0)
+ )
+ (local.set $9
(i32.const 304)
)
+ (local.get $3)
)
)
)
)
- (i32.const 304)
)
(if
- (i32.lt_u
- (local.get $45)
- (i32.load
- (i32.const 192)
- )
+ (i32.eq
+ (local.get $9)
+ (i32.const 304)
)
- (call $_abort)
- (block
- (i32.store
- (local.get $45)
- (local.get $12)
- )
- (i32.store offset=24
- (local.get $12)
- (local.get $52)
- )
- (i32.store offset=12
- (local.get $12)
- (local.get $12)
+ (if
+ (i32.lt_u
+ (local.get $38)
+ (i32.load
+ (i32.const 192)
+ )
)
- (i32.store offset=8
- (local.get $12)
- (local.get $12)
+ (call $_abort)
+ (block
+ (i32.store
+ (local.get $38)
+ (local.get $7)
+ )
+ (i32.store offset=24
+ (local.get $7)
+ (local.get $47)
+ )
+ (i32.store offset=12
+ (local.get $7)
+ (local.get $7)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $7)
+ )
)
)
- )
- (if
- (i32.eq
- (local.get $10)
- (i32.const 307)
- )
- (block
- (local.set $0
- (local.get $44)
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 307)
)
(if
(i32.and
(i32.ge_u
- (local.tee $2
+ (local.tee $1
(i32.load offset=8
- (local.get $0)
+ (local.tee $0
+ (local.get $37)
+ )
)
)
(local.tee $3
@@ -5530,23 +5367,23 @@
)
(block
(i32.store offset=12
- (local.get $2)
- (local.get $12)
+ (local.get $1)
+ (local.get $7)
)
(i32.store offset=8
(local.get $0)
- (local.get $12)
+ (local.get $7)
)
(i32.store offset=8
- (local.get $12)
- (local.get $2)
+ (local.get $7)
+ (local.get $1)
)
(i32.store offset=12
- (local.get $12)
- (local.get $44)
+ (local.get $7)
+ (local.get $37)
)
(i32.store offset=24
- (local.get $12)
+ (local.get $7)
(i32.const 0)
)
)
@@ -5557,208 +5394,206 @@
)
)
)
- )
- (block
- (if
- (i32.or
- (i32.eqz
- (local.tee $2
- (i32.load
- (i32.const 192)
+ (block
+ (if
+ (i32.or
+ (i32.eqz
+ (local.tee $0
+ (i32.load
+ (i32.const 192)
+ )
)
)
+ (i32.lt_u
+ (local.get $3)
+ (local.get $0)
+ )
)
- (i32.lt_u
- (local.get $21)
- (local.get $2)
+ (i32.store
+ (i32.const 192)
+ (local.get $3)
)
)
(i32.store
- (i32.const 192)
- (local.get $21)
+ (i32.const 624)
+ (local.get $3)
)
- )
- (i32.store
- (i32.const 624)
- (local.get $21)
- )
- (i32.store
- (i32.const 628)
- (local.get $22)
- )
- (i32.store
- (i32.const 636)
- (i32.const 0)
- )
- (i32.store
- (i32.const 212)
- (i32.load
- (i32.const 648)
+ (i32.store
+ (i32.const 628)
+ (local.get $10)
)
- )
- (i32.store
- (i32.const 208)
- (i32.const -1)
- )
- (local.set $2
- (i32.const 0)
- )
- (loop $do-in72
- (local.set $0
- (i32.add
- (local.tee $1
- (i32.shl
- (local.get $2)
- (i32.const 3)
- )
- )
- (i32.const 216)
+ (i32.store
+ (i32.const 636)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 212)
+ (i32.load
+ (i32.const 648)
)
)
- (i32.store offset=228
- (local.get $1)
- (local.get $0)
+ (i32.store
+ (i32.const 208)
+ (i32.const -1)
)
- (i32.store offset=224
- (local.get $1)
- (local.get $0)
+ (local.set $5
+ (i32.const 0)
)
- (br_if $do-in72
- (i32.ne
- (local.tee $2
- (i32.add
- (local.get $2)
- (i32.const 1)
+ (loop $do-in72
+ (local.set $1
+ (i32.add
+ (local.tee $0
+ (i32.shl
+ (local.get $5)
+ (i32.const 3)
+ )
)
+ (i32.const 216)
+ )
+ )
+ (i32.store offset=228
+ (local.get $0)
+ (local.get $1)
+ )
+ (i32.store offset=224
+ (local.get $0)
+ (local.get $1)
+ )
+ (br_if $do-in72
+ (i32.ne
+ (local.tee $5
+ (i32.add
+ (local.get $5)
+ (i32.const 1)
+ )
+ )
+ (i32.const 32)
)
- (i32.const 32)
)
)
- )
- (i32.store
- (i32.const 200)
- (local.tee $2
- (i32.add
- (local.get $21)
- (local.tee $0
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $2
- (i32.add
- (local.get $21)
- (i32.const 8)
+ (i32.store
+ (i32.const 200)
+ (local.tee $0
+ (i32.add
+ (local.get $3)
+ (local.tee $1
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $0
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
)
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $0)
+ (i32.const 7)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $2)
- (i32.const 7)
)
)
)
)
)
- )
- (i32.store
- (i32.const 188)
- (local.tee $3
- (i32.sub
- (i32.add
- (local.get $22)
- (i32.const -40)
+ (i32.store
+ (i32.const 188)
+ (local.tee $1
+ (i32.sub
+ (i32.add
+ (local.get $10)
+ (i32.const -40)
+ )
+ (local.get $1)
)
- (local.get $0)
)
)
- )
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $3)
- (i32.const 1)
- )
- )
- (i32.store offset=4
- (i32.add
- (local.get $2)
- (local.get $3)
- )
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
- )
- )
- )
- )
- (if
- (i32.gt_u
- (local.tee $22
- (i32.load
- (i32.const 188)
- )
- )
- (local.get $8)
- )
- (block
- (i32.store
- (i32.const 188)
- (local.tee $21
- (i32.sub
- (local.get $22)
- (local.get $8)
+ (i32.store offset=4
+ (local.get $0)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
)
)
- )
- (i32.store
- (i32.const 200)
- (local.tee $12
+ (i32.store offset=4
(i32.add
- (local.get $8)
- (local.tee $22
- (i32.load
- (i32.const 200)
- )
- )
+ (local.get $0)
+ (local.get $1)
)
+ (i32.const 40)
)
- )
- (i32.store offset=4
- (local.get $12)
- (i32.or
- (local.get $21)
- (i32.const 1)
- )
- )
- (i32.store offset=4
- (local.get $22)
- (i32.or
- (local.get $8)
- (i32.const 3)
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
+ )
)
)
- (return
- (i32.add
- (local.get $22)
- (i32.const 8)
+ )
+ (br_if $folding-inner0
+ (i32.gt_u
+ (local.tee $0
+ (i32.load
+ (i32.const 188)
+ )
)
+ (local.get $4)
)
)
)
)
+ (i32.store
+ (call $___errno_location)
+ (i32.const 12)
+ )
+ (return
+ (i32.const 0)
+ )
)
(i32.store
- (call $___errno_location)
- (i32.const 12)
+ (i32.const 188)
+ (local.tee $1
+ (i32.sub
+ (local.get $0)
+ (local.get $4)
+ )
+ )
+ )
+ (i32.store
+ (i32.const 200)
+ (local.tee $3
+ (i32.add
+ (local.get $4)
+ (local.tee $0
+ (i32.load
+ (i32.const 200)
+ )
+ )
+ )
+ )
+ )
+ (i32.store offset=4
+ (local.get $3)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4
+ (local.get $0)
+ (i32.or
+ (local.get $4)
+ (i32.const 3)
+ )
+ )
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
)
- (i32.const 0)
)
(func $_free (; 16 ;) (; has Stack IR ;) (param $0 i32)
(local $1 i32)
@@ -5787,7 +5622,7 @@
)
(if
(i32.lt_u
- (local.tee $1
+ (local.tee $3
(i32.add
(local.get $0)
(i32.const -8)
@@ -5803,9 +5638,9 @@
)
(if
(i32.eq
- (local.tee $0
+ (local.tee $9
(i32.and
- (local.tee $2
+ (local.tee $0
(i32.load
(i32.add
(local.get $0)
@@ -5820,12 +5655,12 @@
)
(call $_abort)
)
- (local.set $8
+ (local.set $6
(i32.add
- (local.get $1)
- (local.tee $7
+ (local.get $3)
+ (local.tee $4
(i32.and
- (local.get $2)
+ (local.get $0)
(i32.const -8)
)
)
@@ -5833,64 +5668,60 @@
)
(if
(i32.and
- (local.get $2)
+ (local.get $0)
(i32.const 1)
)
(block
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $3)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $4)
)
)
(block $do-once
- (local.set $9
- (i32.load
- (local.get $1)
- )
- )
(if
(i32.eqz
- (local.get $0)
- )
- (return)
- )
- (local.set $7
- (i32.add
- (local.get $7)
(local.get $9)
)
+ (return)
)
(if
(i32.lt_u
- (local.tee $1
+ (local.tee $0
(i32.sub
- (local.get $1)
- (local.get $9)
+ (local.get $3)
+ (local.tee $9
+ (i32.load
+ (local.get $3)
+ )
+ )
)
)
(local.get $13)
)
(call $_abort)
)
+ (local.set $3
+ (i32.add
+ (local.get $4)
+ (local.get $9)
+ )
+ )
(if
(i32.eq
(i32.load
(i32.const 196)
)
- (local.get $1)
+ (local.get $0)
)
(block
- (local.set $0
- (local.get $8)
- )
(if
(i32.ne
(i32.and
- (local.tee $6
+ (local.tee $1
(i32.load offset=4
- (local.get $0)
+ (local.get $6)
)
)
(i32.const 3)
@@ -5898,44 +5729,44 @@
(i32.const 3)
)
(block
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
)
(i32.store
(i32.const 184)
- (local.get $7)
+ (local.get $3)
)
(i32.store offset=4
- (local.get $0)
+ (local.get $6)
(i32.and
- (local.get $6)
+ (local.get $1)
(i32.const -2)
)
)
(i32.store offset=4
- (local.get $1)
+ (local.get $0)
(i32.or
- (local.get $7)
+ (local.get $3)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $1)
- (local.get $7)
+ (local.get $0)
+ (local.get $3)
)
- (local.get $7)
+ (local.get $3)
)
(return)
)
)
- (local.set $6
+ (local.set $11
(i32.shr_u
(local.get $9)
(i32.const 3)
@@ -5947,22 +5778,22 @@
(i32.const 256)
)
(block
- (local.set $0
+ (local.set $2
(i32.load offset=12
- (local.get $1)
+ (local.get $0)
)
)
(if
(i32.ne
- (local.tee $9
+ (local.tee $4
(i32.load offset=8
- (local.get $1)
+ (local.get $0)
)
)
- (local.tee $2
+ (local.tee $1
(i32.add
(i32.shl
- (local.get $6)
+ (local.get $11)
(i32.const 3)
)
(i32.const 216)
@@ -5972,16 +5803,16 @@
(block
(if
(i32.lt_u
- (local.get $9)
+ (local.get $4)
(local.get $13)
)
(call $_abort)
)
(if
(i32.ne
- (local.get $1)
+ (local.get $0)
(i32.load offset=12
- (local.get $9)
+ (local.get $4)
)
)
(call $_abort)
@@ -5990,8 +5821,8 @@
)
(if
(i32.eq
- (local.get $0)
- (local.get $9)
+ (local.get $2)
+ (local.get $4)
)
(block
(i32.store
@@ -6003,99 +5834,99 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $6)
+ (local.get $11)
)
(i32.const -1)
)
)
)
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
)
(if
(i32.ne
- (local.get $0)
+ (local.get $1)
(local.get $2)
)
(block
(if
(i32.lt_u
- (local.get $0)
+ (local.get $2)
(local.get $13)
)
(call $_abort)
)
(if
(i32.eq
- (local.get $1)
+ (local.get $0)
(i32.load
- (local.tee $2
+ (local.tee $1
(i32.add
- (local.get $0)
+ (local.get $2)
(i32.const 8)
)
)
)
)
- (local.set $10
- (local.get $2)
+ (local.set $5
+ (local.get $1)
)
(call $_abort)
)
)
- (local.set $10
+ (local.set $5
(i32.add
- (local.get $0)
+ (local.get $2)
(i32.const 8)
)
)
)
(i32.store offset=12
- (local.get $9)
- (local.get $0)
+ (local.get $4)
+ (local.get $2)
)
(i32.store
- (local.get $10)
- (local.get $9)
+ (local.get $5)
+ (local.get $4)
)
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
)
- (local.set $9
+ (local.set $12
(i32.load offset=24
- (local.get $1)
+ (local.get $0)
)
)
(if
(i32.eq
- (local.get $1)
- (local.tee $0
+ (local.get $0)
+ (local.tee $4
(i32.load offset=12
- (local.get $1)
+ (local.get $0)
)
)
)
(block $do-once0
(if
- (local.tee $10
+ (local.tee $4
(i32.load
- (local.tee $6
+ (local.tee $9
(i32.add
- (local.tee $2
+ (local.tee $5
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 16)
)
)
@@ -6104,84 +5935,76 @@
)
)
)
- (block
- (local.set $0
- (local.get $10)
- )
- (local.set $2
- (local.get $6)
- )
+ (local.set $5
+ (local.get $9)
)
(br_if $do-once0
(i32.eqz
- (local.tee $0
+ (local.tee $4
(i32.load
- (local.get $2)
+ (local.get $5)
)
)
)
)
)
- (local.set $6
- (loop $while-in (result i32)
- (if
- (local.tee $10
- (i32.load
- (local.tee $6
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
+ (loop $while-in
+ (if
+ (local.tee $11
+ (i32.load
+ (local.tee $9
+ (i32.add
+ (local.get $4)
+ (i32.const 20)
)
)
)
- (block
- (local.set $0
- (local.get $10)
- )
- (local.set $2
- (local.get $6)
- )
- (br $while-in)
+ )
+ (block
+ (local.set $4
+ (local.get $11)
)
+ (local.set $5
+ (local.get $9)
+ )
+ (br $while-in)
)
- (if (result i32)
- (local.tee $10
- (i32.load
- (local.tee $6
- (i32.add
- (local.get $0)
- (i32.const 16)
- )
+ )
+ (if
+ (local.tee $11
+ (i32.load
+ (local.tee $9
+ (i32.add
+ (local.get $4)
+ (i32.const 16)
)
)
)
- (block
- (local.set $0
- (local.get $10)
- )
- (local.set $2
- (local.get $6)
- )
- (br $while-in)
+ )
+ (block
+ (local.set $4
+ (local.get $11)
)
- (local.get $0)
+ (local.set $5
+ (local.get $9)
+ )
+ (br $while-in)
)
)
)
(if
(i32.lt_u
- (local.get $2)
+ (local.get $5)
(local.get $13)
)
(call $_abort)
(block
(i32.store
- (local.get $2)
+ (local.get $5)
(i32.const 0)
)
- (local.set $5
- (local.get $6)
+ (local.set $7
+ (local.get $4)
)
)
)
@@ -6189,48 +6012,42 @@
(block
(if
(i32.lt_u
- (local.tee $6
+ (local.tee $5
(i32.load offset=8
- (local.get $1)
+ (local.get $0)
)
)
(local.get $13)
)
(call $_abort)
)
- (local.set $2
- (local.get $6)
- )
(if
(i32.ne
- (local.get $1)
+ (local.get $0)
(i32.load offset=12
- (local.get $2)
+ (local.get $5)
)
)
(call $_abort)
)
- (local.set $10
- (local.get $0)
- )
(if
(i32.eq
- (local.get $1)
+ (local.get $0)
(i32.load offset=8
- (local.get $0)
+ (local.get $4)
)
)
(block
(i32.store offset=12
- (local.get $2)
- (local.get $0)
+ (local.get $5)
+ (local.get $4)
)
(i32.store offset=8
- (local.get $10)
- (local.get $6)
+ (local.get $4)
+ (local.get $5)
)
- (local.set $5
- (local.get $0)
+ (local.set $7
+ (local.get $4)
)
)
(call $_abort)
@@ -6238,33 +6055,32 @@
)
)
(if
- (local.get $9)
+ (local.get $12)
(block
- (local.set $2
- (i32.shl
- (local.tee $0
- (i32.load offset=28
- (local.get $1)
- )
- )
- (i32.const 2)
- )
- )
(if
(i32.eq
(i32.load offset=480
- (local.get $2)
+ (local.tee $5
+ (i32.shl
+ (local.tee $4
+ (i32.load offset=28
+ (local.get $0)
+ )
+ )
+ (i32.const 2)
+ )
+ )
)
- (local.get $1)
+ (local.get $0)
)
(block
(i32.store offset=480
- (local.get $2)
(local.get $5)
+ (local.get $7)
)
(if
(i32.eqz
- (local.get $5)
+ (local.get $7)
)
(block
(i32.store
@@ -6276,17 +6092,17 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $0)
+ (local.get $4)
)
(i32.const -1)
)
)
)
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
@@ -6295,42 +6111,39 @@
(block
(if
(i32.lt_u
- (local.get $9)
+ (local.get $12)
(i32.load
(i32.const 192)
)
)
(call $_abort)
)
- (local.set $0
- (local.get $9)
- )
(if
(i32.eq
- (local.get $1)
+ (local.get $0)
(i32.load offset=16
- (local.get $0)
+ (local.get $12)
)
)
(i32.store offset=16
- (local.get $0)
- (local.get $5)
+ (local.get $12)
+ (local.get $7)
)
(i32.store offset=20
- (local.get $9)
- (local.get $5)
+ (local.get $12)
+ (local.get $7)
)
)
(if
(i32.eqz
- (local.get $5)
+ (local.get $7)
)
(block
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
@@ -6339,8 +6152,8 @@
)
(if
(i32.lt_u
- (local.get $5)
- (local.tee $0
+ (local.get $7)
+ (local.tee $5
(i32.load
(i32.const 192)
)
@@ -6349,45 +6162,42 @@
(call $_abort)
)
(i32.store offset=24
- (local.get $5)
- (local.get $9)
- )
- (local.set $6
- (local.get $1)
+ (local.get $7)
+ (local.get $12)
)
(if
- (local.tee $2
+ (local.tee $4
(i32.load offset=16
- (local.get $1)
+ (local.get $0)
)
)
(if
(i32.lt_u
- (local.get $2)
- (local.get $0)
+ (local.get $4)
+ (local.get $5)
)
(call $_abort)
(block
(i32.store offset=16
- (local.get $5)
- (local.get $2)
+ (local.get $7)
+ (local.get $4)
)
(i32.store offset=24
- (local.get $2)
- (local.get $5)
+ (local.get $4)
+ (local.get $7)
)
)
)
)
(if
- (local.tee $2
+ (local.tee $4
(i32.load offset=20
- (local.get $6)
+ (local.get $0)
)
)
(if
(i32.lt_u
- (local.get $2)
+ (local.get $4)
(i32.load
(i32.const 192)
)
@@ -6395,37 +6205,37 @@
(call $_abort)
(block
(i32.store offset=20
- (local.get $5)
- (local.get $2)
+ (local.get $7)
+ (local.get $4)
)
(i32.store offset=24
- (local.get $2)
- (local.get $5)
+ (local.get $4)
+ (local.get $7)
)
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
)
)
(block
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
)
)
)
(block
- (local.set $3
- (local.get $1)
+ (local.set $2
+ (local.get $0)
)
- (local.set $4
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
)
)
@@ -6433,20 +6243,17 @@
)
(if
(i32.ge_u
- (local.get $3)
- (local.get $8)
+ (local.get $2)
+ (local.get $6)
)
(call $_abort)
)
- (local.set $0
- (local.get $8)
- )
(if
(i32.eqz
(i32.and
- (local.tee $1
+ (local.tee $0
(i32.load offset=4
- (local.get $0)
+ (local.get $6)
)
)
(i32.const 1)
@@ -6454,637 +6261,619 @@
)
(call $_abort)
)
- (local.set $4
- (i32.shr_u
- (local.tee $0
- (if (result i32)
- (i32.and
- (local.get $1)
- (i32.const 2)
+ (if
+ (i32.and
+ (local.get $0)
+ (i32.const 2)
+ )
+ (block
+ (i32.store offset=4
+ (local.get $6)
+ (i32.and
+ (local.get $0)
+ (i32.const -2)
+ )
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (local.get $1)
+ (local.get $2)
+ )
+ (local.get $1)
+ )
+ )
+ (block
+ (if
+ (i32.eq
+ (i32.load
+ (i32.const 200)
)
- (block (result i32)
- (i32.store offset=4
- (local.get $0)
- (i32.and
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (i32.const 188)
+ (local.tee $0
+ (i32.add
(local.get $1)
- (i32.const -2)
+ (i32.load
+ (i32.const 188)
+ )
)
)
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $4)
- (i32.const 1)
- )
+ )
+ (i32.store
+ (i32.const 200)
+ (local.get $2)
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
)
- (i32.store
- (i32.add
- (local.get $3)
- (local.get $4)
+ )
+ (if
+ (i32.ne
+ (i32.load
+ (i32.const 196)
)
- (local.get $4)
+ (local.get $2)
)
- (local.get $4)
+ (return)
)
- (block (result i32)
- (if
- (i32.eq
+ (i32.store
+ (i32.const 196)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 184)
+ (i32.const 0)
+ )
+ (return)
+ )
+ )
+ (if
+ (i32.eq
+ (i32.load
+ (i32.const 196)
+ )
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (i32.const 184)
+ (local.tee $0
+ (i32.add
+ (local.get $1)
(i32.load
- (i32.const 200)
- )
- (local.get $8)
- )
- (block
- (i32.store
- (i32.const 188)
- (local.tee $5
- (i32.add
- (local.get $4)
- (i32.load
- (i32.const 188)
- )
- )
- )
- )
- (i32.store
- (i32.const 200)
- (local.get $3)
- )
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $5)
- (i32.const 1)
- )
- )
- (if
- (i32.ne
- (i32.load
- (i32.const 196)
- )
- (local.get $3)
- )
- (return)
- )
- (i32.store
- (i32.const 196)
- (i32.const 0)
- )
- (i32.store
(i32.const 184)
- (i32.const 0)
)
- (return)
+ )
+ )
+ )
+ (i32.store
+ (i32.const 196)
+ (local.get $2)
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (local.get $2)
+ )
+ (local.get $0)
+ )
+ (return)
+ )
+ )
+ (local.set $5
+ (i32.add
+ (local.get $1)
+ (i32.and
+ (local.get $0)
+ (i32.const -8)
+ )
+ )
+ )
+ (local.set $4
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 3)
+ )
+ )
+ (block $do-once4
+ (if
+ (i32.ge_u
+ (local.get $0)
+ (i32.const 256)
+ )
+ (block
+ (local.set $7
+ (i32.load offset=24
+ (local.get $6)
)
)
(if
(i32.eq
- (i32.load
- (i32.const 196)
+ (local.get $6)
+ (local.tee $0
+ (i32.load offset=12
+ (local.get $6)
+ )
)
- (local.get $8)
)
- (block
- (i32.store
- (i32.const 184)
- (local.tee $5
- (i32.add
- (local.get $4)
- (i32.load
- (i32.const 184)
+ (block $do-once6
+ (if
+ (local.tee $0
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.tee $1
+ (i32.add
+ (local.get $6)
+ (i32.const 16)
+ )
+ )
+ (i32.const 4)
+ )
)
)
)
- )
- (i32.store
- (i32.const 196)
- (local.get $3)
- )
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $5)
- (i32.const 1)
- )
- )
- (i32.store
- (i32.add
+ (local.set $1
(local.get $3)
- (local.get $5)
)
- (local.get $5)
- )
- (return)
- )
- )
- (local.set $5
- (i32.add
- (local.get $4)
- (i32.and
- (local.get $1)
- (i32.const -8)
- )
- )
- )
- (local.set $13
- (i32.shr_u
- (local.get $1)
- (i32.const 3)
- )
- )
- (block $do-once4
- (if
- (i32.ge_u
- (local.get $1)
- (i32.const 256)
- )
- (block
- (local.set $6
- (i32.load offset=24
- (local.get $8)
- )
- )
- (if
- (i32.eq
- (local.get $8)
- (local.tee $2
- (i32.load offset=12
- (local.get $8)
+ (br_if $do-once6
+ (i32.eqz
+ (local.tee $0
+ (i32.load
+ (local.get $1)
)
)
)
- (block $do-once6
- (local.set $4
- (if (result i32)
- (local.tee $10
- (i32.load
- (local.tee $0
- (i32.add
- (local.tee $2
- (i32.add
- (local.get $8)
- (i32.const 16)
- )
- )
- (i32.const 4)
- )
- )
- )
- )
- (block (result i32)
- (local.set $2
- (local.get $0)
- )
- (local.get $10)
- )
- (if (result i32)
- (local.tee $0
- (i32.load
- (local.get $2)
- )
- )
+ )
+ )
+ (loop $while-in9
+ (if
+ (local.tee $4
+ (i32.load
+ (local.tee $3
+ (i32.add
(local.get $0)
- (br $do-once6)
- )
- )
- )
- (loop $while-in9
- (if
- (local.tee $10
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $4)
- (i32.const 20)
- )
- )
- )
- )
- (block
- (local.set $4
- (local.get $10)
- )
- (local.set $2
- (local.get $0)
- )
- (br $while-in9)
- )
- )
- (if
- (local.tee $10
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $4)
- (i32.const 16)
- )
- )
- )
- )
- (block
- (local.set $4
- (local.get $10)
- )
- (local.set $2
- (local.get $0)
- )
- (br $while-in9)
- )
- )
- )
- (if
- (i32.lt_u
- (local.get $2)
- (i32.load
- (i32.const 192)
- )
- )
- (call $_abort)
- (block
- (i32.store
- (local.get $2)
- (i32.const 0)
- )
- (local.set $11
- (local.get $4)
+ (i32.const 20)
)
)
)
)
(block
- (if
- (i32.lt_u
- (local.tee $0
- (i32.load offset=8
- (local.get $8)
- )
- )
- (i32.load
- (i32.const 192)
- )
- )
- (call $_abort)
+ (local.set $0
+ (local.get $4)
)
- (local.set $4
- (local.get $0)
+ (local.set $1
+ (local.get $3)
)
- (if
- (i32.ne
- (local.get $8)
- (i32.load offset=12
+ (br $while-in9)
+ )
+ )
+ (if
+ (local.tee $4
+ (i32.load
+ (local.tee $3
+ (i32.add
(local.get $0)
+ (i32.const 16)
)
)
- (call $_abort)
+ )
+ )
+ (block
+ (local.set $0
+ (local.get $4)
)
(local.set $1
- (local.get $2)
+ (local.get $3)
)
- (if
- (i32.eq
- (local.get $8)
- (i32.load offset=8
- (local.get $1)
- )
- )
- (block
- (i32.store offset=12
- (local.get $4)
- (local.get $2)
- )
- (i32.store offset=8
- (local.get $1)
- (local.get $0)
- )
- (local.set $11
- (local.get $2)
- )
- )
- (call $_abort)
+ (br $while-in9)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
+ (block
+ (i32.store
+ (local.get $1)
+ (i32.const 0)
+ )
+ (local.set $8
+ (local.get $0)
+ )
+ )
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $6)
)
)
+ (i32.load
+ (i32.const 192)
+ )
)
- (if
+ (call $_abort)
+ )
+ (if
+ (i32.ne
(local.get $6)
- (block
- (local.set $0
+ (i32.load offset=12
+ (local.get $1)
+ )
+ )
+ (call $_abort)
+ )
+ (if
+ (i32.eq
+ (local.get $6)
+ (i32.load offset=8
+ (local.get $0)
+ )
+ )
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $8
+ (local.get $0)
+ )
+ )
+ (call $_abort)
+ )
+ )
+ )
+ (if
+ (local.get $7)
+ (block
+ (if
+ (i32.eq
+ (i32.load offset=480
+ (local.tee $1
(i32.shl
- (local.tee $2
+ (local.tee $0
(i32.load offset=28
- (local.get $8)
+ (local.get $6)
)
)
(i32.const 2)
)
)
- (if
- (i32.eq
- (i32.load offset=480
- (local.get $0)
- )
- (local.get $8)
- )
- (block
- (i32.store offset=480
- (local.get $0)
- (local.get $11)
- )
- (if
- (i32.eqz
- (local.get $11)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.and
- (i32.load
- (i32.const 180)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $2)
- )
- (i32.const -1)
- )
- )
- )
- (br $do-once4)
- )
- )
- )
- (block
- (if
- (i32.lt_u
- (local.get $6)
- (i32.load
- (i32.const 192)
- )
+ )
+ (local.get $6)
+ )
+ (block
+ (i32.store offset=480
+ (local.get $1)
+ (local.get $8)
+ )
+ (if
+ (i32.eqz
+ (local.get $8)
+ )
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.and
+ (i32.load
+ (i32.const 180)
)
- (call $_abort)
- )
- (local.set $0
- (local.get $6)
- )
- (if
- (i32.eq
- (local.get $8)
- (i32.load offset=16
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
(local.get $0)
)
- )
- (i32.store offset=16
- (local.get $0)
- (local.get $11)
- )
- (i32.store offset=20
- (local.get $6)
- (local.get $11)
- )
- )
- (br_if $do-once4
- (i32.eqz
- (local.get $11)
+ (i32.const -1)
)
)
)
+ (br $do-once4)
)
- (if
- (i32.lt_u
- (local.get $11)
- (local.tee $2
- (i32.load
- (i32.const 192)
- )
- )
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $7)
+ (i32.load
+ (i32.const 192)
)
- (call $_abort)
)
- (i32.store offset=24
- (local.get $11)
+ (call $_abort)
+ )
+ (if
+ (i32.eq
(local.get $6)
+ (i32.load offset=16
+ (local.get $7)
+ )
)
- (local.set $0
+ (i32.store offset=16
+ (local.get $7)
(local.get $8)
)
- (if
- (local.tee $1
- (i32.load offset=16
- (local.get $0)
- )
- )
- (if
- (i32.lt_u
- (local.get $1)
- (local.get $2)
- )
- (call $_abort)
- (block
- (i32.store offset=16
- (local.get $11)
- (local.get $1)
- )
- (i32.store offset=24
- (local.get $1)
- (local.get $11)
- )
- )
- )
+ (i32.store offset=20
+ (local.get $7)
+ (local.get $8)
)
- (if
- (local.tee $1
- (i32.load offset=20
- (local.get $0)
- )
- )
- (if
- (i32.lt_u
- (local.get $1)
- (i32.load
- (i32.const 192)
- )
- )
- (call $_abort)
- (block
- (i32.store offset=20
- (local.get $11)
- (local.get $1)
- )
- (i32.store offset=24
- (local.get $1)
- (local.get $11)
- )
- )
- )
+ )
+ (br_if $do-once4
+ (i32.eqz
+ (local.get $8)
)
)
)
)
- (block
- (local.set $2
- (i32.load offset=12
- (local.get $8)
- )
- )
- (if
- (i32.ne
- (local.tee $1
- (i32.load offset=8
- (local.get $8)
- )
- )
- (local.tee $6
- (i32.add
- (i32.shl
- (local.get $13)
- (i32.const 3)
- )
- (i32.const 216)
- )
+ (if
+ (i32.lt_u
+ (local.get $8)
+ (local.tee $1
+ (i32.load
+ (i32.const 192)
)
)
- (block
- (if
- (i32.lt_u
- (local.get $1)
- (i32.load
- (i32.const 192)
- )
- )
- (call $_abort)
- )
- (if
- (i32.ne
- (local.get $8)
- (i32.load offset=12
- (local.get $1)
- )
- )
- (call $_abort)
- )
+ )
+ (call $_abort)
+ )
+ (i32.store offset=24
+ (local.get $8)
+ (local.get $7)
+ )
+ (if
+ (local.tee $0
+ (i32.load offset=16
+ (local.get $6)
)
)
(if
- (i32.eq
+ (i32.lt_u
+ (local.get $0)
(local.get $1)
- (local.get $2)
)
+ (call $_abort)
(block
- (i32.store
- (i32.const 176)
- (i32.and
- (i32.load
- (i32.const 176)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $13)
- )
- (i32.const -1)
- )
- )
+ (i32.store offset=16
+ (local.get $8)
+ (local.get $0)
+ )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $8)
)
- (br $do-once4)
)
)
- (if
- (i32.ne
- (local.get $2)
+ )
+ (if
+ (local.tee $0
+ (i32.load offset=20
(local.get $6)
)
- (block
- (if
- (i32.lt_u
- (local.get $2)
- (i32.load
- (i32.const 192)
- )
- )
- (call $_abort)
- )
- (if
- (i32.eq
- (local.get $8)
- (i32.load
- (local.tee $6
- (i32.add
- (local.get $2)
- (i32.const 8)
- )
- )
- )
- )
- (local.set $15
- (local.get $6)
- )
- (call $_abort)
+ )
+ (if
+ (i32.lt_u
+ (local.get $0)
+ (i32.load
+ (i32.const 192)
)
)
- (local.set $15
- (i32.add
- (local.get $2)
- (i32.const 8)
+ (call $_abort)
+ (block
+ (i32.store offset=20
+ (local.get $8)
+ (local.get $0)
+ )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $8)
)
)
)
- (i32.store offset=12
- (local.get $1)
- (local.get $2)
- )
- (i32.store
- (local.get $15)
- (local.get $1)
- )
)
)
)
- (i32.store offset=4
- (local.get $3)
- (i32.or
- (local.get $5)
- (i32.const 1)
+ )
+ (block
+ (local.set $1
+ (i32.load offset=12
+ (local.get $6)
)
)
- (i32.store
- (i32.add
- (local.get $3)
- (local.get $5)
+ (if
+ (i32.ne
+ (local.tee $3
+ (i32.load offset=8
+ (local.get $6)
+ )
+ )
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.get $4)
+ (i32.const 3)
+ )
+ (i32.const 216)
+ )
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $3)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
+ )
+ (if
+ (i32.ne
+ (local.get $6)
+ (i32.load offset=12
+ (local.get $3)
+ )
+ )
+ (call $_abort)
+ )
)
- (local.get $5)
)
- (if (result i32)
+ (if
(i32.eq
- (i32.load
- (i32.const 196)
- )
+ (local.get $1)
(local.get $3)
)
(block
(i32.store
- (i32.const 184)
- (local.get $5)
+ (i32.const 176)
+ (i32.and
+ (i32.load
+ (i32.const 176)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $4)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (br $do-once4)
+ )
+ )
+ (if
+ (i32.ne
+ (local.get $0)
+ (local.get $1)
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
+ )
+ (if
+ (i32.eq
+ (local.get $6)
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
+ )
+ )
+ )
+ (local.set $14
+ (local.get $0)
+ )
+ (call $_abort)
+ )
+ )
+ (local.set $14
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
)
- (return)
)
+ )
+ (i32.store offset=12
+ (local.get $3)
+ (local.get $1)
+ )
+ (i32.store
+ (local.get $14)
+ (local.get $3)
+ )
+ )
+ )
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $5)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (local.get $2)
+ (local.get $5)
+ )
+ (local.get $5)
+ )
+ (local.set $1
+ (if (result i32)
+ (i32.eq
+ (i32.load
+ (i32.const 196)
+ )
+ (local.get $2)
+ )
+ (block
+ (i32.store
+ (i32.const 184)
(local.get $5)
)
+ (return)
)
+ (local.get $5)
)
)
+ )
+ )
+ (local.set $3
+ (i32.shr_u
+ (local.get $1)
(i32.const 3)
)
)
(if
(i32.lt_u
- (local.get $0)
+ (local.get $1)
(i32.const 256)
)
(block
- (local.set $1
+ (local.set $0
(i32.add
(i32.shl
- (local.get $4)
+ (local.get $3)
(i32.const 3)
)
(i32.const 216)
@@ -7092,25 +6881,25 @@
)
(if
(i32.and
- (local.tee $7
+ (local.tee $1
(i32.load
(i32.const 176)
)
)
- (local.tee $5
+ (local.tee $3
(i32.shl
(i32.const 1)
- (local.get $4)
+ (local.get $3)
)
)
)
(if
(i32.lt_u
- (local.tee $15
+ (local.tee $3
(i32.load
- (local.tee $4
+ (local.tee $1
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
@@ -7122,11 +6911,11 @@
)
(call $_abort)
(block
- (local.set $14
- (local.get $4)
+ (local.set $15
+ (local.get $1)
)
- (local.set $12
- (local.get $15)
+ (local.set $10
+ (local.get $3)
)
)
)
@@ -7134,71 +6923,71 @@
(i32.store
(i32.const 176)
(i32.or
- (local.get $5)
- (local.get $7)
+ (local.get $1)
+ (local.get $3)
)
)
- (local.set $14
+ (local.set $15
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
- (local.set $12
- (local.get $1)
+ (local.set $10
+ (local.get $0)
)
)
)
(i32.store
- (local.get $14)
- (local.get $3)
+ (local.get $15)
+ (local.get $2)
)
(i32.store offset=12
- (local.get $12)
- (local.get $3)
+ (local.get $10)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $3)
- (local.get $12)
+ (local.get $2)
+ (local.get $10)
)
(i32.store offset=12
- (local.get $3)
- (local.get $1)
+ (local.get $2)
+ (local.get $0)
)
(return)
)
)
- (local.set $7
+ (local.set $4
(i32.add
- (local.tee $1
+ (local.tee $3
(i32.shl
- (local.tee $4
+ (local.tee $0
(if (result i32)
- (local.tee $1
+ (local.tee $0
(i32.shr_u
- (local.get $0)
+ (local.get $1)
(i32.const 8)
)
)
(if (result i32)
(i32.gt_u
- (local.get $0)
+ (local.get $1)
(i32.const 16777215)
)
(i32.const 31)
(block (result i32)
- (local.set $1
+ (local.set $0
(i32.and
(i32.shr_u
(i32.add
- (local.tee $14
+ (local.tee $4
(i32.shl
- (local.get $1)
- (local.tee $12
+ (local.get $0)
+ (local.tee $3
(i32.and
(i32.shr_u
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 1048320)
)
(i32.const 16)
@@ -7218,21 +7007,21 @@
(i32.or
(i32.and
(i32.shr_u
- (local.get $0)
+ (local.get $1)
(i32.add
- (local.tee $7
+ (local.tee $0
(i32.add
(i32.sub
(i32.const 14)
(i32.or
- (local.tee $14
+ (local.tee $5
(i32.and
(i32.shr_u
(i32.add
- (local.tee $5
+ (local.tee $4
(i32.shl
- (local.get $14)
- (local.get $1)
+ (local.get $4)
+ (local.get $0)
)
)
(i32.const 245760)
@@ -7243,15 +7032,15 @@
)
)
(i32.or
- (local.get $1)
- (local.get $12)
+ (local.get $0)
+ (local.get $3)
)
)
)
(i32.shr_u
(i32.shl
+ (local.get $4)
(local.get $5)
- (local.get $14)
)
(i32.const 15)
)
@@ -7263,7 +7052,7 @@
(i32.const 1)
)
(i32.shl
- (local.get $7)
+ (local.get $0)
(i32.const 1)
)
)
@@ -7279,54 +7068,54 @@
)
)
(i32.store offset=28
- (local.get $3)
- (local.get $4)
+ (local.get $2)
+ (local.get $0)
)
(i32.store offset=20
- (local.get $3)
+ (local.get $2)
(i32.const 0)
)
(i32.store offset=16
- (local.get $3)
+ (local.get $2)
(i32.const 0)
)
(if
(i32.and
(local.tee $5
- (i32.shl
- (i32.const 1)
- (local.get $4)
- )
- )
- (local.tee $14
(i32.load
(i32.const 180)
)
)
+ (local.tee $7
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
+ )
)
(block
- (local.set $12
+ (local.set $10
(i32.shl
- (local.get $0)
+ (local.get $1)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (local.get $4)
+ (local.get $0)
(i32.const 1)
)
)
(i32.eq
- (local.get $4)
+ (local.get $0)
(i32.const 31)
)
)
)
)
- (local.set $1
+ (local.set $0
(i32.load offset=480
- (local.get $1)
+ (local.get $3)
)
)
(if
@@ -7336,17 +7125,17 @@
(block $while-out14 (result i32)
(if
(i32.eq
- (local.get $0)
+ (local.get $1)
(i32.and
(i32.load offset=4
- (local.get $1)
+ (local.get $0)
)
(i32.const -8)
)
)
(block
(local.set $16
- (local.get $1)
+ (local.get $0)
)
(br $while-out14
(i32.const 130)
@@ -7354,17 +7143,17 @@
)
)
(if (result i32)
- (local.tee $4
+ (local.tee $3
(i32.load
- (local.tee $15
+ (local.tee $4
(i32.add
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (local.get $12)
+ (local.get $10)
(i32.const 31)
)
(i32.const 2)
@@ -7374,23 +7163,23 @@
)
)
(block
- (local.set $12
+ (local.set $10
(i32.shl
- (local.get $12)
+ (local.get $10)
(i32.const 1)
)
)
- (local.set $1
- (local.get $4)
+ (local.set $0
+ (local.get $3)
)
(br $while-in15)
)
(block (result i32)
(local.set $17
- (local.get $15)
+ (local.get $4)
)
(local.set $18
- (local.get $1)
+ (local.get $0)
)
(i32.const 127)
)
@@ -7411,19 +7200,19 @@
(block
(i32.store
(local.get $17)
- (local.get $3)
+ (local.get $2)
)
(i32.store offset=24
- (local.get $3)
+ (local.get $2)
(local.get $18)
)
(i32.store offset=12
- (local.get $3)
- (local.get $3)
+ (local.get $2)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $3)
- (local.get $3)
+ (local.get $2)
+ (local.get $2)
)
)
)
@@ -7432,53 +7221,50 @@
(local.get $0)
(i32.const 130)
)
- (block
- (local.set $0
- (local.get $16)
- )
- (if
- (i32.and
- (i32.ge_u
- (local.tee $12
- (i32.load offset=8
- (local.get $0)
- )
- )
- (local.tee $7
- (i32.load
- (i32.const 192)
+ (if
+ (i32.and
+ (i32.ge_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.tee $0
+ (local.get $16)
)
)
)
- (i32.ge_u
- (local.get $0)
- (local.get $7)
+ (local.tee $3
+ (i32.load
+ (i32.const 192)
+ )
)
)
- (block
- (i32.store offset=12
- (local.get $12)
- (local.get $3)
- )
- (i32.store offset=8
- (local.get $0)
- (local.get $3)
- )
- (i32.store offset=8
- (local.get $3)
- (local.get $12)
- )
- (i32.store offset=12
- (local.get $3)
- (local.get $16)
- )
- (i32.store offset=24
- (local.get $3)
- (i32.const 0)
- )
+ (i32.ge_u
+ (local.get $0)
+ (local.get $3)
+ )
+ )
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $2)
+ (local.get $1)
+ )
+ (i32.store offset=12
+ (local.get $2)
+ (local.get $16)
+ )
+ (i32.store offset=24
+ (local.get $2)
+ (i32.const 0)
)
- (call $_abort)
)
+ (call $_abort)
)
)
)
@@ -7488,30 +7274,30 @@
(i32.const 180)
(i32.or
(local.get $5)
- (local.get $14)
+ (local.get $7)
)
)
(i32.store offset=480
- (local.get $1)
(local.get $3)
+ (local.get $2)
)
(i32.store offset=24
- (local.get $3)
- (local.get $7)
+ (local.get $2)
+ (local.get $4)
)
(i32.store offset=12
- (local.get $3)
- (local.get $3)
+ (local.get $2)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $3)
- (local.get $3)
+ (local.get $2)
+ (local.get $2)
)
)
)
(i32.store
(i32.const 208)
- (local.tee $3
+ (local.tee $0
(i32.add
(i32.load
(i32.const 208)
@@ -7522,14 +7308,14 @@
)
(local.set $0
(if (result i32)
- (local.get $3)
+ (local.get $0)
(return)
(i32.const 632)
)
)
(loop $while-in17
(if
- (local.tee $3
+ (local.tee $0
(i32.load
(local.get $0)
)
@@ -7537,7 +7323,7 @@
(block
(local.set $0
(i32.add
- (local.get $3)
+ (local.get $0)
(i32.const 8)
)
)
@@ -7562,9 +7348,7 @@
(local $11 i32)
(local $12 i32)
(local $13 i32)
- (local $14 i32)
- (local $15 i32)
- (local.set $10
+ (local.set $9
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -7575,129 +7359,123 @@
)
(local.set $7
(i32.add
- (local.get $10)
+ (local.get $9)
(i32.const 16)
)
)
(i32.store
- (local.tee $3
+ (local.tee $4
(i32.add
(local.tee $8
- (local.get $10)
+ (local.get $9)
)
(i32.const 32)
)
)
- (local.tee $4
+ (local.tee $3
(i32.load offset=28
(local.get $0)
)
)
)
(i32.store offset=4
- (local.get $3)
- (local.tee $6
+ (local.get $4)
+ (local.tee $3
(i32.sub
(i32.load offset=20
(local.get $0)
)
- (local.get $4)
+ (local.get $3)
)
)
)
(i32.store offset=8
- (local.get $3)
+ (local.get $4)
(local.get $1)
)
(i32.store offset=12
- (local.get $3)
+ (local.get $4)
(local.get $2)
)
- (local.set $11
- (local.get $0)
- )
- (local.set $12
- (local.get $0)
- )
(local.set $1
- (local.get $3)
+ (local.get $4)
)
- (local.set $3
+ (local.set $4
(i32.const 2)
)
- (local.set $4
+ (local.set $10
(i32.add
(local.get $2)
- (local.get $6)
+ (local.get $3)
)
)
(loop $while-in
(block $while-out
(if
- (i32.eq
- (local.get $4)
- (local.tee $5
- (if (result i32)
- (i32.load
- (i32.const 8)
- )
- (block (result i32)
- (call $_pthread_cleanup_push
- (i32.const 4)
- (local.get $0)
- )
- (i32.store
- (local.get $8)
- (i32.load offset=60
- (local.get $11)
- )
- )
- (i32.store offset=4
- (local.get $8)
- (local.get $1)
- )
- (i32.store offset=8
- (local.get $8)
- (local.get $3)
- )
- (local.set $6
- (call $___syscall_ret
- (call $___syscall146
- (i32.const 146)
- (local.get $8)
- )
- )
- )
- (call $_pthread_cleanup_pop
- (i32.const 0)
- )
- (local.get $6)
+ (i32.load
+ (i32.const 8)
+ )
+ (block
+ (call $_pthread_cleanup_push
+ (i32.const 4)
+ (local.get $0)
+ )
+ (i32.store
+ (local.get $8)
+ (i32.load offset=60
+ (local.get $0)
+ )
+ )
+ (i32.store offset=4
+ (local.get $8)
+ (local.get $1)
+ )
+ (i32.store offset=8
+ (local.get $8)
+ (local.get $4)
+ )
+ (local.set $3
+ (call $___syscall_ret
+ (call $___syscall146
+ (i32.const 146)
+ (local.get $8)
)
- (block (result i32)
- (i32.store
- (local.get $7)
- (i32.load offset=60
- (local.get $11)
- )
- )
- (i32.store offset=4
- (local.get $7)
- (local.get $1)
- )
- (i32.store offset=8
- (local.get $7)
- (local.get $3)
- )
- (call $___syscall_ret
- (call $___syscall146
- (i32.const 146)
- (local.get $7)
- )
- )
+ )
+ )
+ (call $_pthread_cleanup_pop
+ (i32.const 0)
+ )
+ )
+ (block
+ (i32.store
+ (local.get $7)
+ (i32.load offset=60
+ (local.get $0)
+ )
+ )
+ (i32.store offset=4
+ (local.get $7)
+ (local.get $1)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $4)
+ )
+ (local.set $3
+ (call $___syscall_ret
+ (call $___syscall146
+ (i32.const 146)
+ (local.get $7)
)
)
)
)
+ )
+ (if
+ (i32.eq
+ (local.get $3)
+ (local.get $10)
+ )
(block
(local.set $1
(i32.const 6)
@@ -7707,124 +7485,126 @@
)
(if
(i32.lt_s
- (local.get $5)
+ (local.get $3)
(i32.const 0)
)
(block
- (local.set $13
+ (local.set $11
(local.get $1)
)
- (local.set $14
- (local.get $3)
+ (local.set $12
+ (local.get $4)
)
(local.set $1
(i32.const 8)
)
- (br $while-out)
- )
- )
- (local.set $6
- (i32.sub
- (local.get $4)
- (local.get $5)
- )
- )
- (if
- (i32.le_u
- (local.get $5)
- (local.tee $4
- (i32.load offset=4
- (local.get $1)
- )
- )
)
(block
- (if
- (i32.eq
- (local.get $3)
- (i32.const 2)
- )
- (block
- (i32.store offset=28
- (local.get $0)
- (i32.add
- (local.get $5)
- (i32.load offset=28
- (local.get $0)
+ (local.set $5
+ (if (result i32)
+ (i32.le_u
+ (local.get $3)
+ (local.tee $5
+ (i32.load offset=4
+ (local.get $1)
)
)
)
- (local.set $3
- (i32.const 2)
+ (block (result i32)
+ (if
+ (i32.eq
+ (local.get $4)
+ (i32.const 2)
+ )
+ (block
+ (i32.store offset=28
+ (local.get $0)
+ (i32.add
+ (local.get $3)
+ (i32.load offset=28
+ (local.get $0)
+ )
+ )
+ )
+ (local.set $6
+ (local.get $5)
+ )
+ (local.set $4
+ (i32.const 2)
+ )
+ )
+ (local.set $6
+ (local.get $5)
+ )
+ )
+ (local.get $3)
)
- )
- )
- (local.set $9
- (local.get $4)
- )
- )
- (block
- (i32.store offset=28
- (local.get $0)
- (local.tee $9
- (i32.load offset=44
- (local.get $12)
+ (block (result i32)
+ (i32.store offset=28
+ (local.get $0)
+ (local.tee $6
+ (i32.load offset=44
+ (local.get $0)
+ )
+ )
+ )
+ (i32.store offset=20
+ (local.get $0)
+ (local.get $6)
+ )
+ (local.set $6
+ (i32.load offset=12
+ (local.get $1)
+ )
+ )
+ (local.set $1
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
+ )
+ (local.set $4
+ (i32.add
+ (local.get $4)
+ (i32.const -1)
+ )
+ )
+ (i32.sub
+ (local.get $3)
+ (local.get $5)
+ )
)
)
)
- (i32.store offset=20
- (local.get $0)
- (local.get $9)
- )
- (local.set $9
- (i32.load offset=12
- (local.get $1)
+ (i32.store
+ (local.get $1)
+ (i32.add
+ (local.get $5)
+ (i32.load
+ (local.get $1)
+ )
)
)
- (local.set $5
+ (i32.store offset=4
+ (local.get $1)
(i32.sub
+ (local.get $6)
(local.get $5)
- (local.get $4)
- )
- )
- (local.set $1
- (i32.add
- (local.get $1)
- (i32.const 8)
)
)
- (local.set $3
- (i32.add
+ (local.set $10
+ (i32.sub
+ (local.get $10)
(local.get $3)
- (i32.const -1)
)
)
+ (br $while-in)
)
)
- (i32.store
- (local.get $1)
- (i32.add
- (local.get $5)
- (i32.load
- (local.get $1)
- )
- )
- )
- (i32.store offset=4
- (local.get $1)
- (i32.sub
- (local.get $9)
- (local.get $5)
- )
- )
- (local.set $4
- (local.get $6)
- )
- (br $while-in)
)
)
(global.set $STACKTOP
- (local.get $10)
+ (local.get $9)
)
(if (result i32)
(i32.eq
@@ -7835,9 +7615,9 @@
(i32.store offset=16
(local.get $0)
(i32.add
- (local.tee $4
+ (local.tee $1
(i32.load offset=44
- (local.get $12)
+ (local.get $0)
)
)
(i32.load offset=48
@@ -7847,11 +7627,11 @@
)
(i32.store offset=28
(local.get $0)
- (local.get $4)
+ (local.get $1)
)
(i32.store offset=20
(local.get $0)
- (local.get $4)
+ (local.get $1)
)
(local.get $2)
)
@@ -7887,16 +7667,16 @@
(i32.sub
(local.get $2)
(i32.load offset=4
- (local.get $13)
+ (local.get $11)
)
)
(i32.eq
- (local.get $14)
+ (local.get $12)
(i32.const 2)
)
)
)
- (local.get $15)
+ (local.get $13)
)
)
)
@@ -7906,14 +7686,10 @@
(local $4 i32)
(local $5 i32)
(local $6 i32)
- (local $7 i32)
- (local.set $6
+ (local.set $5
(i32.const 672)
)
(local.set $3
- (local.get $1)
- )
- (local.set $5
(if (result i32)
(local.tee $4
(i32.load offset=16
@@ -7921,7 +7697,7 @@
)
)
(block (result i32)
- (local.set $7
+ (local.set $6
(i32.const 5)
)
(local.get $4)
@@ -7930,13 +7706,13 @@
(call $___towrite
(local.get $1)
)
- (local.get $5)
+ (local.get $3)
(block (result i32)
- (local.set $7
+ (local.set $6
(i32.const 5)
)
(i32.load offset=16
- (local.get $3)
+ (local.get $1)
)
)
)
@@ -7944,15 +7720,15 @@
)
(if
(i32.eq
- (local.get $7)
+ (local.get $6)
(i32.const 5)
)
(block $label$break$L5
(if
(i32.lt_u
(i32.sub
- (local.get $5)
- (local.tee $2
+ (local.get $3)
+ (local.tee $3
(i32.load offset=20
(local.get $1)
)
@@ -7980,9 +7756,6 @@
(br $label$break$L5)
)
)
- (local.set $4
- (local.get $2)
- )
(if
(i32.gt_s
(i32.load8_s offset=75
@@ -8009,7 +7782,7 @@
(if
(i32.ne
(i32.load8_s offset=672
- (local.tee $5
+ (local.tee $4
(i32.add
(local.get $2)
(i32.const -1)
@@ -8020,7 +7793,7 @@
)
(block
(local.set $2
- (local.get $5)
+ (local.get $4)
)
(br $while-in)
)
@@ -8051,35 +7824,32 @@
(local.get $2)
)
)
- (local.set $6
+ (local.set $5
(i32.add
(local.get $2)
(i32.const 672)
)
)
- (local.set $4
+ (local.set $3
(i32.load offset=20
- (local.get $3)
+ (local.get $1)
)
)
)
- (local.set $2
- (i32.const 0)
- )
)
(drop
(call $_memcpy
- (local.get $4)
- (local.get $6)
+ (local.get $3)
+ (local.get $5)
(local.get $0)
)
)
(i32.store offset=20
- (local.get $3)
+ (local.get $1)
(i32.add
(local.get $0)
(i32.load offset=20
- (local.get $3)
+ (local.get $1)
)
)
)
@@ -8095,10 +7865,9 @@
)
(func $_fflush (; 19 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
- (local $2 i32)
(if
(local.get $0)
- (local.set $1
+ (local.set $0
(block $do-once (result i32)
(if
(i32.le_s
@@ -8141,51 +7910,40 @@
(i32.const 32)
)
)
- (block
- (local.set $2
- (local.get $1)
- )
- (local.set $1
- (local.get $0)
- )
- (loop $while-in
- (if
- (i32.gt_u
- (i32.load offset=20
- (local.get $2)
- )
- (i32.load offset=28
- (local.get $2)
- )
+ (loop $while-in
+ (if
+ (i32.gt_u
+ (i32.load offset=20
+ (local.get $1)
)
- (local.set $1
- (i32.or
- (call $___fflush_unlocked
- (local.get $2)
- )
+ (i32.load offset=28
+ (local.get $1)
+ )
+ )
+ (local.set $0
+ (i32.or
+ (call $___fflush_unlocked
(local.get $1)
)
+ (local.get $0)
)
)
- (br_if $while-in
- (local.tee $2
- (i32.load offset=56
- (local.get $2)
- )
+ )
+ (br_if $while-in
+ (local.tee $1
+ (i32.load offset=56
+ (local.get $1)
)
)
)
)
- (local.set $1
- (local.get $0)
- )
)
(call $___unlock
(i32.const 36)
)
)
)
- (local.get $1)
+ (local.get $0)
)
(func $_strlen (; 20 ;) (; has Stack IR ;) (result i32)
(local $0 i32)
@@ -8197,48 +7955,48 @@
(i32.const 672)
)
(block
- (local.set $1
+ (local.set $4
(i32.const 672)
)
- (local.set $2
+ (local.set $1
(i32.const 4)
)
)
(i32.sub
(if (result i32)
(i32.eq
- (local.get $2)
+ (local.get $1)
(i32.const 4)
)
(block (result i32)
- (local.set $2
- (local.get $1)
+ (local.set $1
+ (local.get $4)
)
(local.set $0
(loop $while-in1 (result i32)
(if (result i32)
(i32.and
(i32.add
- (local.tee $1
+ (local.tee $2
(i32.load
- (local.get $2)
+ (local.get $1)
)
)
(i32.const -16843009)
)
(i32.xor
(i32.and
- (local.get $1)
+ (local.get $2)
(i32.const -2139062144)
)
(i32.const -2139062144)
)
)
- (local.get $2)
+ (local.get $1)
(block
- (local.set $2
+ (local.set $1
(i32.add
- (local.get $2)
+ (local.get $1)
(i32.const 4)
)
)
@@ -8249,28 +8007,17 @@
)
(if
(i32.and
- (local.get $1)
+ (local.get $2)
(i32.const 255)
)
- (block
- (local.set $1
- (local.get $0)
- )
- (loop $while-in3
- (if
- (i32.load8_s
- (local.tee $0
- (i32.add
- (local.get $1)
- (i32.const 1)
- )
- )
- )
- (block
- (local.set $1
+ (loop $while-in3
+ (br_if $while-in3
+ (i32.load8_s
+ (local.tee $0
+ (i32.add
(local.get $0)
+ (i32.const 1)
)
- (br $while-in3)
)
)
)
@@ -8278,7 +8025,7 @@
)
(local.get $0)
)
- (local.get $4)
+ (local.get $2)
)
(i32.const 672)
)
@@ -8291,7 +8038,6 @@
(local $5 i32)
(local $6 i32)
(local $7 i32)
- (local $8 i32)
(local.set $3
(global.get $STACKTOP)
)
@@ -8307,18 +8053,15 @@
)
(i32.const 10)
)
- (local.set $7
- (local.get $0)
- )
(if
- (local.tee $2
+ (local.tee $1
(i32.load offset=16
(local.get $0)
)
)
(block
(local.set $5
- (local.get $2)
+ (local.get $1)
)
(local.set $6
(i32.const 4)
@@ -8328,13 +8071,13 @@
(call $___towrite
(local.get $0)
)
- (local.set $1
+ (local.set $2
(i32.const -1)
)
(block
(local.set $5
(i32.load offset=16
- (local.get $7)
+ (local.get $0)
)
)
(local.set $6
@@ -8348,15 +8091,12 @@
(local.get $6)
(i32.const 4)
)
- (local.set $1
+ (local.set $2
(block $do-once (result i32)
- (local.set $1
- (local.get $0)
- )
(if
(if (result i32)
(i32.lt_u
- (local.tee $2
+ (local.tee $1
(i32.load offset=20
(local.get $0)
)
@@ -8364,7 +8104,7 @@
(local.get $5)
)
(i32.ne
- (local.tee $8
+ (local.tee $7
(i32.const 10)
)
(i32.load8_s offset=75
@@ -8375,18 +8115,18 @@
)
(block
(i32.store offset=20
- (local.get $1)
+ (local.get $0)
(i32.add
- (local.get $2)
+ (local.get $1)
(i32.const 1)
)
)
(i32.store8
- (local.get $2)
+ (local.get $1)
(i32.const 10)
)
(br $do-once
- (local.get $8)
+ (local.get $7)
)
)
)
@@ -8419,7 +8159,7 @@
(global.set $STACKTOP
(local.get $3)
)
- (local.get $1)
+ (local.get $2)
)
(func $___fflush_unlocked (; 22 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
@@ -9094,7 +8834,7 @@
(i32.const -1)
)
)
- (local.set $3
+ (local.set $0
(call $___stdio_write
(local.get $0)
(local.get $1)
@@ -9104,7 +8844,7 @@
(global.set $STACKTOP
(local.get $4)
)
- (local.get $3)
+ (local.get $0)
)
(func $___stdio_close (; 30 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
diff --git a/test/emcc_hello_world.fromasm b/test/emcc_hello_world.fromasm
index 0efc4d121..f97fe05cd 100644
--- a/test/emcc_hello_world.fromasm
+++ b/test/emcc_hello_world.fromasm
@@ -979,7 +979,7 @@
(local $6 i32)
(local $7 i32)
(local $8 i32)
- (local.set $7
+ (local.set $6
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -997,22 +997,22 @@
)
(local.set $3
(i32.add
- (local.get $7)
+ (local.get $6)
(i32.const 120)
)
)
(local.set $5
(i32.add
(local.tee $4
- (local.get $7)
+ (local.get $6)
)
(i32.const 136)
)
)
- (local.set $6
+ (local.set $8
(i32.add
(local.tee $2
- (local.tee $8
+ (local.tee $7
(i32.add
(local.get $4)
(i32.const 80)
@@ -1035,7 +1035,7 @@
(i32.const 4)
)
)
- (local.get $6)
+ (local.get $8)
)
)
)
@@ -1052,7 +1052,7 @@
(i32.const 0)
(local.get $3)
(local.get $4)
- (local.get $8)
+ (local.get $7)
)
(i32.const 0)
)
@@ -1063,7 +1063,7 @@
(local.get $0)
)
)
- (local.set $2
+ (local.set $1
(i32.load
(local.get $0)
)
@@ -1078,7 +1078,7 @@
(i32.store
(local.get $0)
(i32.and
- (local.get $2)
+ (local.get $1)
(i32.const -33)
)
)
@@ -1092,11 +1092,11 @@
(local.get $0)
(local.get $3)
(local.get $4)
- (local.get $8)
+ (local.get $7)
)
)
(block
- (local.set $6
+ (local.set $2
(i32.load offset=44
(local.get $0)
)
@@ -1129,11 +1129,11 @@
(local.get $0)
(local.get $3)
(local.get $4)
- (local.get $8)
+ (local.get $7)
)
)
(if
- (local.get $6)
+ (local.get $2)
(block
(drop
(call_indirect (type $FUNCSIG$iiii)
@@ -1158,7 +1158,7 @@
)
(i32.store offset=44
(local.get $0)
- (local.get $6)
+ (local.get $2)
)
(i32.store offset=48
(local.get $0)
@@ -1187,7 +1187,7 @@
(local.get $0)
)
(i32.and
- (local.get $2)
+ (local.get $1)
(i32.const 32)
)
)
@@ -1197,7 +1197,7 @@
)
)
(global.set $STACKTOP
- (local.get $7)
+ (local.get $6)
)
)
(func $___fwritex (; 37 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32)
@@ -1723,7 +1723,7 @@
(i32.and
(i32.xor
(i32.and
- (local.tee $3
+ (local.tee $2
(i32.load
(local.get $1)
)
@@ -1733,7 +1733,7 @@
(i32.const -2139062144)
)
(i32.add
- (local.get $3)
+ (local.get $2)
(i32.const -16843009)
)
)
@@ -1996,8 +1996,8 @@
(local $11 i32)
(local $12 i32)
(local $13 i32)
- (local $14 i32)
- (local $15 f64)
+ (local $14 f64)
+ (local $15 i32)
(local $16 i32)
(local $17 i32)
(local $18 i32)
@@ -2036,7 +2036,7 @@
(local.set $4
(i32.const 672)
)
- (local.set $28
+ (local.set $29
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -2054,14 +2054,14 @@
)
(local.set $20
(i32.add
- (local.get $28)
+ (local.get $29)
(i32.const 16)
)
)
- (local.set $42
+ (local.set $43
(i32.add
(local.tee $13
- (local.get $28)
+ (local.get $29)
)
(i32.const 8)
)
@@ -2072,16 +2072,16 @@
(i32.const 528)
)
)
- (local.set $29
+ (local.set $30
(i32.ne
(local.get $0)
(i32.const 0)
)
)
- (local.set $38
- (local.tee $25
+ (local.set $39
+ (local.tee $24
(i32.add
- (local.tee $19
+ (local.tee $5
(i32.add
(local.get $13)
(i32.const 536)
@@ -2091,15 +2091,15 @@
)
)
)
- (local.set $39
+ (local.set $40
(i32.add
- (local.get $19)
+ (local.get $5)
(i32.const 39)
)
)
(local.set $33
(i32.add
- (local.tee $19
+ (local.tee $5
(i32.add
(local.get $13)
(i32.const 576)
@@ -2108,19 +2108,19 @@
(i32.const 12)
)
)
- (local.set $40
+ (local.set $41
(i32.add
- (local.get $19)
+ (local.get $5)
(i32.const 11)
)
)
- (local.set $43
+ (local.set $44
(i32.sub
- (local.tee $27
+ (local.tee $28
(local.get $33)
)
(local.tee $36
- (local.tee $23
+ (local.tee $21
(i32.add
(local.get $13)
(i32.const 588)
@@ -2129,21 +2129,21 @@
)
)
)
- (local.set $44
+ (local.set $45
(i32.sub
(i32.const -2)
(local.get $36)
)
)
- (local.set $45
+ (local.set $46
(i32.add
- (local.get $27)
+ (local.get $28)
(i32.const 2)
)
)
- (local.set $47
+ (local.set $48
(i32.add
- (local.tee $46
+ (local.tee $47
(i32.add
(local.get $13)
(i32.const 24)
@@ -2152,23 +2152,20 @@
(i32.const 288)
)
)
- (local.set $41
- (local.tee $30
+ (local.set $42
+ (local.tee $31
(i32.add
- (local.get $23)
+ (local.get $21)
(i32.const 9)
)
)
)
(local.set $34
(i32.add
- (local.get $23)
+ (local.get $21)
(i32.const 8)
)
)
- (local.set $19
- (i32.const 0)
- )
(block $label$break$L343
(block $__rjti$9
(loop $label$continue$L1
@@ -2219,7 +2216,7 @@
(block $label$break$L9
(block $switch
(if
- (local.tee $6
+ (local.tee $5
(i32.shr_s
(i32.shl
(local.get $6)
@@ -2231,7 +2228,7 @@
(block
(br_if $switch
(i32.ne
- (local.get $6)
+ (local.get $5)
(i32.const 37)
)
)
@@ -2298,7 +2295,7 @@
)
)
(if
- (local.get $29)
+ (local.get $30)
(if
(i32.eqz
(i32.and
@@ -2330,12 +2327,12 @@
(br $label$continue$L1)
)
)
- (local.set $7
+ (local.set $10
(if (result i32)
(i32.lt_u
(local.tee $7
(i32.add
- (local.tee $10
+ (local.tee $11
(i32.load8_s
(local.tee $9
(i32.add
@@ -2360,7 +2357,7 @@
(i32.const 3)
)
(local.get $9)
- (local.tee $10
+ (local.tee $11
(i32.eq
(i32.load8_s offset=2
(local.get $5)
@@ -2372,35 +2369,35 @@
)
)
)
- (local.set $17
+ (local.set $18
(select
(local.get $7)
(i32.const -1)
- (local.get $10)
+ (local.get $11)
)
)
(select
(i32.const 1)
- (local.get $19)
- (local.get $10)
+ (local.get $25)
+ (local.get $11)
)
)
(block (result i32)
(local.set $5
- (local.get $10)
+ (local.get $11)
)
- (local.set $17
+ (local.set $18
(i32.const -1)
)
- (local.get $19)
+ (local.get $25)
)
)
)
- (local.set $19
+ (local.set $8
(if (result i32)
(i32.eq
(i32.and
- (local.tee $10
+ (local.tee $11
(i32.shr_s
(i32.shl
(local.get $5)
@@ -2414,13 +2411,13 @@
(i32.const 32)
)
(block $label$break$L25 (result i32)
- (local.set $19
+ (local.set $25
(local.get $5)
)
(local.set $5
- (local.get $10)
+ (local.get $11)
)
- (local.set $10
+ (local.set $11
(i32.const 0)
)
(loop $while-in4 (result i32)
@@ -2439,22 +2436,22 @@
)
(block
(local.set $5
- (local.get $19)
+ (local.get $25)
)
(br $label$break$L25
- (local.get $10)
+ (local.get $11)
)
)
)
- (local.set $10
+ (local.set $11
(i32.or
- (local.get $10)
+ (local.get $11)
(i32.shl
(i32.const 1)
(i32.add
(i32.shr_s
(i32.shl
- (local.get $19)
+ (local.get $25)
(i32.const 24)
)
(i32.const 24)
@@ -2468,7 +2465,7 @@
(i32.eq
(i32.and
(local.tee $5
- (local.tee $19
+ (local.tee $25
(i32.load8_s
(local.tee $9
(i32.add
@@ -2485,15 +2482,15 @@
)
)
(local.set $5
- (local.get $19)
+ (local.get $25)
)
- (local.get $10)
+ (local.get $11)
)
)
(i32.const 0)
)
)
- (local.set $19
+ (local.set $25
(if (result i32)
(i32.eq
(i32.and
@@ -2508,7 +2505,7 @@
(block $__rjti$0
(br_if $__rjti$0
(i32.ge_u
- (local.tee $10
+ (local.tee $11
(i32.add
(i32.load8_s
(local.tee $5
@@ -2535,7 +2532,7 @@
(i32.store
(i32.add
(i32.shl
- (local.get $10)
+ (local.get $11)
(i32.const 2)
)
(local.get $3)
@@ -2563,7 +2560,7 @@
(local.set $7
(i32.const 1)
)
- (local.set $14
+ (local.set $15
(i32.load
(local.get $5)
)
@@ -2576,7 +2573,7 @@
)
)
(if
- (local.get $7)
+ (local.get $10)
(block
(local.set $16
(i32.const -1)
@@ -2586,16 +2583,16 @@
)
(if
(i32.eqz
- (local.get $29)
+ (local.get $30)
)
(block
- (local.set $10
- (local.get $19)
+ (local.set $11
+ (local.get $8)
)
(local.set $9
(local.get $5)
)
- (local.set $14
+ (local.set $15
(i32.const 0)
)
(br $do-once5
@@ -2603,7 +2600,7 @@
)
)
)
- (local.set $14
+ (local.set $15
(i32.load
(local.tee $9
(i32.and
@@ -2631,25 +2628,25 @@
(local.get $5)
)
)
- (local.set $10
+ (local.set $11
(if (result i32)
(i32.lt_s
- (local.get $14)
+ (local.get $15)
(i32.const 0)
)
(block (result i32)
- (local.set $14
+ (local.set $15
(i32.sub
(i32.const 0)
- (local.get $14)
+ (local.get $15)
)
)
(i32.or
- (local.get $19)
+ (local.get $8)
(i32.const 8192)
)
)
- (local.get $19)
+ (local.get $8)
)
)
(local.get $7)
@@ -2671,7 +2668,7 @@
(i32.const 10)
)
(block (result i32)
- (local.set $10
+ (local.set $11
(i32.const 0)
)
(loop $while-in8
@@ -2679,14 +2676,14 @@
(i32.add
(local.get $5)
(i32.mul
- (local.get $10)
+ (local.get $11)
(i32.const 10)
)
)
)
(if
(i32.lt_u
- (local.tee $8
+ (local.tee $7
(i32.add
(i32.load8_s
(local.tee $9
@@ -2702,11 +2699,11 @@
(i32.const 10)
)
(block
- (local.set $10
+ (local.set $11
(local.get $5)
)
(local.set $5
- (local.get $8)
+ (local.get $7)
)
(br $while-in8)
)
@@ -2724,24 +2721,24 @@
(br $label$break$L1)
)
(block (result i32)
- (local.set $10
- (local.get $19)
+ (local.set $11
+ (local.get $8)
)
- (local.set $14
+ (local.set $15
(local.get $5)
)
- (local.get $7)
+ (local.get $10)
)
)
)
(block (result i32)
- (local.set $10
- (local.get $19)
+ (local.set $11
+ (local.get $8)
)
- (local.set $14
+ (local.set $15
(i32.const 0)
)
- (local.get $7)
+ (local.get $10)
)
)
)
@@ -2803,7 +2800,7 @@
(loop $while-in11
(drop
(br_if $label$break$L46
- (local.tee $5
+ (local.tee $7
(i32.add
(local.get $5)
(i32.mul
@@ -2813,7 +2810,7 @@
)
)
(i32.ge_u
- (local.tee $8
+ (local.tee $5
(i32.add
(i32.load8_s
(local.tee $9
@@ -2830,12 +2827,6 @@
)
)
)
- (local.set $7
- (local.get $5)
- )
- (local.set $5
- (local.get $8)
- )
(br $while-in11)
)
)
@@ -2908,7 +2899,7 @@
)
)
(if
- (local.get $19)
+ (local.get $25)
(block
(local.set $16
(i32.const -1)
@@ -2917,7 +2908,7 @@
)
)
(if (result i32)
- (local.get $29)
+ (local.get $30)
(block (result i32)
(local.set $7
(i32.load
@@ -2960,14 +2951,14 @@
(local.set $7
(local.get $9)
)
- (local.set $8
+ (local.set $10
(i32.const 0)
)
- (local.set $18
+ (local.set $17
(loop $while-in13 (result i32)
(if
(i32.gt_u
- (local.tee $11
+ (local.tee $8
(i32.add
(i32.load8_s
(local.get $7)
@@ -2993,15 +2984,15 @@
(if (result i32)
(i32.lt_u
(i32.add
- (local.tee $11
+ (local.tee $8
(i32.and
(local.tee $12
(i32.load8_s
(i32.add
- (local.get $11)
+ (local.get $8)
(i32.add
(i32.mul
- (local.get $8)
+ (local.get $10)
(i32.const 58)
)
(i32.const 3611)
@@ -3020,8 +3011,8 @@
(local.set $7
(local.get $9)
)
- (local.set $8
- (local.get $11)
+ (local.set $10
+ (local.get $8)
)
(br $while-in13)
)
@@ -3045,7 +3036,7 @@
)
(local.set $7
(i32.gt_s
- (local.get $17)
+ (local.get $18)
(i32.const -1)
)
)
@@ -3076,19 +3067,19 @@
(i32.store
(i32.add
(i32.shl
- (local.get $17)
+ (local.get $18)
(i32.const 2)
)
(local.get $3)
)
- (local.get $11)
+ (local.get $8)
)
- (local.set $11
+ (local.set $8
(i32.load offset=4
(local.tee $7
(i32.add
(i32.shl
- (local.get $17)
+ (local.get $18)
(i32.const 3)
)
(local.get $2)
@@ -3104,14 +3095,14 @@
)
(i32.store offset=4
(local.get $13)
- (local.get $11)
+ (local.get $8)
)
(br $__rjti$2)
)
)
(if
(i32.eqz
- (local.get $29)
+ (local.get $30)
)
(block
(local.set $16
@@ -3122,7 +3113,7 @@
)
(call $_pop_arg_336
(local.get $13)
- (local.get $11)
+ (local.get $8)
(local.get $1)
)
)
@@ -3131,7 +3122,7 @@
)
(if
(i32.eqz
- (local.get $29)
+ (local.get $30)
)
(block
(local.set $4
@@ -3144,17 +3135,17 @@
)
)
)
- (local.set $10
+ (local.set $11
(select
(local.tee $7
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const -65537)
)
)
- (local.get $10)
+ (local.get $11)
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 8192)
)
)
@@ -3162,11 +3153,11 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.tee $6
+ (local.tee $5
(select
- (local.tee $5
+ (local.tee $6
(i32.add
- (local.tee $11
+ (local.tee $8
(select
(local.tee $12
(i32.sub
@@ -3175,8 +3166,8 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
- (local.tee $6
+ (local.get $15)
+ (local.tee $5
(block $__rjti$7 (result i32)
(block $__rjti$6
(block $__rjti$5
@@ -3197,27 +3188,27 @@
(block $switch-case27
(br_table $switch-case119 $switch-default120 $switch-case40 $switch-default120 $switch-case119 $switch-case119 $switch-case119 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case41 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case30 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case119 $switch-default120 $switch-case37 $switch-case35 $switch-case119 $switch-case119 $switch-case119 $switch-default120 $switch-case35 $switch-default120 $switch-default120 $switch-default120 $switch-case38 $switch-case27 $switch-case33 $switch-case28 $switch-default120 $switch-default120 $switch-case39 $switch-default120 $switch-case36 $switch-default120 $switch-default120 $switch-case30 $switch-default120
(i32.sub
- (local.tee $18
+ (local.tee $17
(select
(i32.and
- (local.tee $11
+ (local.tee $8
(i32.load8_s
- (local.get $18)
+ (local.get $17)
)
)
(i32.const -33)
)
- (local.get $11)
+ (local.get $8)
(i32.and
(i32.eq
(i32.and
- (local.get $11)
+ (local.get $8)
(i32.const 15)
)
(i32.const 3)
)
(i32.ne
- (local.get $8)
+ (local.get $10)
(i32.const 0)
)
)
@@ -3236,7 +3227,7 @@
(block $switch-case20
(block $switch-case19
(br_table $switch-case19 $switch-case20 $switch-case21 $switch-case22 $switch-case23 $switch-default26 $switch-case24 $switch-case25 $switch-default26
- (local.get $8)
+ (local.get $10)
)
)
(i32.store
@@ -3377,7 +3368,7 @@
)
(local.set $4
(i32.or
- (local.get $10)
+ (local.get $11)
(i32.const 8)
)
)
@@ -3391,13 +3382,13 @@
)
)
)
- (local.set $18
+ (local.set $17
(i32.const 120)
)
(br $__rjti$3)
)
(local.set $4
- (local.get $10)
+ (local.get $11)
)
(br $__rjti$3)
)
@@ -3416,7 +3407,7 @@
)
(block
(local.set $7
- (local.get $25)
+ (local.get $24)
)
(loop $while-in32
(i32.store8
@@ -3451,24 +3442,24 @@
)
)
(local.set $7
- (local.get $25)
+ (local.get $24)
)
)
(if
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 8)
)
(block
(local.set $4
- (local.get $10)
+ (local.get $11)
)
(local.set $5
(select
- (local.tee $10
+ (local.tee $11
(i32.add
(i32.sub
- (local.get $38)
+ (local.get $39)
(local.tee $6
(local.get $7)
)
@@ -3479,7 +3470,7 @@
(local.get $5)
(i32.lt_s
(local.get $5)
- (local.get $10)
+ (local.get $11)
)
)
)
@@ -3489,14 +3480,14 @@
(local.get $7)
)
(local.set $4
- (local.get $10)
+ (local.get $11)
)
)
)
(local.set $7
(i32.const 0)
)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(br $__rjti$8)
@@ -3536,16 +3527,16 @@
(local.set $7
(i32.const 1)
)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(br $__rjti$4)
)
)
- (local.set $8
+ (local.set $10
(if (result i32)
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 2048)
)
(block (result i32)
@@ -3558,7 +3549,7 @@
(local.set $7
(local.tee $8
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 1)
)
)
@@ -3586,7 +3577,7 @@
(local.set $7
(i32.const 0)
)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(br $__rjti$4)
@@ -3597,28 +3588,28 @@
)
)
(i32.store8
- (local.get $39)
+ (local.get $40)
(i32.load
(local.get $13)
)
)
(local.set $4
- (local.get $39)
+ (local.get $40)
)
- (local.set $10
+ (local.set $11
(local.get $7)
)
- (local.set $11
+ (local.set $8
(i32.const 1)
)
(local.set $7
(i32.const 0)
)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(br $__rjto$8
- (local.get $25)
+ (local.get $24)
)
)
(local.set $6
@@ -3649,18 +3640,18 @@
)
)
(i32.store offset=8
- (local.get $28)
+ (local.get $29)
(i32.load
(local.get $13)
)
)
(i32.store offset=12
- (local.get $28)
+ (local.get $29)
(i32.const 0)
)
(i32.store
(local.get $13)
- (local.get $42)
+ (local.get $43)
)
(local.set $7
(i32.const -1)
@@ -3679,9 +3670,9 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
+ (local.get $15)
(i32.const 0)
- (local.get $10)
+ (local.get $11)
)
(br $__rjti$7
(i32.const 0)
@@ -3689,7 +3680,7 @@
)
)
)
- (local.set $15
+ (local.set $14
(f64.load
(local.get $13)
)
@@ -3700,14 +3691,14 @@
)
(f64.store
(global.get $tempDoublePtr)
- (local.get $15)
+ (local.get $14)
)
(drop
(i32.load
(global.get $tempDoublePtr)
)
)
- (local.set $31
+ (local.set $32
(if (result i32)
(i32.lt_s
(i32.load offset=4
@@ -3719,16 +3710,16 @@
(local.set $26
(i32.const 1)
)
- (local.set $15
+ (local.set $14
(f64.neg
- (local.get $15)
+ (local.get $14)
)
)
(i32.const 4108)
)
(if (result i32)
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 2048)
)
(block (result i32)
@@ -3741,7 +3732,7 @@
(local.set $26
(local.tee $4
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 1)
)
)
@@ -3757,14 +3748,14 @@
)
(f64.store
(global.get $tempDoublePtr)
- (local.get $15)
+ (local.get $14)
)
(drop
(i32.load
(global.get $tempDoublePtr)
)
)
- (local.set $6
+ (local.set $5
(if (result i32)
(i32.lt_u
(i32.and
@@ -3782,7 +3773,7 @@
(local.tee $22
(f64.mul
(call $_frexp
- (local.get $15)
+ (local.get $14)
(local.get $20)
)
(f64.const 2)
@@ -3803,9 +3794,9 @@
)
(if
(i32.eq
- (local.tee $24
+ (local.tee $12
(i32.or
- (local.get $18)
+ (local.get $17)
(i32.const 32)
)
)
@@ -3815,19 +3806,19 @@
(local.set $8
(select
(i32.add
- (local.get $31)
+ (local.get $32)
(i32.const 9)
)
- (local.get $31)
+ (local.get $32)
(local.tee $12
(i32.and
- (local.get $18)
+ (local.get $17)
(i32.const 32)
)
)
)
)
- (local.set $15
+ (local.set $14
(if (result f64)
(i32.or
(i32.eqz
@@ -3845,13 +3836,13 @@
)
(local.get $22)
(block (result f64)
- (local.set $15
+ (local.set $14
(f64.const 8)
)
(loop $while-in54
- (local.set $15
+ (local.set $14
(f64.mul
- (local.get $15)
+ (local.get $14)
(f64.const 16)
)
)
@@ -3873,27 +3864,27 @@
)
(f64.neg
(f64.add
- (local.get $15)
+ (local.get $14)
(f64.sub
(f64.neg
(local.get $22)
)
- (local.get $15)
+ (local.get $14)
)
)
)
(f64.sub
(f64.add
(local.get $22)
- (local.get $15)
+ (local.get $14)
)
- (local.get $15)
+ (local.get $14)
)
)
)
)
)
- (local.set $11
+ (local.set $10
(i32.or
(local.get $26)
(i32.const 2)
@@ -3937,11 +3928,11 @@
)
(block
(i32.store8
- (local.get $40)
+ (local.get $41)
(i32.const 48)
)
(local.set $4
- (local.get $40)
+ (local.get $41)
)
)
)
@@ -3969,26 +3960,26 @@
)
)
(i32.add
- (local.get $18)
+ (local.get $17)
(i32.const 15)
)
)
- (local.set $18
+ (local.set $17
(i32.lt_s
(local.get $5)
(i32.const 1)
)
)
- (local.set $17
+ (local.set $19
(i32.eqz
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 8)
)
)
)
(local.set $4
- (local.get $23)
+ (local.get $21)
)
(loop $while-in56
(i32.store8
@@ -3999,7 +3990,7 @@
(i32.add
(local.tee $6
(call $f64-to-int
- (local.get $15)
+ (local.get $14)
)
)
(i32.const 4075)
@@ -4007,10 +3998,10 @@
)
)
)
- (local.set $15
+ (local.set $14
(f64.mul
(f64.sub
- (local.get $15)
+ (local.get $14)
(f64.convert_i32_s
(local.get $6)
)
@@ -4036,12 +4027,12 @@
(i32.and
(i32.and
(f64.eq
- (local.get $15)
+ (local.get $14)
(f64.const 0)
)
- (local.get $18)
+ (local.get $17)
)
- (local.get $17)
+ (local.get $19)
)
(local.get $6)
(block (result i32)
@@ -4060,7 +4051,7 @@
)
(br_if $while-in56
(f64.ne
- (local.get $15)
+ (local.get $14)
(f64.const 0)
)
)
@@ -4068,23 +4059,23 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
- (local.tee $6
+ (local.get $15)
+ (local.tee $5
(i32.add
- (local.get $11)
- (local.tee $5
+ (local.get $10)
+ (local.tee $6
(select
(i32.sub
(i32.add
(local.get $5)
- (local.get $45)
+ (local.get $46)
)
(local.get $7)
)
(i32.add
(local.get $4)
(i32.sub
- (local.get $43)
+ (local.get $44)
(local.get $7)
)
)
@@ -4096,7 +4087,7 @@
(i32.lt_s
(i32.add
(local.get $4)
- (local.get $44)
+ (local.get $45)
)
(local.get $5)
)
@@ -4105,7 +4096,7 @@
)
)
)
- (local.get $10)
+ (local.get $11)
)
(if
(i32.eqz
@@ -4118,17 +4109,17 @@
)
(call $___fwritex
(local.get $8)
- (local.get $11)
+ (local.get $10)
(local.get $0)
)
)
(call $_pad
(local.get $0)
(i32.const 48)
- (local.get $14)
- (local.get $6)
+ (local.get $15)
+ (local.get $5)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 65536)
)
)
@@ -4148,7 +4139,7 @@
)
)
(call $___fwritex
- (local.get $23)
+ (local.get $21)
(local.get $4)
(local.get $0)
)
@@ -4157,12 +4148,12 @@
(local.get $0)
(i32.const 48)
(i32.sub
- (local.get $5)
+ (local.get $6)
(i32.add
(local.get $4)
- (local.tee $4
+ (local.tee $6
(i32.sub
- (local.get $27)
+ (local.get $28)
(local.get $7)
)
)
@@ -4182,33 +4173,33 @@
)
(call $___fwritex
(local.get $7)
- (local.get $4)
+ (local.get $6)
(local.get $0)
)
)
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
- (local.get $6)
+ (local.get $15)
+ (local.get $5)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 8192)
)
)
(br $do-once49
(select
- (local.get $14)
- (local.get $6)
+ (local.get $15)
+ (local.get $5)
(i32.lt_s
- (local.get $6)
- (local.get $14)
+ (local.get $5)
+ (local.get $15)
)
)
)
)
)
- (local.set $15
+ (local.set $14
(if (result f64)
(local.get $4)
(block (result f64)
@@ -4241,8 +4232,8 @@
(local.set $6
(local.tee $7
(select
- (local.get $46)
(local.get $47)
+ (local.get $48)
(i32.lt_s
(local.get $4)
(i32.const 0)
@@ -4255,7 +4246,7 @@
(local.get $6)
(local.tee $4
(call $f64-to-int
- (local.get $15)
+ (local.get $14)
)
)
)
@@ -4267,10 +4258,10 @@
)
(br_if $while-in60
(f64.ne
- (local.tee $15
+ (local.tee $14
(f64.mul
(f64.sub
- (local.get $15)
+ (local.get $14)
(f64.convert_i32_u
(local.get $4)
)
@@ -4284,7 +4275,7 @@
)
(if
(i32.gt_s
- (local.tee $8
+ (local.tee $10
(i32.load
(local.get $20)
)
@@ -4296,19 +4287,19 @@
(local.get $7)
)
(loop $while-in62
- (local.set $12
+ (local.set $19
(select
(i32.const 29)
- (local.get $8)
+ (local.get $10)
(i32.gt_s
- (local.get $8)
+ (local.get $10)
(i32.const 29)
)
)
)
(if
(i32.ge_u
- (local.tee $8
+ (local.tee $10
(i32.add
(local.get $6)
(i32.const -4)
@@ -4317,45 +4308,45 @@
(local.get $4)
)
(block $do-once63
- (local.set $11
+ (local.set $8
(i32.const 0)
)
(loop $while-in66
(i32.store
- (local.get $8)
+ (local.get $10)
(call $___uremdi3
- (local.tee $11
+ (local.tee $8
(call $_i64Add
(call $_bitshift64Shl
(i32.load
- (local.get $8)
+ (local.get $10)
)
(i32.const 0)
- (local.get $12)
+ (local.get $19)
)
(global.get $tempRet0)
- (local.get $11)
+ (local.get $8)
(i32.const 0)
)
)
- (local.tee $17
+ (local.tee $18
(global.get $tempRet0)
)
(i32.const 1000000000)
)
)
- (local.set $11
+ (local.set $8
(call $___udivdi3
- (local.get $11)
- (local.get $17)
+ (local.get $8)
+ (local.get $18)
(i32.const 1000000000)
)
)
(br_if $while-in66
(i32.ge_u
- (local.tee $8
+ (local.tee $10
(i32.add
- (local.get $8)
+ (local.get $10)
(i32.const -4)
)
)
@@ -4365,7 +4356,7 @@
)
(br_if $do-once63
(i32.eqz
- (local.get $11)
+ (local.get $8)
)
)
(i32.store
@@ -4375,7 +4366,7 @@
(i32.const -4)
)
)
- (local.get $11)
+ (local.get $8)
)
)
)
@@ -4407,18 +4398,18 @@
)
(i32.store
(local.get $20)
- (local.tee $8
+ (local.tee $10
(i32.sub
(i32.load
(local.get $20)
)
- (local.get $12)
+ (local.get $19)
)
)
)
(br_if $while-in62
(i32.gt_s
- (local.get $8)
+ (local.get $10)
(i32.const 0)
)
)
@@ -4428,7 +4419,7 @@
(local.get $7)
)
)
- (local.set $17
+ (local.set $18
(select
(i32.const 6)
(local.get $5)
@@ -4440,15 +4431,15 @@
)
(if
(i32.lt_s
- (local.get $8)
+ (local.get $10)
(i32.const 0)
)
(block
- (local.set $21
+ (local.set $19
(i32.add
(call $i32s-div
(i32.add
- (local.get $17)
+ (local.get $18)
(i32.const 25)
)
(i32.const 9)
@@ -4456,9 +4447,9 @@
(i32.const 1)
)
)
- (local.set $32
+ (local.set $23
(i32.eq
- (local.get $24)
+ (local.get $12)
(i32.const 102)
)
)
@@ -4470,13 +4461,13 @@
)
(local.set $4
(loop $while-in70 (result i32)
- (local.set $12
+ (local.set $8
(select
(i32.const 9)
(local.tee $6
(i32.sub
(i32.const 0)
- (local.get $8)
+ (local.get $10)
)
)
(i32.gt_s
@@ -4491,11 +4482,11 @@
(local.get $4)
)
(block $do-once71
- (local.set $11
+ (local.set $27
(i32.add
(i32.shl
(i32.const 1)
- (local.get $12)
+ (local.get $8)
)
(i32.const -1)
)
@@ -4503,10 +4494,10 @@
(local.set $37
(i32.shr_u
(i32.const 1000000000)
- (local.get $12)
+ (local.get $8)
)
)
- (local.set $8
+ (local.set $10
(i32.const 0)
)
(local.set $6
@@ -4516,22 +4507,22 @@
(i32.store
(local.get $6)
(i32.add
- (local.get $8)
+ (local.get $10)
(i32.shr_u
- (local.tee $8
+ (local.tee $38
(i32.load
(local.get $6)
)
)
- (local.get $12)
+ (local.get $8)
)
)
)
- (local.set $8
+ (local.set $10
(i32.mul
(i32.and
- (local.get $8)
- (local.get $11)
+ (local.get $27)
+ (local.get $38)
)
(local.get $37)
)
@@ -4562,12 +4553,12 @@
)
(br_if $do-once71
(i32.eqz
- (local.get $8)
+ (local.get $10)
)
)
(i32.store
(local.get $4)
- (local.get $8)
+ (local.get $10)
)
(local.set $4
(i32.add
@@ -4589,18 +4580,18 @@
)
)
)
- (local.set $11
+ (local.set $4
(select
(i32.add
(local.tee $5
(select
(local.get $7)
(local.get $6)
- (local.get $32)
+ (local.get $23)
)
)
(i32.shl
- (local.get $21)
+ (local.get $19)
(i32.const 2)
)
)
@@ -4613,38 +4604,35 @@
)
(i32.const 2)
)
- (local.get $21)
+ (local.get $19)
)
)
)
(i32.store
(local.get $20)
- (local.tee $8
+ (local.tee $10
(i32.add
(i32.load
(local.get $20)
)
- (local.get $12)
+ (local.get $8)
)
)
)
(if (result i32)
(i32.lt_s
- (local.get $8)
+ (local.get $10)
(i32.const 0)
)
(block
(local.set $5
(local.get $6)
)
- (local.set $4
- (local.get $11)
- )
(br $while-in70)
)
(block (result i32)
- (local.set $8
- (local.get $11)
+ (local.set $10
+ (local.get $4)
)
(local.get $6)
)
@@ -4652,24 +4640,24 @@
)
)
)
- (local.set $8
+ (local.set $10
(local.get $6)
)
)
- (local.set $21
+ (local.set $19
(local.get $7)
)
(if
(i32.lt_u
(local.get $4)
- (local.get $8)
+ (local.get $10)
)
(block $do-once75
(local.set $6
(i32.mul
(i32.shr_s
(i32.sub
- (local.get $21)
+ (local.get $19)
(local.get $4)
)
(i32.const 2)
@@ -4679,7 +4667,7 @@
)
(br_if $do-once75
(i32.lt_u
- (local.tee $11
+ (local.tee $8
(i32.load
(local.get $4)
)
@@ -4699,7 +4687,7 @@
)
(br_if $while-in78
(i32.ge_u
- (local.get $11)
+ (local.get $8)
(local.tee $5
(i32.mul
(local.get $5)
@@ -4720,12 +4708,12 @@
(local.tee $5
(i32.add
(i32.sub
- (local.get $17)
+ (local.get $18)
(select
(local.get $6)
(i32.const 0)
(i32.ne
- (local.get $24)
+ (local.get $12)
(i32.const 102)
)
)
@@ -4733,15 +4721,15 @@
(i32.shr_s
(i32.shl
(i32.and
- (local.tee $32
+ (local.tee $37
(i32.eq
- (local.get $24)
+ (local.get $12)
(i32.const 103)
)
)
- (local.tee $37
+ (local.tee $38
(i32.ne
- (local.get $17)
+ (local.get $18)
(i32.const 0)
)
)
@@ -4756,8 +4744,8 @@
(i32.mul
(i32.shr_s
(i32.sub
- (local.get $8)
- (local.get $21)
+ (local.get $10)
+ (local.get $19)
)
(i32.const 2)
)
@@ -4792,13 +4780,13 @@
(i32.const 9)
)
(block
- (local.set $11
+ (local.set $8
(i32.const 10)
)
(loop $while-in80
- (local.set $11
+ (local.set $8
(i32.mul
- (local.get $11)
+ (local.get $8)
(i32.const 10)
)
)
@@ -4815,13 +4803,13 @@
)
)
)
- (local.set $11
+ (local.set $8
(i32.const 10)
)
)
(local.set $12
(call $i32u-rem
- (local.tee $24
+ (local.tee $23
(i32.load
(local.tee $5
(i32.add
@@ -4837,19 +4825,19 @@
)
)
)
- (local.get $11)
+ (local.get $8)
)
)
(if
(i32.eqz
(i32.and
- (local.tee $48
+ (local.tee $27
(i32.eq
(i32.add
(local.get $5)
(i32.const 4)
)
- (local.get $8)
+ (local.get $10)
)
)
(i32.eqz
@@ -4860,17 +4848,17 @@
(block $do-once81
(local.set $49
(call $i32u-div
- (local.get $24)
- (local.get $11)
+ (local.get $23)
+ (local.get $8)
)
)
- (local.set $15
+ (local.set $14
(if (result f64)
(i32.lt_u
(local.get $12)
(local.tee $50
(call $i32s-div
- (local.get $11)
+ (local.get $8)
(i32.const 2)
)
)
@@ -4880,7 +4868,7 @@
(f64.const 1)
(f64.const 1.5)
(i32.and
- (local.get $48)
+ (local.get $27)
(i32.eq
(local.get $12)
(local.get $50)
@@ -4904,19 +4892,19 @@
(if
(i32.eq
(i32.load8_s
- (local.get $31)
+ (local.get $32)
)
(i32.const 45)
)
(block
- (local.set $15
+ (local.set $22
(f64.neg
- (local.get $15)
+ (local.get $22)
)
)
- (local.set $22
+ (local.set $14
(f64.neg
- (local.get $22)
+ (local.get $14)
)
)
)
@@ -4926,7 +4914,7 @@
(local.get $5)
(local.tee $12
(i32.sub
- (local.get $24)
+ (local.get $23)
(local.get $12)
)
)
@@ -4935,7 +4923,7 @@
(f64.eq
(f64.add
(local.get $22)
- (local.get $15)
+ (local.get $14)
)
(local.get $22)
)
@@ -4944,7 +4932,7 @@
(local.get $5)
(local.tee $6
(i32.add
- (local.get $11)
+ (local.get $8)
(local.get $12)
)
)
@@ -5002,7 +4990,7 @@
(i32.mul
(i32.shr_s
(i32.sub
- (local.get $21)
+ (local.get $19)
(local.get $4)
)
(i32.const 2)
@@ -5020,7 +5008,7 @@
(i32.const 10)
)
)
- (local.set $11
+ (local.set $8
(i32.const 10)
)
(loop $while-in88
@@ -5033,9 +5021,9 @@
(br_if $while-in88
(i32.ge_u
(local.get $12)
- (local.tee $11
+ (local.tee $8
(i32.mul
- (local.get $11)
+ (local.get $8)
(i32.const 10)
)
)
@@ -5044,7 +5032,7 @@
)
)
)
- (local.set $11
+ (local.set $8
(local.get $4)
)
(local.set $12
@@ -5057,34 +5045,34 @@
(i32.const 4)
)
)
- (local.get $8)
+ (local.get $10)
(i32.gt_u
- (local.get $8)
+ (local.get $10)
(local.get $4)
)
)
)
(block (result i32)
- (local.set $11
+ (local.set $8
(local.get $4)
)
(local.set $12
(local.get $6)
)
- (local.get $8)
+ (local.get $10)
)
)
)
- (local.set $8
+ (local.set $23
(loop $while-in90 (result i32)
(block $while-out89 (result i32)
(if
(i32.le_u
(local.get $4)
- (local.get $11)
+ (local.get $8)
)
(block
- (local.set $24
+ (local.set $27
(i32.const 0)
)
(br $while-out89
@@ -5094,7 +5082,7 @@
)
(if (result i32)
(i32.load
- (local.tee $6
+ (local.tee $5
(i32.add
(local.get $4)
(i32.const -4)
@@ -5102,14 +5090,14 @@
)
)
(block (result i32)
- (local.set $24
+ (local.set $27
(i32.const 1)
)
(local.get $4)
)
(block
(local.set $4
- (local.get $6)
+ (local.get $5)
)
(br $while-in90)
)
@@ -5119,7 +5107,7 @@
)
(local.set $4
(if (result i32)
- (local.get $32)
+ (local.get $37)
(block $do-once91 (result i32)
(local.set $6
(if (result i32)
@@ -5127,9 +5115,9 @@
(i32.gt_s
(local.tee $4
(i32.add
- (local.get $17)
+ (local.get $18)
(i32.xor
- (local.get $37)
+ (local.get $38)
(i32.const 1)
)
)
@@ -5142,7 +5130,7 @@
)
)
(block (result i32)
- (local.set $17
+ (local.set $18
(i32.sub
(i32.add
(local.get $4)
@@ -5152,49 +5140,44 @@
)
)
(i32.add
- (local.get $18)
+ (local.get $17)
(i32.const -1)
)
)
(block (result i32)
- (local.set $17
+ (local.set $18
(i32.add
(local.get $4)
(i32.const -1)
)
)
(i32.add
- (local.get $18)
+ (local.get $17)
(i32.const -2)
)
)
)
)
- (if
- (local.tee $4
- (i32.and
- (local.get $10)
- (i32.const 8)
- )
- )
- (block
- (local.set $21
- (local.get $4)
- )
- (br $do-once91
- (local.get $17)
+ (drop
+ (br_if $do-once91
+ (local.get $18)
+ (local.tee $10
+ (i32.and
+ (local.get $11)
+ (i32.const 8)
+ )
)
)
)
(if
- (local.get $24)
+ (local.get $27)
(block $do-once93
(if
(i32.eqz
- (local.tee $18
+ (local.tee $10
(i32.load
(i32.add
- (local.get $8)
+ (local.get $23)
(i32.const -4)
)
)
@@ -5210,7 +5193,7 @@
(local.set $4
(if (result i32)
(call $i32u-rem
- (local.get $18)
+ (local.get $10)
(i32.const 10)
)
(block
@@ -5237,7 +5220,7 @@
(br_if $while-in96
(i32.eqz
(call $i32u-rem
- (local.get $18)
+ (local.get $10)
(local.tee $5
(i32.mul
(local.get $5)
@@ -5258,8 +5241,8 @@
(i32.mul
(i32.shr_s
(i32.sub
- (local.get $8)
- (local.get $21)
+ (local.get $23)
+ (local.get $19)
)
(i32.const 2)
)
@@ -5277,11 +5260,11 @@
(i32.const 102)
)
(block (result i32)
- (local.set $21
+ (local.set $10
(i32.const 0)
)
(select
- (local.get $17)
+ (local.get $18)
(local.tee $4
(select
(i32.const 0)
@@ -5298,17 +5281,17 @@
)
)
(i32.lt_s
- (local.get $17)
+ (local.get $18)
(local.get $4)
)
)
)
(block (result i32)
- (local.set $21
+ (local.set $10
(i32.const 0)
)
(select
- (local.get $17)
+ (local.get $18)
(local.tee $4
(select
(i32.const 0)
@@ -5328,7 +5311,7 @@
)
)
(i32.lt_s
- (local.get $17)
+ (local.get $18)
(local.get $4)
)
)
@@ -5336,16 +5319,16 @@
)
)
(block (result i32)
- (local.set $21
+ (local.set $10
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 8)
)
)
(local.set $6
- (local.get $18)
+ (local.get $17)
)
- (local.get $17)
+ (local.get $18)
)
)
)
@@ -5358,11 +5341,11 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
+ (local.get $15)
(local.tee $12
(i32.add
(if (result i32)
- (local.tee $17
+ (local.tee $19
(i32.eq
(i32.or
(local.get $6)
@@ -5372,7 +5355,7 @@
)
)
(block (result i32)
- (local.set $18
+ (local.set $17
(i32.const 0)
)
(select
@@ -5388,7 +5371,7 @@
(if
(i32.lt_s
(i32.sub
- (local.get $27)
+ (local.get $28)
(local.tee $5
(call $_fmt_u
(local.tee $5
@@ -5430,7 +5413,7 @@
(br_if $while-in98
(i32.lt_s
(i32.sub
- (local.get $27)
+ (local.get $28)
(local.get $5)
)
(i32.const 2)
@@ -5455,7 +5438,7 @@
)
)
(i32.store8
- (local.tee $18
+ (local.tee $17
(i32.add
(local.get $5)
(i32.const -2)
@@ -5464,8 +5447,8 @@
(local.get $6)
)
(i32.sub
- (local.get $27)
- (local.get $18)
+ (local.get $28)
+ (local.get $17)
)
)
)
@@ -5478,10 +5461,10 @@
(local.get $4)
)
(i32.ne
- (local.tee $32
+ (local.tee $18
(i32.or
(local.get $4)
- (local.get $21)
+ (local.get $10)
)
)
(i32.const 0)
@@ -5489,7 +5472,7 @@
)
)
)
- (local.get $10)
+ (local.get $11)
)
(if
(i32.eqz
@@ -5501,7 +5484,7 @@
)
)
(call $___fwritex
- (local.get $31)
+ (local.get $32)
(local.get $26)
(local.get $0)
)
@@ -5509,23 +5492,23 @@
(call $_pad
(local.get $0)
(i32.const 48)
- (local.get $14)
+ (local.get $15)
(local.get $12)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 65536)
)
)
(if
- (local.get $17)
+ (local.get $19)
(block
(local.set $5
- (local.tee $11
+ (local.tee $8
(select
(local.get $7)
- (local.get $11)
+ (local.get $8)
(i32.gt_u
- (local.get $11)
+ (local.get $8)
(local.get $7)
)
)
@@ -5538,20 +5521,20 @@
(local.get $5)
)
(i32.const 0)
- (local.get $30)
+ (local.get $31)
)
)
(block $do-once103
(if
(i32.eq
(local.get $5)
- (local.get $11)
+ (local.get $8)
)
(block
(br_if $do-once103
(i32.ne
(local.get $6)
- (local.get $30)
+ (local.get $31)
)
)
(i32.store8
@@ -5566,7 +5549,7 @@
(br_if $do-once103
(i32.le_u
(local.get $6)
- (local.get $23)
+ (local.get $21)
)
)
(loop $while-in106
@@ -5582,7 +5565,7 @@
(br_if $while-in106
(i32.gt_u
(local.get $6)
- (local.get $23)
+ (local.get $21)
)
)
)
@@ -5601,7 +5584,7 @@
(call $___fwritex
(local.get $6)
(i32.sub
- (local.get $41)
+ (local.get $42)
(local.get $6)
)
(local.get $0)
@@ -5626,7 +5609,7 @@
)
)
(if
- (local.get $32)
+ (local.get $18)
(if
(i32.eqz
(i32.and
@@ -5651,7 +5634,7 @@
(i32.and
(i32.lt_u
(local.get $6)
- (local.get $8)
+ (local.get $23)
)
(i32.gt_s
(local.get $4)
@@ -5667,10 +5650,10 @@
(local.get $6)
)
(i32.const 0)
- (local.get $30)
+ (local.get $31)
)
)
- (local.get $23)
+ (local.get $21)
)
(loop $while-in112
(i32.store8
@@ -5685,7 +5668,7 @@
(br_if $while-in112
(i32.gt_u
(local.get $5)
- (local.get $23)
+ (local.get $21)
)
)
)
@@ -5727,7 +5710,7 @@
(i32.const 4)
)
)
- (local.get $8)
+ (local.get $23)
)
(i32.gt_s
(local.get $4)
@@ -5752,14 +5735,14 @@
)
)
(block $do-once99
- (local.set $8
+ (local.set $19
(select
- (local.get $8)
+ (local.get $23)
(i32.add
- (local.get $11)
+ (local.get $8)
(i32.const 4)
)
- (local.get $24)
+ (local.get $27)
)
)
(call $_pad
@@ -5772,13 +5755,13 @@
(i32.const -1)
)
(block (result i32)
- (local.set $17
+ (local.set $10
(i32.eqz
- (local.get $21)
+ (local.get $10)
)
)
(local.set $5
- (local.get $11)
+ (local.get $8)
)
(local.set $6
(local.get $4)
@@ -5792,10 +5775,10 @@
(local.get $5)
)
(i32.const 0)
- (local.get $30)
+ (local.get $31)
)
)
- (local.get $30)
+ (local.get $31)
)
(block
(i32.store8
@@ -5811,7 +5794,7 @@
(if
(i32.eq
(local.get $5)
- (local.get $11)
+ (local.get $8)
)
(block
(if
@@ -5841,7 +5824,7 @@
(local.get $6)
(i32.const 1)
)
- (local.get $17)
+ (local.get $10)
)
)
(br_if $do-once115
@@ -5862,7 +5845,7 @@
(br_if $do-once115
(i32.le_u
(local.get $4)
- (local.get $23)
+ (local.get $21)
)
)
(loop $while-in118
@@ -5878,7 +5861,7 @@
(br_if $while-in118
(i32.gt_u
(local.get $4)
- (local.get $23)
+ (local.get $21)
)
)
)
@@ -5887,7 +5870,7 @@
)
(local.set $7
(i32.sub
- (local.get $41)
+ (local.get $42)
(local.get $4)
)
)
@@ -5922,7 +5905,7 @@
(i32.const 4)
)
)
- (local.get $8)
+ (local.get $19)
)
(i32.gt_s
(local.tee $6
@@ -5954,10 +5937,10 @@
)
)
(call $___fwritex
- (local.get $18)
+ (local.get $17)
(i32.sub
- (local.get $27)
- (local.get $18)
+ (local.get $28)
+ (local.get $17)
)
(local.get $0)
)
@@ -5966,19 +5949,19 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
+ (local.get $15)
(local.get $12)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 8192)
)
)
(select
- (local.get $14)
+ (local.get $15)
(local.get $12)
(i32.lt_s
(local.get $12)
- (local.get $14)
+ (local.get $15)
)
)
)
@@ -5986,17 +5969,17 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
- (local.tee $6
+ (local.get $15)
+ (local.tee $4
(i32.add
- (local.tee $8
+ (local.tee $6
(select
(i32.const 0)
(local.get $26)
(local.tee $5
(f64.ne
- (local.get $15)
- (local.get $15)
+ (local.get $14)
+ (local.get $14)
)
)
)
@@ -6014,7 +5997,7 @@
(local.tee $7
(i32.ne
(i32.and
- (local.get $18)
+ (local.get $17)
(i32.const 32)
)
(i32.const 0)
@@ -6034,18 +6017,18 @@
(i32.and
(if (result i32)
(i32.and
- (local.tee $4
+ (local.tee $7
(i32.load
(local.get $0)
)
)
(i32.const 32)
)
- (local.get $4)
+ (local.get $7)
(block (result i32)
(call $___fwritex
- (local.get $31)
- (local.get $8)
+ (local.get $32)
+ (local.get $6)
(local.get $0)
)
(i32.load
@@ -6065,19 +6048,19 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
- (local.get $6)
+ (local.get $15)
+ (local.get $4)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 8192)
)
)
(select
- (local.get $14)
- (local.get $6)
+ (local.get $15)
+ (local.get $4)
(i32.lt_s
- (local.get $6)
- (local.get $14)
+ (local.get $4)
+ (local.get $15)
)
)
)
@@ -6087,26 +6070,26 @@
(local.get $9)
)
(local.set $9
- (local.get $6)
+ (local.get $5)
)
(br $label$continue$L1)
)
- (local.set $11
+ (local.set $8
(local.get $5)
)
(local.set $7
(i32.const 0)
)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(br $__rjto$8
- (local.get $25)
+ (local.get $24)
)
)
(local.set $8
(i32.and
- (local.get $18)
+ (local.get $17)
(i32.const 32)
)
)
@@ -6118,7 +6101,7 @@
(local.get $13)
)
)
- (local.tee $10
+ (local.tee $11
(i32.load offset=4
(local.get $13)
)
@@ -6126,7 +6109,7 @@
)
(block (result i32)
(local.set $7
- (local.get $25)
+ (local.get $24)
)
(local.set $6
(loop $while-in123 (result i32)
@@ -6155,11 +6138,11 @@
(local.tee $6
(call $_bitshift64Lshr
(local.get $6)
- (local.get $10)
+ (local.get $11)
(i32.const 4)
)
)
- (local.tee $10
+ (local.tee $11
(global.get $tempRet0)
)
)
@@ -6187,16 +6170,16 @@
)
)
(block (result i32)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(i32.const 0)
)
(block (result i32)
- (local.set $8
+ (local.set $10
(i32.add
(i32.shr_s
- (local.get $18)
+ (local.get $17)
(i32.const 4)
)
(i32.const 4091)
@@ -6208,9 +6191,9 @@
)
(block (result i32)
(local.set $6
- (local.get $25)
+ (local.get $24)
)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(i32.const 0)
@@ -6223,15 +6206,15 @@
(call $_fmt_u
(local.get $4)
(local.get $6)
- (local.get $25)
+ (local.get $24)
)
)
(local.set $4
- (local.get $10)
+ (local.get $11)
)
(br $__rjti$8)
)
- (local.set $18
+ (local.set $17
(i32.eqz
(local.tee $12
(call $_memchr
@@ -6241,10 +6224,10 @@
)
)
)
- (local.set $10
+ (local.set $11
(local.get $7)
)
- (local.set $11
+ (local.set $8
(select
(local.get $5)
(i32.sub
@@ -6253,13 +6236,13 @@
(local.get $6)
)
)
- (local.get $18)
+ (local.get $17)
)
)
(local.set $7
(i32.const 0)
)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(br $__rjto$8
@@ -6269,7 +6252,7 @@
(local.get $5)
)
(local.get $12)
- (local.get $18)
+ (local.get $17)
)
)
)
@@ -6349,9 +6332,9 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
+ (local.get $15)
(local.get $4)
- (local.get $10)
+ (local.get $11)
)
(if (result i32)
(local.get $4)
@@ -6431,7 +6414,7 @@
)
)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 8192)
)
)
@@ -6440,17 +6423,17 @@
)
(local.set $9
(select
- (local.get $14)
- (local.get $6)
+ (local.get $15)
+ (local.get $5)
(i32.gt_s
- (local.get $14)
- (local.get $6)
+ (local.get $15)
+ (local.get $5)
)
)
)
(br $label$continue$L1)
)
- (local.set $10
+ (local.set $11
(select
(i32.and
(local.get $4)
@@ -6466,7 +6449,7 @@
(if (result i32)
(i32.or
(local.get $5)
- (local.tee $4
+ (local.tee $8
(i32.or
(i32.ne
(i32.load
@@ -6484,24 +6467,21 @@
)
)
(block (result i32)
- (local.set $11
+ (local.set $8
(select
(local.get $5)
(local.tee $6
(i32.add
- (i32.xor
- (i32.and
- (local.get $4)
- (i32.const 1)
- )
- (i32.const 1)
- )
(i32.sub
- (local.get $38)
+ (local.get $39)
(local.tee $4
(local.get $6)
)
)
+ (i32.xor
+ (local.get $8)
+ (i32.const 1)
+ )
)
)
(i32.gt_s
@@ -6510,14 +6490,14 @@
)
)
)
- (local.get $25)
+ (local.get $24)
)
(block (result i32)
- (local.set $11
+ (local.set $8
(i32.const 0)
)
(local.tee $4
- (local.get $25)
+ (local.get $24)
)
)
)
@@ -6525,9 +6505,9 @@
(local.get $4)
)
)
- (local.get $11)
+ (local.get $8)
(i32.lt_s
- (local.get $11)
+ (local.get $8)
(local.get $12)
)
)
@@ -6535,15 +6515,15 @@
(local.get $7)
)
)
- (local.get $14)
+ (local.get $15)
(i32.lt_s
- (local.get $14)
- (local.get $5)
+ (local.get $15)
+ (local.get $6)
)
)
)
- (local.get $5)
- (local.get $10)
+ (local.get $6)
+ (local.get $11)
)
(if
(i32.eqz
@@ -6555,7 +6535,7 @@
)
)
(call $___fwritex
- (local.get $8)
+ (local.get $10)
(local.get $7)
(local.get $0)
)
@@ -6563,17 +6543,17 @@
(call $_pad
(local.get $0)
(i32.const 48)
- (local.get $6)
(local.get $5)
+ (local.get $6)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 65536)
)
)
(call $_pad
(local.get $0)
(i32.const 48)
- (local.get $11)
+ (local.get $8)
(local.get $12)
(i32.const 0)
)
@@ -6595,10 +6575,10 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $6)
(local.get $5)
+ (local.get $6)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 8192)
)
)
@@ -6606,7 +6586,7 @@
(local.get $9)
)
(local.set $9
- (local.get $6)
+ (local.get $5)
)
(br $label$continue$L1)
)
@@ -6619,7 +6599,7 @@
)
(local.set $16
(if (result i32)
- (local.get $19)
+ (local.get $25)
(block (result i32)
(local.set $0
(i32.const 1)
@@ -6712,7 +6692,7 @@
)
)
(global.set $STACKTOP
- (local.get $28)
+ (local.get $29)
)
(local.get $16)
)
diff --git a/test/emcc_hello_world.fromasm.clamp b/test/emcc_hello_world.fromasm.clamp
index ce65cca04..1a2992ad1 100644
--- a/test/emcc_hello_world.fromasm.clamp
+++ b/test/emcc_hello_world.fromasm.clamp
@@ -977,7 +977,7 @@
(local $6 i32)
(local $7 i32)
(local $8 i32)
- (local.set $7
+ (local.set $6
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -995,22 +995,22 @@
)
(local.set $3
(i32.add
- (local.get $7)
+ (local.get $6)
(i32.const 120)
)
)
(local.set $5
(i32.add
(local.tee $4
- (local.get $7)
+ (local.get $6)
)
(i32.const 136)
)
)
- (local.set $6
+ (local.set $8
(i32.add
(local.tee $2
- (local.tee $8
+ (local.tee $7
(i32.add
(local.get $4)
(i32.const 80)
@@ -1033,7 +1033,7 @@
(i32.const 4)
)
)
- (local.get $6)
+ (local.get $8)
)
)
)
@@ -1050,7 +1050,7 @@
(i32.const 0)
(local.get $3)
(local.get $4)
- (local.get $8)
+ (local.get $7)
)
(i32.const 0)
)
@@ -1061,7 +1061,7 @@
(local.get $0)
)
)
- (local.set $2
+ (local.set $1
(i32.load
(local.get $0)
)
@@ -1076,7 +1076,7 @@
(i32.store
(local.get $0)
(i32.and
- (local.get $2)
+ (local.get $1)
(i32.const -33)
)
)
@@ -1090,11 +1090,11 @@
(local.get $0)
(local.get $3)
(local.get $4)
- (local.get $8)
+ (local.get $7)
)
)
(block
- (local.set $6
+ (local.set $2
(i32.load offset=44
(local.get $0)
)
@@ -1127,11 +1127,11 @@
(local.get $0)
(local.get $3)
(local.get $4)
- (local.get $8)
+ (local.get $7)
)
)
(if
- (local.get $6)
+ (local.get $2)
(block
(drop
(call_indirect (type $FUNCSIG$iiii)
@@ -1156,7 +1156,7 @@
)
(i32.store offset=44
(local.get $0)
- (local.get $6)
+ (local.get $2)
)
(i32.store offset=48
(local.get $0)
@@ -1185,7 +1185,7 @@
(local.get $0)
)
(i32.and
- (local.get $2)
+ (local.get $1)
(i32.const 32)
)
)
@@ -1195,7 +1195,7 @@
)
)
(global.set $STACKTOP
- (local.get $7)
+ (local.get $6)
)
)
(func $___fwritex (; 36 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32)
@@ -1721,7 +1721,7 @@
(i32.and
(i32.xor
(i32.and
- (local.tee $3
+ (local.tee $2
(i32.load
(local.get $1)
)
@@ -1731,7 +1731,7 @@
(i32.const -2139062144)
)
(i32.add
- (local.get $3)
+ (local.get $2)
(i32.const -16843009)
)
)
@@ -2046,8 +2046,8 @@
(local $11 i32)
(local $12 i32)
(local $13 i32)
- (local $14 i32)
- (local $15 f64)
+ (local $14 f64)
+ (local $15 i32)
(local $16 i32)
(local $17 i32)
(local $18 i32)
@@ -2086,7 +2086,7 @@
(local.set $4
(i32.const 672)
)
- (local.set $28
+ (local.set $29
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -2104,14 +2104,14 @@
)
(local.set $20
(i32.add
- (local.get $28)
+ (local.get $29)
(i32.const 16)
)
)
- (local.set $42
+ (local.set $43
(i32.add
(local.tee $13
- (local.get $28)
+ (local.get $29)
)
(i32.const 8)
)
@@ -2122,16 +2122,16 @@
(i32.const 528)
)
)
- (local.set $29
+ (local.set $30
(i32.ne
(local.get $0)
(i32.const 0)
)
)
- (local.set $38
- (local.tee $25
+ (local.set $39
+ (local.tee $24
(i32.add
- (local.tee $19
+ (local.tee $5
(i32.add
(local.get $13)
(i32.const 536)
@@ -2141,15 +2141,15 @@
)
)
)
- (local.set $39
+ (local.set $40
(i32.add
- (local.get $19)
+ (local.get $5)
(i32.const 39)
)
)
(local.set $33
(i32.add
- (local.tee $19
+ (local.tee $5
(i32.add
(local.get $13)
(i32.const 576)
@@ -2158,19 +2158,19 @@
(i32.const 12)
)
)
- (local.set $40
+ (local.set $41
(i32.add
- (local.get $19)
+ (local.get $5)
(i32.const 11)
)
)
- (local.set $43
+ (local.set $44
(i32.sub
- (local.tee $27
+ (local.tee $28
(local.get $33)
)
(local.tee $36
- (local.tee $23
+ (local.tee $21
(i32.add
(local.get $13)
(i32.const 588)
@@ -2179,21 +2179,21 @@
)
)
)
- (local.set $44
+ (local.set $45
(i32.sub
(i32.const -2)
(local.get $36)
)
)
- (local.set $45
+ (local.set $46
(i32.add
- (local.get $27)
+ (local.get $28)
(i32.const 2)
)
)
- (local.set $47
+ (local.set $48
(i32.add
- (local.tee $46
+ (local.tee $47
(i32.add
(local.get $13)
(i32.const 24)
@@ -2202,23 +2202,20 @@
(i32.const 288)
)
)
- (local.set $41
- (local.tee $30
+ (local.set $42
+ (local.tee $31
(i32.add
- (local.get $23)
+ (local.get $21)
(i32.const 9)
)
)
)
(local.set $34
(i32.add
- (local.get $23)
+ (local.get $21)
(i32.const 8)
)
)
- (local.set $19
- (i32.const 0)
- )
(block $label$break$L343
(block $__rjti$9
(loop $label$continue$L1
@@ -2269,7 +2266,7 @@
(block $label$break$L9
(block $switch
(if
- (local.tee $6
+ (local.tee $5
(i32.shr_s
(i32.shl
(local.get $6)
@@ -2281,7 +2278,7 @@
(block
(br_if $switch
(i32.ne
- (local.get $6)
+ (local.get $5)
(i32.const 37)
)
)
@@ -2348,7 +2345,7 @@
)
)
(if
- (local.get $29)
+ (local.get $30)
(if
(i32.eqz
(i32.and
@@ -2380,12 +2377,12 @@
(br $label$continue$L1)
)
)
- (local.set $7
+ (local.set $10
(if (result i32)
(i32.lt_u
(local.tee $7
(i32.add
- (local.tee $10
+ (local.tee $11
(i32.load8_s
(local.tee $9
(i32.add
@@ -2410,7 +2407,7 @@
(i32.const 3)
)
(local.get $9)
- (local.tee $10
+ (local.tee $11
(i32.eq
(i32.load8_s offset=2
(local.get $5)
@@ -2422,35 +2419,35 @@
)
)
)
- (local.set $17
+ (local.set $18
(select
(local.get $7)
(i32.const -1)
- (local.get $10)
+ (local.get $11)
)
)
(select
(i32.const 1)
- (local.get $19)
- (local.get $10)
+ (local.get $25)
+ (local.get $11)
)
)
(block (result i32)
(local.set $5
- (local.get $10)
+ (local.get $11)
)
- (local.set $17
+ (local.set $18
(i32.const -1)
)
- (local.get $19)
+ (local.get $25)
)
)
)
- (local.set $19
+ (local.set $8
(if (result i32)
(i32.eq
(i32.and
- (local.tee $10
+ (local.tee $11
(i32.shr_s
(i32.shl
(local.get $5)
@@ -2464,13 +2461,13 @@
(i32.const 32)
)
(block $label$break$L25 (result i32)
- (local.set $19
+ (local.set $25
(local.get $5)
)
(local.set $5
- (local.get $10)
+ (local.get $11)
)
- (local.set $10
+ (local.set $11
(i32.const 0)
)
(loop $while-in4 (result i32)
@@ -2489,22 +2486,22 @@
)
(block
(local.set $5
- (local.get $19)
+ (local.get $25)
)
(br $label$break$L25
- (local.get $10)
+ (local.get $11)
)
)
)
- (local.set $10
+ (local.set $11
(i32.or
- (local.get $10)
+ (local.get $11)
(i32.shl
(i32.const 1)
(i32.add
(i32.shr_s
(i32.shl
- (local.get $19)
+ (local.get $25)
(i32.const 24)
)
(i32.const 24)
@@ -2518,7 +2515,7 @@
(i32.eq
(i32.and
(local.tee $5
- (local.tee $19
+ (local.tee $25
(i32.load8_s
(local.tee $9
(i32.add
@@ -2535,15 +2532,15 @@
)
)
(local.set $5
- (local.get $19)
+ (local.get $25)
)
- (local.get $10)
+ (local.get $11)
)
)
(i32.const 0)
)
)
- (local.set $19
+ (local.set $25
(if (result i32)
(i32.eq
(i32.and
@@ -2558,7 +2555,7 @@
(block $__rjti$0
(br_if $__rjti$0
(i32.ge_u
- (local.tee $10
+ (local.tee $11
(i32.add
(i32.load8_s
(local.tee $5
@@ -2585,7 +2582,7 @@
(i32.store
(i32.add
(i32.shl
- (local.get $10)
+ (local.get $11)
(i32.const 2)
)
(local.get $3)
@@ -2613,7 +2610,7 @@
(local.set $7
(i32.const 1)
)
- (local.set $14
+ (local.set $15
(i32.load
(local.get $5)
)
@@ -2626,7 +2623,7 @@
)
)
(if
- (local.get $7)
+ (local.get $10)
(block
(local.set $16
(i32.const -1)
@@ -2636,16 +2633,16 @@
)
(if
(i32.eqz
- (local.get $29)
+ (local.get $30)
)
(block
- (local.set $10
- (local.get $19)
+ (local.set $11
+ (local.get $8)
)
(local.set $9
(local.get $5)
)
- (local.set $14
+ (local.set $15
(i32.const 0)
)
(br $do-once5
@@ -2653,7 +2650,7 @@
)
)
)
- (local.set $14
+ (local.set $15
(i32.load
(local.tee $9
(i32.and
@@ -2681,25 +2678,25 @@
(local.get $5)
)
)
- (local.set $10
+ (local.set $11
(if (result i32)
(i32.lt_s
- (local.get $14)
+ (local.get $15)
(i32.const 0)
)
(block (result i32)
- (local.set $14
+ (local.set $15
(i32.sub
(i32.const 0)
- (local.get $14)
+ (local.get $15)
)
)
(i32.or
- (local.get $19)
+ (local.get $8)
(i32.const 8192)
)
)
- (local.get $19)
+ (local.get $8)
)
)
(local.get $7)
@@ -2721,7 +2718,7 @@
(i32.const 10)
)
(block (result i32)
- (local.set $10
+ (local.set $11
(i32.const 0)
)
(loop $while-in8
@@ -2729,14 +2726,14 @@
(i32.add
(local.get $5)
(i32.mul
- (local.get $10)
+ (local.get $11)
(i32.const 10)
)
)
)
(if
(i32.lt_u
- (local.tee $8
+ (local.tee $7
(i32.add
(i32.load8_s
(local.tee $9
@@ -2752,11 +2749,11 @@
(i32.const 10)
)
(block
- (local.set $10
+ (local.set $11
(local.get $5)
)
(local.set $5
- (local.get $8)
+ (local.get $7)
)
(br $while-in8)
)
@@ -2774,24 +2771,24 @@
(br $label$break$L1)
)
(block (result i32)
- (local.set $10
- (local.get $19)
+ (local.set $11
+ (local.get $8)
)
- (local.set $14
+ (local.set $15
(local.get $5)
)
- (local.get $7)
+ (local.get $10)
)
)
)
(block (result i32)
- (local.set $10
- (local.get $19)
+ (local.set $11
+ (local.get $8)
)
- (local.set $14
+ (local.set $15
(i32.const 0)
)
- (local.get $7)
+ (local.get $10)
)
)
)
@@ -2853,7 +2850,7 @@
(loop $while-in11
(drop
(br_if $label$break$L46
- (local.tee $5
+ (local.tee $7
(i32.add
(local.get $5)
(i32.mul
@@ -2863,7 +2860,7 @@
)
)
(i32.ge_u
- (local.tee $8
+ (local.tee $5
(i32.add
(i32.load8_s
(local.tee $9
@@ -2880,12 +2877,6 @@
)
)
)
- (local.set $7
- (local.get $5)
- )
- (local.set $5
- (local.get $8)
- )
(br $while-in11)
)
)
@@ -2958,7 +2949,7 @@
)
)
(if
- (local.get $19)
+ (local.get $25)
(block
(local.set $16
(i32.const -1)
@@ -2967,7 +2958,7 @@
)
)
(if (result i32)
- (local.get $29)
+ (local.get $30)
(block (result i32)
(local.set $7
(i32.load
@@ -3010,14 +3001,14 @@
(local.set $7
(local.get $9)
)
- (local.set $8
+ (local.set $10
(i32.const 0)
)
- (local.set $18
+ (local.set $17
(loop $while-in13 (result i32)
(if
(i32.gt_u
- (local.tee $11
+ (local.tee $8
(i32.add
(i32.load8_s
(local.get $7)
@@ -3043,15 +3034,15 @@
(if (result i32)
(i32.lt_u
(i32.add
- (local.tee $11
+ (local.tee $8
(i32.and
(local.tee $12
(i32.load8_s
(i32.add
- (local.get $11)
+ (local.get $8)
(i32.add
(i32.mul
- (local.get $8)
+ (local.get $10)
(i32.const 58)
)
(i32.const 3611)
@@ -3070,8 +3061,8 @@
(local.set $7
(local.get $9)
)
- (local.set $8
- (local.get $11)
+ (local.set $10
+ (local.get $8)
)
(br $while-in13)
)
@@ -3095,7 +3086,7 @@
)
(local.set $7
(i32.gt_s
- (local.get $17)
+ (local.get $18)
(i32.const -1)
)
)
@@ -3126,19 +3117,19 @@
(i32.store
(i32.add
(i32.shl
- (local.get $17)
+ (local.get $18)
(i32.const 2)
)
(local.get $3)
)
- (local.get $11)
+ (local.get $8)
)
- (local.set $11
+ (local.set $8
(i32.load offset=4
(local.tee $7
(i32.add
(i32.shl
- (local.get $17)
+ (local.get $18)
(i32.const 3)
)
(local.get $2)
@@ -3154,14 +3145,14 @@
)
(i32.store offset=4
(local.get $13)
- (local.get $11)
+ (local.get $8)
)
(br $__rjti$2)
)
)
(if
(i32.eqz
- (local.get $29)
+ (local.get $30)
)
(block
(local.set $16
@@ -3172,7 +3163,7 @@
)
(call $_pop_arg_336
(local.get $13)
- (local.get $11)
+ (local.get $8)
(local.get $1)
)
)
@@ -3181,7 +3172,7 @@
)
(if
(i32.eqz
- (local.get $29)
+ (local.get $30)
)
(block
(local.set $4
@@ -3194,17 +3185,17 @@
)
)
)
- (local.set $10
+ (local.set $11
(select
(local.tee $7
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const -65537)
)
)
- (local.get $10)
+ (local.get $11)
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 8192)
)
)
@@ -3212,11 +3203,11 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.tee $6
+ (local.tee $5
(select
- (local.tee $5
+ (local.tee $6
(i32.add
- (local.tee $11
+ (local.tee $8
(select
(local.tee $12
(i32.sub
@@ -3225,8 +3216,8 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
- (local.tee $6
+ (local.get $15)
+ (local.tee $5
(block $__rjti$7 (result i32)
(block $__rjti$6
(block $__rjti$5
@@ -3247,27 +3238,27 @@
(block $switch-case27
(br_table $switch-case119 $switch-default120 $switch-case40 $switch-default120 $switch-case119 $switch-case119 $switch-case119 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case41 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case30 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case119 $switch-default120 $switch-case37 $switch-case35 $switch-case119 $switch-case119 $switch-case119 $switch-default120 $switch-case35 $switch-default120 $switch-default120 $switch-default120 $switch-case38 $switch-case27 $switch-case33 $switch-case28 $switch-default120 $switch-default120 $switch-case39 $switch-default120 $switch-case36 $switch-default120 $switch-default120 $switch-case30 $switch-default120
(i32.sub
- (local.tee $18
+ (local.tee $17
(select
(i32.and
- (local.tee $11
+ (local.tee $8
(i32.load8_s
- (local.get $18)
+ (local.get $17)
)
)
(i32.const -33)
)
- (local.get $11)
+ (local.get $8)
(i32.and
(i32.eq
(i32.and
- (local.get $11)
+ (local.get $8)
(i32.const 15)
)
(i32.const 3)
)
(i32.ne
- (local.get $8)
+ (local.get $10)
(i32.const 0)
)
)
@@ -3286,7 +3277,7 @@
(block $switch-case20
(block $switch-case19
(br_table $switch-case19 $switch-case20 $switch-case21 $switch-case22 $switch-case23 $switch-default26 $switch-case24 $switch-case25 $switch-default26
- (local.get $8)
+ (local.get $10)
)
)
(i32.store
@@ -3427,7 +3418,7 @@
)
(local.set $4
(i32.or
- (local.get $10)
+ (local.get $11)
(i32.const 8)
)
)
@@ -3441,13 +3432,13 @@
)
)
)
- (local.set $18
+ (local.set $17
(i32.const 120)
)
(br $__rjti$3)
)
(local.set $4
- (local.get $10)
+ (local.get $11)
)
(br $__rjti$3)
)
@@ -3466,7 +3457,7 @@
)
(block
(local.set $7
- (local.get $25)
+ (local.get $24)
)
(loop $while-in32
(i32.store8
@@ -3501,24 +3492,24 @@
)
)
(local.set $7
- (local.get $25)
+ (local.get $24)
)
)
(if
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 8)
)
(block
(local.set $4
- (local.get $10)
+ (local.get $11)
)
(local.set $5
(select
- (local.tee $10
+ (local.tee $11
(i32.add
(i32.sub
- (local.get $38)
+ (local.get $39)
(local.tee $6
(local.get $7)
)
@@ -3529,7 +3520,7 @@
(local.get $5)
(i32.lt_s
(local.get $5)
- (local.get $10)
+ (local.get $11)
)
)
)
@@ -3539,14 +3530,14 @@
(local.get $7)
)
(local.set $4
- (local.get $10)
+ (local.get $11)
)
)
)
(local.set $7
(i32.const 0)
)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(br $__rjti$8)
@@ -3586,16 +3577,16 @@
(local.set $7
(i32.const 1)
)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(br $__rjti$4)
)
)
- (local.set $8
+ (local.set $10
(if (result i32)
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 2048)
)
(block (result i32)
@@ -3608,7 +3599,7 @@
(local.set $7
(local.tee $8
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 1)
)
)
@@ -3636,7 +3627,7 @@
(local.set $7
(i32.const 0)
)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(br $__rjti$4)
@@ -3647,28 +3638,28 @@
)
)
(i32.store8
- (local.get $39)
+ (local.get $40)
(i32.load
(local.get $13)
)
)
(local.set $4
- (local.get $39)
+ (local.get $40)
)
- (local.set $10
+ (local.set $11
(local.get $7)
)
- (local.set $11
+ (local.set $8
(i32.const 1)
)
(local.set $7
(i32.const 0)
)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(br $__rjto$8
- (local.get $25)
+ (local.get $24)
)
)
(local.set $6
@@ -3699,18 +3690,18 @@
)
)
(i32.store offset=8
- (local.get $28)
+ (local.get $29)
(i32.load
(local.get $13)
)
)
(i32.store offset=12
- (local.get $28)
+ (local.get $29)
(i32.const 0)
)
(i32.store
(local.get $13)
- (local.get $42)
+ (local.get $43)
)
(local.set $7
(i32.const -1)
@@ -3729,9 +3720,9 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
+ (local.get $15)
(i32.const 0)
- (local.get $10)
+ (local.get $11)
)
(br $__rjti$7
(i32.const 0)
@@ -3739,7 +3730,7 @@
)
)
)
- (local.set $15
+ (local.set $14
(f64.load
(local.get $13)
)
@@ -3750,14 +3741,14 @@
)
(f64.store
(global.get $tempDoublePtr)
- (local.get $15)
+ (local.get $14)
)
(drop
(i32.load
(global.get $tempDoublePtr)
)
)
- (local.set $31
+ (local.set $32
(if (result i32)
(i32.lt_s
(i32.load offset=4
@@ -3769,16 +3760,16 @@
(local.set $26
(i32.const 1)
)
- (local.set $15
+ (local.set $14
(f64.neg
- (local.get $15)
+ (local.get $14)
)
)
(i32.const 4108)
)
(if (result i32)
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 2048)
)
(block (result i32)
@@ -3791,7 +3782,7 @@
(local.set $26
(local.tee $4
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 1)
)
)
@@ -3807,14 +3798,14 @@
)
(f64.store
(global.get $tempDoublePtr)
- (local.get $15)
+ (local.get $14)
)
(drop
(i32.load
(global.get $tempDoublePtr)
)
)
- (local.set $6
+ (local.set $5
(if (result i32)
(i32.lt_u
(i32.and
@@ -3832,7 +3823,7 @@
(local.tee $22
(f64.mul
(call $_frexp
- (local.get $15)
+ (local.get $14)
(local.get $20)
)
(f64.const 2)
@@ -3853,9 +3844,9 @@
)
(if
(i32.eq
- (local.tee $24
+ (local.tee $12
(i32.or
- (local.get $18)
+ (local.get $17)
(i32.const 32)
)
)
@@ -3865,19 +3856,19 @@
(local.set $8
(select
(i32.add
- (local.get $31)
+ (local.get $32)
(i32.const 9)
)
- (local.get $31)
+ (local.get $32)
(local.tee $12
(i32.and
- (local.get $18)
+ (local.get $17)
(i32.const 32)
)
)
)
)
- (local.set $15
+ (local.set $14
(if (result f64)
(i32.or
(i32.eqz
@@ -3895,13 +3886,13 @@
)
(local.get $22)
(block (result f64)
- (local.set $15
+ (local.set $14
(f64.const 8)
)
(loop $while-in54
- (local.set $15
+ (local.set $14
(f64.mul
- (local.get $15)
+ (local.get $14)
(f64.const 16)
)
)
@@ -3923,27 +3914,27 @@
)
(f64.neg
(f64.add
- (local.get $15)
+ (local.get $14)
(f64.sub
(f64.neg
(local.get $22)
)
- (local.get $15)
+ (local.get $14)
)
)
)
(f64.sub
(f64.add
(local.get $22)
- (local.get $15)
+ (local.get $14)
)
- (local.get $15)
+ (local.get $14)
)
)
)
)
)
- (local.set $11
+ (local.set $10
(i32.or
(local.get $26)
(i32.const 2)
@@ -3987,11 +3978,11 @@
)
(block
(i32.store8
- (local.get $40)
+ (local.get $41)
(i32.const 48)
)
(local.set $4
- (local.get $40)
+ (local.get $41)
)
)
)
@@ -4019,26 +4010,26 @@
)
)
(i32.add
- (local.get $18)
+ (local.get $17)
(i32.const 15)
)
)
- (local.set $18
+ (local.set $17
(i32.lt_s
(local.get $5)
(i32.const 1)
)
)
- (local.set $17
+ (local.set $19
(i32.eqz
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 8)
)
)
)
(local.set $4
- (local.get $23)
+ (local.get $21)
)
(loop $while-in56
(i32.store8
@@ -4049,7 +4040,7 @@
(i32.add
(local.tee $6
(call $f64-to-int
- (local.get $15)
+ (local.get $14)
)
)
(i32.const 4075)
@@ -4057,10 +4048,10 @@
)
)
)
- (local.set $15
+ (local.set $14
(f64.mul
(f64.sub
- (local.get $15)
+ (local.get $14)
(f64.convert_i32_s
(local.get $6)
)
@@ -4086,12 +4077,12 @@
(i32.and
(i32.and
(f64.eq
- (local.get $15)
+ (local.get $14)
(f64.const 0)
)
- (local.get $18)
+ (local.get $17)
)
- (local.get $17)
+ (local.get $19)
)
(local.get $6)
(block (result i32)
@@ -4110,7 +4101,7 @@
)
(br_if $while-in56
(f64.ne
- (local.get $15)
+ (local.get $14)
(f64.const 0)
)
)
@@ -4118,23 +4109,23 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
- (local.tee $6
+ (local.get $15)
+ (local.tee $5
(i32.add
- (local.get $11)
- (local.tee $5
+ (local.get $10)
+ (local.tee $6
(select
(i32.sub
(i32.add
(local.get $5)
- (local.get $45)
+ (local.get $46)
)
(local.get $7)
)
(i32.add
(local.get $4)
(i32.sub
- (local.get $43)
+ (local.get $44)
(local.get $7)
)
)
@@ -4146,7 +4137,7 @@
(i32.lt_s
(i32.add
(local.get $4)
- (local.get $44)
+ (local.get $45)
)
(local.get $5)
)
@@ -4155,7 +4146,7 @@
)
)
)
- (local.get $10)
+ (local.get $11)
)
(if
(i32.eqz
@@ -4168,17 +4159,17 @@
)
(call $___fwritex
(local.get $8)
- (local.get $11)
+ (local.get $10)
(local.get $0)
)
)
(call $_pad
(local.get $0)
(i32.const 48)
- (local.get $14)
- (local.get $6)
+ (local.get $15)
+ (local.get $5)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 65536)
)
)
@@ -4198,7 +4189,7 @@
)
)
(call $___fwritex
- (local.get $23)
+ (local.get $21)
(local.get $4)
(local.get $0)
)
@@ -4207,12 +4198,12 @@
(local.get $0)
(i32.const 48)
(i32.sub
- (local.get $5)
+ (local.get $6)
(i32.add
(local.get $4)
- (local.tee $4
+ (local.tee $6
(i32.sub
- (local.get $27)
+ (local.get $28)
(local.get $7)
)
)
@@ -4232,33 +4223,33 @@
)
(call $___fwritex
(local.get $7)
- (local.get $4)
+ (local.get $6)
(local.get $0)
)
)
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
- (local.get $6)
+ (local.get $15)
+ (local.get $5)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 8192)
)
)
(br $do-once49
(select
- (local.get $14)
- (local.get $6)
+ (local.get $15)
+ (local.get $5)
(i32.lt_s
- (local.get $6)
- (local.get $14)
+ (local.get $5)
+ (local.get $15)
)
)
)
)
)
- (local.set $15
+ (local.set $14
(if (result f64)
(local.get $4)
(block (result f64)
@@ -4291,8 +4282,8 @@
(local.set $6
(local.tee $7
(select
- (local.get $46)
(local.get $47)
+ (local.get $48)
(i32.lt_s
(local.get $4)
(i32.const 0)
@@ -4305,7 +4296,7 @@
(local.get $6)
(local.tee $4
(call $f64-to-uint
- (local.get $15)
+ (local.get $14)
)
)
)
@@ -4317,10 +4308,10 @@
)
(br_if $while-in60
(f64.ne
- (local.tee $15
+ (local.tee $14
(f64.mul
(f64.sub
- (local.get $15)
+ (local.get $14)
(f64.convert_i32_u
(local.get $4)
)
@@ -4334,7 +4325,7 @@
)
(if
(i32.gt_s
- (local.tee $8
+ (local.tee $10
(i32.load
(local.get $20)
)
@@ -4346,19 +4337,19 @@
(local.get $7)
)
(loop $while-in62
- (local.set $12
+ (local.set $19
(select
(i32.const 29)
- (local.get $8)
+ (local.get $10)
(i32.gt_s
- (local.get $8)
+ (local.get $10)
(i32.const 29)
)
)
)
(if
(i32.ge_u
- (local.tee $8
+ (local.tee $10
(i32.add
(local.get $6)
(i32.const -4)
@@ -4367,45 +4358,45 @@
(local.get $4)
)
(block $do-once63
- (local.set $11
+ (local.set $8
(i32.const 0)
)
(loop $while-in66
(i32.store
- (local.get $8)
+ (local.get $10)
(call $___uremdi3
- (local.tee $11
+ (local.tee $8
(call $_i64Add
(call $_bitshift64Shl
(i32.load
- (local.get $8)
+ (local.get $10)
)
(i32.const 0)
- (local.get $12)
+ (local.get $19)
)
(global.get $tempRet0)
- (local.get $11)
+ (local.get $8)
(i32.const 0)
)
)
- (local.tee $17
+ (local.tee $18
(global.get $tempRet0)
)
(i32.const 1000000000)
)
)
- (local.set $11
+ (local.set $8
(call $___udivdi3
- (local.get $11)
- (local.get $17)
+ (local.get $8)
+ (local.get $18)
(i32.const 1000000000)
)
)
(br_if $while-in66
(i32.ge_u
- (local.tee $8
+ (local.tee $10
(i32.add
- (local.get $8)
+ (local.get $10)
(i32.const -4)
)
)
@@ -4415,7 +4406,7 @@
)
(br_if $do-once63
(i32.eqz
- (local.get $11)
+ (local.get $8)
)
)
(i32.store
@@ -4425,7 +4416,7 @@
(i32.const -4)
)
)
- (local.get $11)
+ (local.get $8)
)
)
)
@@ -4457,18 +4448,18 @@
)
(i32.store
(local.get $20)
- (local.tee $8
+ (local.tee $10
(i32.sub
(i32.load
(local.get $20)
)
- (local.get $12)
+ (local.get $19)
)
)
)
(br_if $while-in62
(i32.gt_s
- (local.get $8)
+ (local.get $10)
(i32.const 0)
)
)
@@ -4478,7 +4469,7 @@
(local.get $7)
)
)
- (local.set $17
+ (local.set $18
(select
(i32.const 6)
(local.get $5)
@@ -4490,15 +4481,15 @@
)
(if
(i32.lt_s
- (local.get $8)
+ (local.get $10)
(i32.const 0)
)
(block
- (local.set $21
+ (local.set $19
(i32.add
(call $i32s-div
(i32.add
- (local.get $17)
+ (local.get $18)
(i32.const 25)
)
(i32.const 9)
@@ -4506,9 +4497,9 @@
(i32.const 1)
)
)
- (local.set $32
+ (local.set $23
(i32.eq
- (local.get $24)
+ (local.get $12)
(i32.const 102)
)
)
@@ -4520,13 +4511,13 @@
)
(local.set $4
(loop $while-in70 (result i32)
- (local.set $12
+ (local.set $8
(select
(i32.const 9)
(local.tee $6
(i32.sub
(i32.const 0)
- (local.get $8)
+ (local.get $10)
)
)
(i32.gt_s
@@ -4541,11 +4532,11 @@
(local.get $4)
)
(block $do-once71
- (local.set $11
+ (local.set $27
(i32.add
(i32.shl
(i32.const 1)
- (local.get $12)
+ (local.get $8)
)
(i32.const -1)
)
@@ -4553,10 +4544,10 @@
(local.set $37
(i32.shr_u
(i32.const 1000000000)
- (local.get $12)
+ (local.get $8)
)
)
- (local.set $8
+ (local.set $10
(i32.const 0)
)
(local.set $6
@@ -4566,22 +4557,22 @@
(i32.store
(local.get $6)
(i32.add
- (local.get $8)
+ (local.get $10)
(i32.shr_u
- (local.tee $8
+ (local.tee $38
(i32.load
(local.get $6)
)
)
- (local.get $12)
+ (local.get $8)
)
)
)
- (local.set $8
+ (local.set $10
(i32.mul
(i32.and
- (local.get $8)
- (local.get $11)
+ (local.get $27)
+ (local.get $38)
)
(local.get $37)
)
@@ -4612,12 +4603,12 @@
)
(br_if $do-once71
(i32.eqz
- (local.get $8)
+ (local.get $10)
)
)
(i32.store
(local.get $4)
- (local.get $8)
+ (local.get $10)
)
(local.set $4
(i32.add
@@ -4639,18 +4630,18 @@
)
)
)
- (local.set $11
+ (local.set $4
(select
(i32.add
(local.tee $5
(select
(local.get $7)
(local.get $6)
- (local.get $32)
+ (local.get $23)
)
)
(i32.shl
- (local.get $21)
+ (local.get $19)
(i32.const 2)
)
)
@@ -4663,38 +4654,35 @@
)
(i32.const 2)
)
- (local.get $21)
+ (local.get $19)
)
)
)
(i32.store
(local.get $20)
- (local.tee $8
+ (local.tee $10
(i32.add
(i32.load
(local.get $20)
)
- (local.get $12)
+ (local.get $8)
)
)
)
(if (result i32)
(i32.lt_s
- (local.get $8)
+ (local.get $10)
(i32.const 0)
)
(block
(local.set $5
(local.get $6)
)
- (local.set $4
- (local.get $11)
- )
(br $while-in70)
)
(block (result i32)
- (local.set $8
- (local.get $11)
+ (local.set $10
+ (local.get $4)
)
(local.get $6)
)
@@ -4702,24 +4690,24 @@
)
)
)
- (local.set $8
+ (local.set $10
(local.get $6)
)
)
- (local.set $21
+ (local.set $19
(local.get $7)
)
(if
(i32.lt_u
(local.get $4)
- (local.get $8)
+ (local.get $10)
)
(block $do-once75
(local.set $6
(i32.mul
(i32.shr_s
(i32.sub
- (local.get $21)
+ (local.get $19)
(local.get $4)
)
(i32.const 2)
@@ -4729,7 +4717,7 @@
)
(br_if $do-once75
(i32.lt_u
- (local.tee $11
+ (local.tee $8
(i32.load
(local.get $4)
)
@@ -4749,7 +4737,7 @@
)
(br_if $while-in78
(i32.ge_u
- (local.get $11)
+ (local.get $8)
(local.tee $5
(i32.mul
(local.get $5)
@@ -4770,12 +4758,12 @@
(local.tee $5
(i32.add
(i32.sub
- (local.get $17)
+ (local.get $18)
(select
(local.get $6)
(i32.const 0)
(i32.ne
- (local.get $24)
+ (local.get $12)
(i32.const 102)
)
)
@@ -4783,15 +4771,15 @@
(i32.shr_s
(i32.shl
(i32.and
- (local.tee $32
+ (local.tee $37
(i32.eq
- (local.get $24)
+ (local.get $12)
(i32.const 103)
)
)
- (local.tee $37
+ (local.tee $38
(i32.ne
- (local.get $17)
+ (local.get $18)
(i32.const 0)
)
)
@@ -4806,8 +4794,8 @@
(i32.mul
(i32.shr_s
(i32.sub
- (local.get $8)
- (local.get $21)
+ (local.get $10)
+ (local.get $19)
)
(i32.const 2)
)
@@ -4842,13 +4830,13 @@
(i32.const 9)
)
(block
- (local.set $11
+ (local.set $8
(i32.const 10)
)
(loop $while-in80
- (local.set $11
+ (local.set $8
(i32.mul
- (local.get $11)
+ (local.get $8)
(i32.const 10)
)
)
@@ -4865,13 +4853,13 @@
)
)
)
- (local.set $11
+ (local.set $8
(i32.const 10)
)
)
(local.set $12
(call $i32u-rem
- (local.tee $24
+ (local.tee $23
(i32.load
(local.tee $5
(i32.add
@@ -4887,19 +4875,19 @@
)
)
)
- (local.get $11)
+ (local.get $8)
)
)
(if
(i32.eqz
(i32.and
- (local.tee $48
+ (local.tee $27
(i32.eq
(i32.add
(local.get $5)
(i32.const 4)
)
- (local.get $8)
+ (local.get $10)
)
)
(i32.eqz
@@ -4910,17 +4898,17 @@
(block $do-once81
(local.set $49
(call $i32u-div
- (local.get $24)
- (local.get $11)
+ (local.get $23)
+ (local.get $8)
)
)
- (local.set $15
+ (local.set $14
(if (result f64)
(i32.lt_u
(local.get $12)
(local.tee $50
(call $i32s-div
- (local.get $11)
+ (local.get $8)
(i32.const 2)
)
)
@@ -4930,7 +4918,7 @@
(f64.const 1)
(f64.const 1.5)
(i32.and
- (local.get $48)
+ (local.get $27)
(i32.eq
(local.get $12)
(local.get $50)
@@ -4954,19 +4942,19 @@
(if
(i32.eq
(i32.load8_s
- (local.get $31)
+ (local.get $32)
)
(i32.const 45)
)
(block
- (local.set $15
+ (local.set $22
(f64.neg
- (local.get $15)
+ (local.get $22)
)
)
- (local.set $22
+ (local.set $14
(f64.neg
- (local.get $22)
+ (local.get $14)
)
)
)
@@ -4976,7 +4964,7 @@
(local.get $5)
(local.tee $12
(i32.sub
- (local.get $24)
+ (local.get $23)
(local.get $12)
)
)
@@ -4985,7 +4973,7 @@
(f64.eq
(f64.add
(local.get $22)
- (local.get $15)
+ (local.get $14)
)
(local.get $22)
)
@@ -4994,7 +4982,7 @@
(local.get $5)
(local.tee $6
(i32.add
- (local.get $11)
+ (local.get $8)
(local.get $12)
)
)
@@ -5052,7 +5040,7 @@
(i32.mul
(i32.shr_s
(i32.sub
- (local.get $21)
+ (local.get $19)
(local.get $4)
)
(i32.const 2)
@@ -5070,7 +5058,7 @@
(i32.const 10)
)
)
- (local.set $11
+ (local.set $8
(i32.const 10)
)
(loop $while-in88
@@ -5083,9 +5071,9 @@
(br_if $while-in88
(i32.ge_u
(local.get $12)
- (local.tee $11
+ (local.tee $8
(i32.mul
- (local.get $11)
+ (local.get $8)
(i32.const 10)
)
)
@@ -5094,7 +5082,7 @@
)
)
)
- (local.set $11
+ (local.set $8
(local.get $4)
)
(local.set $12
@@ -5107,34 +5095,34 @@
(i32.const 4)
)
)
- (local.get $8)
+ (local.get $10)
(i32.gt_u
- (local.get $8)
+ (local.get $10)
(local.get $4)
)
)
)
(block (result i32)
- (local.set $11
+ (local.set $8
(local.get $4)
)
(local.set $12
(local.get $6)
)
- (local.get $8)
+ (local.get $10)
)
)
)
- (local.set $8
+ (local.set $23
(loop $while-in90 (result i32)
(block $while-out89 (result i32)
(if
(i32.le_u
(local.get $4)
- (local.get $11)
+ (local.get $8)
)
(block
- (local.set $24
+ (local.set $27
(i32.const 0)
)
(br $while-out89
@@ -5144,7 +5132,7 @@
)
(if (result i32)
(i32.load
- (local.tee $6
+ (local.tee $5
(i32.add
(local.get $4)
(i32.const -4)
@@ -5152,14 +5140,14 @@
)
)
(block (result i32)
- (local.set $24
+ (local.set $27
(i32.const 1)
)
(local.get $4)
)
(block
(local.set $4
- (local.get $6)
+ (local.get $5)
)
(br $while-in90)
)
@@ -5169,7 +5157,7 @@
)
(local.set $4
(if (result i32)
- (local.get $32)
+ (local.get $37)
(block $do-once91 (result i32)
(local.set $6
(if (result i32)
@@ -5177,9 +5165,9 @@
(i32.gt_s
(local.tee $4
(i32.add
- (local.get $17)
+ (local.get $18)
(i32.xor
- (local.get $37)
+ (local.get $38)
(i32.const 1)
)
)
@@ -5192,7 +5180,7 @@
)
)
(block (result i32)
- (local.set $17
+ (local.set $18
(i32.sub
(i32.add
(local.get $4)
@@ -5202,49 +5190,44 @@
)
)
(i32.add
- (local.get $18)
+ (local.get $17)
(i32.const -1)
)
)
(block (result i32)
- (local.set $17
+ (local.set $18
(i32.add
(local.get $4)
(i32.const -1)
)
)
(i32.add
- (local.get $18)
+ (local.get $17)
(i32.const -2)
)
)
)
)
- (if
- (local.tee $4
- (i32.and
- (local.get $10)
- (i32.const 8)
- )
- )
- (block
- (local.set $21
- (local.get $4)
- )
- (br $do-once91
- (local.get $17)
+ (drop
+ (br_if $do-once91
+ (local.get $18)
+ (local.tee $10
+ (i32.and
+ (local.get $11)
+ (i32.const 8)
+ )
)
)
)
(if
- (local.get $24)
+ (local.get $27)
(block $do-once93
(if
(i32.eqz
- (local.tee $18
+ (local.tee $10
(i32.load
(i32.add
- (local.get $8)
+ (local.get $23)
(i32.const -4)
)
)
@@ -5260,7 +5243,7 @@
(local.set $4
(if (result i32)
(call $i32u-rem
- (local.get $18)
+ (local.get $10)
(i32.const 10)
)
(block
@@ -5287,7 +5270,7 @@
(br_if $while-in96
(i32.eqz
(call $i32u-rem
- (local.get $18)
+ (local.get $10)
(local.tee $5
(i32.mul
(local.get $5)
@@ -5308,8 +5291,8 @@
(i32.mul
(i32.shr_s
(i32.sub
- (local.get $8)
- (local.get $21)
+ (local.get $23)
+ (local.get $19)
)
(i32.const 2)
)
@@ -5327,11 +5310,11 @@
(i32.const 102)
)
(block (result i32)
- (local.set $21
+ (local.set $10
(i32.const 0)
)
(select
- (local.get $17)
+ (local.get $18)
(local.tee $4
(select
(i32.const 0)
@@ -5348,17 +5331,17 @@
)
)
(i32.lt_s
- (local.get $17)
+ (local.get $18)
(local.get $4)
)
)
)
(block (result i32)
- (local.set $21
+ (local.set $10
(i32.const 0)
)
(select
- (local.get $17)
+ (local.get $18)
(local.tee $4
(select
(i32.const 0)
@@ -5378,7 +5361,7 @@
)
)
(i32.lt_s
- (local.get $17)
+ (local.get $18)
(local.get $4)
)
)
@@ -5386,16 +5369,16 @@
)
)
(block (result i32)
- (local.set $21
+ (local.set $10
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 8)
)
)
(local.set $6
- (local.get $18)
+ (local.get $17)
)
- (local.get $17)
+ (local.get $18)
)
)
)
@@ -5408,11 +5391,11 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
+ (local.get $15)
(local.tee $12
(i32.add
(if (result i32)
- (local.tee $17
+ (local.tee $19
(i32.eq
(i32.or
(local.get $6)
@@ -5422,7 +5405,7 @@
)
)
(block (result i32)
- (local.set $18
+ (local.set $17
(i32.const 0)
)
(select
@@ -5438,7 +5421,7 @@
(if
(i32.lt_s
(i32.sub
- (local.get $27)
+ (local.get $28)
(local.tee $5
(call $_fmt_u
(local.tee $5
@@ -5480,7 +5463,7 @@
(br_if $while-in98
(i32.lt_s
(i32.sub
- (local.get $27)
+ (local.get $28)
(local.get $5)
)
(i32.const 2)
@@ -5505,7 +5488,7 @@
)
)
(i32.store8
- (local.tee $18
+ (local.tee $17
(i32.add
(local.get $5)
(i32.const -2)
@@ -5514,8 +5497,8 @@
(local.get $6)
)
(i32.sub
- (local.get $27)
- (local.get $18)
+ (local.get $28)
+ (local.get $17)
)
)
)
@@ -5528,10 +5511,10 @@
(local.get $4)
)
(i32.ne
- (local.tee $32
+ (local.tee $18
(i32.or
(local.get $4)
- (local.get $21)
+ (local.get $10)
)
)
(i32.const 0)
@@ -5539,7 +5522,7 @@
)
)
)
- (local.get $10)
+ (local.get $11)
)
(if
(i32.eqz
@@ -5551,7 +5534,7 @@
)
)
(call $___fwritex
- (local.get $31)
+ (local.get $32)
(local.get $26)
(local.get $0)
)
@@ -5559,23 +5542,23 @@
(call $_pad
(local.get $0)
(i32.const 48)
- (local.get $14)
+ (local.get $15)
(local.get $12)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 65536)
)
)
(if
- (local.get $17)
+ (local.get $19)
(block
(local.set $5
- (local.tee $11
+ (local.tee $8
(select
(local.get $7)
- (local.get $11)
+ (local.get $8)
(i32.gt_u
- (local.get $11)
+ (local.get $8)
(local.get $7)
)
)
@@ -5588,20 +5571,20 @@
(local.get $5)
)
(i32.const 0)
- (local.get $30)
+ (local.get $31)
)
)
(block $do-once103
(if
(i32.eq
(local.get $5)
- (local.get $11)
+ (local.get $8)
)
(block
(br_if $do-once103
(i32.ne
(local.get $6)
- (local.get $30)
+ (local.get $31)
)
)
(i32.store8
@@ -5616,7 +5599,7 @@
(br_if $do-once103
(i32.le_u
(local.get $6)
- (local.get $23)
+ (local.get $21)
)
)
(loop $while-in106
@@ -5632,7 +5615,7 @@
(br_if $while-in106
(i32.gt_u
(local.get $6)
- (local.get $23)
+ (local.get $21)
)
)
)
@@ -5651,7 +5634,7 @@
(call $___fwritex
(local.get $6)
(i32.sub
- (local.get $41)
+ (local.get $42)
(local.get $6)
)
(local.get $0)
@@ -5676,7 +5659,7 @@
)
)
(if
- (local.get $32)
+ (local.get $18)
(if
(i32.eqz
(i32.and
@@ -5701,7 +5684,7 @@
(i32.and
(i32.lt_u
(local.get $6)
- (local.get $8)
+ (local.get $23)
)
(i32.gt_s
(local.get $4)
@@ -5717,10 +5700,10 @@
(local.get $6)
)
(i32.const 0)
- (local.get $30)
+ (local.get $31)
)
)
- (local.get $23)
+ (local.get $21)
)
(loop $while-in112
(i32.store8
@@ -5735,7 +5718,7 @@
(br_if $while-in112
(i32.gt_u
(local.get $5)
- (local.get $23)
+ (local.get $21)
)
)
)
@@ -5777,7 +5760,7 @@
(i32.const 4)
)
)
- (local.get $8)
+ (local.get $23)
)
(i32.gt_s
(local.get $4)
@@ -5802,14 +5785,14 @@
)
)
(block $do-once99
- (local.set $8
+ (local.set $19
(select
- (local.get $8)
+ (local.get $23)
(i32.add
- (local.get $11)
+ (local.get $8)
(i32.const 4)
)
- (local.get $24)
+ (local.get $27)
)
)
(call $_pad
@@ -5822,13 +5805,13 @@
(i32.const -1)
)
(block (result i32)
- (local.set $17
+ (local.set $10
(i32.eqz
- (local.get $21)
+ (local.get $10)
)
)
(local.set $5
- (local.get $11)
+ (local.get $8)
)
(local.set $6
(local.get $4)
@@ -5842,10 +5825,10 @@
(local.get $5)
)
(i32.const 0)
- (local.get $30)
+ (local.get $31)
)
)
- (local.get $30)
+ (local.get $31)
)
(block
(i32.store8
@@ -5861,7 +5844,7 @@
(if
(i32.eq
(local.get $5)
- (local.get $11)
+ (local.get $8)
)
(block
(if
@@ -5891,7 +5874,7 @@
(local.get $6)
(i32.const 1)
)
- (local.get $17)
+ (local.get $10)
)
)
(br_if $do-once115
@@ -5912,7 +5895,7 @@
(br_if $do-once115
(i32.le_u
(local.get $4)
- (local.get $23)
+ (local.get $21)
)
)
(loop $while-in118
@@ -5928,7 +5911,7 @@
(br_if $while-in118
(i32.gt_u
(local.get $4)
- (local.get $23)
+ (local.get $21)
)
)
)
@@ -5937,7 +5920,7 @@
)
(local.set $7
(i32.sub
- (local.get $41)
+ (local.get $42)
(local.get $4)
)
)
@@ -5972,7 +5955,7 @@
(i32.const 4)
)
)
- (local.get $8)
+ (local.get $19)
)
(i32.gt_s
(local.tee $6
@@ -6004,10 +5987,10 @@
)
)
(call $___fwritex
- (local.get $18)
+ (local.get $17)
(i32.sub
- (local.get $27)
- (local.get $18)
+ (local.get $28)
+ (local.get $17)
)
(local.get $0)
)
@@ -6016,19 +5999,19 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
+ (local.get $15)
(local.get $12)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 8192)
)
)
(select
- (local.get $14)
+ (local.get $15)
(local.get $12)
(i32.lt_s
(local.get $12)
- (local.get $14)
+ (local.get $15)
)
)
)
@@ -6036,17 +6019,17 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
- (local.tee $6
+ (local.get $15)
+ (local.tee $4
(i32.add
- (local.tee $8
+ (local.tee $6
(select
(i32.const 0)
(local.get $26)
(local.tee $5
(f64.ne
- (local.get $15)
- (local.get $15)
+ (local.get $14)
+ (local.get $14)
)
)
)
@@ -6064,7 +6047,7 @@
(local.tee $7
(i32.ne
(i32.and
- (local.get $18)
+ (local.get $17)
(i32.const 32)
)
(i32.const 0)
@@ -6084,18 +6067,18 @@
(i32.and
(if (result i32)
(i32.and
- (local.tee $4
+ (local.tee $7
(i32.load
(local.get $0)
)
)
(i32.const 32)
)
- (local.get $4)
+ (local.get $7)
(block (result i32)
(call $___fwritex
- (local.get $31)
- (local.get $8)
+ (local.get $32)
+ (local.get $6)
(local.get $0)
)
(i32.load
@@ -6115,19 +6098,19 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
- (local.get $6)
+ (local.get $15)
+ (local.get $4)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 8192)
)
)
(select
- (local.get $14)
- (local.get $6)
+ (local.get $15)
+ (local.get $4)
(i32.lt_s
- (local.get $6)
- (local.get $14)
+ (local.get $4)
+ (local.get $15)
)
)
)
@@ -6137,26 +6120,26 @@
(local.get $9)
)
(local.set $9
- (local.get $6)
+ (local.get $5)
)
(br $label$continue$L1)
)
- (local.set $11
+ (local.set $8
(local.get $5)
)
(local.set $7
(i32.const 0)
)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(br $__rjto$8
- (local.get $25)
+ (local.get $24)
)
)
(local.set $8
(i32.and
- (local.get $18)
+ (local.get $17)
(i32.const 32)
)
)
@@ -6168,7 +6151,7 @@
(local.get $13)
)
)
- (local.tee $10
+ (local.tee $11
(i32.load offset=4
(local.get $13)
)
@@ -6176,7 +6159,7 @@
)
(block (result i32)
(local.set $7
- (local.get $25)
+ (local.get $24)
)
(local.set $6
(loop $while-in123 (result i32)
@@ -6205,11 +6188,11 @@
(local.tee $6
(call $_bitshift64Lshr
(local.get $6)
- (local.get $10)
+ (local.get $11)
(i32.const 4)
)
)
- (local.tee $10
+ (local.tee $11
(global.get $tempRet0)
)
)
@@ -6237,16 +6220,16 @@
)
)
(block (result i32)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(i32.const 0)
)
(block (result i32)
- (local.set $8
+ (local.set $10
(i32.add
(i32.shr_s
- (local.get $18)
+ (local.get $17)
(i32.const 4)
)
(i32.const 4091)
@@ -6258,9 +6241,9 @@
)
(block (result i32)
(local.set $6
- (local.get $25)
+ (local.get $24)
)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(i32.const 0)
@@ -6273,15 +6256,15 @@
(call $_fmt_u
(local.get $4)
(local.get $6)
- (local.get $25)
+ (local.get $24)
)
)
(local.set $4
- (local.get $10)
+ (local.get $11)
)
(br $__rjti$8)
)
- (local.set $18
+ (local.set $17
(i32.eqz
(local.tee $12
(call $_memchr
@@ -6291,10 +6274,10 @@
)
)
)
- (local.set $10
+ (local.set $11
(local.get $7)
)
- (local.set $11
+ (local.set $8
(select
(local.get $5)
(i32.sub
@@ -6303,13 +6286,13 @@
(local.get $6)
)
)
- (local.get $18)
+ (local.get $17)
)
)
(local.set $7
(i32.const 0)
)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(br $__rjto$8
@@ -6319,7 +6302,7 @@
(local.get $5)
)
(local.get $12)
- (local.get $18)
+ (local.get $17)
)
)
)
@@ -6399,9 +6382,9 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
+ (local.get $15)
(local.get $4)
- (local.get $10)
+ (local.get $11)
)
(if (result i32)
(local.get $4)
@@ -6481,7 +6464,7 @@
)
)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 8192)
)
)
@@ -6490,17 +6473,17 @@
)
(local.set $9
(select
- (local.get $14)
- (local.get $6)
+ (local.get $15)
+ (local.get $5)
(i32.gt_s
- (local.get $14)
- (local.get $6)
+ (local.get $15)
+ (local.get $5)
)
)
)
(br $label$continue$L1)
)
- (local.set $10
+ (local.set $11
(select
(i32.and
(local.get $4)
@@ -6516,7 +6499,7 @@
(if (result i32)
(i32.or
(local.get $5)
- (local.tee $4
+ (local.tee $8
(i32.or
(i32.ne
(i32.load
@@ -6534,24 +6517,21 @@
)
)
(block (result i32)
- (local.set $11
+ (local.set $8
(select
(local.get $5)
(local.tee $6
(i32.add
- (i32.xor
- (i32.and
- (local.get $4)
- (i32.const 1)
- )
- (i32.const 1)
- )
(i32.sub
- (local.get $38)
+ (local.get $39)
(local.tee $4
(local.get $6)
)
)
+ (i32.xor
+ (local.get $8)
+ (i32.const 1)
+ )
)
)
(i32.gt_s
@@ -6560,14 +6540,14 @@
)
)
)
- (local.get $25)
+ (local.get $24)
)
(block (result i32)
- (local.set $11
+ (local.set $8
(i32.const 0)
)
(local.tee $4
- (local.get $25)
+ (local.get $24)
)
)
)
@@ -6575,9 +6555,9 @@
(local.get $4)
)
)
- (local.get $11)
+ (local.get $8)
(i32.lt_s
- (local.get $11)
+ (local.get $8)
(local.get $12)
)
)
@@ -6585,15 +6565,15 @@
(local.get $7)
)
)
- (local.get $14)
+ (local.get $15)
(i32.lt_s
- (local.get $14)
- (local.get $5)
+ (local.get $15)
+ (local.get $6)
)
)
)
- (local.get $5)
- (local.get $10)
+ (local.get $6)
+ (local.get $11)
)
(if
(i32.eqz
@@ -6605,7 +6585,7 @@
)
)
(call $___fwritex
- (local.get $8)
+ (local.get $10)
(local.get $7)
(local.get $0)
)
@@ -6613,17 +6593,17 @@
(call $_pad
(local.get $0)
(i32.const 48)
- (local.get $6)
(local.get $5)
+ (local.get $6)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 65536)
)
)
(call $_pad
(local.get $0)
(i32.const 48)
- (local.get $11)
+ (local.get $8)
(local.get $12)
(i32.const 0)
)
@@ -6645,10 +6625,10 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $6)
(local.get $5)
+ (local.get $6)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 8192)
)
)
@@ -6656,7 +6636,7 @@
(local.get $9)
)
(local.set $9
- (local.get $6)
+ (local.get $5)
)
(br $label$continue$L1)
)
@@ -6669,7 +6649,7 @@
)
(local.set $16
(if (result i32)
- (local.get $19)
+ (local.get $25)
(block (result i32)
(local.set $0
(i32.const 1)
@@ -6762,7 +6742,7 @@
)
)
(global.set $STACKTOP
- (local.get $28)
+ (local.get $29)
)
(local.get $16)
)
diff --git a/test/emcc_hello_world.fromasm.imprecise b/test/emcc_hello_world.fromasm.imprecise
index fe4884027..c93a14f80 100644
--- a/test/emcc_hello_world.fromasm.imprecise
+++ b/test/emcc_hello_world.fromasm.imprecise
@@ -971,7 +971,7 @@
(local $6 i32)
(local $7 i32)
(local $8 i32)
- (local.set $7
+ (local.set $6
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -989,22 +989,22 @@
)
(local.set $3
(i32.add
- (local.get $7)
+ (local.get $6)
(i32.const 120)
)
)
(local.set $5
(i32.add
(local.tee $4
- (local.get $7)
+ (local.get $6)
)
(i32.const 136)
)
)
- (local.set $6
+ (local.set $8
(i32.add
(local.tee $2
- (local.tee $8
+ (local.tee $7
(i32.add
(local.get $4)
(i32.const 80)
@@ -1027,7 +1027,7 @@
(i32.const 4)
)
)
- (local.get $6)
+ (local.get $8)
)
)
)
@@ -1044,13 +1044,13 @@
(i32.const 0)
(local.get $3)
(local.get $4)
- (local.get $8)
+ (local.get $7)
)
(i32.const 0)
)
(i32.const -1)
(block (result i32)
- (local.set $2
+ (local.set $1
(i32.load
(local.get $0)
)
@@ -1065,7 +1065,7 @@
(i32.store
(local.get $0)
(i32.and
- (local.get $2)
+ (local.get $1)
(i32.const -33)
)
)
@@ -1079,11 +1079,11 @@
(local.get $0)
(local.get $3)
(local.get $4)
- (local.get $8)
+ (local.get $7)
)
)
(block
- (local.set $6
+ (local.set $2
(i32.load offset=44
(local.get $0)
)
@@ -1116,11 +1116,11 @@
(local.get $0)
(local.get $3)
(local.get $4)
- (local.get $8)
+ (local.get $7)
)
)
(if
- (local.get $6)
+ (local.get $2)
(block
(drop
(call_indirect (type $FUNCSIG$iiii)
@@ -1140,7 +1140,7 @@
)
(i32.store offset=44
(local.get $0)
- (local.get $6)
+ (local.get $2)
)
(i32.store offset=48
(local.get $0)
@@ -1169,7 +1169,7 @@
(local.get $0)
)
(i32.and
- (local.get $2)
+ (local.get $1)
(i32.const 32)
)
)
@@ -1179,7 +1179,7 @@
)
)
(global.set $STACKTOP
- (local.get $7)
+ (local.get $6)
)
)
(func $___fwritex (; 36 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32)
@@ -1705,7 +1705,7 @@
(i32.and
(i32.xor
(i32.and
- (local.tee $3
+ (local.tee $2
(i32.load
(local.get $1)
)
@@ -1715,7 +1715,7 @@
(i32.const -2139062144)
)
(i32.add
- (local.get $3)
+ (local.get $2)
(i32.const -16843009)
)
)
@@ -1931,8 +1931,8 @@
(local $11 i32)
(local $12 i32)
(local $13 i32)
- (local $14 i32)
- (local $15 f64)
+ (local $14 f64)
+ (local $15 i32)
(local $16 i32)
(local $17 i32)
(local $18 i32)
@@ -1970,7 +1970,7 @@
(local.set $4
(i32.const 672)
)
- (local.set $28
+ (local.set $29
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -1988,14 +1988,14 @@
)
(local.set $20
(i32.add
- (local.get $28)
+ (local.get $29)
(i32.const 16)
)
)
- (local.set $42
+ (local.set $43
(i32.add
(local.tee $13
- (local.get $28)
+ (local.get $29)
)
(i32.const 8)
)
@@ -2006,16 +2006,16 @@
(i32.const 528)
)
)
- (local.set $29
+ (local.set $30
(i32.ne
(local.get $0)
(i32.const 0)
)
)
- (local.set $38
- (local.tee $25
+ (local.set $39
+ (local.tee $24
(i32.add
- (local.tee $19
+ (local.tee $5
(i32.add
(local.get $13)
(i32.const 536)
@@ -2025,15 +2025,15 @@
)
)
)
- (local.set $39
+ (local.set $40
(i32.add
- (local.get $19)
+ (local.get $5)
(i32.const 39)
)
)
(local.set $33
(i32.add
- (local.tee $19
+ (local.tee $5
(i32.add
(local.get $13)
(i32.const 576)
@@ -2042,19 +2042,19 @@
(i32.const 12)
)
)
- (local.set $40
+ (local.set $41
(i32.add
- (local.get $19)
+ (local.get $5)
(i32.const 11)
)
)
- (local.set $43
+ (local.set $44
(i32.sub
- (local.tee $27
+ (local.tee $28
(local.get $33)
)
(local.tee $36
- (local.tee $23
+ (local.tee $21
(i32.add
(local.get $13)
(i32.const 588)
@@ -2063,21 +2063,21 @@
)
)
)
- (local.set $44
+ (local.set $45
(i32.sub
(i32.const -2)
(local.get $36)
)
)
- (local.set $45
+ (local.set $46
(i32.add
- (local.get $27)
+ (local.get $28)
(i32.const 2)
)
)
- (local.set $47
+ (local.set $48
(i32.add
- (local.tee $46
+ (local.tee $47
(i32.add
(local.get $13)
(i32.const 24)
@@ -2086,23 +2086,20 @@
(i32.const 288)
)
)
- (local.set $41
- (local.tee $30
+ (local.set $42
+ (local.tee $31
(i32.add
- (local.get $23)
+ (local.get $21)
(i32.const 9)
)
)
)
(local.set $34
(i32.add
- (local.get $23)
+ (local.get $21)
(i32.const 8)
)
)
- (local.set $19
- (i32.const 0)
- )
(block $label$break$L343
(block $__rjti$9
(loop $label$continue$L1
@@ -2153,7 +2150,7 @@
(block $label$break$L9
(block $switch
(if
- (local.tee $6
+ (local.tee $5
(i32.shr_s
(i32.shl
(local.get $6)
@@ -2165,7 +2162,7 @@
(block
(br_if $switch
(i32.ne
- (local.get $6)
+ (local.get $5)
(i32.const 37)
)
)
@@ -2232,7 +2229,7 @@
)
)
(if
- (local.get $29)
+ (local.get $30)
(if
(i32.eqz
(i32.and
@@ -2264,12 +2261,12 @@
(br $label$continue$L1)
)
)
- (local.set $7
+ (local.set $10
(if (result i32)
(i32.lt_u
(local.tee $7
(i32.add
- (local.tee $10
+ (local.tee $11
(i32.load8_s
(local.tee $9
(i32.add
@@ -2294,7 +2291,7 @@
(i32.const 3)
)
(local.get $9)
- (local.tee $10
+ (local.tee $11
(i32.eq
(i32.load8_s offset=2
(local.get $5)
@@ -2306,35 +2303,35 @@
)
)
)
- (local.set $17
+ (local.set $18
(select
(local.get $7)
(i32.const -1)
- (local.get $10)
+ (local.get $11)
)
)
(select
(i32.const 1)
- (local.get $19)
- (local.get $10)
+ (local.get $25)
+ (local.get $11)
)
)
(block (result i32)
(local.set $5
- (local.get $10)
+ (local.get $11)
)
- (local.set $17
+ (local.set $18
(i32.const -1)
)
- (local.get $19)
+ (local.get $25)
)
)
)
- (local.set $19
+ (local.set $8
(if (result i32)
(i32.eq
(i32.and
- (local.tee $10
+ (local.tee $11
(i32.shr_s
(i32.shl
(local.get $5)
@@ -2348,13 +2345,13 @@
(i32.const 32)
)
(block $label$break$L25 (result i32)
- (local.set $19
+ (local.set $25
(local.get $5)
)
(local.set $5
- (local.get $10)
+ (local.get $11)
)
- (local.set $10
+ (local.set $11
(i32.const 0)
)
(loop $while-in4 (result i32)
@@ -2373,22 +2370,22 @@
)
(block
(local.set $5
- (local.get $19)
+ (local.get $25)
)
(br $label$break$L25
- (local.get $10)
+ (local.get $11)
)
)
)
- (local.set $10
+ (local.set $11
(i32.or
- (local.get $10)
+ (local.get $11)
(i32.shl
(i32.const 1)
(i32.add
(i32.shr_s
(i32.shl
- (local.get $19)
+ (local.get $25)
(i32.const 24)
)
(i32.const 24)
@@ -2402,7 +2399,7 @@
(i32.eq
(i32.and
(local.tee $5
- (local.tee $19
+ (local.tee $25
(i32.load8_s
(local.tee $9
(i32.add
@@ -2419,15 +2416,15 @@
)
)
(local.set $5
- (local.get $19)
+ (local.get $25)
)
- (local.get $10)
+ (local.get $11)
)
)
(i32.const 0)
)
)
- (local.set $19
+ (local.set $25
(if (result i32)
(i32.eq
(i32.and
@@ -2449,7 +2446,7 @@
(i32.const 36)
)
(i32.ge_u
- (local.tee $10
+ (local.tee $11
(i32.add
(i32.load8_s
(local.tee $5
@@ -2470,7 +2467,7 @@
(i32.store
(i32.add
(i32.shl
- (local.get $10)
+ (local.get $11)
(i32.const 2)
)
(local.get $3)
@@ -2480,7 +2477,7 @@
(local.set $7
(i32.const 1)
)
- (local.set $14
+ (local.set $15
(i32.load
(i32.add
(i32.shl
@@ -2505,7 +2502,7 @@
)
)
(if
- (local.get $7)
+ (local.get $10)
(block
(local.set $16
(i32.const -1)
@@ -2515,16 +2512,16 @@
)
(if
(i32.eqz
- (local.get $29)
+ (local.get $30)
)
(block
- (local.set $10
- (local.get $19)
+ (local.set $11
+ (local.get $8)
)
(local.set $9
(local.get $5)
)
- (local.set $14
+ (local.set $15
(i32.const 0)
)
(br $do-once5
@@ -2532,7 +2529,7 @@
)
)
)
- (local.set $14
+ (local.set $15
(i32.load
(local.tee $9
(i32.and
@@ -2560,25 +2557,25 @@
(local.get $5)
)
)
- (local.set $10
+ (local.set $11
(if (result i32)
(i32.lt_s
- (local.get $14)
+ (local.get $15)
(i32.const 0)
)
(block (result i32)
- (local.set $14
+ (local.set $15
(i32.sub
(i32.const 0)
- (local.get $14)
+ (local.get $15)
)
)
(i32.or
- (local.get $19)
+ (local.get $8)
(i32.const 8192)
)
)
- (local.get $19)
+ (local.get $8)
)
)
(local.get $7)
@@ -2600,7 +2597,7 @@
(i32.const 10)
)
(block (result i32)
- (local.set $10
+ (local.set $11
(i32.const 0)
)
(loop $while-in8
@@ -2608,14 +2605,14 @@
(i32.add
(local.get $5)
(i32.mul
- (local.get $10)
+ (local.get $11)
(i32.const 10)
)
)
)
(if
(i32.lt_u
- (local.tee $8
+ (local.tee $7
(i32.add
(i32.load8_s
(local.tee $9
@@ -2631,11 +2628,11 @@
(i32.const 10)
)
(block
- (local.set $10
+ (local.set $11
(local.get $5)
)
(local.set $5
- (local.get $8)
+ (local.get $7)
)
(br $while-in8)
)
@@ -2653,24 +2650,24 @@
(br $label$break$L1)
)
(block (result i32)
- (local.set $10
- (local.get $19)
+ (local.set $11
+ (local.get $8)
)
- (local.set $14
+ (local.set $15
(local.get $5)
)
- (local.get $7)
+ (local.get $10)
)
)
)
(block (result i32)
- (local.set $10
- (local.get $19)
+ (local.set $11
+ (local.get $8)
)
- (local.set $14
+ (local.set $15
(i32.const 0)
)
- (local.get $7)
+ (local.get $10)
)
)
)
@@ -2732,7 +2729,7 @@
(loop $while-in11
(drop
(br_if $label$break$L46
- (local.tee $5
+ (local.tee $7
(i32.add
(local.get $5)
(i32.mul
@@ -2742,7 +2739,7 @@
)
)
(i32.ge_u
- (local.tee $8
+ (local.tee $5
(i32.add
(i32.load8_s
(local.tee $9
@@ -2759,12 +2756,6 @@
)
)
)
- (local.set $7
- (local.get $5)
- )
- (local.set $5
- (local.get $8)
- )
(br $while-in11)
)
)
@@ -2830,7 +2821,7 @@
)
)
(if
- (local.get $19)
+ (local.get $25)
(block
(local.set $16
(i32.const -1)
@@ -2839,7 +2830,7 @@
)
)
(if (result i32)
- (local.get $29)
+ (local.get $30)
(block (result i32)
(local.set $7
(i32.load
@@ -2882,14 +2873,14 @@
(local.set $7
(local.get $9)
)
- (local.set $8
+ (local.set $10
(i32.const 0)
)
- (local.set $18
+ (local.set $17
(loop $while-in13 (result i32)
(if
(i32.gt_u
- (local.tee $11
+ (local.tee $8
(i32.add
(i32.load8_s
(local.get $7)
@@ -2915,15 +2906,15 @@
(if (result i32)
(i32.lt_u
(i32.add
- (local.tee $11
+ (local.tee $8
(i32.and
(local.tee $12
(i32.load8_s
(i32.add
- (local.get $11)
+ (local.get $8)
(i32.add
(i32.mul
- (local.get $8)
+ (local.get $10)
(i32.const 58)
)
(i32.const 3611)
@@ -2942,8 +2933,8 @@
(local.set $7
(local.get $9)
)
- (local.set $8
- (local.get $11)
+ (local.set $10
+ (local.get $8)
)
(br $while-in13)
)
@@ -2967,7 +2958,7 @@
)
(local.set $7
(i32.gt_s
- (local.get $17)
+ (local.get $18)
(i32.const -1)
)
)
@@ -2998,19 +2989,19 @@
(i32.store
(i32.add
(i32.shl
- (local.get $17)
+ (local.get $18)
(i32.const 2)
)
(local.get $3)
)
- (local.get $11)
+ (local.get $8)
)
- (local.set $11
+ (local.set $8
(i32.load offset=4
(local.tee $7
(i32.add
(i32.shl
- (local.get $17)
+ (local.get $18)
(i32.const 3)
)
(local.get $2)
@@ -3026,14 +3017,14 @@
)
(i32.store offset=4
(local.get $13)
- (local.get $11)
+ (local.get $8)
)
(br $__rjti$2)
)
)
(if
(i32.eqz
- (local.get $29)
+ (local.get $30)
)
(block
(local.set $16
@@ -3044,7 +3035,7 @@
)
(call $_pop_arg_336
(local.get $13)
- (local.get $11)
+ (local.get $8)
(local.get $1)
)
)
@@ -3053,7 +3044,7 @@
)
(if
(i32.eqz
- (local.get $29)
+ (local.get $30)
)
(block
(local.set $4
@@ -3066,17 +3057,17 @@
)
)
)
- (local.set $10
+ (local.set $11
(select
(local.tee $7
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const -65537)
)
)
- (local.get $10)
+ (local.get $11)
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 8192)
)
)
@@ -3084,11 +3075,11 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.tee $6
+ (local.tee $5
(select
- (local.tee $5
+ (local.tee $6
(i32.add
- (local.tee $11
+ (local.tee $8
(select
(local.tee $12
(i32.sub
@@ -3097,8 +3088,8 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
- (local.tee $6
+ (local.get $15)
+ (local.tee $5
(block $__rjti$7 (result i32)
(block $__rjti$6
(block $__rjti$5
@@ -3119,27 +3110,27 @@
(block $switch-case27
(br_table $switch-case119 $switch-default120 $switch-case40 $switch-default120 $switch-case119 $switch-case119 $switch-case119 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case41 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case30 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case119 $switch-default120 $switch-case37 $switch-case35 $switch-case119 $switch-case119 $switch-case119 $switch-default120 $switch-case35 $switch-default120 $switch-default120 $switch-default120 $switch-case38 $switch-case27 $switch-case33 $switch-case28 $switch-default120 $switch-default120 $switch-case39 $switch-default120 $switch-case36 $switch-default120 $switch-default120 $switch-case30 $switch-default120
(i32.sub
- (local.tee $18
+ (local.tee $17
(select
(i32.and
- (local.tee $11
+ (local.tee $8
(i32.load8_s
- (local.get $18)
+ (local.get $17)
)
)
(i32.const -33)
)
- (local.get $11)
+ (local.get $8)
(i32.and
(i32.eq
(i32.and
- (local.get $11)
+ (local.get $8)
(i32.const 15)
)
(i32.const 3)
)
(i32.ne
- (local.get $8)
+ (local.get $10)
(i32.const 0)
)
)
@@ -3158,7 +3149,7 @@
(block $switch-case20
(block $switch-case19
(br_table $switch-case19 $switch-case20 $switch-case21 $switch-case22 $switch-case23 $switch-default26 $switch-case24 $switch-case25 $switch-default26
- (local.get $8)
+ (local.get $10)
)
)
(i32.store
@@ -3299,7 +3290,7 @@
)
(local.set $4
(i32.or
- (local.get $10)
+ (local.get $11)
(i32.const 8)
)
)
@@ -3313,13 +3304,13 @@
)
)
)
- (local.set $18
+ (local.set $17
(i32.const 120)
)
(br $__rjti$3)
)
(local.set $4
- (local.get $10)
+ (local.get $11)
)
(br $__rjti$3)
)
@@ -3338,7 +3329,7 @@
)
(block
(local.set $7
- (local.get $25)
+ (local.get $24)
)
(loop $while-in32
(i32.store8
@@ -3373,24 +3364,24 @@
)
)
(local.set $7
- (local.get $25)
+ (local.get $24)
)
)
(if
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 8)
)
(block
(local.set $4
- (local.get $10)
+ (local.get $11)
)
(local.set $5
(select
- (local.tee $10
+ (local.tee $11
(i32.add
(i32.sub
- (local.get $38)
+ (local.get $39)
(local.tee $6
(local.get $7)
)
@@ -3401,7 +3392,7 @@
(local.get $5)
(i32.lt_s
(local.get $5)
- (local.get $10)
+ (local.get $11)
)
)
)
@@ -3411,14 +3402,14 @@
(local.get $7)
)
(local.set $4
- (local.get $10)
+ (local.get $11)
)
)
)
(local.set $7
(i32.const 0)
)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(br $__rjti$8)
@@ -3458,16 +3449,16 @@
(local.set $7
(i32.const 1)
)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(br $__rjti$4)
)
)
- (local.set $8
+ (local.set $10
(if (result i32)
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 2048)
)
(block (result i32)
@@ -3480,7 +3471,7 @@
(local.set $7
(local.tee $8
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 1)
)
)
@@ -3508,34 +3499,34 @@
(local.set $7
(i32.const 0)
)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(br $__rjti$4)
)
(i32.store8
- (local.get $39)
+ (local.get $40)
(i32.load
(local.get $13)
)
)
(local.set $4
- (local.get $39)
+ (local.get $40)
)
- (local.set $10
+ (local.set $11
(local.get $7)
)
- (local.set $11
+ (local.set $8
(i32.const 1)
)
(local.set $7
(i32.const 0)
)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(br $__rjto$8
- (local.get $25)
+ (local.get $24)
)
)
(local.set $6
@@ -3561,18 +3552,18 @@
(br $__rjti$5)
)
(i32.store offset=8
- (local.get $28)
+ (local.get $29)
(i32.load
(local.get $13)
)
)
(i32.store offset=12
- (local.get $28)
+ (local.get $29)
(i32.const 0)
)
(i32.store
(local.get $13)
- (local.get $42)
+ (local.get $43)
)
(local.set $7
(i32.const -1)
@@ -3591,9 +3582,9 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
+ (local.get $15)
(i32.const 0)
- (local.get $10)
+ (local.get $11)
)
(br $__rjti$7
(i32.const 0)
@@ -3601,7 +3592,7 @@
)
)
)
- (local.set $15
+ (local.set $14
(f64.load
(local.get $13)
)
@@ -3612,9 +3603,9 @@
)
(f64.store
(global.get $tempDoublePtr)
- (local.get $15)
+ (local.get $14)
)
- (local.set $31
+ (local.set $32
(if (result i32)
(i32.lt_s
(i32.load offset=4
@@ -3626,16 +3617,16 @@
(local.set $26
(i32.const 1)
)
- (local.set $15
+ (local.set $14
(f64.neg
- (local.get $15)
+ (local.get $14)
)
)
(i32.const 4108)
)
(if (result i32)
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 2048)
)
(block (result i32)
@@ -3648,7 +3639,7 @@
(local.set $26
(local.tee $4
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 1)
)
)
@@ -3664,9 +3655,9 @@
)
(f64.store
(global.get $tempDoublePtr)
- (local.get $15)
+ (local.get $14)
)
- (local.set $6
+ (local.set $5
(if (result i32)
(i32.lt_u
(i32.and
@@ -3684,7 +3675,7 @@
(local.tee $22
(f64.mul
(call $_frexp
- (local.get $15)
+ (local.get $14)
(local.get $20)
)
(f64.const 2)
@@ -3705,9 +3696,9 @@
)
(if
(i32.eq
- (local.tee $24
+ (local.tee $12
(i32.or
- (local.get $18)
+ (local.get $17)
(i32.const 32)
)
)
@@ -3717,19 +3708,19 @@
(local.set $8
(select
(i32.add
- (local.get $31)
+ (local.get $32)
(i32.const 9)
)
- (local.get $31)
+ (local.get $32)
(local.tee $12
(i32.and
- (local.get $18)
+ (local.get $17)
(i32.const 32)
)
)
)
)
- (local.set $15
+ (local.set $14
(if (result f64)
(i32.or
(i32.eqz
@@ -3747,13 +3738,13 @@
)
(local.get $22)
(block (result f64)
- (local.set $15
+ (local.set $14
(f64.const 8)
)
(loop $while-in54
- (local.set $15
+ (local.set $14
(f64.mul
- (local.get $15)
+ (local.get $14)
(f64.const 16)
)
)
@@ -3769,21 +3760,21 @@
(select
(f64.neg
(f64.add
- (local.get $15)
+ (local.get $14)
(f64.sub
(f64.neg
(local.get $22)
)
- (local.get $15)
+ (local.get $14)
)
)
)
(f64.sub
(f64.add
(local.get $22)
- (local.get $15)
+ (local.get $14)
)
- (local.get $15)
+ (local.get $14)
)
(i32.eq
(i32.load8_s
@@ -3795,7 +3786,7 @@
)
)
)
- (local.set $11
+ (local.set $10
(i32.or
(local.get $26)
(i32.const 2)
@@ -3839,11 +3830,11 @@
)
(block
(i32.store8
- (local.get $40)
+ (local.get $41)
(i32.const 48)
)
(local.set $4
- (local.get $40)
+ (local.get $41)
)
)
)
@@ -3871,26 +3862,26 @@
)
)
(i32.add
- (local.get $18)
+ (local.get $17)
(i32.const 15)
)
)
- (local.set $18
+ (local.set $17
(i32.lt_s
(local.get $5)
(i32.const 1)
)
)
- (local.set $17
+ (local.set $19
(i32.eqz
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 8)
)
)
)
(local.set $4
- (local.get $23)
+ (local.get $21)
)
(loop $while-in56
(i32.store8
@@ -3901,7 +3892,7 @@
(i32.add
(local.tee $6
(i32.trunc_f64_s
- (local.get $15)
+ (local.get $14)
)
)
(i32.const 4075)
@@ -3909,10 +3900,10 @@
)
)
)
- (local.set $15
+ (local.set $14
(f64.mul
(f64.sub
- (local.get $15)
+ (local.get $14)
(f64.convert_i32_s
(local.get $6)
)
@@ -3938,12 +3929,12 @@
(i32.and
(i32.and
(f64.eq
- (local.get $15)
+ (local.get $14)
(f64.const 0)
)
- (local.get $18)
+ (local.get $17)
)
- (local.get $17)
+ (local.get $19)
)
(local.get $6)
(block (result i32)
@@ -3962,7 +3953,7 @@
)
(br_if $while-in56
(f64.ne
- (local.get $15)
+ (local.get $14)
(f64.const 0)
)
)
@@ -3970,23 +3961,23 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
- (local.tee $6
+ (local.get $15)
+ (local.tee $5
(i32.add
- (local.get $11)
- (local.tee $5
+ (local.get $10)
+ (local.tee $6
(select
(i32.sub
(i32.add
(local.get $5)
- (local.get $45)
+ (local.get $46)
)
(local.get $7)
)
(i32.add
(local.get $4)
(i32.sub
- (local.get $43)
+ (local.get $44)
(local.get $7)
)
)
@@ -3998,7 +3989,7 @@
(i32.lt_s
(i32.add
(local.get $4)
- (local.get $44)
+ (local.get $45)
)
(local.get $5)
)
@@ -4007,7 +3998,7 @@
)
)
)
- (local.get $10)
+ (local.get $11)
)
(if
(i32.eqz
@@ -4020,17 +4011,17 @@
)
(call $___fwritex
(local.get $8)
- (local.get $11)
+ (local.get $10)
(local.get $0)
)
)
(call $_pad
(local.get $0)
(i32.const 48)
- (local.get $14)
- (local.get $6)
+ (local.get $15)
+ (local.get $5)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 65536)
)
)
@@ -4050,7 +4041,7 @@
)
)
(call $___fwritex
- (local.get $23)
+ (local.get $21)
(local.get $4)
(local.get $0)
)
@@ -4059,12 +4050,12 @@
(local.get $0)
(i32.const 48)
(i32.sub
- (local.get $5)
+ (local.get $6)
(i32.add
(local.get $4)
- (local.tee $4
+ (local.tee $6
(i32.sub
- (local.get $27)
+ (local.get $28)
(local.get $7)
)
)
@@ -4084,33 +4075,33 @@
)
(call $___fwritex
(local.get $7)
- (local.get $4)
+ (local.get $6)
(local.get $0)
)
)
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
- (local.get $6)
+ (local.get $15)
+ (local.get $5)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 8192)
)
)
(br $do-once49
(select
- (local.get $14)
- (local.get $6)
+ (local.get $15)
+ (local.get $5)
(i32.lt_s
- (local.get $6)
- (local.get $14)
+ (local.get $5)
+ (local.get $15)
)
)
)
)
)
- (local.set $15
+ (local.set $14
(if (result f64)
(local.get $4)
(block (result f64)
@@ -4143,8 +4134,8 @@
(local.set $6
(local.tee $7
(select
- (local.get $46)
(local.get $47)
+ (local.get $48)
(i32.lt_s
(local.get $4)
(i32.const 0)
@@ -4157,7 +4148,7 @@
(local.get $6)
(local.tee $4
(i32.trunc_f64_u
- (local.get $15)
+ (local.get $14)
)
)
)
@@ -4169,10 +4160,10 @@
)
(br_if $while-in60
(f64.ne
- (local.tee $15
+ (local.tee $14
(f64.mul
(f64.sub
- (local.get $15)
+ (local.get $14)
(f64.convert_i32_u
(local.get $4)
)
@@ -4186,7 +4177,7 @@
)
(if
(i32.gt_s
- (local.tee $8
+ (local.tee $10
(i32.load
(local.get $20)
)
@@ -4198,19 +4189,19 @@
(local.get $7)
)
(loop $while-in62
- (local.set $12
+ (local.set $19
(select
(i32.const 29)
- (local.get $8)
+ (local.get $10)
(i32.gt_s
- (local.get $8)
+ (local.get $10)
(i32.const 29)
)
)
)
(if
(i32.ge_u
- (local.tee $8
+ (local.tee $10
(i32.add
(local.get $6)
(i32.const -4)
@@ -4219,45 +4210,45 @@
(local.get $4)
)
(block $do-once63
- (local.set $11
+ (local.set $8
(i32.const 0)
)
(loop $while-in66
(i32.store
- (local.get $8)
+ (local.get $10)
(call $___uremdi3
- (local.tee $11
+ (local.tee $8
(call $_i64Add
(call $_bitshift64Shl
(i32.load
- (local.get $8)
+ (local.get $10)
)
(i32.const 0)
- (local.get $12)
+ (local.get $19)
)
(global.get $tempRet0)
- (local.get $11)
+ (local.get $8)
(i32.const 0)
)
)
- (local.tee $17
+ (local.tee $18
(global.get $tempRet0)
)
(i32.const 1000000000)
)
)
- (local.set $11
+ (local.set $8
(call $___udivdi3
- (local.get $11)
- (local.get $17)
+ (local.get $8)
+ (local.get $18)
(i32.const 1000000000)
)
)
(br_if $while-in66
(i32.ge_u
- (local.tee $8
+ (local.tee $10
(i32.add
- (local.get $8)
+ (local.get $10)
(i32.const -4)
)
)
@@ -4267,7 +4258,7 @@
)
(br_if $do-once63
(i32.eqz
- (local.get $11)
+ (local.get $8)
)
)
(i32.store
@@ -4277,7 +4268,7 @@
(i32.const -4)
)
)
- (local.get $11)
+ (local.get $8)
)
)
)
@@ -4309,18 +4300,18 @@
)
(i32.store
(local.get $20)
- (local.tee $8
+ (local.tee $10
(i32.sub
(i32.load
(local.get $20)
)
- (local.get $12)
+ (local.get $19)
)
)
)
(br_if $while-in62
(i32.gt_s
- (local.get $8)
+ (local.get $10)
(i32.const 0)
)
)
@@ -4330,7 +4321,7 @@
(local.get $7)
)
)
- (local.set $17
+ (local.set $18
(select
(i32.const 6)
(local.get $5)
@@ -4342,15 +4333,15 @@
)
(if
(i32.lt_s
- (local.get $8)
+ (local.get $10)
(i32.const 0)
)
(block
- (local.set $21
+ (local.set $19
(i32.add
(i32.div_s
(i32.add
- (local.get $17)
+ (local.get $18)
(i32.const 25)
)
(i32.const 9)
@@ -4358,9 +4349,9 @@
(i32.const 1)
)
)
- (local.set $32
+ (local.set $23
(i32.eq
- (local.get $24)
+ (local.get $12)
(i32.const 102)
)
)
@@ -4372,13 +4363,13 @@
)
(local.set $4
(loop $while-in70 (result i32)
- (local.set $12
+ (local.set $8
(select
(i32.const 9)
(local.tee $6
(i32.sub
(i32.const 0)
- (local.get $8)
+ (local.get $10)
)
)
(i32.gt_s
@@ -4393,11 +4384,11 @@
(local.get $4)
)
(block $do-once71
- (local.set $11
+ (local.set $27
(i32.add
(i32.shl
(i32.const 1)
- (local.get $12)
+ (local.get $8)
)
(i32.const -1)
)
@@ -4405,10 +4396,10 @@
(local.set $37
(i32.shr_u
(i32.const 1000000000)
- (local.get $12)
+ (local.get $8)
)
)
- (local.set $8
+ (local.set $10
(i32.const 0)
)
(local.set $6
@@ -4418,22 +4409,22 @@
(i32.store
(local.get $6)
(i32.add
- (local.get $8)
+ (local.get $10)
(i32.shr_u
- (local.tee $8
+ (local.tee $38
(i32.load
(local.get $6)
)
)
- (local.get $12)
+ (local.get $8)
)
)
)
- (local.set $8
+ (local.set $10
(i32.mul
(i32.and
- (local.get $8)
- (local.get $11)
+ (local.get $27)
+ (local.get $38)
)
(local.get $37)
)
@@ -4464,12 +4455,12 @@
)
(br_if $do-once71
(i32.eqz
- (local.get $8)
+ (local.get $10)
)
)
(i32.store
(local.get $4)
- (local.get $8)
+ (local.get $10)
)
(local.set $4
(i32.add
@@ -4491,18 +4482,18 @@
)
)
)
- (local.set $11
+ (local.set $4
(select
(i32.add
(local.tee $5
(select
(local.get $7)
(local.get $6)
- (local.get $32)
+ (local.get $23)
)
)
(i32.shl
- (local.get $21)
+ (local.get $19)
(i32.const 2)
)
)
@@ -4515,38 +4506,35 @@
)
(i32.const 2)
)
- (local.get $21)
+ (local.get $19)
)
)
)
(i32.store
(local.get $20)
- (local.tee $8
+ (local.tee $10
(i32.add
(i32.load
(local.get $20)
)
- (local.get $12)
+ (local.get $8)
)
)
)
(if (result i32)
(i32.lt_s
- (local.get $8)
+ (local.get $10)
(i32.const 0)
)
(block
(local.set $5
(local.get $6)
)
- (local.set $4
- (local.get $11)
- )
(br $while-in70)
)
(block (result i32)
- (local.set $8
- (local.get $11)
+ (local.set $10
+ (local.get $4)
)
(local.get $6)
)
@@ -4554,24 +4542,24 @@
)
)
)
- (local.set $8
+ (local.set $10
(local.get $6)
)
)
- (local.set $21
+ (local.set $19
(local.get $7)
)
(if
(i32.lt_u
(local.get $4)
- (local.get $8)
+ (local.get $10)
)
(block $do-once75
(local.set $6
(i32.mul
(i32.shr_s
(i32.sub
- (local.get $21)
+ (local.get $19)
(local.get $4)
)
(i32.const 2)
@@ -4581,7 +4569,7 @@
)
(br_if $do-once75
(i32.lt_u
- (local.tee $11
+ (local.tee $8
(i32.load
(local.get $4)
)
@@ -4601,7 +4589,7 @@
)
(br_if $while-in78
(i32.ge_u
- (local.get $11)
+ (local.get $8)
(local.tee $5
(i32.mul
(local.get $5)
@@ -4622,12 +4610,12 @@
(local.tee $5
(i32.add
(i32.sub
- (local.get $17)
+ (local.get $18)
(select
(local.get $6)
(i32.const 0)
(i32.ne
- (local.get $24)
+ (local.get $12)
(i32.const 102)
)
)
@@ -4635,15 +4623,15 @@
(i32.shr_s
(i32.shl
(i32.and
- (local.tee $32
+ (local.tee $37
(i32.eq
- (local.get $24)
+ (local.get $12)
(i32.const 103)
)
)
- (local.tee $37
+ (local.tee $38
(i32.ne
- (local.get $17)
+ (local.get $18)
(i32.const 0)
)
)
@@ -4658,8 +4646,8 @@
(i32.mul
(i32.shr_s
(i32.sub
- (local.get $8)
- (local.get $21)
+ (local.get $10)
+ (local.get $19)
)
(i32.const 2)
)
@@ -4688,13 +4676,13 @@
(i32.const 9)
)
(block
- (local.set $11
+ (local.set $8
(i32.const 10)
)
(loop $while-in80
- (local.set $11
+ (local.set $8
(i32.mul
- (local.get $11)
+ (local.get $8)
(i32.const 10)
)
)
@@ -4711,13 +4699,13 @@
)
)
)
- (local.set $11
+ (local.set $8
(i32.const 10)
)
)
(local.set $12
(i32.rem_u
- (local.tee $24
+ (local.tee $23
(i32.load
(local.tee $5
(i32.add
@@ -4736,19 +4724,19 @@
)
)
)
- (local.get $11)
+ (local.get $8)
)
)
(if
(i32.eqz
(i32.and
- (local.tee $48
+ (local.tee $27
(i32.eq
(i32.add
(local.get $5)
(i32.const 4)
)
- (local.get $8)
+ (local.get $10)
)
)
(i32.eqz
@@ -4757,13 +4745,13 @@
)
)
(block $do-once81
- (local.set $15
+ (local.set $14
(if (result f64)
(i32.lt_u
(local.get $12)
(local.tee $49
(i32.div_s
- (local.get $11)
+ (local.get $8)
(i32.const 2)
)
)
@@ -4773,7 +4761,7 @@
(f64.const 1)
(f64.const 1.5)
(i32.and
- (local.get $48)
+ (local.get $27)
(i32.eq
(local.get $12)
(local.get $49)
@@ -4788,8 +4776,8 @@
(f64.const 9007199254740992)
(i32.and
(i32.div_u
- (local.get $24)
- (local.get $11)
+ (local.get $23)
+ (local.get $8)
)
(i32.const 1)
)
@@ -4800,19 +4788,19 @@
(if
(i32.eq
(i32.load8_s
- (local.get $31)
+ (local.get $32)
)
(i32.const 45)
)
(block
- (local.set $15
+ (local.set $22
(f64.neg
- (local.get $15)
+ (local.get $22)
)
)
- (local.set $22
+ (local.set $14
(f64.neg
- (local.get $22)
+ (local.get $14)
)
)
)
@@ -4822,7 +4810,7 @@
(local.get $5)
(local.tee $12
(i32.sub
- (local.get $24)
+ (local.get $23)
(local.get $12)
)
)
@@ -4831,7 +4819,7 @@
(f64.eq
(f64.add
(local.get $22)
- (local.get $15)
+ (local.get $14)
)
(local.get $22)
)
@@ -4840,7 +4828,7 @@
(local.get $5)
(local.tee $6
(i32.add
- (local.get $11)
+ (local.get $8)
(local.get $12)
)
)
@@ -4898,7 +4886,7 @@
(i32.mul
(i32.shr_s
(i32.sub
- (local.get $21)
+ (local.get $19)
(local.get $4)
)
(i32.const 2)
@@ -4916,7 +4904,7 @@
(i32.const 10)
)
)
- (local.set $11
+ (local.set $8
(i32.const 10)
)
(loop $while-in88
@@ -4929,9 +4917,9 @@
(br_if $while-in88
(i32.ge_u
(local.get $12)
- (local.tee $11
+ (local.tee $8
(i32.mul
- (local.get $11)
+ (local.get $8)
(i32.const 10)
)
)
@@ -4940,7 +4928,7 @@
)
)
)
- (local.set $11
+ (local.set $8
(local.get $4)
)
(local.set $12
@@ -4953,34 +4941,34 @@
(i32.const 4)
)
)
- (local.get $8)
+ (local.get $10)
(i32.gt_u
- (local.get $8)
+ (local.get $10)
(local.get $4)
)
)
)
(block (result i32)
- (local.set $11
+ (local.set $8
(local.get $4)
)
(local.set $12
(local.get $6)
)
- (local.get $8)
+ (local.get $10)
)
)
)
- (local.set $8
+ (local.set $23
(loop $while-in90 (result i32)
(block $while-out89 (result i32)
(if
(i32.le_u
(local.get $4)
- (local.get $11)
+ (local.get $8)
)
(block
- (local.set $24
+ (local.set $27
(i32.const 0)
)
(br $while-out89
@@ -4990,7 +4978,7 @@
)
(if (result i32)
(i32.load
- (local.tee $6
+ (local.tee $5
(i32.add
(local.get $4)
(i32.const -4)
@@ -4998,14 +4986,14 @@
)
)
(block (result i32)
- (local.set $24
+ (local.set $27
(i32.const 1)
)
(local.get $4)
)
(block
(local.set $4
- (local.get $6)
+ (local.get $5)
)
(br $while-in90)
)
@@ -5015,7 +5003,7 @@
)
(local.set $4
(if (result i32)
- (local.get $32)
+ (local.get $37)
(block $do-once91 (result i32)
(local.set $6
(if (result i32)
@@ -5023,9 +5011,9 @@
(i32.gt_s
(local.tee $4
(i32.add
- (local.get $17)
+ (local.get $18)
(i32.xor
- (local.get $37)
+ (local.get $38)
(i32.const 1)
)
)
@@ -5038,7 +5026,7 @@
)
)
(block (result i32)
- (local.set $17
+ (local.set $18
(i32.sub
(i32.add
(local.get $4)
@@ -5048,49 +5036,44 @@
)
)
(i32.add
- (local.get $18)
+ (local.get $17)
(i32.const -1)
)
)
(block (result i32)
- (local.set $17
+ (local.set $18
(i32.add
(local.get $4)
(i32.const -1)
)
)
(i32.add
- (local.get $18)
+ (local.get $17)
(i32.const -2)
)
)
)
)
- (if
- (local.tee $4
- (i32.and
- (local.get $10)
- (i32.const 8)
- )
- )
- (block
- (local.set $21
- (local.get $4)
- )
- (br $do-once91
- (local.get $17)
+ (drop
+ (br_if $do-once91
+ (local.get $18)
+ (local.tee $10
+ (i32.and
+ (local.get $11)
+ (i32.const 8)
+ )
)
)
)
(if
- (local.get $24)
+ (local.get $27)
(block $do-once93
(if
(i32.eqz
- (local.tee $18
+ (local.tee $10
(i32.load
(i32.add
- (local.get $8)
+ (local.get $23)
(i32.const -4)
)
)
@@ -5106,7 +5089,7 @@
(local.set $4
(if (result i32)
(i32.rem_u
- (local.get $18)
+ (local.get $10)
(i32.const 10)
)
(block
@@ -5133,7 +5116,7 @@
(br_if $while-in96
(i32.eqz
(i32.rem_u
- (local.get $18)
+ (local.get $10)
(local.tee $5
(i32.mul
(local.get $5)
@@ -5154,8 +5137,8 @@
(i32.mul
(i32.shr_s
(i32.sub
- (local.get $8)
- (local.get $21)
+ (local.get $23)
+ (local.get $19)
)
(i32.const 2)
)
@@ -5173,11 +5156,11 @@
(i32.const 102)
)
(block (result i32)
- (local.set $21
+ (local.set $10
(i32.const 0)
)
(select
- (local.get $17)
+ (local.get $18)
(local.tee $4
(select
(i32.const 0)
@@ -5194,17 +5177,17 @@
)
)
(i32.lt_s
- (local.get $17)
+ (local.get $18)
(local.get $4)
)
)
)
(block (result i32)
- (local.set $21
+ (local.set $10
(i32.const 0)
)
(select
- (local.get $17)
+ (local.get $18)
(local.tee $4
(select
(i32.const 0)
@@ -5224,7 +5207,7 @@
)
)
(i32.lt_s
- (local.get $17)
+ (local.get $18)
(local.get $4)
)
)
@@ -5232,16 +5215,16 @@
)
)
(block (result i32)
- (local.set $21
+ (local.set $10
(i32.and
- (local.get $10)
+ (local.get $11)
(i32.const 8)
)
)
(local.set $6
- (local.get $18)
+ (local.get $17)
)
- (local.get $17)
+ (local.get $18)
)
)
)
@@ -5254,11 +5237,11 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
+ (local.get $15)
(local.tee $12
(i32.add
(if (result i32)
- (local.tee $17
+ (local.tee $19
(i32.eq
(i32.or
(local.get $6)
@@ -5268,7 +5251,7 @@
)
)
(block (result i32)
- (local.set $18
+ (local.set $17
(i32.const 0)
)
(select
@@ -5284,7 +5267,7 @@
(if
(i32.lt_s
(i32.sub
- (local.get $27)
+ (local.get $28)
(local.tee $5
(call $_fmt_u
(local.tee $5
@@ -5326,7 +5309,7 @@
(br_if $while-in98
(i32.lt_s
(i32.sub
- (local.get $27)
+ (local.get $28)
(local.get $5)
)
(i32.const 2)
@@ -5351,7 +5334,7 @@
)
)
(i32.store8
- (local.tee $18
+ (local.tee $17
(i32.add
(local.get $5)
(i32.const -2)
@@ -5360,8 +5343,8 @@
(local.get $6)
)
(i32.sub
- (local.get $27)
- (local.get $18)
+ (local.get $28)
+ (local.get $17)
)
)
)
@@ -5374,10 +5357,10 @@
(local.get $4)
)
(i32.ne
- (local.tee $32
+ (local.tee $18
(i32.or
(local.get $4)
- (local.get $21)
+ (local.get $10)
)
)
(i32.const 0)
@@ -5385,7 +5368,7 @@
)
)
)
- (local.get $10)
+ (local.get $11)
)
(if
(i32.eqz
@@ -5397,7 +5380,7 @@
)
)
(call $___fwritex
- (local.get $31)
+ (local.get $32)
(local.get $26)
(local.get $0)
)
@@ -5405,23 +5388,23 @@
(call $_pad
(local.get $0)
(i32.const 48)
- (local.get $14)
+ (local.get $15)
(local.get $12)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 65536)
)
)
(if
- (local.get $17)
+ (local.get $19)
(block
(local.set $5
- (local.tee $11
+ (local.tee $8
(select
(local.get $7)
- (local.get $11)
+ (local.get $8)
(i32.gt_u
- (local.get $11)
+ (local.get $8)
(local.get $7)
)
)
@@ -5434,20 +5417,20 @@
(local.get $5)
)
(i32.const 0)
- (local.get $30)
+ (local.get $31)
)
)
(block $do-once103
(if
(i32.eq
(local.get $5)
- (local.get $11)
+ (local.get $8)
)
(block
(br_if $do-once103
(i32.ne
(local.get $6)
- (local.get $30)
+ (local.get $31)
)
)
(i32.store8
@@ -5462,7 +5445,7 @@
(br_if $do-once103
(i32.le_u
(local.get $6)
- (local.get $23)
+ (local.get $21)
)
)
(loop $while-in106
@@ -5478,7 +5461,7 @@
(br_if $while-in106
(i32.gt_u
(local.get $6)
- (local.get $23)
+ (local.get $21)
)
)
)
@@ -5497,7 +5480,7 @@
(call $___fwritex
(local.get $6)
(i32.sub
- (local.get $41)
+ (local.get $42)
(local.get $6)
)
(local.get $0)
@@ -5522,7 +5505,7 @@
)
)
(if
- (local.get $32)
+ (local.get $18)
(if
(i32.eqz
(i32.and
@@ -5547,7 +5530,7 @@
(i32.and
(i32.lt_u
(local.get $6)
- (local.get $8)
+ (local.get $23)
)
(i32.gt_s
(local.get $4)
@@ -5563,10 +5546,10 @@
(local.get $6)
)
(i32.const 0)
- (local.get $30)
+ (local.get $31)
)
)
- (local.get $23)
+ (local.get $21)
)
(loop $while-in112
(i32.store8
@@ -5581,7 +5564,7 @@
(br_if $while-in112
(i32.gt_u
(local.get $5)
- (local.get $23)
+ (local.get $21)
)
)
)
@@ -5623,7 +5606,7 @@
(i32.const 4)
)
)
- (local.get $8)
+ (local.get $23)
)
(i32.gt_s
(local.get $4)
@@ -5648,14 +5631,14 @@
)
)
(block $do-once99
- (local.set $8
+ (local.set $19
(select
- (local.get $8)
+ (local.get $23)
(i32.add
- (local.get $11)
+ (local.get $8)
(i32.const 4)
)
- (local.get $24)
+ (local.get $27)
)
)
(call $_pad
@@ -5668,13 +5651,13 @@
(i32.const -1)
)
(block (result i32)
- (local.set $17
+ (local.set $10
(i32.eqz
- (local.get $21)
+ (local.get $10)
)
)
(local.set $5
- (local.get $11)
+ (local.get $8)
)
(local.set $6
(local.get $4)
@@ -5688,10 +5671,10 @@
(local.get $5)
)
(i32.const 0)
- (local.get $30)
+ (local.get $31)
)
)
- (local.get $30)
+ (local.get $31)
)
(block
(i32.store8
@@ -5707,7 +5690,7 @@
(if
(i32.eq
(local.get $5)
- (local.get $11)
+ (local.get $8)
)
(block
(if
@@ -5744,7 +5727,7 @@
(local.get $6)
(i32.const 1)
)
- (local.get $17)
+ (local.get $10)
)
)
)
@@ -5758,7 +5741,7 @@
(br_if $do-once115
(i32.le_u
(local.get $4)
- (local.get $23)
+ (local.get $21)
)
)
(loop $while-in118
@@ -5774,7 +5757,7 @@
(br_if $while-in118
(i32.gt_u
(local.get $4)
- (local.get $23)
+ (local.get $21)
)
)
)
@@ -5783,7 +5766,7 @@
)
(local.set $7
(i32.sub
- (local.get $41)
+ (local.get $42)
(local.get $4)
)
)
@@ -5818,7 +5801,7 @@
(i32.const 4)
)
)
- (local.get $8)
+ (local.get $19)
)
(i32.gt_s
(local.tee $6
@@ -5850,10 +5833,10 @@
)
)
(call $___fwritex
- (local.get $18)
+ (local.get $17)
(i32.sub
- (local.get $27)
- (local.get $18)
+ (local.get $28)
+ (local.get $17)
)
(local.get $0)
)
@@ -5862,19 +5845,19 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
+ (local.get $15)
(local.get $12)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 8192)
)
)
(select
- (local.get $14)
+ (local.get $15)
(local.get $12)
(i32.lt_s
(local.get $12)
- (local.get $14)
+ (local.get $15)
)
)
)
@@ -5882,17 +5865,17 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
- (local.tee $6
+ (local.get $15)
+ (local.tee $4
(i32.add
- (local.tee $8
+ (local.tee $6
(select
(i32.const 0)
(local.get $26)
(local.tee $5
(f64.ne
- (local.get $15)
- (local.get $15)
+ (local.get $14)
+ (local.get $14)
)
)
)
@@ -5910,7 +5893,7 @@
(local.tee $7
(i32.ne
(i32.and
- (local.get $18)
+ (local.get $17)
(i32.const 32)
)
(i32.const 0)
@@ -5930,18 +5913,18 @@
(i32.and
(if (result i32)
(i32.and
- (local.tee $4
+ (local.tee $7
(i32.load
(local.get $0)
)
)
(i32.const 32)
)
- (local.get $4)
+ (local.get $7)
(block (result i32)
(call $___fwritex
- (local.get $31)
- (local.get $8)
+ (local.get $32)
+ (local.get $6)
(local.get $0)
)
(i32.load
@@ -5961,19 +5944,19 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
- (local.get $6)
+ (local.get $15)
+ (local.get $4)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 8192)
)
)
(select
- (local.get $14)
- (local.get $6)
+ (local.get $15)
+ (local.get $4)
(i32.lt_s
- (local.get $6)
- (local.get $14)
+ (local.get $4)
+ (local.get $15)
)
)
)
@@ -5983,26 +5966,26 @@
(local.get $9)
)
(local.set $9
- (local.get $6)
+ (local.get $5)
)
(br $label$continue$L1)
)
- (local.set $11
+ (local.set $8
(local.get $5)
)
(local.set $7
(i32.const 0)
)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(br $__rjto$8
- (local.get $25)
+ (local.get $24)
)
)
(local.set $8
(i32.and
- (local.get $18)
+ (local.get $17)
(i32.const 32)
)
)
@@ -6014,7 +5997,7 @@
(local.get $13)
)
)
- (local.tee $10
+ (local.tee $11
(i32.load offset=4
(local.get $13)
)
@@ -6022,7 +6005,7 @@
)
(block (result i32)
(local.set $7
- (local.get $25)
+ (local.get $24)
)
(local.set $6
(loop $while-in123 (result i32)
@@ -6051,11 +6034,11 @@
(local.tee $6
(call $_bitshift64Lshr
(local.get $6)
- (local.get $10)
+ (local.get $11)
(i32.const 4)
)
)
- (local.tee $10
+ (local.tee $11
(global.get $tempRet0)
)
)
@@ -6083,16 +6066,16 @@
)
)
(block (result i32)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(i32.const 0)
)
(block (result i32)
- (local.set $8
+ (local.set $10
(i32.add
(i32.shr_s
- (local.get $18)
+ (local.get $17)
(i32.const 4)
)
(i32.const 4091)
@@ -6104,9 +6087,9 @@
)
(block (result i32)
(local.set $6
- (local.get $25)
+ (local.get $24)
)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(i32.const 0)
@@ -6119,15 +6102,15 @@
(call $_fmt_u
(local.get $4)
(local.get $6)
- (local.get $25)
+ (local.get $24)
)
)
(local.set $4
- (local.get $10)
+ (local.get $11)
)
(br $__rjti$8)
)
- (local.set $18
+ (local.set $17
(i32.eqz
(local.tee $12
(call $_memchr
@@ -6137,10 +6120,10 @@
)
)
)
- (local.set $10
+ (local.set $11
(local.get $7)
)
- (local.set $11
+ (local.set $8
(select
(local.get $5)
(i32.sub
@@ -6149,13 +6132,13 @@
(local.get $6)
)
)
- (local.get $18)
+ (local.get $17)
)
)
(local.set $7
(i32.const 0)
)
- (local.set $8
+ (local.set $10
(i32.const 4091)
)
(br $__rjto$8
@@ -6165,7 +6148,7 @@
(local.get $5)
)
(local.get $12)
- (local.get $18)
+ (local.get $17)
)
)
)
@@ -6245,9 +6228,9 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $14)
+ (local.get $15)
(local.get $4)
- (local.get $10)
+ (local.get $11)
)
(if (result i32)
(local.get $4)
@@ -6327,7 +6310,7 @@
)
)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 8192)
)
)
@@ -6336,17 +6319,17 @@
)
(local.set $9
(select
- (local.get $14)
- (local.get $6)
+ (local.get $15)
+ (local.get $5)
(i32.gt_s
- (local.get $14)
- (local.get $6)
+ (local.get $15)
+ (local.get $5)
)
)
)
(br $label$continue$L1)
)
- (local.set $10
+ (local.set $11
(select
(i32.and
(local.get $4)
@@ -6362,7 +6345,7 @@
(if (result i32)
(i32.or
(local.get $5)
- (local.tee $4
+ (local.tee $8
(i32.or
(i32.ne
(i32.load
@@ -6380,24 +6363,21 @@
)
)
(block (result i32)
- (local.set $11
+ (local.set $8
(select
(local.get $5)
(local.tee $6
(i32.add
- (i32.xor
- (i32.and
- (local.get $4)
- (i32.const 1)
- )
- (i32.const 1)
- )
(i32.sub
- (local.get $38)
+ (local.get $39)
(local.tee $4
(local.get $6)
)
)
+ (i32.xor
+ (local.get $8)
+ (i32.const 1)
+ )
)
)
(i32.gt_s
@@ -6406,14 +6386,14 @@
)
)
)
- (local.get $25)
+ (local.get $24)
)
(block (result i32)
- (local.set $11
+ (local.set $8
(i32.const 0)
)
(local.tee $4
- (local.get $25)
+ (local.get $24)
)
)
)
@@ -6421,9 +6401,9 @@
(local.get $4)
)
)
- (local.get $11)
+ (local.get $8)
(i32.lt_s
- (local.get $11)
+ (local.get $8)
(local.get $12)
)
)
@@ -6431,15 +6411,15 @@
(local.get $7)
)
)
- (local.get $14)
+ (local.get $15)
(i32.lt_s
- (local.get $14)
- (local.get $5)
+ (local.get $15)
+ (local.get $6)
)
)
)
- (local.get $5)
- (local.get $10)
+ (local.get $6)
+ (local.get $11)
)
(if
(i32.eqz
@@ -6451,7 +6431,7 @@
)
)
(call $___fwritex
- (local.get $8)
+ (local.get $10)
(local.get $7)
(local.get $0)
)
@@ -6459,17 +6439,17 @@
(call $_pad
(local.get $0)
(i32.const 48)
- (local.get $6)
(local.get $5)
+ (local.get $6)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 65536)
)
)
(call $_pad
(local.get $0)
(i32.const 48)
- (local.get $11)
+ (local.get $8)
(local.get $12)
(i32.const 0)
)
@@ -6491,10 +6471,10 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $6)
(local.get $5)
+ (local.get $6)
(i32.xor
- (local.get $10)
+ (local.get $11)
(i32.const 8192)
)
)
@@ -6502,7 +6482,7 @@
(local.get $9)
)
(local.set $9
- (local.get $6)
+ (local.get $5)
)
(br $label$continue$L1)
)
@@ -6515,7 +6495,7 @@
)
(local.set $16
(if (result i32)
- (local.get $19)
+ (local.get $25)
(block (result i32)
(local.set $0
(i32.const 1)
@@ -6608,7 +6588,7 @@
)
)
(global.set $STACKTOP
- (local.get $28)
+ (local.get $29)
)
(local.get $16)
)
diff --git a/test/lld/duplicate_imports.wast.out b/test/lld/duplicate_imports.wast.out
index 3a9fa2474..f01f8bb96 100644
--- a/test/lld/duplicate_imports.wast.out
+++ b/test/lld/duplicate_imports.wast.out
@@ -20,7 +20,7 @@
(global $global$1 i32 (i32.const 66128))
(global $global$2 i32 (i32.const 581))
(export "memory" (memory $0))
- (export "__post_instantiate" (func $__wasm_call_ctors))
+ (export "__wasm_call_ctors" (func $__wasm_call_ctors))
(export "main" (func $main))
(export "__heap_base" (global $global$1))
(export "__data_end" (global $global$2))
@@ -107,7 +107,7 @@
"staticBump": 13,
"tableSize": 1,
"initializers": [
- "__post_instantiate"
+ "__wasm_call_ctors"
],
"declares": [
"puts"
@@ -115,7 +115,7 @@
"externs": [
],
"implementedFunctions": [
- "___post_instantiate",
+ "___wasm_call_ctors",
"_main",
"_stackSave",
"_stackAlloc",
@@ -124,7 +124,7 @@
],
"exports": [
"memory",
- "__post_instantiate",
+ "__wasm_call_ctors",
"main",
"__heap_base",
"__data_end",
diff --git a/test/lld/em_asm.wast b/test/lld/em_asm.wast
index 5a171fb5b..681f75db2 100644
--- a/test/lld/em_asm.wast
+++ b/test/lld/em_asm.wast
@@ -1,43 +1,193 @@
(module
- (type $0 (func (param i32) (result i32)))
- (type $1 (func (param i32 i32 i32) (result i32)))
- (type $2 (func (param i32 i32) (result i32)))
- (type $3 (func (result i32)))
- (type $4 (func))
- (import "env" "_Z24emscripten_asm_const_intIJEEiPKcDpT_" (func $_Z24emscripten_asm_const_intIJEEiPKcDpT_ (param i32) (result i32)))
- (import "env" "_Z24emscripten_asm_const_intIJiiEEiPKcDpT_" (func $_Z24emscripten_asm_const_intIJiiEEiPKcDpT_ (param i32 i32 i32) (result i32)))
- (import "env" "_Z24emscripten_asm_const_intIJiEEiPKcDpT_" (func $_Z24emscripten_asm_const_intIJiEEiPKcDpT_ (param i32 i32) (result i32)))
+ (type $0 (func (param i32 i32 i32) (result i32)))
+ (type $1 (func))
+ (type $2 (func (result i32)))
+ (type $3 (func (param i32 i32 i32)))
+ (type $4 (func (param i32 i32)))
+ (type $5 (func (param i32) (result i32)))
+ (type $6 (func (param i32 i32) (result i32)))
+ (import "env" "emscripten_asm_const_int" (func $emscripten_asm_const_int (param i32 i32 i32) (result i32)))
+ (memory $0 2)
+ (data (i32.const 568) "{ Module.print(\"Hello world\"); }\00{ return $0 + $1; }\00{ Module.print(\"Got \" + $0); }\00")
+ (table $0 1 1 funcref)
(global $global$0 (mut i32) (i32.const 66192))
(global $global$1 i32 (i32.const 66192))
(global $global$2 i32 (i32.const 652))
- (table 1 1 funcref)
- (memory $0 2)
- (data (i32.const 568) "{ Module.print(\"Hello world\"); }\00{ return $0 + $1; }\00{ Module.print(\"Got \" + $0); }\00")
(export "memory" (memory $0))
(export "__wasm_call_ctors" (func $__wasm_call_ctors))
- (export "main" (func $main))
(export "__heap_base" (global $global$1))
(export "__data_end" (global $global$2))
- (func $main (; 3 ;) (type $3) (result i32)
+ (export "main" (func $main))
+ (func $__wasm_call_ctors (; 1 ;) (type $1)
+ )
+ (func $__original_main (; 2 ;) (type $2) (result i32)
+ (local $0 i32)
+ (local $1 i32)
+ (global.set $global$0
+ (local.tee $0
+ (i32.sub
+ (global.get $global$0)
+ (i32.const 32)
+ )
+ )
+ )
+ (i32.store8 offset=24
+ (local.get $0)
+ (call $__em_asm_sig_builder::inner<>\20const\20__em_asm_sig_builder::__em_asm_sig<>\28\29)
+ )
(drop
- (call $_Z24emscripten_asm_const_intIJEEiPKcDpT_
+ (call $emscripten_asm_const_int
(i32.const 568)
+ (i32.add
+ (local.get $0)
+ (i32.const 24)
+ )
+ (i32.const 0)
+ )
+ )
+ (call $__em_asm_sig_builder::inner<int\2c\20int>\20const\20__em_asm_sig_builder::__em_asm_sig<int\2c\20int>\28int\2c\20int\29
+ (i32.add
+ (local.get $0)
+ (i32.const 24)
)
+ (i32.const 13)
+ (i32.const 27)
+ )
+ (i64.store offset=16
+ (local.get $0)
+ (i64.const 115964117005)
+ )
+ (call $__em_asm_sig_builder::inner<int>\20const\20__em_asm_sig_builder::__em_asm_sig<int>\28int\29
+ (i32.add
+ (local.get $0)
+ (i32.const 24)
+ )
+ (local.tee $1
+ (call $emscripten_asm_const_int
+ (i32.const 601)
+ (i32.add
+ (local.get $0)
+ (i32.const 24)
+ )
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ )
+ )
+ )
+ (i32.store
+ (local.get $0)
+ (local.get $1)
)
(drop
- (call $_Z24emscripten_asm_const_intIJiEEiPKcDpT_
+ (call $emscripten_asm_const_int
(i32.const 621)
- (call $_Z24emscripten_asm_const_intIJiiEEiPKcDpT_
- (i32.const 601)
- (i32.const 13)
- (i32.const 27)
+ (i32.add
+ (local.get $0)
+ (i32.const 24)
)
+ (local.get $0)
+ )
+ )
+ (global.set $global$0
+ (i32.add
+ (local.get $0)
+ (i32.const 32)
)
)
(i32.const 0)
)
- (func $__wasm_call_ctors (; 4 ;) (type $4)
+ (func $__em_asm_sig_builder::inner<>\20const\20__em_asm_sig_builder::__em_asm_sig<>\28\29 (; 3 ;) (type $2) (result i32)
+ (i32.const 0)
+ )
+ (func $__em_asm_sig_builder::inner<int\2c\20int>\20const\20__em_asm_sig_builder::__em_asm_sig<int\2c\20int>\28int\2c\20int\29 (; 4 ;) (type $3) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (global.set $global$0
+ (local.tee $3
+ (i32.sub
+ (global.get $global$0)
+ (i32.const 16)
+ )
+ )
+ )
+ (i32.store8 offset=13
+ (local.get $3)
+ (call $__em_asm_sig_builder::sig_char\28int\29
+ (local.get $1)
+ )
+ )
+ (local.set $2
+ (call $__em_asm_sig_builder::sig_char\28int\29
+ (local.get $2)
+ )
+ )
+ (i32.store8
+ (i32.add
+ (local.get $0)
+ (i32.const 2)
+ )
+ (i32.const 0)
+ )
+ (i32.store8 offset=14
+ (local.get $3)
+ (local.get $2)
+ )
+ (i32.store16 align=1
+ (local.get $0)
+ (i32.load16_u offset=13 align=1
+ (local.get $3)
+ )
+ )
+ (global.set $global$0
+ (i32.add
+ (local.get $3)
+ (i32.const 16)
+ )
+ )
+ )
+ (func $__em_asm_sig_builder::inner<int>\20const\20__em_asm_sig_builder::__em_asm_sig<int>\28int\29 (; 5 ;) (type $4) (param $0 i32) (param $1 i32)
+ (local $2 i32)
+ (global.set $global$0
+ (local.tee $2
+ (i32.sub
+ (global.get $global$0)
+ (i32.const 16)
+ )
+ )
+ )
+ (local.set $1
+ (call $__em_asm_sig_builder::sig_char\28int\29
+ (local.get $1)
+ )
+ )
+ (i32.store8 offset=15
+ (local.get $2)
+ (i32.const 0)
+ )
+ (i32.store8 offset=14
+ (local.get $2)
+ (local.get $1)
+ )
+ (i32.store16 align=1
+ (local.get $0)
+ (i32.load16_u offset=14
+ (local.get $2)
+ )
+ )
+ (global.set $global$0
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ )
+ )
+ (func $__em_asm_sig_builder::sig_char\28int\29 (; 6 ;) (type $5) (param $0 i32) (result i32)
+ (i32.const 105)
+ )
+ (func $main (; 7 ;) (type $6) (param $0 i32) (param $1 i32) (result i32)
+ (call $__original_main)
)
- ;; custom section "linking", size 3
+ ;; custom section "producers", size 125
)
diff --git a/test/lld/em_asm.wast.mem.out b/test/lld/em_asm.wast.mem.out
index e7c680764..08bca193e 100644
--- a/test/lld/em_asm.wast.mem.out
+++ b/test/lld/em_asm.wast.mem.out
@@ -1,54 +1,202 @@
(module
- (type $0 (func (param i32) (result i32)))
- (type $1 (func (param i32 i32 i32) (result i32)))
- (type $2 (func (param i32 i32) (result i32)))
- (type $3 (func (result i32)))
- (type $4 (func))
- (type $FUNCSIG$ii (func (param i32) (result i32)))
+ (type $0 (func (param i32 i32 i32) (result i32)))
+ (type $1 (func))
+ (type $2 (func (result i32)))
+ (type $3 (func (param i32 i32 i32)))
+ (type $4 (func (param i32 i32)))
+ (type $5 (func (param i32) (result i32)))
+ (type $6 (func (param i32 i32) (result i32)))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
- (type $FUNCSIG$iii (func (param i32 i32) (result i32)))
- (import "env" "emscripten_asm_const_i" (func $emscripten_asm_const_i (param i32) (result i32)))
(import "env" "emscripten_asm_const_iii" (func $emscripten_asm_const_iii (param i32 i32 i32) (result i32)))
- (import "env" "emscripten_asm_const_ii" (func $emscripten_asm_const_ii (param i32 i32) (result i32)))
(memory $0 2)
(table $0 1 1 funcref)
(global $global$0 (mut i32) (i32.const 16384))
(global $global$1 i32 (i32.const 66192))
(global $global$2 i32 (i32.const 652))
(export "memory" (memory $0))
- (export "__post_instantiate" (func $__wasm_call_ctors))
- (export "main" (func $main))
+ (export "__wasm_call_ctors" (func $__wasm_call_ctors))
(export "__heap_base" (global $global$1))
(export "__data_end" (global $global$2))
+ (export "main" (func $main))
(export "stackSave" (func $stackSave))
(export "stackAlloc" (func $stackAlloc))
(export "stackRestore" (func $stackRestore))
(export "__growWasmMemory" (func $__growWasmMemory))
- (func $main (; 3 ;) (type $3) (result i32)
+ (func $__wasm_call_ctors (; 1 ;) (type $1)
+ (nop)
+ )
+ (func $__original_main (; 2 ;) (type $2) (result i32)
+ (local $0 i32)
+ (local $1 i32)
+ (global.set $global$0
+ (local.tee $0
+ (i32.sub
+ (global.get $global$0)
+ (i32.const 32)
+ )
+ )
+ )
+ (i32.store8 offset=24
+ (local.get $0)
+ (call $__em_asm_sig_builder::inner<>\20const\20__em_asm_sig_builder::__em_asm_sig<>\28\29)
+ )
(drop
- (call $emscripten_asm_const_i
+ (call $emscripten_asm_const_iii
+ (i32.const 0)
+ (i32.add
+ (local.get $0)
+ (i32.const 24)
+ )
(i32.const 0)
)
)
- (drop
- (call $emscripten_asm_const_ii
- (i32.const 2)
+ (call $__em_asm_sig_builder::inner<int\2c\20int>\20const\20__em_asm_sig_builder::__em_asm_sig<int\2c\20int>\28int\2c\20int\29
+ (i32.add
+ (local.get $0)
+ (i32.const 24)
+ )
+ (i32.const 13)
+ (i32.const 27)
+ )
+ (i64.store offset=16
+ (local.get $0)
+ (i64.const 115964117005)
+ )
+ (call $__em_asm_sig_builder::inner<int>\20const\20__em_asm_sig_builder::__em_asm_sig<int>\28int\29
+ (i32.add
+ (local.get $0)
+ (i32.const 24)
+ )
+ (local.tee $1
(call $emscripten_asm_const_iii
(i32.const 1)
- (i32.const 13)
- (i32.const 27)
+ (i32.add
+ (local.get $0)
+ (i32.const 24)
+ )
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
)
)
)
+ (i32.store
+ (local.get $0)
+ (local.get $1)
+ )
+ (drop
+ (call $emscripten_asm_const_iii
+ (i32.const 2)
+ (i32.add
+ (local.get $0)
+ (i32.const 24)
+ )
+ (local.get $0)
+ )
+ )
+ (global.set $global$0
+ (i32.add
+ (local.get $0)
+ (i32.const 32)
+ )
+ )
(i32.const 0)
)
- (func $__wasm_call_ctors (; 4 ;) (type $4)
- (nop)
+ (func $__em_asm_sig_builder::inner<>\20const\20__em_asm_sig_builder::__em_asm_sig<>\28\29 (; 3 ;) (type $2) (result i32)
+ (i32.const 0)
)
- (func $stackSave (; 5 ;) (result i32)
+ (func $__em_asm_sig_builder::inner<int\2c\20int>\20const\20__em_asm_sig_builder::__em_asm_sig<int\2c\20int>\28int\2c\20int\29 (; 4 ;) (type $3) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (global.set $global$0
+ (local.tee $3
+ (i32.sub
+ (global.get $global$0)
+ (i32.const 16)
+ )
+ )
+ )
+ (i32.store8 offset=13
+ (local.get $3)
+ (call $__em_asm_sig_builder::sig_char\28int\29
+ (local.get $1)
+ )
+ )
+ (local.set $2
+ (call $__em_asm_sig_builder::sig_char\28int\29
+ (local.get $2)
+ )
+ )
+ (i32.store8
+ (i32.add
+ (local.get $0)
+ (i32.const 2)
+ )
+ (i32.const 0)
+ )
+ (i32.store8 offset=14
+ (local.get $3)
+ (local.get $2)
+ )
+ (i32.store16 align=1
+ (local.get $0)
+ (i32.load16_u offset=13 align=1
+ (local.get $3)
+ )
+ )
+ (global.set $global$0
+ (i32.add
+ (local.get $3)
+ (i32.const 16)
+ )
+ )
+ )
+ (func $__em_asm_sig_builder::inner<int>\20const\20__em_asm_sig_builder::__em_asm_sig<int>\28int\29 (; 5 ;) (type $4) (param $0 i32) (param $1 i32)
+ (local $2 i32)
+ (global.set $global$0
+ (local.tee $2
+ (i32.sub
+ (global.get $global$0)
+ (i32.const 16)
+ )
+ )
+ )
+ (local.set $1
+ (call $__em_asm_sig_builder::sig_char\28int\29
+ (local.get $1)
+ )
+ )
+ (i32.store8 offset=15
+ (local.get $2)
+ (i32.const 0)
+ )
+ (i32.store8 offset=14
+ (local.get $2)
+ (local.get $1)
+ )
+ (i32.store16 align=1
+ (local.get $0)
+ (i32.load16_u offset=14
+ (local.get $2)
+ )
+ )
+ (global.set $global$0
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ )
+ )
+ (func $__em_asm_sig_builder::sig_char\28int\29 (; 6 ;) (type $5) (param $0 i32) (result i32)
+ (i32.const 105)
+ )
+ (func $main (; 7 ;) (type $6) (param $0 i32) (param $1 i32) (result i32)
+ (call $__original_main)
+ )
+ (func $stackSave (; 8 ;) (result i32)
(global.get $global$0)
)
- (func $stackAlloc (; 6 ;) (param $0 i32) (result i32)
+ (func $stackAlloc (; 9 ;) (param $0 i32) (result i32)
(local $1 i32)
(global.set $global$0
(local.tee $1
@@ -63,12 +211,12 @@
)
(local.get $1)
)
- (func $stackRestore (; 7 ;) (param $0 i32)
+ (func $stackRestore (; 10 ;) (param $0 i32)
(global.set $global$0
(local.get $0)
)
)
- (func $__growWasmMemory (; 8 ;) (param $newSize i32) (result i32)
+ (func $__growWasmMemory (; 11 ;) (param $newSize i32) (result i32)
(grow_memory
(local.get $newSize)
)
@@ -78,21 +226,21 @@
--BEGIN METADATA --
{
"asmConsts": {
- "2": ["{ Module.print(\"Got \" + $0); }", ["ii"], [""]],
- "0": ["{ Module.print(\"Hello world\"); }", ["i"], [""]],
+ "2": ["{ Module.print(\"Got \" + $0); }", ["iii"], [""]],
+ "0": ["{ Module.print(\"Hello world\"); }", ["iii"], [""]],
"1": ["{ return $0 + $1; }", ["iii"], [""]]
},
"staticBump": 84,
"tableSize": 1,
"initializers": [
- "__post_instantiate"
+ "__wasm_call_ctors"
],
"declares": [
],
"externs": [
],
"implementedFunctions": [
- "___post_instantiate",
+ "___wasm_call_ctors",
"_main",
"_stackSave",
"_stackAlloc",
@@ -101,10 +249,10 @@
],
"exports": [
"memory",
- "__post_instantiate",
- "main",
+ "__wasm_call_ctors",
"__heap_base",
"__data_end",
+ "main",
"stackSave",
"stackAlloc",
"stackRestore",
diff --git a/test/lld/em_asm.wast.out b/test/lld/em_asm.wast.out
index 92b1ea76f..50d4628c9 100644
--- a/test/lld/em_asm.wast.out
+++ b/test/lld/em_asm.wast.out
@@ -1,15 +1,13 @@
(module
- (type $0 (func (param i32) (result i32)))
- (type $1 (func (param i32 i32 i32) (result i32)))
- (type $2 (func (param i32 i32) (result i32)))
- (type $3 (func (result i32)))
- (type $4 (func))
- (type $FUNCSIG$ii (func (param i32) (result i32)))
+ (type $0 (func (param i32 i32 i32) (result i32)))
+ (type $1 (func))
+ (type $2 (func (result i32)))
+ (type $3 (func (param i32 i32 i32)))
+ (type $4 (func (param i32 i32)))
+ (type $5 (func (param i32) (result i32)))
+ (type $6 (func (param i32 i32) (result i32)))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
- (type $FUNCSIG$iii (func (param i32 i32) (result i32)))
- (import "env" "emscripten_asm_const_i" (func $emscripten_asm_const_i (param i32) (result i32)))
(import "env" "emscripten_asm_const_iii" (func $emscripten_asm_const_iii (param i32 i32 i32) (result i32)))
- (import "env" "emscripten_asm_const_ii" (func $emscripten_asm_const_ii (param i32 i32) (result i32)))
(memory $0 2)
(data (i32.const 568) "{ Module.print(\"Hello world\"); }\00{ return $0 + $1; }\00{ Module.print(\"Got \" + $0); }\00")
(table $0 1 1 funcref)
@@ -17,39 +15,189 @@
(global $global$1 i32 (i32.const 66192))
(global $global$2 i32 (i32.const 652))
(export "memory" (memory $0))
- (export "__post_instantiate" (func $__wasm_call_ctors))
- (export "main" (func $main))
+ (export "__wasm_call_ctors" (func $__wasm_call_ctors))
(export "__heap_base" (global $global$1))
(export "__data_end" (global $global$2))
+ (export "main" (func $main))
(export "stackSave" (func $stackSave))
(export "stackAlloc" (func $stackAlloc))
(export "stackRestore" (func $stackRestore))
(export "__growWasmMemory" (func $__growWasmMemory))
- (func $main (; 3 ;) (type $3) (result i32)
+ (func $__wasm_call_ctors (; 1 ;) (type $1)
+ (nop)
+ )
+ (func $__original_main (; 2 ;) (type $2) (result i32)
+ (local $0 i32)
+ (local $1 i32)
+ (global.set $global$0
+ (local.tee $0
+ (i32.sub
+ (global.get $global$0)
+ (i32.const 32)
+ )
+ )
+ )
+ (i32.store8 offset=24
+ (local.get $0)
+ (call $__em_asm_sig_builder::inner<>\20const\20__em_asm_sig_builder::__em_asm_sig<>\28\29)
+ )
(drop
- (call $emscripten_asm_const_i
+ (call $emscripten_asm_const_iii
+ (i32.const 0)
+ (i32.add
+ (local.get $0)
+ (i32.const 24)
+ )
(i32.const 0)
)
)
- (drop
- (call $emscripten_asm_const_ii
- (i32.const 2)
+ (call $__em_asm_sig_builder::inner<int\2c\20int>\20const\20__em_asm_sig_builder::__em_asm_sig<int\2c\20int>\28int\2c\20int\29
+ (i32.add
+ (local.get $0)
+ (i32.const 24)
+ )
+ (i32.const 13)
+ (i32.const 27)
+ )
+ (i64.store offset=16
+ (local.get $0)
+ (i64.const 115964117005)
+ )
+ (call $__em_asm_sig_builder::inner<int>\20const\20__em_asm_sig_builder::__em_asm_sig<int>\28int\29
+ (i32.add
+ (local.get $0)
+ (i32.const 24)
+ )
+ (local.tee $1
(call $emscripten_asm_const_iii
(i32.const 1)
- (i32.const 13)
- (i32.const 27)
+ (i32.add
+ (local.get $0)
+ (i32.const 24)
+ )
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
)
)
)
+ (i32.store
+ (local.get $0)
+ (local.get $1)
+ )
+ (drop
+ (call $emscripten_asm_const_iii
+ (i32.const 2)
+ (i32.add
+ (local.get $0)
+ (i32.const 24)
+ )
+ (local.get $0)
+ )
+ )
+ (global.set $global$0
+ (i32.add
+ (local.get $0)
+ (i32.const 32)
+ )
+ )
(i32.const 0)
)
- (func $__wasm_call_ctors (; 4 ;) (type $4)
- (nop)
+ (func $__em_asm_sig_builder::inner<>\20const\20__em_asm_sig_builder::__em_asm_sig<>\28\29 (; 3 ;) (type $2) (result i32)
+ (i32.const 0)
)
- (func $stackSave (; 5 ;) (result i32)
+ (func $__em_asm_sig_builder::inner<int\2c\20int>\20const\20__em_asm_sig_builder::__em_asm_sig<int\2c\20int>\28int\2c\20int\29 (; 4 ;) (type $3) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (global.set $global$0
+ (local.tee $3
+ (i32.sub
+ (global.get $global$0)
+ (i32.const 16)
+ )
+ )
+ )
+ (i32.store8 offset=13
+ (local.get $3)
+ (call $__em_asm_sig_builder::sig_char\28int\29
+ (local.get $1)
+ )
+ )
+ (local.set $2
+ (call $__em_asm_sig_builder::sig_char\28int\29
+ (local.get $2)
+ )
+ )
+ (i32.store8
+ (i32.add
+ (local.get $0)
+ (i32.const 2)
+ )
+ (i32.const 0)
+ )
+ (i32.store8 offset=14
+ (local.get $3)
+ (local.get $2)
+ )
+ (i32.store16 align=1
+ (local.get $0)
+ (i32.load16_u offset=13 align=1
+ (local.get $3)
+ )
+ )
+ (global.set $global$0
+ (i32.add
+ (local.get $3)
+ (i32.const 16)
+ )
+ )
+ )
+ (func $__em_asm_sig_builder::inner<int>\20const\20__em_asm_sig_builder::__em_asm_sig<int>\28int\29 (; 5 ;) (type $4) (param $0 i32) (param $1 i32)
+ (local $2 i32)
+ (global.set $global$0
+ (local.tee $2
+ (i32.sub
+ (global.get $global$0)
+ (i32.const 16)
+ )
+ )
+ )
+ (local.set $1
+ (call $__em_asm_sig_builder::sig_char\28int\29
+ (local.get $1)
+ )
+ )
+ (i32.store8 offset=15
+ (local.get $2)
+ (i32.const 0)
+ )
+ (i32.store8 offset=14
+ (local.get $2)
+ (local.get $1)
+ )
+ (i32.store16 align=1
+ (local.get $0)
+ (i32.load16_u offset=14
+ (local.get $2)
+ )
+ )
+ (global.set $global$0
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ )
+ )
+ (func $__em_asm_sig_builder::sig_char\28int\29 (; 6 ;) (type $5) (param $0 i32) (result i32)
+ (i32.const 105)
+ )
+ (func $main (; 7 ;) (type $6) (param $0 i32) (param $1 i32) (result i32)
+ (call $__original_main)
+ )
+ (func $stackSave (; 8 ;) (result i32)
(global.get $global$0)
)
- (func $stackAlloc (; 6 ;) (param $0 i32) (result i32)
+ (func $stackAlloc (; 9 ;) (param $0 i32) (result i32)
(local $1 i32)
(global.set $global$0
(local.tee $1
@@ -64,12 +212,12 @@
)
(local.get $1)
)
- (func $stackRestore (; 7 ;) (param $0 i32)
+ (func $stackRestore (; 10 ;) (param $0 i32)
(global.set $global$0
(local.get $0)
)
)
- (func $__growWasmMemory (; 8 ;) (param $newSize i32) (result i32)
+ (func $__growWasmMemory (; 11 ;) (param $newSize i32) (result i32)
(grow_memory
(local.get $newSize)
)
@@ -79,21 +227,21 @@
--BEGIN METADATA --
{
"asmConsts": {
- "2": ["{ Module.print(\"Got \" + $0); }", ["ii"], [""]],
- "0": ["{ Module.print(\"Hello world\"); }", ["i"], [""]],
+ "2": ["{ Module.print(\"Got \" + $0); }", ["iii"], [""]],
+ "0": ["{ Module.print(\"Hello world\"); }", ["iii"], [""]],
"1": ["{ return $0 + $1; }", ["iii"], [""]]
},
"staticBump": 84,
"tableSize": 1,
"initializers": [
- "__post_instantiate"
+ "__wasm_call_ctors"
],
"declares": [
],
"externs": [
],
"implementedFunctions": [
- "___post_instantiate",
+ "___wasm_call_ctors",
"_main",
"_stackSave",
"_stackAlloc",
@@ -102,10 +250,10 @@
],
"exports": [
"memory",
- "__post_instantiate",
- "main",
+ "__wasm_call_ctors",
"__heap_base",
"__data_end",
+ "main",
"stackSave",
"stackAlloc",
"stackRestore",
diff --git a/test/lld/em_asm_O0.wast.out b/test/lld/em_asm_O0.wast.out
index cbc93c5cb..c45799980 100644
--- a/test/lld/em_asm_O0.wast.out
+++ b/test/lld/em_asm_O0.wast.out
@@ -17,7 +17,7 @@
(global $global$1 i32 (i32.const 66192))
(global $global$2 i32 (i32.const 652))
(export "memory" (memory $0))
- (export "__post_instantiate" (func $__wasm_call_ctors))
+ (export "__wasm_call_ctors" (func $__wasm_call_ctors))
(export "main" (func $main))
(export "__heap_base" (global $global$1))
(export "__data_end" (global $global$2))
@@ -94,14 +94,14 @@
"staticBump": 84,
"tableSize": 1,
"initializers": [
- "__post_instantiate"
+ "__wasm_call_ctors"
],
"declares": [
],
"externs": [
],
"implementedFunctions": [
- "___post_instantiate",
+ "___wasm_call_ctors",
"_main",
"_stackSave",
"_stackAlloc",
@@ -110,7 +110,7 @@
],
"exports": [
"memory",
- "__post_instantiate",
+ "__wasm_call_ctors",
"main",
"__heap_base",
"__data_end",
diff --git a/test/lld/hello_world.wast b/test/lld/hello_world.wast
index 5cebc06c8..b4abff002 100644
--- a/test/lld/hello_world.wast
+++ b/test/lld/hello_world.wast
@@ -1,20 +1,23 @@
(module
(type $0 (func (param i32) (result i32)))
- (type $1 (func (result i32)))
- (type $2 (func))
+ (type $1 (func))
+ (type $2 (func (result i32)))
+ (type $3 (func (param i32 i32) (result i32)))
(import "env" "puts" (func $puts (param i32) (result i32)))
+ (memory $0 2)
+ (data (i32.const 568) "Hello, world\00")
+ (table $0 1 1 funcref)
(global $global$0 (mut i32) (i32.const 66128))
(global $global$1 i32 (i32.const 66128))
(global $global$2 i32 (i32.const 581))
- (table 1 1 funcref)
- (memory $0 2)
- (data (i32.const 568) "Hello, world\00")
(export "memory" (memory $0))
(export "__wasm_call_ctors" (func $__wasm_call_ctors))
- (export "main" (func $main))
(export "__heap_base" (global $global$1))
(export "__data_end" (global $global$2))
- (func $main (; 1 ;) (type $1) (result i32)
+ (export "main" (func $main))
+ (func $__wasm_call_ctors (; 1 ;) (type $1)
+ )
+ (func $__original_main (; 2 ;) (type $2) (result i32)
(drop
(call $puts
(i32.const 568)
@@ -22,8 +25,9 @@
)
(i32.const 0)
)
- (func $__wasm_call_ctors (; 2 ;) (type $2)
+ (func $main (; 3 ;) (type $3) (param $0 i32) (param $1 i32) (result i32)
+ (call $__original_main)
)
- ;; custom section "linking", size 3
+ ;; custom section "producers", size 125
)
diff --git a/test/lld/hello_world.wast.mem.out b/test/lld/hello_world.wast.mem.out
index 66dafd460..32f8ddc14 100644
--- a/test/lld/hello_world.wast.mem.out
+++ b/test/lld/hello_world.wast.mem.out
@@ -1,7 +1,8 @@
(module
(type $0 (func (param i32) (result i32)))
- (type $1 (func (result i32)))
- (type $2 (func))
+ (type $1 (func))
+ (type $2 (func (result i32)))
+ (type $3 (func (param i32 i32) (result i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(import "env" "puts" (func $puts (param i32) (result i32)))
(memory $0 2)
@@ -10,15 +11,18 @@
(global $global$1 i32 (i32.const 66128))
(global $global$2 i32 (i32.const 581))
(export "memory" (memory $0))
- (export "__post_instantiate" (func $__wasm_call_ctors))
- (export "main" (func $main))
+ (export "__wasm_call_ctors" (func $__wasm_call_ctors))
(export "__heap_base" (global $global$1))
(export "__data_end" (global $global$2))
+ (export "main" (func $main))
(export "stackSave" (func $stackSave))
(export "stackAlloc" (func $stackAlloc))
(export "stackRestore" (func $stackRestore))
(export "__growWasmMemory" (func $__growWasmMemory))
- (func $main (; 1 ;) (type $1) (result i32)
+ (func $__wasm_call_ctors (; 1 ;) (type $1)
+ (nop)
+ )
+ (func $__original_main (; 2 ;) (type $2) (result i32)
(drop
(call $puts
(i32.const 568)
@@ -26,13 +30,13 @@
)
(i32.const 0)
)
- (func $__wasm_call_ctors (; 2 ;) (type $2)
- (nop)
+ (func $main (; 3 ;) (type $3) (param $0 i32) (param $1 i32) (result i32)
+ (call $__original_main)
)
- (func $stackSave (; 3 ;) (result i32)
+ (func $stackSave (; 4 ;) (result i32)
(global.get $global$0)
)
- (func $stackAlloc (; 4 ;) (param $0 i32) (result i32)
+ (func $stackAlloc (; 5 ;) (param $0 i32) (result i32)
(local $1 i32)
(global.set $global$0
(local.tee $1
@@ -47,12 +51,12 @@
)
(local.get $1)
)
- (func $stackRestore (; 5 ;) (param $0 i32)
+ (func $stackRestore (; 6 ;) (param $0 i32)
(global.set $global$0
(local.get $0)
)
)
- (func $__growWasmMemory (; 6 ;) (param $newSize i32) (result i32)
+ (func $__growWasmMemory (; 7 ;) (param $newSize i32) (result i32)
(grow_memory
(local.get $newSize)
)
@@ -64,7 +68,7 @@
"staticBump": 13,
"tableSize": 1,
"initializers": [
- "__post_instantiate"
+ "__wasm_call_ctors"
],
"declares": [
"puts"
@@ -72,7 +76,7 @@
"externs": [
],
"implementedFunctions": [
- "___post_instantiate",
+ "___wasm_call_ctors",
"_main",
"_stackSave",
"_stackAlloc",
@@ -81,10 +85,10 @@
],
"exports": [
"memory",
- "__post_instantiate",
- "main",
+ "__wasm_call_ctors",
"__heap_base",
"__data_end",
+ "main",
"stackSave",
"stackAlloc",
"stackRestore",
diff --git a/test/lld/hello_world.wast.out b/test/lld/hello_world.wast.out
index 1b1e199cb..20ffaf2cd 100644
--- a/test/lld/hello_world.wast.out
+++ b/test/lld/hello_world.wast.out
@@ -1,7 +1,8 @@
(module
(type $0 (func (param i32) (result i32)))
- (type $1 (func (result i32)))
- (type $2 (func))
+ (type $1 (func))
+ (type $2 (func (result i32)))
+ (type $3 (func (param i32 i32) (result i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(import "env" "puts" (func $puts (param i32) (result i32)))
(memory $0 2)
@@ -11,15 +12,18 @@
(global $global$1 i32 (i32.const 66128))
(global $global$2 i32 (i32.const 581))
(export "memory" (memory $0))
- (export "__post_instantiate" (func $__wasm_call_ctors))
- (export "main" (func $main))
+ (export "__wasm_call_ctors" (func $__wasm_call_ctors))
(export "__heap_base" (global $global$1))
(export "__data_end" (global $global$2))
+ (export "main" (func $main))
(export "stackSave" (func $stackSave))
(export "stackAlloc" (func $stackAlloc))
(export "stackRestore" (func $stackRestore))
(export "__growWasmMemory" (func $__growWasmMemory))
- (func $main (; 1 ;) (type $1) (result i32)
+ (func $__wasm_call_ctors (; 1 ;) (type $1)
+ (nop)
+ )
+ (func $__original_main (; 2 ;) (type $2) (result i32)
(drop
(call $puts
(i32.const 568)
@@ -27,13 +31,13 @@
)
(i32.const 0)
)
- (func $__wasm_call_ctors (; 2 ;) (type $2)
- (nop)
+ (func $main (; 3 ;) (type $3) (param $0 i32) (param $1 i32) (result i32)
+ (call $__original_main)
)
- (func $stackSave (; 3 ;) (result i32)
+ (func $stackSave (; 4 ;) (result i32)
(global.get $global$0)
)
- (func $stackAlloc (; 4 ;) (param $0 i32) (result i32)
+ (func $stackAlloc (; 5 ;) (param $0 i32) (result i32)
(local $1 i32)
(global.set $global$0
(local.tee $1
@@ -48,12 +52,12 @@
)
(local.get $1)
)
- (func $stackRestore (; 5 ;) (param $0 i32)
+ (func $stackRestore (; 6 ;) (param $0 i32)
(global.set $global$0
(local.get $0)
)
)
- (func $__growWasmMemory (; 6 ;) (param $newSize i32) (result i32)
+ (func $__growWasmMemory (; 7 ;) (param $newSize i32) (result i32)
(grow_memory
(local.get $newSize)
)
@@ -65,7 +69,7 @@
"staticBump": 13,
"tableSize": 1,
"initializers": [
- "__post_instantiate"
+ "__wasm_call_ctors"
],
"declares": [
"puts"
@@ -73,7 +77,7 @@
"externs": [
],
"implementedFunctions": [
- "___post_instantiate",
+ "___wasm_call_ctors",
"_main",
"_stackSave",
"_stackAlloc",
@@ -82,10 +86,10 @@
],
"exports": [
"memory",
- "__post_instantiate",
- "main",
+ "__wasm_call_ctors",
"__heap_base",
"__data_end",
+ "main",
"stackSave",
"stackAlloc",
"stackRestore",
diff --git a/test/lld/init.wast b/test/lld/init.wast
index 15bf65e7c..9c7f45243 100644
--- a/test/lld/init.wast
+++ b/test/lld/init.wast
@@ -1,30 +1,35 @@
(module
(type $0 (func))
(type $1 (func (result i32)))
+ (type $2 (func (param i32 i32) (result i32)))
+ (memory $0 2)
+ (data (i32.const 568) "\00\00\00\00\00\00\00\00")
+ (table $0 1 1 funcref)
(global $global$0 (mut i32) (i32.const 66112))
(global $global$1 i32 (i32.const 66112))
(global $global$2 i32 (i32.const 576))
- (table 1 1 funcref)
- (memory $0 2)
- (data (i32.const 568) "\00\00\00\00\00\00\00\00")
(export "memory" (memory $0))
(export "__wasm_call_ctors" (func $__wasm_call_ctors))
- (export "main" (func $main))
(export "__heap_base" (global $global$1))
(export "__data_end" (global $global$2))
- (func $init_x (; 0 ;) (type $0)
+ (export "main" (func $main))
+ (func $__wasm_call_ctors (; 0 ;) (type $0)
+ (call $init_x)
+ (call $init_y)
+ )
+ (func $init_x (; 1 ;) (type $0)
(i32.store offset=568
(i32.const 0)
(i32.const 14)
)
)
- (func $init_y (; 1 ;) (type $0)
+ (func $init_y (; 2 ;) (type $0)
(i32.store offset=572
(i32.const 0)
(i32.const 144)
)
)
- (func $main (; 2 ;) (type $1) (result i32)
+ (func $__original_main (; 3 ;) (type $1) (result i32)
(i32.add
(i32.load offset=568
(i32.const 0)
@@ -34,10 +39,9 @@
)
)
)
- (func $__wasm_call_ctors (; 3 ;) (type $0)
- (call $init_x)
- (call $init_y)
+ (func $main (; 4 ;) (type $2) (param $0 i32) (param $1 i32) (result i32)
+ (call $__original_main)
)
- ;; custom section "linking", size 3
+ ;; custom section "producers", size 125
)
diff --git a/test/lld/init.wast.out b/test/lld/init.wast.out
index dfff8d5eb..90c95263b 100644
--- a/test/lld/init.wast.out
+++ b/test/lld/init.wast.out
@@ -1,6 +1,7 @@
(module
(type $0 (func))
(type $1 (func (result i32)))
+ (type $2 (func (param i32 i32) (result i32)))
(memory $0 2)
(data (i32.const 568) "\00\00\00\00\00\00\00\00")
(table $0 1 1 funcref)
@@ -8,27 +9,31 @@
(global $global$1 i32 (i32.const 66112))
(global $global$2 i32 (i32.const 576))
(export "memory" (memory $0))
- (export "__post_instantiate" (func $__wasm_call_ctors))
- (export "main" (func $main))
+ (export "__wasm_call_ctors" (func $__wasm_call_ctors))
(export "__heap_base" (global $global$1))
(export "__data_end" (global $global$2))
+ (export "main" (func $main))
(export "stackSave" (func $stackSave))
(export "stackAlloc" (func $stackAlloc))
(export "stackRestore" (func $stackRestore))
(export "__growWasmMemory" (func $__growWasmMemory))
- (func $init_x (; 0 ;) (type $0)
+ (func $__wasm_call_ctors (; 0 ;) (type $0)
+ (call $init_x)
+ (call $init_y)
+ )
+ (func $init_x (; 1 ;) (type $0)
(i32.store offset=568
(i32.const 0)
(i32.const 14)
)
)
- (func $init_y (; 1 ;) (type $0)
+ (func $init_y (; 2 ;) (type $0)
(i32.store offset=572
(i32.const 0)
(i32.const 144)
)
)
- (func $main (; 2 ;) (type $1) (result i32)
+ (func $__original_main (; 3 ;) (type $1) (result i32)
(i32.add
(i32.load offset=568
(i32.const 0)
@@ -38,14 +43,13 @@
)
)
)
- (func $__wasm_call_ctors (; 3 ;) (type $0)
- (call $init_x)
- (call $init_y)
+ (func $main (; 4 ;) (type $2) (param $0 i32) (param $1 i32) (result i32)
+ (call $__original_main)
)
- (func $stackSave (; 4 ;) (result i32)
+ (func $stackSave (; 5 ;) (result i32)
(global.get $global$0)
)
- (func $stackAlloc (; 5 ;) (param $0 i32) (result i32)
+ (func $stackAlloc (; 6 ;) (param $0 i32) (result i32)
(local $1 i32)
(global.set $global$0
(local.tee $1
@@ -60,12 +64,12 @@
)
(local.get $1)
)
- (func $stackRestore (; 6 ;) (param $0 i32)
+ (func $stackRestore (; 7 ;) (param $0 i32)
(global.set $global$0
(local.get $0)
)
)
- (func $__growWasmMemory (; 7 ;) (param $newSize i32) (result i32)
+ (func $__growWasmMemory (; 8 ;) (param $newSize i32) (result i32)
(grow_memory
(local.get $newSize)
)
@@ -77,14 +81,14 @@
"staticBump": 8,
"tableSize": 1,
"initializers": [
- "__post_instantiate"
+ "__wasm_call_ctors"
],
"declares": [
],
"externs": [
],
"implementedFunctions": [
- "___post_instantiate",
+ "___wasm_call_ctors",
"_main",
"_stackSave",
"_stackAlloc",
@@ -93,10 +97,10 @@
],
"exports": [
"memory",
- "__post_instantiate",
- "main",
+ "__wasm_call_ctors",
"__heap_base",
"__data_end",
+ "main",
"stackSave",
"stackAlloc",
"stackRestore",
diff --git a/test/lld/recursive.wast b/test/lld/recursive.wast
index f3501b39b..93f251ff4 100644
--- a/test/lld/recursive.wast
+++ b/test/lld/recursive.wast
@@ -1,23 +1,25 @@
(module
(type $0 (func (param i32 i32) (result i32)))
- (type $1 (func (result i32)))
- (type $2 (func))
+ (type $1 (func))
+ (type $2 (func (result i32)))
(import "env" "printf" (func $printf (param i32 i32) (result i32)))
+ (memory $0 2)
+ (data (i32.const 568) "%d:%d\n\00Result: %d\n\00")
+ (table $0 1 1 funcref)
(global $global$0 (mut i32) (i32.const 66128))
(global $global$1 i32 (i32.const 66128))
(global $global$2 i32 (i32.const 587))
- (table 1 1 funcref)
- (memory $0 2)
- (data (i32.const 568) "%d:%d\n\00Result: %d\n\00")
(export "memory" (memory $0))
(export "__wasm_call_ctors" (func $__wasm_call_ctors))
- (export "main" (func $main))
(export "__heap_base" (global $global$1))
(export "__data_end" (global $global$2))
- (func $foo (; 1 ;) (type $0) (param $var$0 i32) (param $var$1 i32) (result i32)
- (local $var$2 i32)
+ (export "main" (func $main))
+ (func $__wasm_call_ctors (; 1 ;) (type $1)
+ )
+ (func $foo (; 2 ;) (type $0) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
(global.set $global$0
- (local.tee $var$2
+ (local.tee $2
(i32.sub
(global.get $global$0)
(i32.const 16)
@@ -25,34 +27,34 @@
)
)
(i32.store offset=4
- (local.get $var$2)
- (local.get $var$1)
+ (local.get $2)
+ (local.get $1)
)
(i32.store
- (local.get $var$2)
- (local.get $var$0)
+ (local.get $2)
+ (local.get $0)
)
(drop
(call $printf
(i32.const 568)
- (local.get $var$2)
+ (local.get $2)
)
)
(global.set $global$0
(i32.add
- (local.get $var$2)
+ (local.get $2)
(i32.const 16)
)
)
(i32.add
- (local.get $var$1)
- (local.get $var$0)
+ (local.get $1)
+ (local.get $0)
)
)
- (func $main (; 2 ;) (type $1) (result i32)
- (local $var$0 i32)
+ (func $__original_main (; 3 ;) (type $2) (result i32)
+ (local $0 i32)
(global.set $global$0
- (local.tee $var$0
+ (local.tee $0
(i32.sub
(global.get $global$0)
(i32.const 16)
@@ -60,7 +62,7 @@
)
)
(i32.store
- (local.get $var$0)
+ (local.get $0)
(call $foo
(i32.const 1)
(i32.const 2)
@@ -69,19 +71,20 @@
(drop
(call $printf
(i32.const 575)
- (local.get $var$0)
+ (local.get $0)
)
)
(global.set $global$0
(i32.add
- (local.get $var$0)
+ (local.get $0)
(i32.const 16)
)
)
(i32.const 0)
)
- (func $__wasm_call_ctors (; 3 ;) (type $2)
+ (func $main (; 4 ;) (type $0) (param $0 i32) (param $1 i32) (result i32)
+ (call $__original_main)
)
- ;; custom section "linking", size 3
+ ;; custom section "producers", size 125
)
diff --git a/test/lld/recursive.wast.out b/test/lld/recursive.wast.out
index e8f32d99c..95f82f767 100644
--- a/test/lld/recursive.wast.out
+++ b/test/lld/recursive.wast.out
@@ -1,7 +1,7 @@
(module
(type $0 (func (param i32 i32) (result i32)))
- (type $1 (func (result i32)))
- (type $2 (func))
+ (type $1 (func))
+ (type $2 (func (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(import "env" "printf" (func $printf (param i32 i32) (result i32)))
(memory $0 2)
@@ -11,18 +11,21 @@
(global $global$1 i32 (i32.const 66128))
(global $global$2 i32 (i32.const 587))
(export "memory" (memory $0))
- (export "__post_instantiate" (func $__wasm_call_ctors))
- (export "main" (func $main))
+ (export "__wasm_call_ctors" (func $__wasm_call_ctors))
(export "__heap_base" (global $global$1))
(export "__data_end" (global $global$2))
+ (export "main" (func $main))
(export "stackSave" (func $stackSave))
(export "stackAlloc" (func $stackAlloc))
(export "stackRestore" (func $stackRestore))
(export "__growWasmMemory" (func $__growWasmMemory))
- (func $foo (; 1 ;) (type $0) (param $var$0 i32) (param $var$1 i32) (result i32)
- (local $var$2 i32)
+ (func $__wasm_call_ctors (; 1 ;) (type $1)
+ (nop)
+ )
+ (func $foo (; 2 ;) (type $0) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
(global.set $global$0
- (local.tee $var$2
+ (local.tee $2
(i32.sub
(global.get $global$0)
(i32.const 16)
@@ -30,34 +33,34 @@
)
)
(i32.store offset=4
- (local.get $var$2)
- (local.get $var$1)
+ (local.get $2)
+ (local.get $1)
)
(i32.store
- (local.get $var$2)
- (local.get $var$0)
+ (local.get $2)
+ (local.get $0)
)
(drop
(call $printf
(i32.const 568)
- (local.get $var$2)
+ (local.get $2)
)
)
(global.set $global$0
(i32.add
- (local.get $var$2)
+ (local.get $2)
(i32.const 16)
)
)
(i32.add
- (local.get $var$1)
- (local.get $var$0)
+ (local.get $1)
+ (local.get $0)
)
)
- (func $main (; 2 ;) (type $1) (result i32)
- (local $var$0 i32)
+ (func $__original_main (; 3 ;) (type $2) (result i32)
+ (local $0 i32)
(global.set $global$0
- (local.tee $var$0
+ (local.tee $0
(i32.sub
(global.get $global$0)
(i32.const 16)
@@ -65,7 +68,7 @@
)
)
(i32.store
- (local.get $var$0)
+ (local.get $0)
(call $foo
(i32.const 1)
(i32.const 2)
@@ -74,24 +77,24 @@
(drop
(call $printf
(i32.const 575)
- (local.get $var$0)
+ (local.get $0)
)
)
(global.set $global$0
(i32.add
- (local.get $var$0)
+ (local.get $0)
(i32.const 16)
)
)
(i32.const 0)
)
- (func $__wasm_call_ctors (; 3 ;) (type $2)
- (nop)
+ (func $main (; 4 ;) (type $0) (param $0 i32) (param $1 i32) (result i32)
+ (call $__original_main)
)
- (func $stackSave (; 4 ;) (result i32)
+ (func $stackSave (; 5 ;) (result i32)
(global.get $global$0)
)
- (func $stackAlloc (; 5 ;) (param $0 i32) (result i32)
+ (func $stackAlloc (; 6 ;) (param $0 i32) (result i32)
(local $1 i32)
(global.set $global$0
(local.tee $1
@@ -106,12 +109,12 @@
)
(local.get $1)
)
- (func $stackRestore (; 6 ;) (param $0 i32)
+ (func $stackRestore (; 7 ;) (param $0 i32)
(global.set $global$0
(local.get $0)
)
)
- (func $__growWasmMemory (; 7 ;) (param $newSize i32) (result i32)
+ (func $__growWasmMemory (; 8 ;) (param $newSize i32) (result i32)
(grow_memory
(local.get $newSize)
)
@@ -123,7 +126,7 @@
"staticBump": 19,
"tableSize": 1,
"initializers": [
- "__post_instantiate"
+ "__wasm_call_ctors"
],
"declares": [
"printf"
@@ -131,7 +134,7 @@
"externs": [
],
"implementedFunctions": [
- "___post_instantiate",
+ "___wasm_call_ctors",
"_main",
"_stackSave",
"_stackAlloc",
@@ -140,10 +143,10 @@
],
"exports": [
"memory",
- "__post_instantiate",
- "main",
+ "__wasm_call_ctors",
"__heap_base",
"__data_end",
+ "main",
"stackSave",
"stackAlloc",
"stackRestore",
diff --git a/test/lld/reserved_func_ptr.wast b/test/lld/reserved_func_ptr.wast
index 426412b77..c5fc559df 100644
--- a/test/lld/reserved_func_ptr.wast
+++ b/test/lld/reserved_func_ptr.wast
@@ -6,74 +6,76 @@
(type $4 (func (param f64 i32) (result f64)))
(type $5 (func (param i32 i32 i32)))
(type $6 (func (param i32) (result i32)))
- (import "env" "_Z4atoiPKc" (func $_Z4atoiPKc (param i32) (result i32)))
+ (import "env" "_Z4atoiPKc" (func $atoi\28char\20const*\29 (param i32) (result i32)))
+ (memory $0 2)
+ (table $0 3 3 funcref)
+ (elem (i32.const 1) $address_taken_func\28int\2c\20int\2c\20int\29 $address_taken_func2\28int\2c\20int\2c\20int\29)
(global $global$0 (mut i32) (i32.const 66112))
(global $global$1 i32 (i32.const 66112))
(global $global$2 i32 (i32.const 568))
- (table 3 3 funcref)
- (elem (i32.const 1) $_Z18address_taken_funciii $_Z19address_taken_func2iii)
- (memory $0 2)
(export "memory" (memory $0))
(export "__wasm_call_ctors" (func $__wasm_call_ctors))
- (export "main" (func $main))
(export "__heap_base" (global $global$1))
(export "__data_end" (global $global$2))
- (func $_Z18address_taken_funciii (; 1 ;) (type $5) (param $var$0 i32) (param $var$1 i32) (param $var$2 i32)
+ (export "main" (func $main))
+ (func $__wasm_call_ctors (; 1 ;) (type $0)
+ )
+ (func $address_taken_func\28int\2c\20int\2c\20int\29 (; 2 ;) (type $5) (param $0 i32) (param $1 i32) (param $2 i32)
)
- (func $_Z19address_taken_func2iii (; 2 ;) (type $5) (param $var$0 i32) (param $var$1 i32) (param $var$2 i32)
+ (func $address_taken_func2\28int\2c\20int\2c\20int\29 (; 3 ;) (type $5) (param $0 i32) (param $1 i32) (param $2 i32)
)
- (func $main (; 3 ;) (type $2) (param $var$0 i32) (param $var$1 i32) (result i32)
- (local $var$2 i32)
- (local $var$3 i32)
- (local $var$4 i32)
- (local $var$5 i32)
- (local.set $var$2
- (call $_Z4atoiPKc
+ (func $main (; 4 ;) (type $2) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local.set $2
+ (call $atoi\28char\20const*\29
(i32.load offset=4
- (local.get $var$1)
+ (local.get $1)
)
)
)
- (local.set $var$3
- (call $_Z4atoiPKc
+ (local.set $3
+ (call $atoi\28char\20const*\29
(i32.load offset=8
- (local.get $var$1)
+ (local.get $1)
)
)
)
- (local.set $var$4
- (call $_Z4atoiPKc
+ (local.set $4
+ (call $atoi\28char\20const*\29
(i32.load offset=12
- (local.get $var$1)
+ (local.get $1)
)
)
)
- (local.set $var$5
- (call $_Z4atoiPKc
+ (local.set $5
+ (call $atoi\28char\20const*\29
(i32.load offset=16
- (local.get $var$1)
+ (local.get $1)
)
)
)
- (local.set $var$1
- (call $_Z4atoiPKc
+ (local.set $1
+ (call $atoi\28char\20const*\29
(i32.load offset=20
- (local.get $var$1)
+ (local.get $1)
)
)
)
(call_indirect (type $0)
- (local.get $var$2)
+ (local.get $2)
)
(call_indirect (type $1)
(i32.const 3)
- (local.get $var$3)
+ (local.get $3)
)
(drop
(call_indirect (type $2)
(i32.const 4)
(i32.const 5)
- (local.get $var$4)
+ (local.get $4)
)
)
(drop
@@ -81,14 +83,14 @@
(f32.const 3.0999999046325684)
(f32.const 4.199999809265137)
(i32.const 5)
- (local.get $var$5)
+ (local.get $5)
)
)
(drop
(call_indirect (type $4)
(f64.const 4.2)
(i32.const 5)
- (local.get $var$1)
+ (local.get $1)
)
)
(call_indirect (type $5)
@@ -99,15 +101,13 @@
(i32.const 1)
(i32.const 2)
(i32.gt_s
- (local.get $var$0)
+ (local.get $0)
(i32.const 3)
)
)
)
(i32.const 0)
)
- (func $__wasm_call_ctors (; 4 ;) (type $0)
- )
- ;; custom section "linking", size 3
+ ;; custom section "producers", size 125
)
diff --git a/test/lld/reserved_func_ptr.wast.out b/test/lld/reserved_func_ptr.wast.out
index e0d9ea156..6afc10291 100644
--- a/test/lld/reserved_func_ptr.wast.out
+++ b/test/lld/reserved_func_ptr.wast.out
@@ -8,81 +8,84 @@
(type $6 (func (param i32) (result i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$viii (func (param i32 i32 i32)))
- (import "env" "_Z4atoiPKc" (func $_Z4atoiPKc (param i32) (result i32)))
+ (import "env" "_Z4atoiPKc" (func $atoi\28char\20const*\29 (param i32) (result i32)))
(memory $0 2)
(table $0 3 3 funcref)
- (elem (i32.const 1) $_Z18address_taken_funciii $_Z19address_taken_func2iii)
+ (elem (i32.const 1) $address_taken_func\28int\2c\20int\2c\20int\29 $address_taken_func2\28int\2c\20int\2c\20int\29)
(global $global$0 (mut i32) (i32.const 16384))
(global $global$1 i32 (i32.const 66112))
(global $global$2 i32 (i32.const 568))
(export "memory" (memory $0))
- (export "__post_instantiate" (func $__wasm_call_ctors))
- (export "main" (func $main))
+ (export "__wasm_call_ctors" (func $__wasm_call_ctors))
(export "__heap_base" (global $global$1))
(export "__data_end" (global $global$2))
+ (export "main" (func $main))
(export "stackSave" (func $stackSave))
(export "stackAlloc" (func $stackAlloc))
(export "stackRestore" (func $stackRestore))
(export "__growWasmMemory" (func $__growWasmMemory))
(export "dynCall_viii" (func $dynCall_viii))
- (func $_Z18address_taken_funciii (; 1 ;) (type $5) (param $var$0 i32) (param $var$1 i32) (param $var$2 i32)
+ (func $__wasm_call_ctors (; 1 ;) (type $0)
(nop)
)
- (func $_Z19address_taken_func2iii (; 2 ;) (type $5) (param $var$0 i32) (param $var$1 i32) (param $var$2 i32)
+ (func $address_taken_func\28int\2c\20int\2c\20int\29 (; 2 ;) (type $5) (param $0 i32) (param $1 i32) (param $2 i32)
(nop)
)
- (func $main (; 3 ;) (type $2) (param $var$0 i32) (param $var$1 i32) (result i32)
- (local $var$2 i32)
- (local $var$3 i32)
- (local $var$4 i32)
- (local $var$5 i32)
- (local.set $var$2
- (call $_Z4atoiPKc
+ (func $address_taken_func2\28int\2c\20int\2c\20int\29 (; 3 ;) (type $5) (param $0 i32) (param $1 i32) (param $2 i32)
+ (nop)
+ )
+ (func $main (; 4 ;) (type $2) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local.set $2
+ (call $atoi\28char\20const*\29
(i32.load offset=4
- (local.get $var$1)
+ (local.get $1)
)
)
)
- (local.set $var$3
- (call $_Z4atoiPKc
+ (local.set $3
+ (call $atoi\28char\20const*\29
(i32.load offset=8
- (local.get $var$1)
+ (local.get $1)
)
)
)
- (local.set $var$4
- (call $_Z4atoiPKc
+ (local.set $4
+ (call $atoi\28char\20const*\29
(i32.load offset=12
- (local.get $var$1)
+ (local.get $1)
)
)
)
- (local.set $var$5
- (call $_Z4atoiPKc
+ (local.set $5
+ (call $atoi\28char\20const*\29
(i32.load offset=16
- (local.get $var$1)
+ (local.get $1)
)
)
)
- (local.set $var$1
- (call $_Z4atoiPKc
+ (local.set $1
+ (call $atoi\28char\20const*\29
(i32.load offset=20
- (local.get $var$1)
+ (local.get $1)
)
)
)
(call_indirect (type $0)
- (local.get $var$2)
+ (local.get $2)
)
(call_indirect (type $1)
(i32.const 3)
- (local.get $var$3)
+ (local.get $3)
)
(drop
(call_indirect (type $2)
(i32.const 4)
(i32.const 5)
- (local.get $var$4)
+ (local.get $4)
)
)
(drop
@@ -90,14 +93,14 @@
(f32.const 3.0999999046325684)
(f32.const 4.199999809265137)
(i32.const 5)
- (local.get $var$5)
+ (local.get $5)
)
)
(drop
(call_indirect (type $4)
(f64.const 4.2)
(i32.const 5)
- (local.get $var$1)
+ (local.get $1)
)
)
(call_indirect (type $5)
@@ -108,16 +111,13 @@
(i32.const 1)
(i32.const 2)
(i32.gt_s
- (local.get $var$0)
+ (local.get $0)
(i32.const 3)
)
)
)
(i32.const 0)
)
- (func $__wasm_call_ctors (; 4 ;) (type $0)
- (nop)
- )
(func $stackSave (; 5 ;) (result i32)
(global.get $global$0)
)
@@ -161,7 +161,7 @@
"staticBump": 0,
"tableSize": 3,
"initializers": [
- "__post_instantiate"
+ "__wasm_call_ctors"
],
"declares": [
"_Z4atoiPKc"
@@ -169,7 +169,7 @@
"externs": [
],
"implementedFunctions": [
- "___post_instantiate",
+ "___wasm_call_ctors",
"_main",
"_stackSave",
"_stackAlloc",
@@ -179,10 +179,10 @@
],
"exports": [
"memory",
- "__post_instantiate",
- "main",
+ "__wasm_call_ctors",
"__heap_base",
"__data_end",
+ "main",
"stackSave",
"stackAlloc",
"stackRestore",
diff --git a/test/lld/shared.c b/test/lld/shared.c
new file mode 100644
index 000000000..1d98b068b
--- /dev/null
+++ b/test/lld/shared.c
@@ -0,0 +1,7 @@
+int puts(const char* str);
+extern int external_var;
+
+int print_message() {
+ puts("Hello, world");
+ return external_var;
+}
diff --git a/test/lld/shared.wast b/test/lld/shared.wast
new file mode 100644
index 000000000..f8b0a746c
--- /dev/null
+++ b/test/lld/shared.wast
@@ -0,0 +1,34 @@
+(module
+ (type $0 (func (param i32) (result i32)))
+ (type $1 (func))
+ (type $2 (func (result i32)))
+ (import "env" "memory" (memory $0 0))
+ (data (global.get $gimport$2) "Hello, world\00")
+ (import "env" "__indirect_function_table" (table $timport$1 0 funcref))
+ (import "env" "__memory_base" (global $gimport$2 i32))
+ (import "env" "__table_base" (global $gimport$3 i32))
+ (import "GOT.func" "puts" (global $gimport$5 (mut i32)))
+ (import "GOT.mem" "external_var" (global $gimport$6 (mut i32)))
+ (import "env" "puts" (func $puts (param i32) (result i32)))
+ (export "__wasm_call_ctors" (func $__wasm_call_ctors))
+ (export "print_message" (func $print_message))
+ (func $__wasm_call_ctors (; 1 ;) (type $1)
+ )
+ (func $print_message (; 2 ;) (type $2) (result i32)
+ (drop
+ (i32.add
+ (global.get $gimport$2)
+ (i32.const 0)
+ )
+ )
+ (drop
+ (call $print_message)
+ )
+ (i32.load
+ (global.get $gimport$6)
+ )
+ )
+ ;; custom section "dylink", size 5
+ ;; custom section "producers", size 125
+)
+
diff --git a/test/lld/shared.wast.out b/test/lld/shared.wast.out
new file mode 100644
index 000000000..c4f110972
--- /dev/null
+++ b/test/lld/shared.wast.out
@@ -0,0 +1,75 @@
+(module
+ (type $0 (func (param i32) (result i32)))
+ (type $1 (func))
+ (type $2 (func (result i32)))
+ (type $FUNCSIG$ii (func (param i32) (result i32)))
+ (type $FUNCSIG$i (func (result i32)))
+ (import "env" "memory" (memory $0 0))
+ (data (global.get $gimport$2) "Hello, world\00")
+ (import "env" "table" (table $0 0 funcref))
+ (import "env" "__memory_base" (global $gimport$2 i32))
+ (import "env" "__table_base" (global $gimport$3 i32))
+ (import "env" "puts" (func $puts (param i32) (result i32)))
+ (import "env" "g$external_var" (func $g$external_var (result i32)))
+ (import "env" "f$puts$ii" (func $f$puts$ii (result i32)))
+ (global $gimport$5 (mut i32) (i32.const 0))
+ (global $gimport$6 (mut i32) (i32.const 0))
+ (export "print_message" (func $print_message))
+ (export "__post_instantiate" (func $__post_instantiate))
+ (func $__wasm_call_ctors (; 3 ;) (type $1)
+ (nop)
+ )
+ (func $print_message (; 4 ;) (type $2) (result i32)
+ (drop
+ (i32.add
+ (global.get $gimport$2)
+ (i32.const 0)
+ )
+ )
+ (drop
+ (call $print_message)
+ )
+ (i32.load
+ (global.get $gimport$6)
+ )
+ )
+ (func $__post_instantiate (; 5 ;)
+ (call $__assign_got_enties)
+ (call $__wasm_call_ctors)
+ )
+ (func $__assign_got_enties (; 6 ;)
+ (global.set $gimport$6
+ (call $g$external_var)
+ )
+ (global.set $gimport$5
+ (call $f$puts$ii)
+ )
+ )
+)
+(;
+--BEGIN METADATA --
+{
+ "staticBump": 0,
+ "tableSize": 0,
+ "declares": [
+ "puts",
+ "g$external_var",
+ "f$puts$ii"
+ ],
+ "externs": [
+ "___memory_base",
+ "___table_base"
+ ],
+ "implementedFunctions": [
+ "_print_message",
+ "___post_instantiate"
+ ],
+ "exports": [
+ "print_message",
+ "__post_instantiate"
+ ],
+ "invokeFuncs": [
+ ]
+}
+-- END METADATA --
+;)
diff --git a/test/memorygrowth.fromasm b/test/memorygrowth.fromasm
index dbf763a92..349fddb52 100644
--- a/test/memorygrowth.fromasm
+++ b/test/memorygrowth.fromasm
@@ -103,14 +103,7 @@
(local $45 i32)
(local $46 i32)
(local $47 i32)
- (local $48 i32)
- (local $49 i32)
- (local $50 i32)
- (local $51 i32)
- (local $52 i32)
- (local $53 i32)
- (local $54 i32)
- (local.set $25
+ (local.set $18
(global.get $r)
)
(global.set $r
@@ -119,1245 +112,1210 @@
(i32.const 16)
)
)
- (local.set $13
- (local.get $25)
- )
- (local.set $3
- (if (result i32)
- (i32.lt_u
- (local.get $0)
- (i32.const 245)
- )
- (block (result i32)
- (if
- (i32.and
- (local.tee $1
- (i32.shr_u
- (local.tee $4
- (i32.load
- (i32.const 1208)
- )
+ (if
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 245)
+ )
+ (block
+ (if
+ (i32.and
+ (local.tee $10
+ (i32.shr_u
+ (local.tee $12
+ (i32.load
+ (i32.const 1208)
)
- (local.tee $0
- (i32.shr_u
- (local.tee $2
- (select
- (i32.const 16)
- (i32.and
- (i32.add
- (local.get $0)
- (i32.const 11)
- )
- (i32.const -8)
- )
- (i32.lt_u
+ )
+ (local.tee $2
+ (i32.shr_u
+ (local.tee $4
+ (select
+ (i32.const 16)
+ (i32.and
+ (i32.add
(local.get $0)
(i32.const 11)
)
+ (i32.const -8)
+ )
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 11)
)
)
- (i32.const 3)
)
+ (i32.const 3)
)
)
)
- (i32.const 3)
)
- (block
- (local.set $1
- (local.tee $6
+ (i32.const 3)
+ )
+ (block
+ (local.set $0
+ (i32.load
+ (local.tee $2
(i32.add
- (i32.shl
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.xor
- (i32.and
- (local.get $1)
- (i32.const 1)
+ (local.tee $4
+ (i32.load offset=8
+ (local.tee $1
+ (i32.add
+ (i32.shl
+ (local.tee $3
+ (i32.add
+ (local.get $2)
+ (i32.xor
+ (i32.and
+ (local.get $10)
+ (i32.const 1)
+ )
+ (i32.const 1)
+ )
+ )
+ )
+ (i32.const 3)
)
- (i32.const 1)
+ (i32.const 1248)
)
)
)
- (i32.const 3)
)
- (i32.const 1248)
+ (i32.const 8)
)
)
)
- (if
- (i32.eq
- (local.get $6)
- (local.tee $8
- (i32.load
- (local.tee $2
- (i32.add
- (local.tee $14
- (i32.load offset=8
- (local.get $1)
- )
- )
- (i32.const 8)
- )
- )
+ )
+ (if
+ (i32.eq
+ (local.get $0)
+ (local.get $1)
+ )
+ (i32.store
+ (i32.const 1208)
+ (i32.and
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $3)
)
+ (i32.const -1)
)
+ (local.get $12)
)
- (i32.store
- (i32.const 1208)
- (i32.and
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $3)
- )
- (i32.const -1)
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $0)
+ (i32.load
+ (i32.const 1224)
)
- (local.get $4)
)
+ (call $qa)
)
- (block
- (if
- (i32.lt_u
- (local.get $8)
- (i32.load
- (i32.const 1224)
- )
+ (if
+ (i32.eq
+ (local.get $4)
+ (i32.load offset=12
+ (local.get $0)
)
- (call $qa)
)
- (local.set $0
- (local.get $8)
- )
- (if
- (i32.eq
- (local.get $14)
- (i32.load offset=12
- (local.get $0)
- )
+ (block
+ (i32.store offset=12
+ (local.get $0)
+ (local.get $1)
)
- (block
- (i32.store offset=12
- (local.get $0)
- (local.get $6)
- )
- (i32.store offset=8
- (local.get $1)
- (local.get $8)
- )
+ (i32.store offset=8
+ (local.get $1)
+ (local.get $0)
)
- (call $qa)
)
+ (call $qa)
)
)
- (i32.store offset=4
- (local.get $14)
- (i32.or
- (local.tee $8
- (i32.shl
- (local.get $3)
- (i32.const 3)
- )
+ )
+ (i32.store offset=4
+ (local.get $4)
+ (i32.or
+ (local.tee $0
+ (i32.shl
+ (local.get $3)
+ (i32.const 3)
)
- (i32.const 3)
)
+ (i32.const 3)
)
- (local.set $0
+ )
+ (i32.store offset=4
+ (local.tee $0
(i32.add
- (local.get $8)
- (local.get $14)
+ (local.get $0)
+ (local.get $4)
)
)
- (i32.store offset=4
- (local.get $0)
- (i32.or
- (i32.load offset=4
- (local.get $0)
- )
- (i32.const 1)
+ (i32.or
+ (i32.load offset=4
+ (local.get $0)
)
- )
- (global.set $r
- (local.get $25)
- )
- (return
- (local.get $2)
+ (i32.const 1)
)
)
- )
- (if (result i32)
- (i32.gt_u
+ (global.set $r
+ (local.get $18)
+ )
+ (return
(local.get $2)
- (local.tee $18
- (i32.load
- (i32.const 1216)
- )
+ )
+ )
+ )
+ (if
+ (i32.gt_u
+ (local.get $4)
+ (local.tee $0
+ (i32.load
+ (i32.const 1216)
)
)
- (block (result i32)
- (if
- (local.get $1)
- (block
- (local.set $6
- (i32.and
- (i32.shr_u
- (local.tee $8
- (i32.add
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $6
- (i32.and
- (i32.or
- (i32.sub
- (i32.const 0)
- (local.tee $8
- (i32.shl
- (i32.const 2)
- (local.get $0)
- )
+ )
+ (block
+ (if
+ (local.get $10)
+ (block
+ (local.set $1
+ (i32.and
+ (i32.shr_u
+ (local.tee $3
+ (i32.add
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.and
+ (i32.or
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.shl
+ (i32.const 2)
+ (local.get $2)
)
)
- (local.get $8)
- )
- (i32.shl
- (local.get $1)
- (local.get $0)
)
+ (local.get $1)
+ )
+ (i32.shl
+ (local.get $10)
+ (local.get $2)
)
)
)
- (local.get $6)
)
- (i32.const -1)
+ (local.get $1)
)
+ (i32.const -1)
)
- (i32.const 12)
)
- (i32.const 16)
+ (i32.const 12)
)
+ (i32.const 16)
)
- (local.set $8
- (i32.and
- (i32.shr_u
- (local.tee $7
- (i32.shr_u
- (local.get $8)
- (local.get $6)
- )
+ )
+ (local.set $3
+ (i32.and
+ (i32.shr_u
+ (local.tee $2
+ (i32.shr_u
+ (local.get $3)
+ (local.get $1)
)
- (i32.const 5)
)
- (i32.const 8)
+ (i32.const 5)
)
+ (i32.const 8)
)
- (local.set $7
- (i32.and
- (i32.shr_u
- (local.tee $10
- (i32.shr_u
- (local.get $7)
- (local.get $8)
- )
+ )
+ (local.set $2
+ (i32.and
+ (i32.shr_u
+ (local.tee $5
+ (i32.shr_u
+ (local.get $2)
+ (local.get $3)
)
- (i32.const 2)
)
- (i32.const 4)
+ (i32.const 2)
)
+ (i32.const 4)
)
- (local.set $10
- (i32.and
- (i32.shr_u
- (local.tee $3
- (i32.shr_u
- (local.get $10)
- (local.get $7)
- )
+ )
+ (local.set $5
+ (i32.and
+ (i32.shr_u
+ (local.tee $7
+ (i32.shr_u
+ (local.get $5)
+ (local.get $2)
)
- (i32.const 1)
)
- (i32.const 2)
+ (i32.const 1)
)
+ (i32.const 2)
)
- (local.set $8
- (local.tee $3
+ )
+ (local.set $1
+ (i32.load
+ (local.tee $6
(i32.add
- (i32.shl
- (local.tee $16
- (i32.add
- (i32.or
- (local.tee $3
- (i32.and
- (i32.shr_u
- (local.tee $14
- (i32.shr_u
- (local.get $3)
- (local.get $10)
+ (local.tee $2
+ (i32.load offset=8
+ (local.tee $3
+ (i32.add
+ (i32.shl
+ (local.tee $5
+ (i32.add
+ (i32.or
+ (local.tee $6
+ (i32.and
+ (i32.shr_u
+ (local.tee $7
+ (i32.shr_u
+ (local.get $7)
+ (local.get $5)
+ )
+ )
+ (i32.const 1)
+ )
+ (i32.const 1)
+ )
+ )
+ (i32.or
+ (local.get $5)
+ (i32.or
+ (local.get $2)
+ (i32.or
+ (local.get $1)
+ (local.get $3)
+ )
+ )
)
)
- (i32.const 1)
- )
- (i32.const 1)
- )
- )
- (i32.or
- (local.get $10)
- (i32.or
- (local.get $7)
- (i32.or
- (local.get $6)
- (local.get $8)
+ (i32.shr_u
+ (local.get $7)
+ (local.get $6)
+ )
)
)
+ (i32.const 3)
)
- )
- (i32.shr_u
- (local.get $14)
- (local.get $3)
+ (i32.const 1248)
)
)
)
- (i32.const 3)
)
- (i32.const 1248)
+ (i32.const 8)
)
)
)
- (if
- (i32.eq
- (local.tee $6
- (i32.load
- (local.tee $7
- (i32.add
- (local.tee $10
- (i32.load offset=8
- (local.get $8)
- )
- )
- (i32.const 8)
- )
+ )
+ (if
+ (i32.eq
+ (local.get $1)
+ (local.get $3)
+ )
+ (block
+ (i32.store
+ (i32.const 1208)
+ (i32.and
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $5)
)
+ (i32.const -1)
)
+ (local.get $12)
)
- (local.get $3)
)
- (block
- (i32.store
- (i32.const 1208)
- (i32.and
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $16)
- )
- (i32.const -1)
- )
- (local.get $4)
+ (local.set $13
+ (local.get $0)
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (i32.load
+ (i32.const 1224)
)
)
- (local.set $34
- (local.get $18)
- )
+ (call $qa)
)
- (block
- (if
- (i32.lt_u
- (local.get $6)
- (i32.load
- (i32.const 1224)
- )
+ (if
+ (i32.eq
+ (local.get $2)
+ (i32.load offset=12
+ (local.get $1)
)
- (call $qa)
- )
- (local.set $0
- (local.get $6)
)
- (if
- (i32.eq
- (local.get $10)
- (i32.load offset=12
- (local.get $0)
- )
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $3)
)
- (block
- (i32.store offset=12
- (local.get $0)
- (local.get $3)
- )
- (i32.store offset=8
- (local.get $8)
- (local.get $6)
- )
- (local.set $34
- (i32.load
- (i32.const 1216)
- )
+ (i32.store offset=8
+ (local.get $3)
+ (local.get $1)
+ )
+ (local.set $13
+ (i32.load
+ (i32.const 1216)
)
)
- (call $qa)
)
+ (call $qa)
)
)
- (i32.store offset=4
- (local.get $10)
- (i32.or
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $4)
+ (i32.const 3)
+ )
+ )
+ (i32.store offset=4
+ (local.tee $7
+ (i32.add
(local.get $2)
- (i32.const 3)
+ (local.get $4)
)
)
- (i32.store offset=4
- (local.tee $14
- (i32.add
- (local.get $2)
- (local.get $10)
- )
- )
- (i32.or
- (local.tee $6
- (i32.sub
- (i32.shl
- (local.get $16)
- (i32.const 3)
- )
- (local.get $2)
+ (i32.or
+ (local.tee $2
+ (i32.sub
+ (i32.shl
+ (local.get $5)
+ (i32.const 3)
)
+ (local.get $4)
)
- (i32.const 1)
)
+ (i32.const 1)
)
- (i32.store
- (i32.add
- (local.get $6)
- (local.get $14)
- )
- (local.get $6)
+ )
+ (i32.store
+ (i32.add
+ (local.get $2)
+ (local.get $7)
)
- (if
- (local.get $34)
- (block
- (local.set $3
- (i32.load
- (i32.const 1228)
- )
+ (local.get $2)
+ )
+ (if
+ (local.get $13)
+ (block
+ (local.set $3
+ (i32.load
+ (i32.const 1228)
)
- (local.set $4
- (i32.add
- (i32.shl
- (local.tee $18
- (i32.shr_u
- (local.get $34)
- (i32.const 3)
- )
+ )
+ (local.set $0
+ (i32.add
+ (i32.shl
+ (local.tee $1
+ (i32.shr_u
+ (local.get $13)
+ (i32.const 3)
)
- (i32.const 3)
)
- (i32.const 1248)
+ (i32.const 3)
)
+ (i32.const 1248)
)
- (if
- (i32.and
- (local.tee $0
- (i32.load
- (i32.const 1208)
- )
+ )
+ (if
+ (i32.and
+ (local.tee $4
+ (i32.load
+ (i32.const 1208)
)
- (local.tee $1
- (i32.shl
- (i32.const 1)
- (local.get $18)
- )
+ )
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
)
)
- (if
- (i32.lt_u
- (local.tee $0
- (i32.load
- (local.tee $1
- (i32.add
- (local.get $4)
- (i32.const 8)
- )
+ )
+ (if
+ (i32.lt_u
+ (local.tee $4
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
)
)
)
- (i32.load
- (i32.const 1224)
- )
)
- (call $qa)
- (block
- (local.set $40
- (local.get $1)
- )
- (local.set $35
- (local.get $0)
- )
+ (i32.load
+ (i32.const 1224)
)
)
+ (call $qa)
(block
- (i32.store
- (i32.const 1208)
- (i32.or
- (local.get $0)
- (local.get $1)
- )
- )
- (local.set $40
- (i32.add
- (local.get $4)
- (i32.const 8)
- )
+ (local.set $20
+ (local.get $1)
)
- (local.set $35
+ (local.set $8
(local.get $4)
)
)
)
- (i32.store
- (local.get $40)
- (local.get $3)
- )
- (i32.store offset=12
- (local.get $35)
- (local.get $3)
- )
- (i32.store offset=8
- (local.get $3)
- (local.get $35)
- )
- (i32.store offset=12
- (local.get $3)
- (local.get $4)
+ (block
+ (i32.store
+ (i32.const 1208)
+ (i32.or
+ (local.get $1)
+ (local.get $4)
+ )
+ )
+ (local.set $20
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
+ )
+ (local.set $8
+ (local.get $0)
+ )
)
)
- )
- (i32.store
- (i32.const 1216)
- (local.get $6)
- )
- (i32.store
- (i32.const 1228)
- (local.get $14)
- )
- (global.set $r
- (local.get $25)
- )
- (return
- (local.get $7)
+ (i32.store
+ (local.get $20)
+ (local.get $3)
+ )
+ (i32.store offset=12
+ (local.get $8)
+ (local.get $3)
+ )
+ (i32.store offset=8
+ (local.get $3)
+ (local.get $8)
+ )
+ (i32.store offset=12
+ (local.get $3)
+ (local.get $0)
+ )
)
)
+ (i32.store
+ (i32.const 1216)
+ (local.get $2)
+ )
+ (i32.store
+ (i32.const 1228)
+ (local.get $7)
+ )
+ (global.set $r
+ (local.get $18)
+ )
+ (return
+ (local.get $6)
+ )
)
- (if (result i32)
- (local.tee $14
- (i32.load
- (i32.const 1212)
- )
+ )
+ (if
+ (local.tee $0
+ (i32.load
+ (i32.const 1212)
)
- (block
- (local.set $14
- (i32.and
- (i32.shr_u
- (local.tee $6
- (i32.add
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.get $14)
- )
- (local.get $14)
+ )
+ (block
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (local.tee $1
+ (i32.add
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.get $0)
)
- (i32.const -1)
+ (local.get $0)
)
+ (i32.const -1)
)
- (i32.const 12)
)
- (i32.const 16)
+ (i32.const 12)
)
+ (i32.const 16)
)
- (local.set $6
- (i32.and
- (i32.shr_u
- (local.tee $4
- (i32.shr_u
- (local.get $6)
- (local.get $14)
- )
+ )
+ (local.set $1
+ (i32.and
+ (i32.shr_u
+ (local.tee $3
+ (i32.shr_u
+ (local.get $1)
+ (local.get $0)
)
- (i32.const 5)
)
- (i32.const 8)
+ (i32.const 5)
)
+ (i32.const 8)
)
- (local.set $4
- (i32.and
- (i32.shr_u
- (local.tee $3
- (i32.shr_u
- (local.get $4)
- (local.get $6)
- )
+ )
+ (local.set $3
+ (i32.and
+ (i32.shr_u
+ (local.tee $2
+ (i32.shr_u
+ (local.get $3)
+ (local.get $1)
)
- (i32.const 2)
)
- (i32.const 4)
+ (i32.const 2)
)
+ (i32.const 4)
)
- (local.set $3
- (i32.and
- (i32.shr_u
- (local.tee $0
- (i32.shr_u
- (local.get $3)
- (local.get $4)
- )
+ )
+ (local.set $2
+ (i32.and
+ (i32.shr_u
+ (local.tee $8
+ (i32.shr_u
+ (local.get $2)
+ (local.get $3)
)
- (i32.const 1)
)
- (i32.const 2)
+ (i32.const 1)
)
+ (i32.const 2)
)
- (local.set $0
- (i32.sub
- (i32.and
- (i32.load offset=4
- (local.tee $18
- (i32.load
- (i32.add
- (i32.shl
- (i32.add
- (i32.or
- (local.tee $0
- (i32.and
- (i32.shr_u
- (local.tee $1
- (i32.shr_u
- (local.get $0)
- (local.get $3)
- )
+ )
+ (local.set $7
+ (i32.sub
+ (i32.and
+ (i32.load offset=4
+ (local.tee $0
+ (i32.load
+ (i32.add
+ (i32.shl
+ (i32.add
+ (i32.or
+ (local.tee $7
+ (i32.and
+ (i32.shr_u
+ (local.tee $8
+ (i32.shr_u
+ (local.get $8)
+ (local.get $2)
)
- (i32.const 1)
)
(i32.const 1)
)
+ (i32.const 1)
)
+ )
+ (i32.or
+ (local.get $2)
(i32.or
(local.get $3)
(i32.or
- (local.get $4)
- (i32.or
- (local.get $6)
- (local.get $14)
- )
+ (local.get $0)
+ (local.get $1)
)
)
)
- (i32.shr_u
- (local.get $1)
- (local.get $0)
- )
)
- (i32.const 2)
+ (i32.shr_u
+ (local.get $8)
+ (local.get $7)
+ )
)
- (i32.const 1512)
+ (i32.const 2)
)
+ (i32.const 1512)
)
)
)
- (i32.const -8)
)
- (local.get $2)
- )
- )
- (local.set $3
- (local.tee $1
- (local.get $18)
+ (i32.const -8)
)
+ (local.get $4)
)
- (loop $while-in
- (block $while-out
- (local.set $4
- (i32.lt_u
- (local.tee $18
- (i32.sub
- (i32.and
- (i32.load offset=4
- (local.tee $1
- (if (result i32)
- (local.tee $18
- (i32.load offset=16
- (local.get $1)
- )
- )
- (local.get $18)
- (if (result i32)
- (local.tee $4
- (i32.load offset=20
- (local.get $1)
- )
- )
- (local.get $4)
- (block
- (local.set $6
- (local.get $0)
- )
- (local.set $9
- (local.get $3)
- )
- (br $while-out)
- )
- )
- )
- )
- )
- (i32.const -8)
- )
- (local.get $2)
- )
- )
+ )
+ (local.set $9
+ (local.get $0)
+ )
+ (loop $while-in
+ (block $while-out
+ (if
+ (local.tee $1
+ (i32.load offset=16
(local.get $0)
)
)
(local.set $0
- (select
- (local.get $18)
- (local.get $0)
- (local.get $4)
- )
+ (local.get $1)
)
- (local.set $3
- (select
- (local.get $1)
- (local.get $3)
- (local.get $4)
+ (if
+ (i32.eqz
+ (local.tee $0
+ (i32.load offset=20
+ (local.get $0)
+ )
+ )
+ )
+ (block
+ (local.set $8
+ (local.get $9)
+ )
+ (br $while-out)
)
)
- (br $while-in)
)
- )
- (if
- (i32.lt_u
- (local.get $9)
- (local.tee $3
- (i32.load
- (i32.const 1224)
+ (local.set $1
+ (i32.lt_u
+ (local.tee $3
+ (i32.sub
+ (i32.and
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const -8)
+ )
+ (local.get $4)
+ )
)
+ (local.get $7)
)
)
- (call $qa)
+ (local.set $7
+ (select
+ (local.get $3)
+ (local.get $7)
+ (local.get $1)
+ )
+ )
+ (local.set $9
+ (select
+ (local.get $0)
+ (local.get $9)
+ (local.get $1)
+ )
+ )
+ (br $while-in)
)
- (if
- (i32.ge_u
- (local.get $9)
- (local.tee $1
- (i32.add
- (local.get $2)
- (local.get $9)
- )
+ )
+ (if
+ (i32.lt_u
+ (local.get $8)
+ (local.tee $14
+ (i32.load
+ (i32.const 1224)
)
)
- (call $qa)
)
- (local.set $0
- (i32.load offset=24
- (local.get $9)
+ (call $qa)
+ )
+ (if
+ (i32.ge_u
+ (local.get $8)
+ (local.tee $12
+ (i32.add
+ (local.get $4)
+ (local.get $8)
+ )
)
)
- (if
- (i32.eq
- (local.tee $7
- (i32.load offset=12
- (local.get $9)
- )
+ (call $qa)
+ )
+ (local.set $10
+ (i32.load offset=24
+ (local.get $8)
+ )
+ )
+ (if
+ (i32.eq
+ (local.get $8)
+ (local.tee $0
+ (i32.load offset=12
+ (local.get $8)
)
- (local.get $9)
)
- (block $do-once4
- (if
- (local.tee $16
+ )
+ (block $do-once4
+ (if
+ (i32.eqz
+ (local.tee $0
(i32.load
- (local.tee $10
+ (local.tee $1
(i32.add
- (local.get $9)
+ (local.get $8)
(i32.const 20)
)
)
)
)
- (block
- (local.set $18
- (local.get $16)
- )
- (local.set $4
- (local.get $10)
- )
- )
- (br_if $do-once4
- (i32.eqz
- (local.tee $18
- (i32.load
- (local.tee $4
- (i32.add
- (local.get $9)
- (i32.const 16)
- )
- )
- )
- )
- )
- )
)
- (loop $while-in7
- (if
- (local.tee $16
+ (br_if $do-once4
+ (i32.eqz
+ (local.tee $0
(i32.load
- (local.tee $10
+ (local.tee $1
(i32.add
- (local.get $18)
- (i32.const 20)
+ (local.get $8)
+ (i32.const 16)
)
)
)
)
- (block
- (local.set $18
- (local.get $16)
- )
- (local.set $4
- (local.get $10)
- )
- (br $while-in7)
- )
)
- (if
- (local.tee $16
- (i32.load
- (local.tee $10
- (i32.add
- (local.get $18)
- (i32.const 16)
- )
+ )
+ )
+ (loop $while-in7
+ (if
+ (local.tee $2
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.get $0)
+ (i32.const 20)
)
)
)
- (block
- (local.set $18
- (local.get $16)
- )
- (local.set $4
- (local.get $10)
- )
- (br $while-in7)
+ )
+ (block
+ (local.set $0
+ (local.get $2)
)
+ (local.set $1
+ (local.get $3)
+ )
+ (br $while-in7)
)
)
(if
- (i32.lt_u
- (local.get $4)
- (local.get $3)
+ (local.tee $2
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ )
+ )
)
- (call $qa)
(block
- (i32.store
- (local.get $4)
- (i32.const 0)
+ (local.set $0
+ (local.get $2)
)
- (local.set $23
- (local.get $18)
+ (local.set $1
+ (local.get $3)
)
+ (br $while-in7)
)
)
)
- (block
- (if
- (i32.lt_u
- (local.tee $10
- (i32.load offset=8
- (local.get $9)
- )
- )
- (local.get $3)
- )
- (call $qa)
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (local.get $14)
)
- (local.set $8
- (local.get $10)
+ (call $qa)
+ (block
+ (i32.store
+ (local.get $1)
+ (i32.const 0)
+ )
+ (local.set $5
+ (local.get $0)
+ )
)
- (if
- (i32.ne
- (local.get $9)
- (i32.load offset=12
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.tee $1
+ (i32.load offset=8
(local.get $8)
)
)
- (call $qa)
+ (local.get $14)
)
- (local.set $4
- (local.get $7)
+ (call $qa)
+ )
+ (if
+ (i32.ne
+ (local.get $8)
+ (i32.load offset=12
+ (local.get $1)
+ )
)
- (if
- (i32.eq
- (local.get $9)
- (i32.load offset=8
- (local.get $4)
- )
+ (call $qa)
+ )
+ (if
+ (i32.eq
+ (local.get $8)
+ (i32.load offset=8
+ (local.get $0)
)
- (block
- (i32.store offset=12
- (local.get $8)
- (local.get $7)
- )
- (i32.store offset=8
- (local.get $4)
- (local.get $10)
- )
- (local.set $23
- (local.get $7)
- )
+ )
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $5
+ (local.get $0)
)
- (call $qa)
)
+ (call $qa)
)
)
- (if
- (local.get $0)
- (block $do-once8
- (if
- (i32.eq
- (i32.load
- (local.tee $3
- (i32.add
- (i32.shl
- (local.tee $7
- (i32.load offset=28
- (local.get $9)
- )
+ )
+ (if
+ (local.get $10)
+ (block $do-once8
+ (if
+ (i32.eq
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (i32.shl
+ (local.tee $0
+ (i32.load offset=28
+ (local.get $8)
)
- (i32.const 2)
)
- (i32.const 1512)
+ (i32.const 2)
)
+ (i32.const 1512)
)
)
- (local.get $9)
)
- (block
- (i32.store
- (local.get $3)
- (local.get $23)
+ (local.get $8)
+ )
+ (block
+ (i32.store
+ (local.get $1)
+ (local.get $5)
+ )
+ (if
+ (i32.eqz
+ (local.get $5)
)
- (if
- (i32.eqz
- (local.get $23)
- )
- (block
- (i32.store
- (i32.const 1212)
- (i32.and
- (i32.load
- (i32.const 1212)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $7)
- )
- (i32.const -1)
+ (block
+ (i32.store
+ (i32.const 1212)
+ (i32.and
+ (i32.load
+ (i32.const 1212)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
)
+ (i32.const -1)
)
)
- (br $do-once8)
)
+ (br $do-once8)
)
)
- (block
- (if
- (i32.lt_u
- (local.get $0)
- (i32.load
- (i32.const 1224)
- )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $10)
+ (i32.load
+ (i32.const 1224)
)
- (call $qa)
- )
- (local.set $4
- (local.get $0)
)
- (if
- (i32.eq
- (local.get $9)
- (i32.load offset=16
- (local.get $0)
- )
- )
- (i32.store offset=16
- (local.get $4)
- (local.get $23)
- )
- (i32.store offset=20
- (local.get $0)
- (local.get $23)
+ (call $qa)
+ )
+ (if
+ (i32.eq
+ (local.get $8)
+ (i32.load offset=16
+ (local.get $10)
)
)
- (br_if $do-once8
- (i32.eqz
- (local.get $23)
- )
+ (i32.store offset=16
+ (local.get $10)
+ (local.get $5)
+ )
+ (i32.store offset=20
+ (local.get $10)
+ (local.get $5)
+ )
+ )
+ (br_if $do-once8
+ (i32.eqz
+ (local.get $5)
)
)
)
- (if
- (i32.lt_u
- (local.get $23)
- (local.tee $7
- (i32.load
- (i32.const 1224)
- )
+ )
+ (if
+ (i32.lt_u
+ (local.get $5)
+ (local.tee $1
+ (i32.load
+ (i32.const 1224)
)
)
- (call $qa)
)
- (i32.store offset=24
- (local.get $23)
- (local.get $0)
+ (call $qa)
+ )
+ (i32.store offset=24
+ (local.get $5)
+ (local.get $10)
+ )
+ (if
+ (local.tee $0
+ (i32.load offset=16
+ (local.get $8)
+ )
)
(if
- (local.tee $3
- (i32.load offset=16
- (local.get $9)
- )
+ (i32.lt_u
+ (local.get $0)
+ (local.get $1)
)
- (if
- (i32.lt_u
- (local.get $3)
- (local.get $7)
+ (call $qa)
+ (block
+ (i32.store offset=16
+ (local.get $5)
+ (local.get $0)
)
- (call $qa)
- (block
- (i32.store offset=16
- (local.get $23)
- (local.get $3)
- )
- (i32.store offset=24
- (local.get $3)
- (local.get $23)
- )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $5)
)
)
)
+ )
+ (if
+ (local.tee $0
+ (i32.load offset=20
+ (local.get $8)
+ )
+ )
(if
- (local.tee $3
- (i32.load offset=20
- (local.get $9)
+ (i32.lt_u
+ (local.get $0)
+ (i32.load
+ (i32.const 1224)
)
)
- (if
- (i32.lt_u
- (local.get $3)
- (i32.load
- (i32.const 1224)
- )
+ (call $qa)
+ (block
+ (i32.store offset=20
+ (local.get $5)
+ (local.get $0)
)
- (call $qa)
- (block
- (i32.store offset=20
- (local.get $23)
- (local.get $3)
- )
- (i32.store offset=24
- (local.get $3)
- (local.get $23)
- )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $5)
)
)
)
)
)
- (if
- (i32.lt_u
- (local.get $6)
- (i32.const 16)
- )
- (block
- (i32.store offset=4
- (local.get $9)
- (i32.or
- (local.tee $0
- (i32.add
- (local.get $2)
- (local.get $6)
- )
+ )
+ (if
+ (i32.lt_u
+ (local.get $7)
+ (i32.const 16)
+ )
+ (block
+ (i32.store offset=4
+ (local.get $8)
+ (i32.or
+ (local.tee $0
+ (i32.add
+ (local.get $4)
+ (local.get $7)
)
- (i32.const 3)
)
+ (i32.const 3)
)
- (local.set $0
+ )
+ (i32.store offset=4
+ (local.tee $0
(i32.add
(local.get $0)
- (local.get $9)
+ (local.get $8)
)
)
- (i32.store offset=4
- (local.get $0)
- (i32.or
- (i32.load offset=4
- (local.get $0)
- )
- (i32.const 1)
+ (i32.or
+ (i32.load offset=4
+ (local.get $0)
)
+ (i32.const 1)
)
)
- (block
- (i32.store offset=4
- (local.get $9)
- (i32.or
- (local.get $2)
- (i32.const 3)
- )
+ )
+ (block
+ (i32.store offset=4
+ (local.get $8)
+ (i32.or
+ (local.get $4)
+ (i32.const 3)
)
- (i32.store offset=4
- (local.get $1)
- (i32.or
- (local.get $6)
- (i32.const 1)
- )
+ )
+ (i32.store offset=4
+ (local.get $12)
+ (i32.or
+ (local.get $7)
+ (i32.const 1)
)
- (i32.store
- (i32.add
- (local.get $1)
- (local.get $6)
+ )
+ (i32.store
+ (i32.add
+ (local.get $7)
+ (local.get $12)
+ )
+ (local.get $7)
+ )
+ (if
+ (local.tee $0
+ (i32.load
+ (i32.const 1216)
)
- (local.get $6)
)
- (if
- (local.tee $3
+ (block
+ (local.set $3
(i32.load
- (i32.const 1216)
+ (i32.const 1228)
)
)
- (block
- (local.set $0
- (i32.load
- (i32.const 1228)
+ (local.set $0
+ (i32.add
+ (i32.shl
+ (local.tee $1
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 3)
+ )
+ )
+ (i32.const 3)
)
+ (i32.const 1248)
)
- (local.set $3
- (i32.add
+ )
+ (if
+ (i32.and
+ (local.tee $4
+ (i32.load
+ (i32.const 1208)
+ )
+ )
+ (local.tee $1
(i32.shl
- (local.tee $7
- (i32.shr_u
- (local.get $3)
- (i32.const 3)
- )
- )
- (i32.const 3)
+ (i32.const 1)
+ (local.get $1)
)
- (i32.const 1248)
)
)
(if
- (i32.and
+ (i32.lt_u
(local.tee $4
- (i32.shl
- (i32.const 1)
- (local.get $7)
- )
- )
- (local.tee $10
(i32.load
- (i32.const 1208)
- )
- )
- )
- (if
- (i32.lt_u
- (local.tee $10
- (i32.load
- (local.tee $4
- (i32.add
- (local.get $3)
- (i32.const 8)
- )
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
)
)
)
- (i32.load
- (i32.const 1224)
- )
)
- (call $qa)
- (block
- (local.set $41
- (local.get $4)
- )
- (local.set $27
- (local.get $10)
- )
+ (i32.load
+ (i32.const 1224)
)
)
+ (call $qa)
(block
- (i32.store
- (i32.const 1208)
- (i32.or
- (local.get $4)
- (local.get $10)
- )
- )
- (local.set $41
- (i32.add
- (local.get $3)
- (i32.const 8)
- )
+ (local.set $21
+ (local.get $1)
)
- (local.set $27
- (local.get $3)
+ (local.set $6
+ (local.get $4)
)
)
)
- (i32.store
- (local.get $41)
- (local.get $0)
- )
- (i32.store offset=12
- (local.get $27)
- (local.get $0)
- )
- (i32.store offset=8
- (local.get $0)
- (local.get $27)
- )
- (i32.store offset=12
- (local.get $0)
- (local.get $3)
+ (block
+ (i32.store
+ (i32.const 1208)
+ (i32.or
+ (local.get $1)
+ (local.get $4)
+ )
+ )
+ (local.set $21
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
+ )
+ (local.set $6
+ (local.get $0)
+ )
)
)
- )
- (i32.store
- (i32.const 1216)
- (local.get $6)
- )
- (i32.store
- (i32.const 1228)
- (local.get $1)
+ (i32.store
+ (local.get $21)
+ (local.get $3)
+ )
+ (i32.store offset=12
+ (local.get $6)
+ (local.get $3)
+ )
+ (i32.store offset=8
+ (local.get $3)
+ (local.get $6)
+ )
+ (i32.store offset=12
+ (local.get $3)
+ (local.get $0)
+ )
)
)
- )
- (global.set $r
- (local.get $25)
- )
- (return
- (i32.add
- (local.get $9)
- (i32.const 8)
+ (i32.store
+ (i32.const 1216)
+ (local.get $7)
+ )
+ (i32.store
+ (i32.const 1228)
+ (local.get $12)
)
)
)
- (local.get $2)
+ (global.set $r
+ (local.get $18)
+ )
+ (return
+ (i32.add
+ (local.get $8)
+ (i32.const 8)
+ )
+ )
)
)
- (local.get $2)
)
)
+ )
+ (local.set $4
(if (result i32)
(i32.gt_u
(local.get $0)
@@ -1365,9 +1323,9 @@
)
(i32.const -1)
(block $do-once (result i32)
- (local.set $0
+ (local.set $8
(i32.and
- (local.tee $3
+ (local.tee $0
(i32.add
(local.get $0)
(i32.const 11)
@@ -1377,123 +1335,124 @@
)
)
(if (result i32)
- (local.tee $10
+ (local.tee $39
(i32.load
(i32.const 1212)
)
)
(block (result i32)
- (local.set $4
- (i32.sub
- (i32.const 0)
- (local.get $0)
- )
- )
- (if
- (local.tee $14
- (i32.load
- (i32.add
- (i32.shl
- (local.tee $27
- (if (result i32)
- (local.tee $7
- (i32.shr_u
- (local.get $3)
- (i32.const 8)
- )
- )
- (if (result i32)
- (i32.gt_u
- (local.get $0)
- (i32.const 16777215)
- )
- (i32.const 31)
- (block (result i32)
- (local.set $7
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $16
- (i32.shl
- (local.get $7)
- (local.tee $3
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $7)
- (i32.const 1048320)
- )
- (i32.const 16)
- )
- (i32.const 8)
- )
- )
- )
+ (local.set $21
+ (if (result i32)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 8)
+ )
+ )
+ (if (result i32)
+ (i32.gt_u
+ (local.get $8)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $6
+ (i32.shl
+ (local.get $0)
+ (local.tee $5
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $0)
+ (i32.const 1048320)
)
- (i32.const 520192)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 8)
)
- (i32.const 4)
)
)
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $0)
- (i32.add
- (local.tee $14
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
- (local.tee $16
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $18
- (i32.shl
- (local.get $16)
- (local.get $7)
- )
- )
- (i32.const 245760)
- )
- (i32.const 16)
- )
- (i32.const 2)
- )
- )
- (i32.or
- (local.get $3)
- (local.get $7)
+ )
+ (i32.const 520192)
+ )
+ (i32.const 16)
+ )
+ (i32.const 4)
+ )
+ )
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $8)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
+ (i32.or
+ (local.tee $13
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $6
+ (i32.shl
+ (local.get $6)
+ (local.get $0)
)
)
+ (i32.const 245760)
)
- (i32.shr_u
- (i32.shl
- (local.get $18)
- (local.get $16)
- )
- (i32.const 15)
- )
+ (i32.const 16)
)
+ (i32.const 2)
)
- (i32.const 7)
+ )
+ (i32.or
+ (local.get $0)
+ (local.get $5)
)
)
- (i32.const 1)
)
- (i32.shl
- (local.get $14)
- (i32.const 1)
+ (i32.shr_u
+ (i32.shl
+ (local.get $6)
+ (local.get $13)
+ )
+ (i32.const 15)
)
)
)
+ (i32.const 7)
)
- (i32.const 0)
)
+ (i32.const 1)
)
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ )
+ )
+ (i32.const 0)
+ )
+ )
+ (local.set $0
+ (i32.sub
+ (i32.const 0)
+ (local.get $8)
+ )
+ )
+ (if
+ (local.tee $6
+ (i32.load
+ (i32.add
+ (i32.shl
+ (local.get $21)
(i32.const 2)
)
(i32.const 1512)
@@ -1501,107 +1460,100 @@
)
)
(block $label$break$a
- (local.set $16
- (local.get $4)
- )
- (local.set $18
- (i32.const 0)
- )
- (local.set $3
+ (local.set $9
(i32.shl
- (local.get $0)
+ (local.get $8)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (local.get $27)
+ (local.get $21)
(i32.const 1)
)
)
(i32.eq
- (local.get $27)
+ (local.get $21)
(i32.const 31)
)
)
)
)
- (local.set $7
- (local.get $14)
+ (local.set $5
+ (i32.const 0)
)
- (local.set $1
+ (local.set $10
(loop $while-in14 (result i32)
(if
(i32.lt_u
- (local.tee $14
+ (local.tee $13
(i32.sub
- (local.tee $2
+ (local.tee $25
(i32.and
(i32.load offset=4
- (local.get $7)
+ (local.get $6)
)
(i32.const -8)
)
)
- (local.get $0)
+ (local.get $8)
)
)
- (local.get $16)
+ (local.get $0)
)
- (local.set $16
+ (local.set $0
(if (result i32)
(i32.eq
- (local.get $0)
- (local.get $2)
+ (local.get $8)
+ (local.get $25)
)
(block
- (local.set $30
- (local.get $14)
+ (local.set $4
+ (local.get $13)
)
- (local.set $28
- (local.get $7)
+ (local.set $12
+ (local.get $6)
)
- (local.set $31
- (local.get $7)
+ (local.set $2
+ (local.get $6)
)
- (local.set $7
+ (local.set $9
(i32.const 90)
)
(br $label$break$a)
)
(block (result i32)
- (local.set $6
- (local.get $7)
+ (local.set $5
+ (local.get $6)
)
- (local.get $14)
+ (local.get $13)
)
)
)
)
- (local.set $2
+ (local.set $13
(select
- (local.get $18)
- (local.tee $14
+ (local.get $20)
+ (local.tee $13
(i32.load offset=20
- (local.get $7)
+ (local.get $6)
)
)
(i32.or
(i32.eqz
- (local.get $14)
+ (local.get $13)
)
(i32.eq
- (local.get $14)
- (local.tee $7
+ (local.tee $6
(i32.load
(i32.add
(i32.add
- (local.get $7)
+ (local.get $6)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (local.get $3)
+ (local.get $9)
(i32.const 31)
)
(i32.const 2)
@@ -1609,40 +1561,38 @@
)
)
)
+ (local.get $13)
)
)
)
)
(if (result i32)
- (local.tee $14
+ (local.tee $25
(i32.eqz
- (local.get $7)
+ (local.get $6)
)
)
(block (result i32)
- (local.set $36
- (local.get $16)
+ (local.set $19
+ (local.get $13)
)
- (local.set $32
- (local.get $6)
+ (local.set $22
+ (local.get $5)
)
- (local.set $7
+ (local.set $9
(i32.const 86)
)
- (local.get $2)
+ (local.get $0)
)
(block
- (local.set $18
- (local.get $2)
+ (local.set $20
+ (local.get $13)
)
- (local.set $3
+ (local.set $9
(i32.shl
- (local.get $3)
+ (local.get $9)
(i32.xor
- (i32.and
- (local.get $14)
- (i32.const 1)
- )
+ (local.get $25)
(i32.const 1)
)
)
@@ -1654,126 +1604,127 @@
)
)
(block
- (local.set $36
- (local.get $4)
+ (local.set $10
+ (local.get $0)
)
- (local.set $7
+ (local.set $9
(i32.const 86)
)
)
)
(if
(i32.eq
- (local.get $7)
+ (local.get $9)
(i32.const 86)
)
- (if
- (local.tee $2
- (if (result i32)
+ (block
+ (if
+ (i32.eqz
(i32.or
- (local.get $1)
- (local.get $32)
+ (local.get $19)
+ (local.get $22)
)
- (local.get $1)
- (block (result i32)
- (drop
- (br_if $do-once
- (local.get $0)
- (i32.eqz
- (local.tee $4
- (i32.and
- (i32.or
- (i32.sub
- (i32.const 0)
- (local.tee $14
- (i32.shl
- (i32.const 2)
- (local.get $27)
- )
+ )
+ (block
+ (drop
+ (br_if $do-once
+ (local.get $8)
+ (i32.eqz
+ (local.tee $0
+ (i32.and
+ (i32.or
+ (i32.sub
+ (i32.const 0)
+ (local.tee $0
+ (i32.shl
+ (i32.const 2)
+ (local.get $21)
)
)
- (local.get $14)
)
- (local.get $10)
+ (local.get $0)
)
+ (local.get $39)
)
)
)
)
- (local.set $4
- (i32.and
- (i32.shr_u
- (local.tee $14
- (i32.add
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.get $4)
- )
- (local.get $4)
+ )
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (local.tee $5
+ (i32.add
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.get $0)
)
- (i32.const -1)
+ (local.get $0)
)
+ (i32.const -1)
)
- (i32.const 12)
)
- (i32.const 16)
+ (i32.const 12)
)
+ (i32.const 16)
)
- (local.set $14
- (i32.and
- (i32.shr_u
- (local.tee $2
- (i32.shr_u
- (local.get $14)
- (local.get $4)
- )
+ )
+ (local.set $5
+ (i32.and
+ (i32.shr_u
+ (local.tee $6
+ (i32.shr_u
+ (local.get $5)
+ (local.get $0)
)
- (i32.const 5)
)
- (i32.const 8)
+ (i32.const 5)
)
+ (i32.const 8)
)
- (local.set $2
- (i32.and
- (i32.shr_u
- (local.tee $1
- (i32.shr_u
- (local.get $2)
- (local.get $14)
- )
+ )
+ (local.set $6
+ (i32.and
+ (i32.shr_u
+ (local.tee $13
+ (i32.shr_u
+ (local.get $6)
+ (local.get $5)
)
- (i32.const 2)
)
- (i32.const 4)
+ (i32.const 2)
)
+ (i32.const 4)
)
- (local.set $1
- (i32.and
- (i32.shr_u
- (local.tee $6
- (i32.shr_u
- (local.get $1)
- (local.get $2)
- )
+ )
+ (local.set $13
+ (i32.and
+ (i32.shr_u
+ (local.tee $19
+ (i32.shr_u
+ (local.get $13)
+ (local.get $6)
)
- (i32.const 1)
)
- (i32.const 2)
+ (i32.const 1)
)
+ (i32.const 2)
)
+ )
+ (local.set $19
(i32.load
(i32.add
(i32.shl
(i32.add
(i32.or
- (local.tee $6
+ (local.tee $20
(i32.and
(i32.shr_u
- (local.tee $3
+ (local.tee $19
(i32.shr_u
- (local.get $6)
- (local.get $1)
+ (local.get $19)
+ (local.get $13)
)
)
(i32.const 1)
@@ -1782,19 +1733,19 @@
)
)
(i32.or
- (local.get $1)
+ (local.get $13)
(i32.or
- (local.get $2)
+ (local.get $6)
(i32.or
- (local.get $4)
- (local.get $14)
+ (local.get $0)
+ (local.get $5)
)
)
)
)
(i32.shr_u
- (local.get $3)
- (local.get $6)
+ (local.get $19)
+ (local.get $20)
)
)
(i32.const 2)
@@ -1805,131 +1756,119 @@
)
)
)
- (block
- (local.set $30
- (local.get $36)
- )
- (local.set $28
- (local.get $2)
- )
- (local.set $31
- (local.get $32)
- )
- (local.set $7
- (i32.const 90)
- )
- )
- (block
- (local.set $17
- (local.get $36)
+ (if
+ (local.get $19)
+ (block
+ (local.set $4
+ (local.get $10)
+ )
+ (local.set $12
+ (local.get $19)
+ )
+ (local.set $2
+ (local.get $22)
+ )
+ (local.set $9
+ (i32.const 90)
+ )
)
- (local.set $12
- (local.get $32)
+ (block
+ (local.set $15
+ (local.get $10)
+ )
+ (local.set $11
+ (local.get $22)
+ )
)
)
)
)
- (if
- (i32.eq
- (local.get $7)
- (i32.const 90)
- )
- (local.set $17
- (loop $while-in16 (result i32)
- (local.set $7
- (i32.const 0)
+ (if (result i32)
+ (block (result i32)
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 90)
)
- (local.set $3
- (i32.lt_u
- (local.tee $6
- (i32.sub
- (i32.and
- (i32.load offset=4
- (local.get $28)
+ (local.set $11
+ (loop $while-in16 (result i32)
+ (local.set $9
+ (i32.const 0)
+ )
+ (local.set $0
+ (i32.lt_u
+ (local.tee $5
+ (i32.sub
+ (i32.and
+ (i32.load offset=4
+ (local.get $12)
+ )
+ (i32.const -8)
+ )
+ (local.get $8)
)
- (i32.const -8)
)
- (local.get $0)
+ (local.get $4)
)
)
- (local.get $30)
- )
- )
- (local.set $1
- (select
- (local.get $6)
- (local.get $30)
- (local.get $3)
- )
- )
- (local.set $6
- (select
- (local.get $28)
- (local.get $31)
- (local.get $3)
- )
- )
- (if
- (local.tee $3
- (i32.load offset=16
- (local.get $28)
- )
- )
- (block
- (local.set $30
- (local.get $1)
- )
- (local.set $28
- (local.get $3)
- )
- (local.set $31
- (local.get $6)
+ (local.set $4
+ (select
+ (local.get $5)
+ (local.get $4)
+ (local.get $0)
+ )
)
- (br $while-in16)
- )
- )
- (if (result i32)
- (local.tee $28
- (i32.load offset=20
- (local.get $28)
+ (local.set $2
+ (select
+ (local.get $12)
+ (local.get $2)
+ (local.get $0)
+ )
)
- )
- (block
- (local.set $30
- (local.get $1)
+ (if
+ (local.tee $0
+ (i32.load offset=16
+ (local.get $12)
+ )
+ )
+ (block
+ (local.set $12
+ (local.get $0)
+ )
+ (br $while-in16)
+ )
)
- (local.set $31
- (local.get $6)
+ (br_if $while-in16
+ (local.tee $12
+ (i32.load offset=20
+ (local.get $12)
+ )
+ )
)
- (br $while-in16)
- )
- (block (result i32)
- (local.set $12
- (local.get $6)
+ (local.set $15
+ (local.get $4)
)
- (local.get $1)
+ (local.get $2)
)
)
)
+ (local.get $11)
)
- )
- (if (result i32)
- (local.get $12)
(if (result i32)
(i32.lt_u
- (local.get $17)
+ (local.get $15)
(i32.sub
(i32.load
(i32.const 1216)
)
- (local.get $0)
+ (local.get $8)
)
)
(block
(if
(i32.lt_u
- (local.get $12)
- (local.tee $10
+ (local.get $11)
+ (local.tee $7
(i32.load
(i32.const 1224)
)
@@ -1939,104 +1878,98 @@
)
(if
(i32.ge_u
- (local.get $12)
- (local.tee $6
+ (local.get $11)
+ (local.tee $2
(i32.add
- (local.get $0)
- (local.get $12)
+ (local.get $8)
+ (local.get $11)
)
)
)
(call $qa)
)
- (local.set $1
+ (local.set $5
(i32.load offset=24
- (local.get $12)
+ (local.get $11)
)
)
(if
(i32.eq
- (local.tee $3
+ (local.get $11)
+ (local.tee $0
(i32.load offset=12
- (local.get $12)
+ (local.get $11)
)
)
- (local.get $12)
)
(block $do-once17
- (local.set $3
- (if (result i32)
- (local.tee $4
+ (if
+ (i32.eqz
+ (local.tee $0
(i32.load
- (local.tee $2
+ (local.tee $1
(i32.add
- (local.get $12)
+ (local.get $11)
(i32.const 20)
)
)
)
)
- (block (result i32)
- (local.set $18
- (local.get $4)
- )
- (local.get $2)
- )
- (if (result i32)
- (local.tee $18
+ )
+ (br_if $do-once17
+ (i32.eqz
+ (local.tee $0
(i32.load
- (local.tee $14
+ (local.tee $1
(i32.add
- (local.get $12)
+ (local.get $11)
(i32.const 16)
)
)
)
)
- (local.get $14)
- (br $do-once17)
)
)
)
(loop $while-in20
(if
- (local.tee $4
+ (local.tee $3
(i32.load
- (local.tee $2
+ (local.tee $4
(i32.add
- (local.get $18)
+ (local.get $0)
(i32.const 20)
)
)
)
)
(block
- (local.set $18
- (local.get $4)
+ (local.set $0
+ (local.get $3)
)
- (local.set $3
- (local.get $2)
+ (local.set $1
+ (local.get $4)
)
(br $while-in20)
)
)
(if
- (local.tee $4
+ (local.tee $3
(i32.load
- (local.tee $2
+ (local.tee $4
(i32.add
- (local.get $18)
+ (local.get $0)
(i32.const 16)
)
)
)
)
(block
- (local.set $18
- (local.get $4)
+ (local.set $0
+ (local.get $3)
)
- (local.set $3
- (local.get $2)
+ (local.set $1
+ (local.get $4)
)
(br $while-in20)
)
@@ -2044,17 +1977,17 @@
)
(if
(i32.lt_u
- (local.get $3)
- (local.get $10)
+ (local.get $1)
+ (local.get $7)
)
(call $qa)
(block
(i32.store
- (local.get $3)
+ (local.get $1)
(i32.const 0)
)
- (local.set $21
- (local.get $18)
+ (local.set $16
+ (local.get $0)
)
)
)
@@ -2062,48 +1995,42 @@
(block
(if
(i32.lt_u
- (local.tee $2
+ (local.tee $1
(i32.load offset=8
- (local.get $12)
+ (local.get $11)
)
)
- (local.get $10)
+ (local.get $7)
)
(call $qa)
)
- (local.set $16
- (local.get $2)
- )
(if
(i32.ne
- (local.get $12)
+ (local.get $11)
(i32.load offset=12
- (local.get $2)
+ (local.get $1)
)
)
(call $qa)
)
- (local.set $4
- (local.get $3)
- )
(if
(i32.eq
- (local.get $12)
+ (local.get $11)
(i32.load offset=8
- (local.get $3)
+ (local.get $0)
)
)
(block
(i32.store offset=12
- (local.get $16)
- (local.get $3)
+ (local.get $1)
+ (local.get $0)
)
(i32.store offset=8
- (local.get $4)
- (local.get $2)
+ (local.get $0)
+ (local.get $1)
)
- (local.set $21
- (local.get $3)
+ (local.set $16
+ (local.get $0)
)
)
(call $qa)
@@ -2111,17 +2038,17 @@
)
)
(if
- (local.get $1)
+ (local.get $5)
(block $do-once21
(if
(i32.eq
(i32.load
- (local.tee $10
+ (local.tee $1
(i32.add
(i32.shl
- (local.tee $3
+ (local.tee $0
(i32.load offset=28
- (local.get $12)
+ (local.get $11)
)
)
(i32.const 2)
@@ -2130,16 +2057,16 @@
)
)
)
- (local.get $12)
+ (local.get $11)
)
(block
(i32.store
- (local.get $10)
- (local.get $21)
+ (local.get $1)
+ (local.get $16)
)
(if
(i32.eqz
- (local.get $21)
+ (local.get $16)
)
(block
(i32.store
@@ -2151,7 +2078,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $3)
+ (local.get $0)
)
(i32.const -1)
)
@@ -2164,43 +2091,40 @@
(block
(if
(i32.lt_u
- (local.get $1)
+ (local.get $5)
(i32.load
(i32.const 1224)
)
)
(call $qa)
)
- (local.set $2
- (local.get $1)
- )
(if
(i32.eq
- (local.get $12)
+ (local.get $11)
(i32.load offset=16
- (local.get $1)
+ (local.get $5)
)
)
(i32.store offset=16
- (local.get $2)
- (local.get $21)
+ (local.get $5)
+ (local.get $16)
)
(i32.store offset=20
- (local.get $1)
- (local.get $21)
+ (local.get $5)
+ (local.get $16)
)
)
(br_if $do-once21
(i32.eqz
- (local.get $21)
+ (local.get $16)
)
)
)
)
(if
(i32.lt_u
- (local.get $21)
- (local.tee $3
+ (local.get $16)
+ (local.tee $1
(i32.load
(i32.const 1224)
)
@@ -2209,42 +2133,42 @@
(call $qa)
)
(i32.store offset=24
- (local.get $21)
- (local.get $1)
+ (local.get $16)
+ (local.get $5)
)
(if
- (local.tee $10
+ (local.tee $0
(i32.load offset=16
- (local.get $12)
+ (local.get $11)
)
)
(if
(i32.lt_u
- (local.get $10)
- (local.get $3)
+ (local.get $0)
+ (local.get $1)
)
(call $qa)
(block
(i32.store offset=16
- (local.get $21)
- (local.get $10)
+ (local.get $16)
+ (local.get $0)
)
(i32.store offset=24
- (local.get $10)
- (local.get $21)
+ (local.get $0)
+ (local.get $16)
)
)
)
)
(if
- (local.tee $10
+ (local.tee $0
(i32.load offset=20
- (local.get $12)
+ (local.get $11)
)
)
(if
(i32.lt_u
- (local.get $10)
+ (local.get $0)
(i32.load
(i32.const 1224)
)
@@ -2252,12 +2176,12 @@
(call $qa)
(block
(i32.store offset=20
- (local.get $21)
- (local.get $10)
+ (local.get $16)
+ (local.get $0)
)
(i32.store offset=24
- (local.get $10)
- (local.get $21)
+ (local.get $0)
+ (local.get $16)
)
)
)
@@ -2266,30 +2190,29 @@
)
(if
(i32.lt_u
- (local.get $17)
+ (local.get $15)
(i32.const 16)
)
(block
(i32.store offset=4
- (local.get $12)
+ (local.get $11)
(i32.or
- (local.tee $1
+ (local.tee $0
(i32.add
- (local.get $0)
- (local.get $17)
+ (local.get $8)
+ (local.get $15)
)
)
(i32.const 3)
)
)
- (local.set $0
- (i32.add
- (local.get $1)
- (local.get $12)
- )
- )
(i32.store offset=4
- (local.get $0)
+ (local.tee $0
+ (i32.add
+ (local.get $0)
+ (local.get $11)
+ )
+ )
(i32.or
(i32.load offset=4
(local.get $0)
@@ -2300,42 +2223,42 @@
)
(block $do-once25
(i32.store offset=4
- (local.get $12)
+ (local.get $11)
(i32.or
- (local.get $0)
+ (local.get $8)
(i32.const 3)
)
)
(i32.store offset=4
- (local.get $6)
+ (local.get $2)
(i32.or
- (local.get $17)
+ (local.get $15)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $6)
- (local.get $17)
+ (local.get $2)
+ (local.get $15)
)
- (local.get $17)
+ (local.get $15)
)
- (local.set $10
+ (local.set $1
(i32.shr_u
- (local.get $17)
+ (local.get $15)
(i32.const 3)
)
)
(if
(i32.lt_u
- (local.get $17)
+ (local.get $15)
(i32.const 256)
)
(block
- (local.set $1
+ (local.set $0
(i32.add
(i32.shl
- (local.get $10)
+ (local.get $1)
(i32.const 3)
)
(i32.const 1248)
@@ -2343,25 +2266,25 @@
)
(if
(i32.and
- (local.tee $2
- (i32.shl
- (i32.const 1)
- (local.get $10)
- )
- )
- (local.tee $3
+ (local.tee $4
(i32.load
(i32.const 1208)
)
)
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ )
)
(if
(i32.lt_u
- (local.tee $3
+ (local.tee $4
(i32.load
- (local.tee $2
+ (local.tee $1
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
@@ -2373,11 +2296,11 @@
)
(call $qa)
(block
- (local.set $9
- (local.get $2)
+ (local.set $29
+ (local.get $1)
)
- (local.set $8
- (local.get $3)
+ (local.set $14
+ (local.get $4)
)
)
)
@@ -2385,70 +2308,70 @@
(i32.store
(i32.const 1208)
(i32.or
- (local.get $2)
- (local.get $3)
+ (local.get $1)
+ (local.get $4)
)
)
- (local.set $9
+ (local.set $29
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
- (local.set $8
- (local.get $1)
+ (local.set $14
+ (local.get $0)
)
)
)
(i32.store
- (local.get $9)
- (local.get $6)
+ (local.get $29)
+ (local.get $2)
)
(i32.store offset=12
- (local.get $8)
- (local.get $6)
+ (local.get $14)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $6)
- (local.get $8)
+ (local.get $2)
+ (local.get $14)
)
(i32.store offset=12
- (local.get $6)
- (local.get $1)
+ (local.get $2)
+ (local.get $0)
)
(br $do-once25)
)
)
- (local.set $14
+ (local.set $1
(i32.add
(i32.shl
- (local.tee $16
+ (local.tee $0
(if (result i32)
- (local.tee $1
+ (local.tee $0
(i32.shr_u
- (local.get $17)
+ (local.get $15)
(i32.const 8)
)
)
(if (result i32)
(i32.gt_u
- (local.get $17)
+ (local.get $15)
(i32.const 16777215)
)
(i32.const 31)
(block (result i32)
- (local.set $1
+ (local.set $0
(i32.and
(i32.shr_u
(i32.add
- (local.tee $2
+ (local.tee $4
(i32.shl
- (local.get $1)
- (local.tee $3
+ (local.get $0)
+ (local.tee $1
(i32.and
(i32.shr_u
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 1048320)
)
(i32.const 16)
@@ -2468,21 +2391,21 @@
(i32.or
(i32.and
(i32.shr_u
- (local.get $17)
+ (local.get $15)
(i32.add
- (local.tee $14
+ (local.tee $0
(i32.add
(i32.sub
(i32.const 14)
(i32.or
- (local.tee $2
+ (local.tee $3
(i32.and
(i32.shr_u
(i32.add
- (local.tee $10
+ (local.tee $4
(i32.shl
- (local.get $2)
- (local.get $1)
+ (local.get $4)
+ (local.get $0)
)
)
(i32.const 245760)
@@ -2493,15 +2416,15 @@
)
)
(i32.or
+ (local.get $0)
(local.get $1)
- (local.get $3)
)
)
)
(i32.shr_u
(i32.shl
- (local.get $10)
- (local.get $2)
+ (local.get $4)
+ (local.get $3)
)
(i32.const 15)
)
@@ -2513,7 +2436,7 @@
(i32.const 1)
)
(i32.shl
- (local.get $14)
+ (local.get $0)
(i32.const 1)
)
)
@@ -2528,29 +2451,29 @@
)
)
(i32.store offset=28
- (local.get $6)
- (local.get $16)
+ (local.get $2)
+ (local.get $0)
)
(i32.store offset=20
- (local.get $6)
+ (local.get $2)
(i32.const 0)
)
(i32.store offset=16
- (local.get $6)
+ (local.get $2)
(i32.const 0)
)
(if
(i32.eqz
(i32.and
- (local.tee $2
+ (local.tee $4
(i32.load
(i32.const 1212)
)
)
- (local.tee $10
+ (local.tee $3
(i32.shl
(i32.const 1)
- (local.get $16)
+ (local.get $0)
)
)
)
@@ -2559,71 +2482,71 @@
(i32.store
(i32.const 1212)
(i32.or
- (local.get $2)
- (local.get $10)
+ (local.get $3)
+ (local.get $4)
)
)
(i32.store
- (local.get $14)
- (local.get $6)
+ (local.get $1)
+ (local.get $2)
)
(i32.store offset=24
- (local.get $6)
- (local.get $14)
+ (local.get $2)
+ (local.get $1)
)
(i32.store offset=12
- (local.get $6)
- (local.get $6)
+ (local.get $2)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $6)
- (local.get $6)
+ (local.get $2)
+ (local.get $2)
)
(br $do-once25)
)
)
- (local.set $10
+ (local.set $3
(i32.shl
- (local.get $17)
+ (local.get $15)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (local.get $16)
+ (local.get $0)
(i32.const 1)
)
)
(i32.eq
- (local.get $16)
+ (local.get $0)
(i32.const 31)
)
)
)
)
- (local.set $2
+ (local.set $0
(i32.load
- (local.get $14)
+ (local.get $1)
)
)
(if
(i32.eq
- (local.tee $7
+ (local.tee $9
(loop $while-in28 (result i32)
(block $while-out27 (result i32)
(if
(i32.eq
- (local.get $17)
+ (local.get $15)
(i32.and
(i32.load offset=4
- (local.get $2)
+ (local.get $0)
)
(i32.const -8)
)
)
(block
- (local.set $19
- (local.get $2)
+ (local.set $30
+ (local.get $0)
)
(br $while-out27
(i32.const 148)
@@ -2631,17 +2554,17 @@
)
)
(if (result i32)
- (local.tee $3
+ (local.tee $1
(i32.load
- (local.tee $14
+ (local.tee $4
(i32.add
(i32.add
- (local.get $2)
+ (local.get $0)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (local.get $10)
+ (local.get $3)
(i32.const 31)
)
(i32.const 2)
@@ -2651,23 +2574,23 @@
)
)
(block
- (local.set $10
+ (local.set $3
(i32.shl
- (local.get $10)
+ (local.get $3)
(i32.const 1)
)
)
- (local.set $2
- (local.get $3)
+ (local.set $0
+ (local.get $1)
)
(br $while-in28)
)
(block (result i32)
- (local.set $22
- (local.get $14)
+ (local.set $31
+ (local.get $4)
)
- (local.set $15
- (local.get $2)
+ (local.set $40
+ (local.get $0)
)
(i32.const 145)
)
@@ -2679,7 +2602,7 @@
)
(if
(i32.lt_u
- (local.get $22)
+ (local.get $31)
(i32.load
(i32.const 1224)
)
@@ -2687,123 +2610,120 @@
(call $qa)
(block
(i32.store
- (local.get $22)
- (local.get $6)
+ (local.get $31)
+ (local.get $2)
)
(i32.store offset=24
- (local.get $6)
- (local.get $15)
+ (local.get $2)
+ (local.get $40)
)
(i32.store offset=12
- (local.get $6)
- (local.get $6)
+ (local.get $2)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $6)
- (local.get $6)
+ (local.get $2)
+ (local.get $2)
)
)
)
(if
(i32.eq
- (local.get $7)
+ (local.get $9)
(i32.const 148)
)
- (block
- (local.set $0
- (local.get $19)
- )
- (if
- (i32.and
- (i32.ge_u
- (local.tee $10
- (i32.load offset=8
- (local.get $0)
- )
- )
- (local.tee $3
- (i32.load
- (i32.const 1224)
+ (if
+ (i32.and
+ (i32.ge_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.tee $0
+ (local.get $30)
)
)
)
- (i32.ge_u
- (local.get $0)
- (local.get $3)
+ (local.tee $4
+ (i32.load
+ (i32.const 1224)
+ )
)
)
- (block
- (i32.store offset=12
- (local.get $10)
- (local.get $6)
- )
- (i32.store offset=8
- (local.get $0)
- (local.get $6)
- )
- (i32.store offset=8
- (local.get $6)
- (local.get $10)
- )
- (i32.store offset=12
- (local.get $6)
- (local.get $19)
- )
- (i32.store offset=24
- (local.get $6)
- (i32.const 0)
- )
+ (i32.ge_u
+ (local.get $0)
+ (local.get $4)
+ )
+ )
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $2)
+ (local.get $1)
+ )
+ (i32.store offset=12
+ (local.get $2)
+ (local.get $30)
+ )
+ (i32.store offset=24
+ (local.get $2)
+ (i32.const 0)
)
- (call $qa)
)
+ (call $qa)
)
)
)
)
)
(global.set $r
- (local.get $25)
+ (local.get $18)
)
(return
(i32.add
- (local.get $12)
+ (local.get $11)
(i32.const 8)
)
)
)
- (local.get $0)
+ (local.get $8)
)
- (local.get $0)
+ (local.get $8)
)
)
- (local.get $0)
+ (local.get $8)
)
)
)
)
)
- (block $folding-inner0
+ (block $folding-inner1
(if
(i32.ge_u
- (local.tee $12
+ (local.tee $2
(i32.load
(i32.const 1216)
)
)
- (local.get $3)
+ (local.get $4)
)
(block
- (local.set $15
+ (local.set $0
(i32.load
(i32.const 1228)
)
)
(if
(i32.gt_u
- (local.tee $19
+ (local.tee $1
(i32.sub
- (local.get $12)
- (local.get $3)
+ (local.get $2)
+ (local.get $4)
)
)
(i32.const 15)
@@ -2811,35 +2731,35 @@
(block
(i32.store
(i32.const 1228)
- (local.tee $22
+ (local.tee $3
(i32.add
- (local.get $3)
- (local.get $15)
+ (local.get $0)
+ (local.get $4)
)
)
)
(i32.store
(i32.const 1216)
- (local.get $19)
+ (local.get $1)
)
(i32.store offset=4
- (local.get $22)
+ (local.get $3)
(i32.or
- (local.get $19)
+ (local.get $1)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $19)
- (local.get $22)
+ (local.get $1)
+ (local.get $3)
)
- (local.get $19)
+ (local.get $1)
)
(i32.store offset=4
- (local.get $15)
+ (local.get $0)
(i32.or
- (local.get $3)
+ (local.get $4)
(i32.const 3)
)
)
@@ -2854,1987 +2774,1914 @@
(i32.const 0)
)
(i32.store offset=4
- (local.get $15)
+ (local.get $0)
(i32.or
- (local.get $12)
+ (local.get $2)
(i32.const 3)
)
)
- (local.set $0
- (i32.add
- (local.get $12)
- (local.get $15)
- )
- )
(i32.store offset=4
- (local.get $0)
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (local.get $2)
+ )
+ )
(i32.or
(i32.load offset=4
- (local.get $0)
+ (local.get $1)
)
(i32.const 1)
)
)
)
)
- (br $folding-inner0)
+ (br $folding-inner1)
)
)
- (if
- (i32.gt_u
- (local.tee $15
- (i32.load
- (i32.const 1220)
+ (block $folding-inner0
+ (br_if $folding-inner0
+ (i32.gt_u
+ (local.tee $0
+ (i32.load
+ (i32.const 1220)
+ )
)
+ (local.get $4)
)
- (local.get $3)
)
- (block
- (i32.store
- (i32.const 1220)
- (local.tee $19
- (i32.sub
- (local.get $15)
- (local.get $3)
- )
+ (local.set $0
+ (local.get $18)
+ )
+ (if
+ (i32.eqz
+ (i32.load
+ (i32.const 1680)
)
)
- (i32.store
- (i32.const 1232)
- (local.tee $12
- (i32.add
- (local.get $3)
- (local.tee $15
- (i32.load
- (i32.const 1232)
- )
- )
- )
+ (block
+ (i32.store
+ (i32.const 1688)
+ (i32.const 4096)
)
- )
- (i32.store offset=4
- (local.get $12)
- (i32.or
- (local.get $19)
- (i32.const 1)
+ (i32.store
+ (i32.const 1684)
+ (i32.const 4096)
)
- )
- (i32.store offset=4
- (local.get $15)
- (i32.or
- (local.get $3)
- (i32.const 3)
+ (i32.store
+ (i32.const 1692)
+ (i32.const -1)
)
- )
- (br $folding-inner0)
- )
- )
- (if
- (i32.eqz
- (i32.load
- (i32.const 1680)
- )
- )
- (block
- (i32.store
- (i32.const 1688)
- (i32.const 4096)
- )
- (i32.store
- (i32.const 1684)
- (i32.const 4096)
- )
- (i32.store
- (i32.const 1692)
- (i32.const -1)
- )
- (i32.store
- (i32.const 1696)
- (i32.const -1)
- )
- (i32.store
- (i32.const 1700)
- (i32.const 0)
- )
- (i32.store
- (i32.const 1652)
- (i32.const 0)
- )
- (i32.store
- (local.get $13)
- (local.tee $15
- (i32.xor
- (i32.and
- (local.get $13)
- (i32.const -16)
+ (i32.store
+ (i32.const 1696)
+ (i32.const -1)
+ )
+ (i32.store
+ (i32.const 1700)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 1652)
+ (i32.const 0)
+ )
+ (i32.store
+ (local.get $0)
+ (local.tee $0
+ (i32.xor
+ (i32.and
+ (local.get $0)
+ (i32.const -16)
+ )
+ (i32.const 1431655768)
)
- (i32.const 1431655768)
)
)
- )
- (i32.store
- (i32.const 1680)
- (local.get $15)
+ (i32.store
+ (i32.const 1680)
+ (local.get $0)
+ )
)
)
- )
- (local.set $15
- (i32.add
- (local.get $3)
- (i32.const 48)
- )
- )
- (if
- (i32.le_u
- (local.tee $13
- (i32.and
- (local.tee $12
- (i32.add
- (local.tee $13
- (i32.load
- (i32.const 1688)
+ (if
+ (i32.le_u
+ (local.tee $5
+ (i32.and
+ (local.tee $10
+ (i32.add
+ (local.tee $0
+ (i32.load
+ (i32.const 1688)
+ )
)
- )
- (local.tee $19
- (i32.add
- (local.get $3)
- (i32.const 47)
+ (local.tee $6
+ (i32.add
+ (local.get $4)
+ (i32.const 47)
+ )
)
)
)
- )
- (local.tee $22
- (i32.sub
- (i32.const 0)
- (local.get $13)
+ (local.tee $12
+ (i32.sub
+ (i32.const 0)
+ (local.get $0)
+ )
)
)
)
+ (local.get $4)
)
- (local.get $3)
- )
- (block
- (global.set $r
- (local.get $25)
- )
- (return
- (i32.const 0)
- )
- )
- )
- (if
- (local.tee $17
- (i32.load
- (i32.const 1648)
+ (block
+ (global.set $r
+ (local.get $18)
+ )
+ (return
+ (i32.const 0)
+ )
)
)
(if
- (i32.or
- (i32.le_u
- (local.tee $8
- (i32.add
- (local.get $13)
- (local.tee $16
- (i32.load
- (i32.const 1640)
+ (local.tee $0
+ (i32.load
+ (i32.const 1648)
+ )
+ )
+ (if
+ (i32.or
+ (i32.le_u
+ (local.tee $8
+ (i32.add
+ (local.get $5)
+ (local.tee $2
+ (i32.load
+ (i32.const 1640)
+ )
)
)
)
+ (local.get $2)
+ )
+ (i32.gt_u
+ (local.get $8)
+ (local.get $0)
)
- (local.get $16)
)
- (i32.gt_u
- (local.get $8)
- (local.get $17)
+ (block
+ (global.set $r
+ (local.get $18)
+ )
+ (return
+ (i32.const 0)
+ )
)
)
- (block
- (global.set $r
- (local.get $25)
- )
- (return
- (i32.const 0)
- )
+ )
+ (local.set $22
+ (i32.add
+ (local.get $4)
+ (i32.const 48)
)
)
- )
- (if
- (block (result i32)
- (if
- (i32.eq
- (local.tee $7
- (if (result i32)
- (i32.and
- (i32.load
- (i32.const 1652)
- )
- (i32.const 4)
+ (if
+ (i32.eq
+ (local.tee $9
+ (if (result i32)
+ (i32.and
+ (i32.load
+ (i32.const 1652)
)
- (i32.const 188)
- (block $label$break$b (result i32)
- (if
- (local.tee $17
- (i32.load
- (i32.const 1232)
- )
+ (i32.const 4)
+ )
+ (i32.const 188)
+ (block $label$break$b (result i32)
+ (if
+ (local.tee $2
+ (i32.load
+ (i32.const 1232)
)
- (block $label$break$c
- (local.set $8
- (i32.const 1656)
- )
- (loop $while-in32
- (block $while-out31
- (if
- (i32.le_u
- (local.tee $16
- (i32.load
- (local.get $8)
- )
+ )
+ (block $label$break$c
+ (local.set $14
+ (i32.const 1656)
+ )
+ (loop $while-in32
+ (block $while-out31
+ (if
+ (i32.le_u
+ (local.tee $8
+ (i32.load
+ (local.get $14)
)
- (local.get $17)
)
- (if
- (i32.gt_u
- (i32.add
- (i32.load
- (local.tee $9
- (i32.add
- (local.get $8)
- (i32.const 4)
- )
+ (local.get $2)
+ )
+ (if
+ (i32.gt_u
+ (i32.add
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (local.get $14)
+ (i32.const 4)
)
)
- (local.get $16)
- )
- (local.get $17)
- )
- (block
- (local.set $0
- (local.get $8)
)
- (local.set $4
- (local.get $9)
- )
- (br $while-out31)
+ (local.get $8)
)
+ (local.get $2)
)
- )
- (br_if $while-in32
- (local.tee $8
- (i32.load offset=8
- (local.get $8)
+ (block
+ (local.set $8
+ (local.get $0)
)
+ (br $while-out31)
)
)
- (local.set $7
- (i32.const 171)
+ )
+ (br_if $while-in32
+ (local.tee $14
+ (i32.load offset=8
+ (local.get $14)
+ )
)
- (br $label$break$c)
)
+ (local.set $9
+ (i32.const 171)
+ )
+ (br $label$break$c)
)
- (if
- (i32.lt_u
- (local.tee $8
- (i32.and
- (local.get $22)
- (i32.sub
- (local.get $12)
- (i32.load
- (i32.const 1220)
- )
+ )
+ (if
+ (i32.lt_u
+ (local.tee $2
+ (i32.and
+ (local.get $12)
+ (i32.sub
+ (local.get $10)
+ (i32.load
+ (i32.const 1220)
)
)
)
- (i32.const 2147483647)
)
- (block
- (local.set $9
- (call $ta
- (local.get $8)
- )
+ (i32.const 2147483647)
+ )
+ (block
+ (local.set $0
+ (call $ta
+ (local.get $2)
)
- (if
- (i32.eq
- (i32.add
- (i32.load
- (local.get $0)
- )
- (i32.load
- (local.get $4)
- )
- )
- (local.get $9)
- )
- (if
- (i32.ne
- (local.get $9)
- (i32.const -1)
+ )
+ (if
+ (i32.eq
+ (i32.add
+ (i32.load
+ (local.get $14)
)
- (block
- (local.set $20
- (local.get $9)
- )
- (local.set $26
- (local.get $8)
- )
- (br $label$break$b
- (i32.const 191)
- )
+ (i32.load
+ (local.get $8)
)
)
+ (local.get $0)
+ )
+ (if
+ (i32.ne
+ (local.get $0)
+ (i32.const -1)
+ )
(block
- (local.set $11
- (local.get $9)
- )
- (local.set $5
- (local.get $8)
+ (local.set $3
+ (local.get $0)
)
(local.set $7
- (i32.const 181)
+ (local.get $2)
)
+ (br $label$break$b
+ (i32.const 191)
+ )
+ )
+ )
+ (block
+ (local.set $24
+ (local.get $0)
+ )
+ (local.set $1
+ (local.get $2)
+ )
+ (local.set $9
+ (i32.const 181)
)
)
)
)
)
- (local.set $7
- (i32.const 171)
- )
+ )
+ (local.set $9
+ (i32.const 171)
+ )
+ )
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 171)
)
(if
- (i32.eq
- (local.get $7)
- (i32.const 171)
- )
- (if
- (i32.ne
- (local.tee $17
- (call $ta
- (i32.const 0)
- )
+ (i32.ne
+ (local.tee $2
+ (call $ta
+ (i32.const 0)
)
- (i32.const -1)
)
- (block $do-once33
- (local.set $2
- (if (result i32)
- (i32.and
- (local.tee $0
- (local.get $17)
- )
- (local.tee $9
- (i32.add
- (local.tee $8
- (i32.load
- (i32.const 1684)
+ (i32.const -1)
+ )
+ (block $do-once33
+ (local.set $8
+ (i32.add
+ (local.tee $0
+ (if (result i32)
+ (i32.and
+ (local.tee $0
+ (local.get $2)
+ )
+ (local.tee $10
+ (i32.add
+ (local.tee $8
+ (i32.load
+ (i32.const 1684)
+ )
)
+ (i32.const -1)
)
- (i32.const -1)
)
)
- )
- (i32.add
- (i32.sub
- (local.get $13)
- (local.get $0)
- )
- (i32.and
- (i32.add
+ (i32.add
+ (i32.sub
+ (local.get $5)
(local.get $0)
- (local.get $9)
)
- (i32.sub
- (i32.const 0)
- (local.get $8)
+ (i32.and
+ (i32.add
+ (local.get $0)
+ (local.get $10)
+ )
+ (i32.sub
+ (i32.const 0)
+ (local.get $8)
+ )
)
)
+ (local.get $5)
)
- (local.get $13)
)
- )
- (local.set $0
- (i32.add
- (local.tee $8
- (i32.load
- (i32.const 1640)
- )
+ (local.tee $10
+ (i32.load
+ (i32.const 1640)
)
- (local.get $2)
)
)
- (if
- (i32.and
- (i32.lt_u
- (local.get $2)
- (i32.const 2147483647)
- )
- (i32.gt_u
- (local.get $2)
- (local.get $3)
- )
+ )
+ (if
+ (i32.and
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 2147483647)
)
- (block
- (if
- (local.tee $9
- (i32.load
- (i32.const 1648)
+ (i32.gt_u
+ (local.get $0)
+ (local.get $4)
+ )
+ )
+ (block
+ (if
+ (local.tee $12
+ (i32.load
+ (i32.const 1648)
+ )
+ )
+ (br_if $do-once33
+ (i32.or
+ (i32.le_u
+ (local.get $8)
+ (local.get $10)
+ )
+ (i32.gt_u
+ (local.get $8)
+ (local.get $12)
)
)
- (br_if $do-once33
- (i32.or
- (i32.le_u
- (local.get $0)
- (local.get $8)
- )
- (i32.gt_u
+ )
+ )
+ (local.set $1
+ (if (result i32)
+ (i32.eq
+ (local.get $2)
+ (local.tee $24
+ (call $ta
(local.get $0)
- (local.get $9)
)
)
)
- )
- (local.set $5
- (if (result i32)
- (i32.eq
- (local.get $17)
- (local.tee $9
- (call $ta
- (local.get $2)
- )
- )
+ (block
+ (local.set $3
+ (local.get $2)
)
- (block
- (local.set $20
- (local.get $17)
- )
- (local.set $26
- (local.get $2)
- )
- (br $label$break$b
- (i32.const 191)
- )
+ (local.set $7
+ (local.get $0)
)
- (block (result i32)
- (local.set $11
- (local.get $9)
- )
- (local.set $7
- (i32.const 181)
- )
- (local.get $2)
+ (br $label$break$b
+ (i32.const 191)
)
)
+ (block (result i32)
+ (local.set $9
+ (i32.const 181)
+ )
+ (local.get $0)
+ )
)
)
)
)
)
)
- (if
- (i32.eq
- (local.get $7)
- (i32.const 181)
+ )
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 181)
+ )
+ (block $label$break$d
+ (local.set $2
+ (i32.sub
+ (i32.const 0)
+ (local.get $1)
+ )
)
- (block $label$break$d
- (local.set $9
- (i32.sub
- (i32.const 0)
- (local.get $5)
+ (if
+ (i32.and
+ (i32.and
+ (i32.ne
+ (local.get $24)
+ (i32.const -1)
+ )
+ (i32.lt_u
+ (local.get $1)
+ (i32.const 2147483647)
+ )
+ )
+ (i32.gt_u
+ (local.get $22)
+ (local.get $1)
)
)
- (local.set $1
- (if (result i32)
- (i32.and
+ (if
+ (i32.lt_u
+ (local.tee $0
(i32.and
- (i32.ne
- (local.get $11)
- (i32.const -1)
+ (i32.add
+ (local.tee $0
+ (i32.load
+ (i32.const 1688)
+ )
+ )
+ (i32.sub
+ (local.get $6)
+ (local.get $1)
+ )
)
- (i32.lt_u
- (local.get $5)
- (i32.const 2147483647)
+ (i32.sub
+ (i32.const 0)
+ (local.get $0)
)
)
- (i32.gt_u
- (local.get $15)
- (local.get $5)
- )
)
+ (i32.const 2147483647)
+ )
+ (local.set $1
(if (result i32)
- (i32.lt_u
- (local.tee $0
- (i32.and
- (i32.add
- (local.tee $17
- (i32.load
- (i32.const 1688)
- )
- )
- (i32.sub
- (local.get $19)
- (local.get $5)
- )
- )
- (i32.sub
- (i32.const 0)
- (local.get $17)
- )
- )
+ (i32.eq
+ (call $ta
+ (local.get $0)
)
- (i32.const 2147483647)
+ (i32.const -1)
)
- (if (result i32)
- (i32.eq
+ (block
+ (drop
(call $ta
- (local.get $0)
- )
- (i32.const -1)
- )
- (block
- (drop
- (call $ta
- (local.get $9)
- )
+ (local.get $2)
)
- (br $label$break$d)
- )
- (i32.add
- (local.get $0)
- (local.get $5)
)
+ (br $label$break$d)
+ )
+ (i32.add
+ (local.get $0)
+ (local.get $1)
)
- (local.get $5)
)
- (local.get $5)
)
)
- (if
- (i32.ne
- (local.get $11)
- (i32.const -1)
+ )
+ (if
+ (i32.ne
+ (local.get $24)
+ (i32.const -1)
+ )
+ (block
+ (local.set $3
+ (local.get $24)
)
- (block
- (local.set $20
- (local.get $11)
- )
- (local.set $26
- (local.get $1)
- )
- (br $label$break$b
- (i32.const 191)
- )
+ (local.set $7
+ (local.get $1)
+ )
+ (br $label$break$b
+ (i32.const 191)
)
)
)
)
- (i32.store
- (i32.const 1652)
- (i32.or
- (i32.load
- (i32.const 1652)
- )
- (i32.const 4)
+ )
+ (i32.store
+ (i32.const 1652)
+ (i32.or
+ (i32.load
+ (i32.const 1652)
)
+ (i32.const 4)
)
- (i32.const 188)
)
+ (i32.const 188)
)
)
- (i32.const 188)
+ )
+ (i32.const 188)
+ )
+ (if
+ (i32.lt_u
+ (local.get $5)
+ (i32.const 2147483647)
)
(if
- (i32.lt_u
- (local.get $13)
- (i32.const 2147483647)
- )
- (if
+ (i32.and
(i32.and
- (i32.and
- (i32.ne
- (local.tee $1
- (call $ta
- (local.get $13)
- )
- )
- (i32.const -1)
- )
- (i32.ne
- (local.tee $13
- (call $ta
- (i32.const 0)
- )
+ (i32.ne
+ (local.tee $0
+ (call $ta
+ (local.get $5)
)
- (i32.const -1)
)
+ (i32.const -1)
)
- (i32.lt_u
- (local.get $1)
- (local.get $13)
- )
- )
- (if
- (i32.gt_u
- (local.tee $11
- (i32.sub
- (local.get $13)
- (local.get $1)
+ (i32.ne
+ (local.tee $1
+ (call $ta
+ (i32.const 0)
)
)
- (i32.add
- (local.get $3)
- (i32.const 40)
- )
+ (i32.const -1)
)
- (block
- (local.set $20
+ )
+ (i32.lt_u
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.gt_u
+ (local.tee $1
+ (i32.sub
(local.get $1)
+ (local.get $0)
)
- (local.set $26
- (local.get $11)
- )
- (local.set $7
- (i32.const 191)
- )
+ )
+ (i32.add
+ (local.get $4)
+ (i32.const 40)
+ )
+ )
+ (block
+ (local.set $7
+ (local.get $1)
+ )
+ (local.set $9
+ (i32.const 191)
+ )
+ (local.set $3
+ (local.get $0)
)
)
)
)
)
+ )
+ (if
(i32.eq
- (local.get $7)
+ (local.get $9)
(i32.const 191)
)
- )
- (block
- (i32.store
- (i32.const 1640)
- (local.tee $11
- (i32.add
- (local.get $26)
- (i32.load
- (i32.const 1640)
+ (block
+ (i32.store
+ (i32.const 1640)
+ (local.tee $0
+ (i32.add
+ (local.get $7)
+ (i32.load
+ (i32.const 1640)
+ )
)
)
)
- )
- (if
- (i32.gt_u
- (local.get $11)
- (i32.load
- (i32.const 1644)
+ (if
+ (i32.gt_u
+ (local.get $0)
+ (i32.load
+ (i32.const 1644)
+ )
)
- )
- (i32.store
- (i32.const 1644)
- (local.get $11)
- )
- )
- (if
- (local.tee $11
- (i32.load
- (i32.const 1232)
+ (i32.store
+ (i32.const 1644)
+ (local.get $0)
)
)
- (block $do-once38
- (local.set $5
- (i32.const 1656)
+ (if
+ (local.tee $6
+ (i32.load
+ (i32.const 1232)
+ )
)
- (loop $do-in41
- (block $do-out40
- (if
- (i32.eq
- (i32.add
- (local.tee $19
- (i32.load
- (local.tee $13
- (i32.add
- (local.get $5)
- (i32.const 4)
- )
+ (block $do-once38
+ (local.set $1
+ (i32.const 1656)
+ )
+ (loop $do-in41
+ (block $do-out40
+ (if
+ (i32.eq
+ (i32.add
+ (local.tee $0
+ (i32.load
+ (local.get $1)
)
)
- )
- (local.tee $1
- (i32.load
- (local.get $5)
+ (local.tee $5
+ (i32.load
+ (local.tee $2
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
+ )
+ )
+ )
)
)
+ (local.get $3)
)
- (local.get $20)
- )
- (block
- (local.set $48
- (local.get $1)
- )
- (local.set $49
- (local.get $13)
- )
- (local.set $50
- (local.get $19)
- )
- (local.set $51
- (local.get $5)
- )
- (local.set $7
- (i32.const 201)
+ (block
+ (local.set $41
+ (local.get $0)
+ )
+ (local.set $42
+ (local.get $2)
+ )
+ (local.set $43
+ (local.get $5)
+ )
+ (local.set $44
+ (local.get $1)
+ )
+ (local.set $9
+ (i32.const 201)
+ )
+ (br $do-out40)
)
- (br $do-out40)
)
- )
- (br_if $do-in41
- (local.tee $5
- (i32.load offset=8
- (local.get $5)
+ (br_if $do-in41
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $1)
+ )
)
)
)
)
- )
- (if
- (i32.eq
- (local.get $7)
- (i32.const 201)
- )
(if
- (i32.eqz
- (i32.and
- (i32.load offset=12
- (local.get $51)
- )
- (i32.const 8)
- )
+ (i32.eq
+ (local.get $9)
+ (i32.const 201)
)
(if
- (i32.and
- (i32.lt_u
- (local.get $11)
- (local.get $20)
- )
- (i32.ge_u
- (local.get $11)
- (local.get $48)
+ (i32.eqz
+ (i32.and
+ (i32.load offset=12
+ (local.get $44)
+ )
+ (i32.const 8)
)
)
- (block
- (i32.store
- (local.get $49)
- (i32.add
- (local.get $26)
- (local.get $50)
+ (if
+ (i32.and
+ (i32.lt_u
+ (local.get $6)
+ (local.get $3)
+ )
+ (i32.ge_u
+ (local.get $6)
+ (local.get $41)
)
)
- (local.set $5
- (i32.add
- (local.tee $19
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $5
- (i32.add
- (local.get $11)
- (i32.const 8)
+ (block
+ (i32.store
+ (local.get $42)
+ (i32.add
+ (local.get $7)
+ (local.get $43)
+ )
+ )
+ (local.set $0
+ (i32.add
+ (local.get $6)
+ (local.tee $1
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $0
+ (i32.add
+ (local.get $6)
+ (i32.const 8)
+ )
)
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $0)
+ (i32.const 7)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $5)
- (i32.const 7)
)
)
)
- (local.get $11)
)
- )
- (local.set $13
- (i32.add
- (i32.load
- (i32.const 1220)
- )
- (i32.sub
- (local.get $26)
- (local.get $19)
+ (local.set $1
+ (i32.add
+ (i32.load
+ (i32.const 1220)
+ )
+ (i32.sub
+ (local.get $7)
+ (local.get $1)
+ )
)
)
- )
- (i32.store
- (i32.const 1232)
- (local.get $5)
- )
- (i32.store
- (i32.const 1220)
- (local.get $13)
- )
- (i32.store offset=4
- (local.get $5)
- (i32.or
- (local.get $13)
- (i32.const 1)
+ (i32.store
+ (i32.const 1232)
+ (local.get $0)
)
- )
- (i32.store offset=4
- (i32.add
- (local.get $5)
- (local.get $13)
+ (i32.store
+ (i32.const 1220)
+ (local.get $1)
)
- (i32.const 40)
- )
- (i32.store
- (i32.const 1236)
- (i32.load
- (i32.const 1696)
+ (i32.store offset=4
+ (local.get $0)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ (i32.const 40)
+ )
+ (i32.store
+ (i32.const 1236)
+ (i32.load
+ (i32.const 1696)
+ )
)
+ (br $do-once38)
)
- (br $do-once38)
)
)
)
- )
- (local.set $6
- (if (result i32)
+ (if
(i32.lt_u
- (local.get $20)
- (local.tee $13
+ (local.get $3)
+ (local.tee $2
(i32.load
(i32.const 1224)
)
)
)
- (block (result i32)
+ (block
(i32.store
(i32.const 1224)
- (local.get $20)
+ (local.get $3)
+ )
+ (local.set $2
+ (local.get $3)
)
- (local.get $20)
)
- (local.get $13)
)
- )
- (local.set $13
- (i32.add
- (local.get $20)
- (local.get $26)
+ (local.set $0
+ (i32.add
+ (local.get $3)
+ (local.get $7)
+ )
)
- )
- (local.set $5
- (i32.const 1656)
- )
- (loop $while-in43
- (block $while-out42
- (if
- (i32.eq
- (local.get $13)
- (i32.load
- (local.get $5)
- )
- )
- (block
- (local.set $52
- (local.get $5)
- )
- (local.set $37
- (local.get $5)
+ (local.set $1
+ (i32.const 1656)
+ )
+ (loop $while-in43
+ (block $while-out42
+ (if
+ (i32.eq
+ (local.get $0)
+ (i32.load
+ (local.get $1)
+ )
)
- (local.set $7
- (i32.const 209)
+ (block
+ (local.set $45
+ (local.get $1)
+ )
+ (local.set $26
+ (local.get $1)
+ )
+ (local.set $9
+ (i32.const 209)
+ )
+ (br $while-out42)
)
- (br $while-out42)
)
- )
- (br_if $while-in43
- (local.tee $5
- (i32.load offset=8
- (local.get $5)
+ (br_if $while-in43
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $1)
+ )
)
)
- )
- (local.set $29
- (i32.const 1656)
+ (local.set $23
+ (i32.const 1656)
+ )
)
)
- )
- (if
- (i32.eq
- (local.get $7)
- (i32.const 209)
- )
- (local.set $29
- (if (result i32)
- (i32.and
- (i32.load offset=12
- (local.get $37)
- )
- (i32.const 8)
- )
- (i32.const 1656)
- (block
- (i32.store
- (local.get $52)
- (local.get $20)
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 209)
+ )
+ (local.set $23
+ (if (result i32)
+ (i32.and
+ (i32.load offset=12
+ (local.get $26)
+ )
+ (i32.const 8)
)
- (i32.store offset=4
- (local.get $37)
- (i32.add
+ (i32.const 1656)
+ (block
+ (i32.store
+ (local.get $45)
+ (local.get $3)
+ )
+ (i32.store offset=4
(local.get $26)
- (i32.load offset=4
- (local.get $37)
+ (i32.add
+ (local.get $7)
+ (i32.load offset=4
+ (local.get $26)
+ )
)
)
- )
- (local.set $19
- (i32.add
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $5
- (i32.add
- (local.get $20)
- (i32.const 8)
+ (local.set $7
+ (i32.add
+ (local.get $4)
+ (local.tee $10
+ (i32.add
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
)
)
+ (local.get $3)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $5)
- (i32.const 7)
)
)
- (local.get $20)
)
- )
- (local.set $1
- (i32.add
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $5
- (i32.add
- (local.get $13)
- (i32.const 8)
+ (local.set $8
+ (i32.sub
+ (i32.sub
+ (local.tee $5
+ (i32.add
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
+ )
)
+ (local.get $0)
)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $5)
- (i32.const 7)
+ (local.get $10)
)
+ (local.get $4)
)
- (local.get $13)
)
- )
- (local.set $5
- (i32.add
- (local.get $3)
- (local.get $19)
- )
- )
- (local.set $15
- (i32.sub
- (i32.sub
- (local.get $1)
- (local.get $19)
+ (i32.store offset=4
+ (local.get $10)
+ (i32.or
+ (local.get $4)
+ (i32.const 3)
)
- (local.get $3)
)
- )
- (i32.store offset=4
- (local.get $19)
- (i32.or
- (local.get $3)
- (i32.const 3)
- )
- )
- (if
- (i32.eq
- (local.get $1)
- (local.get $11)
- )
- (block
- (i32.store
- (i32.const 1220)
- (local.tee $2
- (i32.add
- (local.get $15)
- (i32.load
- (i32.const 1220)
+ (if
+ (i32.eq
+ (local.get $5)
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (i32.const 1220)
+ (local.tee $0
+ (i32.add
+ (local.get $8)
+ (i32.load
+ (i32.const 1220)
+ )
)
)
)
- )
- (i32.store
- (i32.const 1232)
- (local.get $5)
- )
- (i32.store offset=4
- (local.get $5)
- (i32.or
- (local.get $2)
- (i32.const 1)
+ (i32.store
+ (i32.const 1232)
+ (local.get $7)
)
- )
- )
- (block $do-once44
- (if
- (i32.eq
- (i32.load
- (i32.const 1228)
+ (i32.store offset=4
+ (local.get $7)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
)
- (local.get $1)
)
- (block
- (i32.store
- (i32.const 1216)
- (local.tee $2
- (i32.add
- (local.get $15)
- (i32.load
- (i32.const 1216)
- )
- )
+ )
+ (block $do-once44
+ (if
+ (i32.eq
+ (i32.load
+ (i32.const 1228)
)
- )
- (i32.store
- (i32.const 1228)
(local.get $5)
)
- (i32.store offset=4
- (local.get $5)
- (i32.or
- (local.get $2)
- (i32.const 1)
+ (block
+ (i32.store
+ (i32.const 1216)
+ (local.tee $0
+ (i32.add
+ (local.get $8)
+ (i32.load
+ (i32.const 1216)
+ )
+ )
+ )
)
- )
- (i32.store
- (i32.add
- (local.get $2)
- (local.get $5)
+ (i32.store
+ (i32.const 1228)
+ (local.get $7)
)
- (local.get $2)
- )
- (br $do-once44)
- )
- )
- (if
- (i32.eq
- (i32.and
- (local.tee $2
- (i32.load offset=4
- (local.get $1)
+ (i32.store offset=4
+ (local.get $7)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
)
)
- (i32.const 3)
- )
- (i32.const 1)
- )
- (block
- (local.set $4
- (i32.and
- (local.get $2)
- (i32.const -8)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (local.get $7)
+ )
+ (local.get $0)
)
+ (br $do-once44)
)
- (local.set $0
- (i32.shr_u
- (local.get $2)
- (i32.const 3)
+ )
+ (local.set $4
+ (if (result i32)
+ (i32.eq
+ (i32.and
+ (local.tee $0
+ (i32.load offset=4
+ (local.get $5)
+ )
+ )
+ (i32.const 3)
+ )
+ (i32.const 1)
)
- )
- (block $label$break$e
- (if
- (i32.lt_u
- (local.get $2)
- (i32.const 256)
+ (block (result i32)
+ (local.set $12
+ (i32.and
+ (local.get $0)
+ (i32.const -8)
+ )
)
- (block
- (local.set $12
- (i32.load offset=12
- (local.get $1)
- )
+ (local.set $3
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 3)
)
+ )
+ (block $label$break$e
(if
- (i32.ne
- (local.tee $9
- (i32.add
- (i32.shl
- (local.get $0)
- (i32.const 3)
- )
- (i32.const 1248)
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 256)
+ )
+ (block
+ (local.set $1
+ (i32.load offset=12
+ (local.get $5)
)
)
- (local.tee $22
- (i32.load offset=8
- (local.get $1)
+ (if
+ (i32.ne
+ (local.tee $4
+ (i32.load offset=8
+ (local.get $5)
+ )
+ )
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.get $3)
+ (i32.const 3)
+ )
+ (i32.const 1248)
+ )
+ )
+ )
+ (block $do-once47
+ (if
+ (i32.lt_u
+ (local.get $4)
+ (local.get $2)
+ )
+ (call $qa)
+ )
+ (br_if $do-once47
+ (i32.eq
+ (local.get $5)
+ (i32.load offset=12
+ (local.get $4)
+ )
+ )
+ )
+ (call $qa)
)
)
- )
- (block $do-once47
(if
- (i32.lt_u
- (local.get $22)
- (local.get $6)
+ (i32.eq
+ (local.get $1)
+ (local.get $4)
+ )
+ (block
+ (i32.store
+ (i32.const 1208)
+ (i32.and
+ (i32.load
+ (i32.const 1208)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $3)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (br $label$break$e)
)
- (call $qa)
)
- (br_if $do-once47
+ (if
(i32.eq
+ (local.get $0)
(local.get $1)
- (i32.load offset=12
- (local.get $22)
+ )
+ (local.set $32
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
)
)
- )
- (call $qa)
- )
- )
- (if
- (i32.eq
- (local.get $12)
- (local.get $22)
- )
- (block
- (i32.store
- (i32.const 1208)
- (i32.and
- (i32.load
- (i32.const 1208)
+ (block $do-once49
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (local.get $2)
+ )
+ (call $qa)
)
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $0)
+ (if
+ (i32.eq
+ (local.get $5)
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
+ )
+ )
+ )
+ (block
+ (local.set $32
+ (local.get $0)
+ )
+ (br $do-once49)
)
- (i32.const -1)
)
+ (call $qa)
)
)
- (br $label$break$e)
- )
- )
- (if
- (i32.eq
- (local.get $9)
- (local.get $12)
- )
- (local.set $42
- (i32.add
- (local.get $12)
- (i32.const 8)
+ (i32.store offset=12
+ (local.get $4)
+ (local.get $1)
+ )
+ (i32.store
+ (local.get $32)
+ (local.get $4)
)
)
- (block $do-once49
- (if
- (i32.lt_u
- (local.get $12)
- (local.get $6)
+ (block
+ (local.set $6
+ (i32.load offset=24
+ (local.get $5)
)
- (call $qa)
)
(if
(i32.eq
- (local.get $1)
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $12)
- (i32.const 8)
- )
+ (local.get $5)
+ (local.tee $0
+ (i32.load offset=12
+ (local.get $5)
)
)
)
- (block
- (local.set $42
- (local.get $0)
- )
- (br $do-once49)
- )
- )
- (call $qa)
- )
- )
- (i32.store offset=12
- (local.get $22)
- (local.get $12)
- )
- (i32.store
- (local.get $42)
- (local.get $22)
- )
- )
- (block
- (local.set $9
- (i32.load offset=24
- (local.get $1)
- )
- )
- (if
- (i32.eq
- (local.tee $0
- (i32.load offset=12
- (local.get $1)
- )
- )
- (local.get $1)
- )
- (block $do-once51
- (local.set $0
- (if (result i32)
- (local.tee $16
- (i32.load
- (local.tee $8
- (i32.add
- (local.tee $17
- (i32.add
- (local.get $1)
- (i32.const 16)
+ (block $do-once51
+ (if
+ (local.tee $0
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (local.tee $1
+ (i32.add
+ (local.get $5)
+ (i32.const 16)
+ )
)
+ (i32.const 4)
)
- (i32.const 4)
)
)
)
- )
- (block (result i32)
- (local.set $2
- (local.get $16)
+ (local.set $1
+ (local.get $4)
)
- (local.get $8)
- )
- (if (result i32)
- (local.tee $21
- (i32.load
- (local.get $17)
+ (br_if $do-once51
+ (i32.eqz
+ (local.tee $0
+ (i32.load
+ (local.get $1)
+ )
+ )
)
)
- (block (result i32)
- (local.set $2
- (local.get $21)
+ )
+ (loop $while-in54
+ (if
+ (local.tee $3
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (local.get $0)
+ (i32.const 20)
+ )
+ )
+ )
+ )
+ (block
+ (local.set $0
+ (local.get $3)
+ )
+ (local.set $1
+ (local.get $4)
+ )
+ (br $while-in54)
)
- (local.get $17)
)
- (br $do-once51)
- )
- )
- )
- (loop $while-in54
- (if
- (local.tee $16
- (i32.load
- (local.tee $8
- (i32.add
- (local.get $2)
- (i32.const 20)
+ (if
+ (local.tee $3
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ )
+ )
+ )
+ (block
+ (local.set $0
+ (local.get $3)
)
+ (local.set $1
+ (local.get $4)
+ )
+ (br $while-in54)
)
)
)
- (block
- (local.set $2
- (local.get $16)
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (local.get $2)
)
- (local.set $0
- (local.get $8)
+ (call $qa)
+ (block
+ (i32.store
+ (local.get $1)
+ (i32.const 0)
+ )
+ (local.set $17
+ (local.get $0)
+ )
)
- (br $while-in54)
)
)
- (if
- (local.tee $16
- (i32.load
- (local.tee $8
- (i32.add
- (local.get $2)
- (i32.const 16)
+ (block
+ (if
+ (i32.lt_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $5)
)
)
+ (local.get $2)
)
+ (call $qa)
)
- (block
- (local.set $2
- (local.get $16)
+ (if
+ (i32.ne
+ (local.get $5)
+ (i32.load offset=12
+ (local.get $1)
+ )
)
- (local.set $0
- (local.get $8)
+ (call $qa)
+ )
+ (if
+ (i32.eq
+ (local.get $5)
+ (i32.load offset=8
+ (local.get $0)
+ )
)
- (br $while-in54)
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $17
+ (local.get $0)
+ )
+ )
+ (call $qa)
)
)
)
- (if
- (i32.lt_u
- (local.get $0)
+ (br_if $label$break$e
+ (i32.eqz
(local.get $6)
)
- (call $qa)
- (block
+ )
+ (if
+ (i32.eq
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (i32.shl
+ (local.tee $0
+ (i32.load offset=28
+ (local.get $5)
+ )
+ )
+ (i32.const 2)
+ )
+ (i32.const 1512)
+ )
+ )
+ )
+ (local.get $5)
+ )
+ (block $do-once55
(i32.store
- (local.get $0)
- (i32.const 0)
+ (local.get $1)
+ (local.get $17)
)
- (local.set $24
- (local.get $2)
+ (br_if $do-once55
+ (local.get $17)
)
+ (i32.store
+ (i32.const 1212)
+ (i32.and
+ (i32.load
+ (i32.const 1212)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (br $label$break$e)
)
- )
- )
- (block
- (if
- (i32.lt_u
- (local.tee $8
- (i32.load offset=8
- (local.get $1)
+ (block
+ (if
+ (i32.lt_u
+ (local.get $6)
+ (i32.load
+ (i32.const 1224)
+ )
+ )
+ (call $qa)
+ )
+ (if
+ (i32.eq
+ (local.get $5)
+ (i32.load offset=16
+ (local.get $6)
+ )
+ )
+ (i32.store offset=16
+ (local.get $6)
+ (local.get $17)
+ )
+ (i32.store offset=20
+ (local.get $6)
+ (local.get $17)
+ )
+ )
+ (br_if $label$break$e
+ (i32.eqz
+ (local.get $17)
)
)
- (local.get $6)
)
- (call $qa)
- )
- (local.set $3
- (local.get $8)
)
(if
- (i32.ne
- (local.get $1)
- (i32.load offset=12
- (local.get $3)
+ (i32.lt_u
+ (local.get $17)
+ (local.tee $1
+ (i32.load
+ (i32.const 1224)
+ )
)
)
(call $qa)
)
- (local.set $2
- (local.get $0)
+ (i32.store offset=24
+ (local.get $17)
+ (local.get $6)
)
(if
- (i32.eq
- (local.get $1)
- (i32.load offset=8
- (local.get $0)
+ (local.tee $0
+ (i32.load offset=16
+ (local.get $5)
)
)
- (block
- (i32.store offset=12
- (local.get $3)
- (local.get $0)
- )
- (i32.store offset=8
- (local.get $2)
- (local.get $8)
- )
- (local.set $24
+ (if
+ (i32.lt_u
(local.get $0)
+ (local.get $1)
)
- )
- (call $qa)
- )
- )
- )
- (br_if $label$break$e
- (i32.eqz
- (local.get $9)
- )
- )
- (if
- (i32.eq
- (i32.load
- (local.tee $22
- (i32.add
- (i32.shl
- (local.tee $0
- (i32.load offset=28
- (local.get $1)
- )
- )
- (i32.const 2)
+ (call $qa)
+ (block
+ (i32.store offset=16
+ (local.get $17)
+ (local.get $0)
+ )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $17)
)
- (i32.const 1512)
)
)
)
- (local.get $1)
- )
- (block $do-once55
- (i32.store
- (local.get $22)
- (local.get $24)
- )
- (br_if $do-once55
- (local.get $24)
- )
- (i32.store
- (i32.const 1212)
- (i32.and
- (i32.load
- (i32.const 1212)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $0)
+ (br_if $label$break$e
+ (i32.eqz
+ (local.tee $0
+ (i32.load offset=20
+ (local.get $5)
)
- (i32.const -1)
)
)
)
- (br $label$break$e)
- )
- (block
(if
(i32.lt_u
- (local.get $9)
+ (local.get $0)
(i32.load
(i32.const 1224)
)
)
(call $qa)
- )
- (local.set $0
- (local.get $9)
- )
- (if
- (i32.eq
- (local.get $1)
- (i32.load offset=16
+ (block
+ (i32.store offset=20
+ (local.get $17)
(local.get $0)
)
- )
- (i32.store offset=16
- (local.get $0)
- (local.get $24)
- )
- (i32.store offset=20
- (local.get $9)
- (local.get $24)
- )
- )
- (br_if $label$break$e
- (i32.eqz
- (local.get $24)
- )
- )
- )
- )
- (if
- (i32.lt_u
- (local.get $24)
- (local.tee $0
- (i32.load
- (i32.const 1224)
- )
- )
- )
- (call $qa)
- )
- (i32.store offset=24
- (local.get $24)
- (local.get $9)
- )
- (local.set $2
- (local.get $1)
- )
- (if
- (local.tee $12
- (i32.load offset=16
- (local.get $1)
- )
- )
- (if
- (i32.lt_u
- (local.get $12)
- (local.get $0)
- )
- (call $qa)
- (block
- (i32.store offset=16
- (local.get $24)
- (local.get $12)
- )
- (i32.store offset=24
- (local.get $12)
- (local.get $24)
- )
- )
- )
- )
- (br_if $label$break$e
- (i32.eqz
- (local.tee $12
- (i32.load offset=20
- (local.get $2)
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $17)
+ )
)
)
)
)
- (if
- (i32.lt_u
- (local.get $12)
- (i32.load
- (i32.const 1224)
- )
- )
- (call $qa)
- (block
- (i32.store offset=20
- (local.get $24)
- (local.get $12)
- )
- (i32.store offset=24
- (local.get $12)
- (local.get $24)
- )
- )
+ )
+ (local.set $5
+ (i32.add
+ (local.get $5)
+ (local.get $12)
)
)
+ (i32.add
+ (local.get $8)
+ (local.get $12)
+ )
)
+ (local.get $8)
)
- (local.set $1
- (i32.add
- (local.get $1)
- (local.get $4)
- )
- )
- (local.set $15
- (i32.add
- (local.get $4)
- (local.get $15)
+ )
+ (i32.store offset=4
+ (local.get $5)
+ (i32.and
+ (i32.load offset=4
+ (local.get $5)
)
+ (i32.const -2)
)
)
- )
- (i32.store offset=4
- (local.get $1)
- (i32.and
- (i32.load offset=4
- (local.get $1)
+ (i32.store offset=4
+ (local.get $7)
+ (i32.or
+ (local.get $4)
+ (i32.const 1)
)
- (i32.const -2)
- )
- )
- (i32.store offset=4
- (local.get $5)
- (i32.or
- (local.get $15)
- (i32.const 1)
)
- )
- (i32.store
- (i32.add
- (local.get $5)
- (local.get $15)
- )
- (local.get $15)
- )
- (local.set $0
- (i32.shr_u
- (local.get $15)
- (i32.const 3)
+ (i32.store
+ (i32.add
+ (local.get $4)
+ (local.get $7)
+ )
+ (local.get $4)
)
- )
- (if
- (i32.lt_u
- (local.get $15)
- (i32.const 256)
+ (local.set $1
+ (i32.shr_u
+ (local.get $4)
+ (i32.const 3)
+ )
)
- (block
- (local.set $2
- (i32.add
- (i32.shl
- (local.get $0)
- (i32.const 3)
- )
- (i32.const 1248)
- )
+ (if
+ (i32.lt_u
+ (local.get $4)
+ (i32.const 256)
)
- (if
- (i32.and
- (local.tee $0
+ (block
+ (local.set $0
+ (i32.add
(i32.shl
- (i32.const 1)
- (local.get $0)
+ (local.get $1)
+ (i32.const 3)
)
+ (i32.const 1248)
)
- (local.tee $12
- (i32.load
- (i32.const 1208)
+ )
+ (if
+ (i32.and
+ (local.tee $4
+ (i32.load
+ (i32.const 1208)
+ )
+ )
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
)
)
- )
- (block $do-once59
- (if
- (i32.ge_u
- (local.tee $9
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $2)
- (i32.const 8)
+ (block $do-once59
+ (if
+ (i32.ge_u
+ (local.tee $4
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
)
)
)
+ (i32.load
+ (i32.const 1224)
+ )
)
- (i32.load
- (i32.const 1224)
+ (block
+ (local.set $33
+ (local.get $1)
+ )
+ (local.set $27
+ (local.get $4)
+ )
+ (br $do-once59)
)
)
- (block
- (local.set $43
- (local.get $0)
+ (call $qa)
+ )
+ (block
+ (i32.store
+ (i32.const 1208)
+ (i32.or
+ (local.get $1)
+ (local.get $4)
)
- (local.set $38
- (local.get $9)
+ )
+ (local.set $33
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
)
- (br $do-once59)
)
- )
- (call $qa)
- )
- (block
- (i32.store
- (i32.const 1208)
- (i32.or
+ (local.set $27
(local.get $0)
- (local.get $12)
- )
- )
- (local.set $43
- (i32.add
- (local.get $2)
- (i32.const 8)
)
)
- (local.set $38
- (local.get $2)
- )
)
+ (i32.store
+ (local.get $33)
+ (local.get $7)
+ )
+ (i32.store offset=12
+ (local.get $27)
+ (local.get $7)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $27)
+ )
+ (i32.store offset=12
+ (local.get $7)
+ (local.get $0)
+ )
+ (br $do-once44)
)
- (i32.store
- (local.get $43)
- (local.get $5)
- )
- (i32.store offset=12
- (local.get $38)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $38)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $2)
- )
- (br $do-once44)
)
- )
- (local.set $0
- (i32.add
- (i32.shl
- (local.tee $4
- (if (result i32)
- (local.tee $0
- (i32.shr_u
- (local.get $15)
- (i32.const 8)
- )
- )
+ (local.set $1
+ (i32.add
+ (i32.shl
+ (local.tee $0
(if (result i32)
- (i32.gt_u
- (local.get $15)
- (i32.const 16777215)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $4)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $9
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $4
- (i32.shl
- (local.get $0)
- (local.tee $12
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $0)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $4)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $0)
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $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 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $15)
- (i32.add
- (local.tee $8
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
- (local.tee $4
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $4)
- (local.get $9)
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $4)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
+ (i32.or
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $3)
+ (local.get $0)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
)
- )
- (i32.or
- (local.get $9)
- (local.get $12)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
+ )
)
)
- )
- (i32.shr_u
- (i32.shl
- (local.get $0)
- (local.get $4)
+ (i32.shr_u
+ (i32.shl
+ (local.get $3)
+ (local.get $2)
+ )
+ (i32.const 15)
)
- (i32.const 15)
)
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $8)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 1512)
)
- (i32.const 1512)
)
- )
- (i32.store offset=28
- (local.get $5)
- (local.get $4)
- )
- (i32.store offset=20
- (local.get $5)
- (i32.const 0)
- )
- (i32.store offset=16
- (local.get $5)
- (i32.const 0)
- )
- (if
- (i32.eqz
- (i32.and
- (local.tee $8
- (i32.shl
- (i32.const 1)
- (local.get $4)
+ (i32.store offset=28
+ (local.get $7)
+ (local.get $0)
+ )
+ (i32.store offset=20
+ (local.get $7)
+ (i32.const 0)
+ )
+ (i32.store offset=16
+ (local.get $7)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (local.tee $3
+ (i32.load
+ (i32.const 1212)
+ )
)
- )
- (local.tee $2
- (i32.load
- (i32.const 1212)
+ (local.tee $2
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
)
)
)
- )
- (block
- (i32.store
- (i32.const 1212)
- (i32.or
- (local.get $2)
- (local.get $8)
+ (block
+ (i32.store
+ (i32.const 1212)
+ (i32.or
+ (local.get $2)
+ (local.get $3)
+ )
)
+ (i32.store
+ (local.get $1)
+ (local.get $7)
+ )
+ (i32.store offset=24
+ (local.get $7)
+ (local.get $1)
+ )
+ (i32.store offset=12
+ (local.get $7)
+ (local.get $7)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $7)
+ )
+ (br $do-once44)
)
- (i32.store
- (local.get $0)
- (local.get $5)
- )
- (i32.store offset=24
- (local.get $5)
- (local.get $0)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $5)
- )
- (br $do-once44)
)
- )
- (local.set $8
- (i32.shl
- (local.get $15)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
- (local.get $4)
- (i32.const 1)
+ (local.set $14
+ (i32.shl
+ (local.get $4)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ (i32.eq
+ (local.get $0)
+ (i32.const 31)
)
- )
- (i32.eq
- (local.get $4)
- (i32.const 31)
)
)
)
- )
- (local.set $2
- (i32.load
- (local.get $0)
+ (local.set $0
+ (i32.load
+ (local.get $1)
+ )
)
- )
- (if
- (i32.eq
- (local.tee $7
- (loop $while-in64 (result i32)
- (block $while-out63 (result i32)
- (if
- (i32.eq
- (local.get $15)
- (i32.and
- (i32.load offset=4
- (local.get $2)
+ (if
+ (i32.eq
+ (local.tee $9
+ (loop $while-in64 (result i32)
+ (block $while-out63 (result i32)
+ (if
+ (i32.eq
+ (local.get $4)
+ (i32.and
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const -8)
)
- (i32.const -8)
)
- )
- (block
- (local.set $44
- (local.get $2)
- )
- (br $while-out63
- (i32.const 279)
+ (block
+ (local.set $34
+ (local.get $0)
+ )
+ (br $while-out63
+ (i32.const 279)
+ )
)
)
- )
- (if (result i32)
- (local.tee $4
- (i32.load
- (local.tee $0
- (i32.add
+ (if (result i32)
+ (local.tee $1
+ (i32.load
+ (local.tee $3
(i32.add
- (local.get $2)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $8)
- (i32.const 31)
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $14)
+ (i32.const 31)
+ )
+ (i32.const 2)
)
- (i32.const 2)
)
)
)
)
- )
- (block
- (local.set $8
- (i32.shl
- (local.get $8)
- (i32.const 1)
+ (block
+ (local.set $14
+ (i32.shl
+ (local.get $14)
+ (i32.const 1)
+ )
)
+ (local.set $0
+ (local.get $1)
+ )
+ (br $while-in64)
)
- (local.set $2
- (local.get $4)
- )
- (br $while-in64)
- )
- (block (result i32)
- (local.set $45
- (local.get $0)
- )
- (local.set $53
- (local.get $2)
+ (block (result i32)
+ (local.set $35
+ (local.get $3)
+ )
+ (local.set $46
+ (local.get $0)
+ )
+ (i32.const 276)
)
- (i32.const 276)
)
)
)
)
+ (i32.const 276)
)
- (i32.const 276)
- )
- (if
- (i32.lt_u
- (local.get $45)
- (i32.load
- (i32.const 1224)
- )
- )
- (call $qa)
- (block
- (i32.store
- (local.get $45)
- (local.get $5)
- )
- (i32.store offset=24
- (local.get $5)
- (local.get $53)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $5)
+ (if
+ (i32.lt_u
+ (local.get $35)
+ (i32.load
+ (i32.const 1224)
+ )
)
- (i32.store offset=8
- (local.get $5)
- (local.get $5)
+ (call $qa)
+ (block
+ (i32.store
+ (local.get $35)
+ (local.get $7)
+ )
+ (i32.store offset=24
+ (local.get $7)
+ (local.get $46)
+ )
+ (i32.store offset=12
+ (local.get $7)
+ (local.get $7)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $7)
+ )
)
)
- )
- (if
- (i32.eq
- (local.get $7)
- (i32.const 279)
- )
- (block
- (local.set $0
- (local.get $44)
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 279)
)
(if
(i32.and
(i32.ge_u
- (local.tee $8
+ (local.tee $1
(i32.load offset=8
- (local.get $0)
+ (local.tee $0
+ (local.get $34)
+ )
)
)
(local.tee $4
@@ -4850,23 +4697,23 @@
)
(block
(i32.store offset=12
- (local.get $8)
- (local.get $5)
+ (local.get $1)
+ (local.get $7)
)
(i32.store offset=8
(local.get $0)
- (local.get $5)
+ (local.get $7)
)
(i32.store offset=8
- (local.get $5)
- (local.get $8)
+ (local.get $7)
+ (local.get $1)
)
(i32.store offset=12
- (local.get $5)
- (local.get $44)
+ (local.get $7)
+ (local.get $34)
)
(i32.store offset=24
- (local.get $5)
+ (local.get $7)
(i32.const 0)
)
)
@@ -4876,676 +4723,659 @@
)
)
)
- )
- (global.set $r
- (local.get $25)
- )
- (return
- (i32.add
- (local.get $19)
- (i32.const 8)
+ (global.set $r
+ (local.get $18)
+ )
+ (return
+ (i32.add
+ (local.get $10)
+ (i32.const 8)
+ )
)
)
)
)
)
- )
- (loop $while-in66
- (block $while-out65
- (if
- (i32.le_u
- (local.tee $5
- (i32.load
- (local.get $29)
- )
- )
- (local.get $11)
- )
+ (loop $while-in66
+ (block $while-out65
(if
- (i32.gt_u
- (local.tee $15
- (i32.add
- (i32.load offset=4
- (local.get $29)
- )
- (local.get $5)
+ (i32.le_u
+ (local.tee $0
+ (i32.load
+ (local.get $23)
)
)
- (local.get $11)
+ (local.get $6)
)
- (block
- (local.set $2
- (local.get $15)
+ (br_if $while-out65
+ (i32.gt_u
+ (local.tee $0
+ (i32.add
+ (i32.load offset=4
+ (local.get $23)
+ )
+ (local.get $0)
+ )
+ )
+ (local.get $6)
)
- (br $while-out65)
)
)
- )
- (local.set $29
- (i32.load offset=8
- (local.get $29)
+ (local.set $23
+ (i32.load offset=8
+ (local.get $23)
+ )
)
+ (br $while-in66)
)
- (br $while-in66)
)
- )
- (local.set $5
- (i32.add
- (local.tee $4
- (local.tee $19
- (select
- (local.get $11)
- (local.tee $5
- (i32.add
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $15
- (i32.add
- (local.tee $19
- (i32.add
- (local.get $2)
- (i32.const -47)
- )
- )
- (i32.const 8)
- )
- )
- )
- (i32.const 7)
- )
+ (i32.store
+ (i32.const 1232)
+ (local.tee $1
+ (i32.add
+ (local.get $3)
+ (local.tee $2
+ (select
+ (i32.and
+ (i32.sub
(i32.const 0)
- (i32.and
- (local.get $15)
- (i32.const 7)
+ (local.tee $1
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
)
)
- (local.get $19)
+ (i32.const 7)
)
- )
- (i32.lt_u
- (local.get $5)
- (local.tee $15
- (i32.add
- (local.get $11)
- (i32.const 16)
- )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
)
)
)
)
)
- (i32.const 8)
)
- )
- (i32.store
- (i32.const 1232)
- (local.tee $1
+ (i32.store
+ (i32.const 1220)
+ (local.tee $2
+ (i32.sub
+ (i32.add
+ (local.get $7)
+ (i32.const -40)
+ )
+ (local.get $2)
+ )
+ )
+ )
+ (i32.store offset=4
+ (local.get $1)
+ (i32.or
+ (local.get $2)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4
(i32.add
- (local.tee $13
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $1
- (i32.add
- (local.get $20)
- (i32.const 8)
+ (local.get $1)
+ (local.get $2)
+ )
+ (i32.const 40)
+ )
+ (i32.store
+ (i32.const 1236)
+ (i32.load
+ (i32.const 1696)
+ )
+ )
+ (i32.store offset=4
+ (local.tee $2
+ (select
+ (local.get $6)
+ (local.tee $1
+ (i32.add
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $2
+ (i32.add
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const -47)
+ )
+ )
+ (i32.const 8)
+ )
+ )
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $2)
+ (i32.const 7)
)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
(local.get $1)
- (i32.const 7)
+ )
+ )
+ (i32.lt_u
+ (local.get $1)
+ (local.tee $8
+ (i32.add
+ (local.get $6)
+ (i32.const 16)
+ )
)
)
)
- (local.get $20)
)
+ (i32.const 27)
)
- )
- (i32.store
- (i32.const 1220)
- (local.tee $8
- (i32.sub
- (i32.add
- (local.get $26)
- (i32.const -40)
- )
- (local.get $13)
+ (i32.store offset=8
+ (local.get $2)
+ (i32.load
+ (i32.const 1656)
)
)
- )
- (i32.store offset=4
- (local.get $1)
- (i32.or
- (local.get $8)
- (i32.const 1)
+ (i32.store offset=12
+ (local.get $2)
+ (i32.load
+ (i32.const 1660)
+ )
)
- )
- (i32.store offset=4
- (i32.add
- (local.get $1)
- (local.get $8)
+ (i32.store offset=16
+ (local.get $2)
+ (i32.load
+ (i32.const 1664)
+ )
)
- (i32.const 40)
- )
- (i32.store
- (i32.const 1236)
- (i32.load
- (i32.const 1696)
+ (i32.store offset=20
+ (local.get $2)
+ (i32.load
+ (i32.const 1668)
+ )
)
- )
- (local.set $0
- (local.get $19)
- )
- (i32.store offset=4
- (local.get $0)
- (i32.const 27)
- )
- (i32.store offset=8
- (local.get $4)
- (i32.load
+ (i32.store
(i32.const 1656)
+ (local.get $3)
)
- )
- (i32.store offset=12
- (local.get $4)
- (i32.load
+ (i32.store
(i32.const 1660)
+ (local.get $7)
)
- )
- (i32.store offset=16
- (local.get $4)
- (i32.load
- (i32.const 1664)
- )
- )
- (i32.store offset=20
- (local.get $4)
- (i32.load
+ (i32.store
(i32.const 1668)
+ (i32.const 0)
)
- )
- (i32.store
- (i32.const 1656)
- (local.get $20)
- )
- (i32.store
- (i32.const 1660)
- (local.get $26)
- )
- (i32.store
- (i32.const 1668)
- (i32.const 0)
- )
- (i32.store
- (i32.const 1664)
- (local.get $5)
- )
- (local.set $5
- (i32.add
- (local.get $0)
- (i32.const 24)
- )
- )
- (loop $do-in68
(i32.store
- (local.tee $5
- (i32.add
- (local.get $5)
- (i32.const 4)
- )
+ (i32.const 1664)
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
)
- (i32.const 7)
)
- (br_if $do-in68
- (i32.lt_u
- (i32.add
- (local.get $5)
- (i32.const 4)
- )
+ (local.set $1
+ (i32.add
(local.get $2)
+ (i32.const 24)
)
)
- )
- (if
- (i32.ne
- (local.get $11)
- (local.get $19)
- )
- (block
- (i32.store offset=4
- (local.get $0)
- (i32.and
- (i32.load offset=4
- (local.get $0)
+ (loop $do-in68
+ (i32.store
+ (local.tee $1
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
)
- (i32.const -2)
)
+ (i32.const 7)
)
- (i32.store offset=4
- (local.get $11)
- (i32.or
- (local.tee $5
- (i32.sub
- (local.get $19)
- (local.get $11)
- )
+ (br_if $do-in68
+ (i32.lt_u
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
)
- (i32.const 1)
+ (local.get $0)
)
)
- (i32.store
- (local.get $19)
- (local.get $5)
- )
- (local.set $1
- (i32.shr_u
- (local.get $5)
- (i32.const 3)
- )
+ )
+ (if
+ (i32.ne
+ (local.get $2)
+ (local.get $6)
)
- (if
- (i32.lt_u
- (local.get $5)
- (i32.const 256)
+ (block
+ (i32.store offset=4
+ (local.get $2)
+ (i32.and
+ (i32.load offset=4
+ (local.get $2)
+ )
+ (i32.const -2)
+ )
)
- (block
- (local.set $13
- (i32.add
- (i32.shl
- (local.get $1)
- (i32.const 3)
+ (i32.store offset=4
+ (local.get $6)
+ (i32.or
+ (local.tee $5
+ (i32.sub
+ (local.get $2)
+ (local.get $6)
)
- (i32.const 1248)
)
+ (i32.const 1)
)
- (if
- (i32.and
- (local.tee $4
+ )
+ (i32.store
+ (local.get $2)
+ (local.get $5)
+ )
+ (local.set $1
+ (i32.shr_u
+ (local.get $5)
+ (i32.const 3)
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $5)
+ (i32.const 256)
+ )
+ (block
+ (local.set $0
+ (i32.add
(i32.shl
- (i32.const 1)
(local.get $1)
+ (i32.const 3)
)
- )
- (local.tee $2
- (i32.load
- (i32.const 1208)
- )
+ (i32.const 1248)
)
)
(if
- (i32.lt_u
- (local.tee $2
+ (i32.and
+ (local.tee $3
(i32.load
- (local.tee $4
- (i32.add
- (local.get $13)
- (i32.const 8)
+ (i32.const 1208)
+ )
+ )
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.tee $3
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
)
)
)
+ (i32.load
+ (i32.const 1224)
+ )
)
- (i32.load
- (i32.const 1224)
+ (call $qa)
+ (block
+ (local.set $36
+ (local.get $1)
+ )
+ (local.set $28
+ (local.get $3)
+ )
)
)
- (call $qa)
(block
- (local.set $46
- (local.get $4)
- )
- (local.set $39
- (local.get $2)
+ (i32.store
+ (i32.const 1208)
+ (i32.or
+ (local.get $1)
+ (local.get $3)
+ )
)
- )
- )
- (block
- (i32.store
- (i32.const 1208)
- (i32.or
- (local.get $2)
- (local.get $4)
+ (local.set $36
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
)
- )
- (local.set $46
- (i32.add
- (local.get $13)
- (i32.const 8)
+ (local.set $28
+ (local.get $0)
)
)
- (local.set $39
- (local.get $13)
- )
)
+ (i32.store
+ (local.get $36)
+ (local.get $6)
+ )
+ (i32.store offset=12
+ (local.get $28)
+ (local.get $6)
+ )
+ (i32.store offset=8
+ (local.get $6)
+ (local.get $28)
+ )
+ (i32.store offset=12
+ (local.get $6)
+ (local.get $0)
+ )
+ (br $do-once38)
)
- (i32.store
- (local.get $46)
- (local.get $11)
- )
- (i32.store offset=12
- (local.get $39)
- (local.get $11)
- )
- (i32.store offset=8
- (local.get $11)
- (local.get $39)
- )
- (i32.store offset=12
- (local.get $11)
- (local.get $13)
- )
- (br $do-once38)
)
- )
- (local.set $0
- (i32.add
- (i32.shl
- (local.tee $2
- (if (result i32)
- (local.tee $13
- (i32.shr_u
- (local.get $5)
- (i32.const 8)
- )
- )
+ (local.set $3
+ (i32.add
+ (i32.shl
+ (local.tee $0
(if (result i32)
- (i32.gt_u
- (local.get $5)
- (i32.const 16777215)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $5)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $13
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $4
- (i32.shl
- (local.get $13)
- (local.tee $2
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $13)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $5)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $0)
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $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 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $5)
- (i32.add
- (local.tee $0
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
- (local.tee $4
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $1
- (i32.shl
- (local.get $4)
- (local.get $13)
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $5)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
+ (i32.or
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $3)
+ (local.get $0)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
+ )
+ (i32.or
+ (local.get $0)
+ (local.get $1)
)
)
- (i32.or
+ )
+ (i32.shr_u
+ (i32.shl
+ (local.get $3)
(local.get $2)
- (local.get $13)
)
+ (i32.const 15)
)
)
- (i32.shr_u
- (i32.shl
- (local.get $1)
- (local.get $4)
- )
- (i32.const 15)
- )
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $0)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 1512)
)
- (i32.const 1512)
)
- )
- (i32.store offset=28
- (local.get $11)
- (local.get $2)
- )
- (i32.store offset=20
- (local.get $11)
- (i32.const 0)
- )
- (i32.store
- (local.get $15)
- (i32.const 0)
- )
- (if
- (i32.eqz
- (i32.and
- (local.tee $4
- (i32.load
- (i32.const 1212)
+ (i32.store offset=28
+ (local.get $6)
+ (local.get $0)
+ )
+ (i32.store offset=20
+ (local.get $6)
+ (i32.const 0)
+ )
+ (i32.store
+ (local.get $8)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (local.tee $1
+ (i32.load
+ (i32.const 1212)
+ )
+ )
+ (local.tee $2
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
)
)
- (local.tee $1
- (i32.shl
- (i32.const 1)
+ )
+ (block
+ (i32.store
+ (i32.const 1212)
+ (i32.or
+ (local.get $1)
(local.get $2)
)
)
- )
- )
- (block
- (i32.store
- (i32.const 1212)
- (i32.or
- (local.get $1)
- (local.get $4)
+ (i32.store
+ (local.get $3)
+ (local.get $6)
)
+ (i32.store offset=24
+ (local.get $6)
+ (local.get $3)
+ )
+ (i32.store offset=12
+ (local.get $6)
+ (local.get $6)
+ )
+ (i32.store offset=8
+ (local.get $6)
+ (local.get $6)
+ )
+ (br $do-once38)
)
- (i32.store
- (local.get $0)
- (local.get $11)
- )
- (i32.store offset=24
- (local.get $11)
- (local.get $0)
- )
- (i32.store offset=12
- (local.get $11)
- (local.get $11)
- )
- (i32.store offset=8
- (local.get $11)
- (local.get $11)
- )
- (br $do-once38)
)
- )
- (local.set $1
- (i32.shl
- (local.get $5)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
- (local.get $2)
- (i32.const 1)
+ (local.set $1
+ (i32.shl
+ (local.get $5)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ (i32.eq
+ (local.get $0)
+ (i32.const 31)
)
- )
- (i32.eq
- (local.get $2)
- (i32.const 31)
)
)
)
- )
- (local.set $4
- (i32.load
- (local.get $0)
+ (local.set $0
+ (i32.load
+ (local.get $3)
+ )
)
- )
- (if
- (i32.eq
- (local.tee $7
- (loop $while-in70 (result i32)
- (block $while-out69 (result i32)
- (if
- (i32.eq
- (local.get $5)
- (i32.and
- (i32.load offset=4
- (local.get $4)
+ (if
+ (i32.eq
+ (local.tee $9
+ (loop $while-in70 (result i32)
+ (block $while-out69 (result i32)
+ (if
+ (i32.eq
+ (local.get $5)
+ (i32.and
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const -8)
)
- (i32.const -8)
)
- )
- (block
- (local.set $33
- (local.get $4)
- )
- (br $while-out69
- (i32.const 305)
+ (block
+ (local.set $37
+ (local.get $0)
+ )
+ (br $while-out69
+ (i32.const 305)
+ )
)
)
- )
- (if (result i32)
- (local.tee $2
- (i32.load
- (local.tee $0
- (i32.add
+ (if (result i32)
+ (local.tee $3
+ (i32.load
+ (local.tee $2
(i32.add
- (local.get $4)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $1)
- (i32.const 31)
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $1)
+ (i32.const 31)
+ )
+ (i32.const 2)
)
- (i32.const 2)
)
)
)
)
- )
- (block
- (local.set $1
- (i32.shl
- (local.get $1)
- (i32.const 1)
+ (block
+ (local.set $1
+ (i32.shl
+ (local.get $1)
+ (i32.const 1)
+ )
)
+ (local.set $0
+ (local.get $3)
+ )
+ (br $while-in70)
)
- (local.set $4
- (local.get $2)
- )
- (br $while-in70)
- )
- (block (result i32)
- (local.set $47
- (local.get $0)
- )
- (local.set $54
- (local.get $4)
+ (block (result i32)
+ (local.set $38
+ (local.get $2)
+ )
+ (local.set $47
+ (local.get $0)
+ )
+ (i32.const 302)
)
- (i32.const 302)
)
)
)
)
+ (i32.const 302)
)
- (i32.const 302)
- )
- (if
- (i32.lt_u
- (local.get $47)
- (i32.load
- (i32.const 1224)
- )
- )
- (call $qa)
- (block
- (i32.store
- (local.get $47)
- (local.get $11)
- )
- (i32.store offset=24
- (local.get $11)
- (local.get $54)
- )
- (i32.store offset=12
- (local.get $11)
- (local.get $11)
+ (if
+ (i32.lt_u
+ (local.get $38)
+ (i32.load
+ (i32.const 1224)
+ )
)
- (i32.store offset=8
- (local.get $11)
- (local.get $11)
+ (call $qa)
+ (block
+ (i32.store
+ (local.get $38)
+ (local.get $6)
+ )
+ (i32.store offset=24
+ (local.get $6)
+ (local.get $47)
+ )
+ (i32.store offset=12
+ (local.get $6)
+ (local.get $6)
+ )
+ (i32.store offset=8
+ (local.get $6)
+ (local.get $6)
+ )
)
)
- )
- (if
- (i32.eq
- (local.get $7)
- (i32.const 305)
- )
- (block
- (local.set $0
- (local.get $33)
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 305)
)
(if
(i32.and
(i32.ge_u
(local.tee $1
(i32.load offset=8
- (local.get $0)
+ (local.tee $0
+ (local.get $37)
+ )
)
)
- (local.tee $5
+ (local.tee $3
(i32.load
(i32.const 1224)
)
@@ -5553,28 +5383,28 @@
)
(i32.ge_u
(local.get $0)
- (local.get $5)
+ (local.get $3)
)
)
(block
(i32.store offset=12
(local.get $1)
- (local.get $11)
+ (local.get $6)
)
(i32.store offset=8
(local.get $0)
- (local.get $11)
+ (local.get $6)
)
(i32.store offset=8
- (local.get $11)
+ (local.get $6)
(local.get $1)
)
(i32.store offset=12
- (local.get $11)
- (local.get $33)
+ (local.get $6)
+ (local.get $37)
)
(i32.store offset=24
- (local.get $11)
+ (local.get $6)
(i32.const 0)
)
)
@@ -5585,219 +5415,208 @@
)
)
)
- )
- (block
- (if
- (i32.or
- (i32.eqz
- (local.tee $1
- (i32.load
- (i32.const 1224)
+ (block
+ (if
+ (i32.or
+ (i32.eqz
+ (local.tee $0
+ (i32.load
+ (i32.const 1224)
+ )
)
)
+ (i32.lt_u
+ (local.get $3)
+ (local.get $0)
+ )
)
- (i32.lt_u
- (local.get $20)
- (local.get $1)
+ (i32.store
+ (i32.const 1224)
+ (local.get $3)
)
)
(i32.store
- (i32.const 1224)
- (local.get $20)
+ (i32.const 1656)
+ (local.get $3)
)
- )
- (i32.store
- (i32.const 1656)
- (local.get $20)
- )
- (i32.store
- (i32.const 1660)
- (local.get $26)
- )
- (i32.store
- (i32.const 1668)
- (i32.const 0)
- )
- (i32.store
- (i32.const 1244)
- (i32.load
- (i32.const 1680)
+ (i32.store
+ (i32.const 1660)
+ (local.get $7)
)
- )
- (i32.store
- (i32.const 1240)
- (i32.const -1)
- )
- (local.set $1
- (i32.const 0)
- )
- (loop $do-in
- (i32.store offset=12
- (local.tee $13
- (i32.add
- (i32.shl
- (local.get $1)
- (i32.const 3)
- )
- (i32.const 1248)
- )
+ (i32.store
+ (i32.const 1668)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 1244)
+ (i32.load
+ (i32.const 1680)
)
- (local.get $13)
)
- (i32.store offset=8
- (local.get $13)
- (local.get $13)
+ (i32.store
+ (i32.const 1240)
+ (i32.const -1)
)
- (br_if $do-in
- (i32.ne
- (local.tee $1
+ (local.set $1
+ (i32.const 0)
+ )
+ (loop $do-in
+ (i32.store offset=12
+ (local.tee $0
(i32.add
- (local.get $1)
- (i32.const 1)
+ (i32.shl
+ (local.get $1)
+ (i32.const 3)
+ )
+ (i32.const 1248)
)
)
- (i32.const 32)
+ (local.get $0)
)
- )
- )
- (i32.store
- (i32.const 1232)
- (local.tee $1
- (i32.add
- (local.tee $13
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $1
- (i32.add
- (local.get $20)
- (i32.const 8)
- )
- )
- )
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $0)
+ )
+ (br_if $do-in
+ (i32.ne
+ (local.tee $1
+ (i32.add
(local.get $1)
- (i32.const 7)
+ (i32.const 1)
)
)
+ (i32.const 32)
)
- (local.get $20)
)
)
- )
- (i32.store
- (i32.const 1220)
- (local.tee $5
- (i32.sub
+ (i32.store
+ (i32.const 1232)
+ (local.tee $0
(i32.add
- (local.get $26)
- (i32.const -40)
+ (local.get $3)
+ (local.tee $1
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $0
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $0)
+ (i32.const 7)
+ )
+ )
+ )
)
- (local.get $13)
)
)
- )
- (i32.store offset=4
- (local.get $1)
- (i32.or
- (local.get $5)
- (i32.const 1)
- )
- )
- (i32.store offset=4
- (i32.add
- (local.get $1)
- (local.get $5)
- )
- (i32.const 40)
- )
- (i32.store
- (i32.const 1236)
- (i32.load
- (i32.const 1696)
- )
- )
- )
- )
- (if
- (i32.gt_u
- (local.tee $11
- (i32.load
+ (i32.store
(i32.const 1220)
+ (local.tee $1
+ (i32.sub
+ (i32.add
+ (local.get $7)
+ (i32.const -40)
+ )
+ (local.get $1)
+ )
+ )
)
- )
- (local.get $3)
- )
- (block
- (i32.store
- (i32.const 1220)
- (local.tee $33
- (i32.sub
- (local.get $11)
- (local.get $3)
+ (i32.store offset=4
+ (local.get $0)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
)
)
- )
- (i32.store
- (i32.const 1232)
- (local.tee $7
+ (i32.store offset=4
(i32.add
- (local.get $3)
- (local.tee $11
- (i32.load
- (i32.const 1232)
- )
- )
+ (local.get $0)
+ (local.get $1)
)
+ (i32.const 40)
)
- )
- (i32.store offset=4
- (local.get $7)
- (i32.or
- (local.get $33)
- (i32.const 1)
- )
- )
- (i32.store offset=4
- (local.get $11)
- (i32.or
- (local.get $3)
- (i32.const 3)
+ (i32.store
+ (i32.const 1236)
+ (i32.load
+ (i32.const 1696)
+ )
)
)
- (global.set $r
- (local.get $25)
- )
- (return
- (i32.add
- (local.get $11)
- (i32.const 8)
+ )
+ (br_if $folding-inner0
+ (i32.gt_u
+ (local.tee $0
+ (i32.load
+ (i32.const 1220)
+ )
)
+ (local.get $4)
)
)
)
)
+ (i32.store
+ (call $Qa)
+ (i32.const 12)
+ )
+ (global.set $r
+ (local.get $18)
+ )
+ (return
+ (i32.const 0)
+ )
+ )
+ (i32.store
+ (i32.const 1220)
+ (local.tee $1
+ (i32.sub
+ (local.get $0)
+ (local.get $4)
+ )
+ )
)
(i32.store
- (call $Qa)
- (i32.const 12)
+ (i32.const 1232)
+ (local.tee $3
+ (i32.add
+ (local.get $4)
+ (local.tee $0
+ (i32.load
+ (i32.const 1232)
+ )
+ )
+ )
+ )
)
- (global.set $r
- (local.get $25)
+ (i32.store offset=4
+ (local.get $3)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
)
- (return
- (i32.const 0)
+ (i32.store offset=4
+ (local.get $0)
+ (i32.or
+ (local.get $4)
+ (i32.const 3)
+ )
)
)
(global.set $r
- (local.get $25)
+ (local.get $18)
)
(i32.add
- (local.get $15)
+ (local.get $0)
(i32.const 8)
)
)
@@ -5820,7 +5639,6 @@
(local $16 i32)
(local $17 i32)
(local $18 i32)
- (local $19 i32)
(if
(i32.eqz
(local.get $0)
@@ -5829,13 +5647,13 @@
)
(if
(i32.lt_u
- (local.tee $1
+ (local.tee $3
(i32.add
(local.get $0)
(i32.const -8)
)
)
- (local.tee $14
+ (local.tee $13
(i32.load
(i32.const 1224)
)
@@ -5845,9 +5663,9 @@
)
(if
(i32.eq
- (local.tee $0
+ (local.tee $10
(i32.and
- (local.tee $5
+ (local.tee $0
(i32.load
(i32.add
(local.get $0)
@@ -5862,12 +5680,12 @@
)
(call $qa)
)
- (local.set $8
+ (local.set $6
(i32.add
- (local.get $1)
- (local.tee $7
+ (local.get $3)
+ (local.tee $4
(i32.and
- (local.get $5)
+ (local.get $0)
(i32.const -8)
)
)
@@ -5875,64 +5693,61 @@
)
(if
(i32.and
- (local.get $5)
+ (local.get $0)
(i32.const 1)
)
(block
(local.set $2
- (local.get $1)
+ (local.get $3)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $4)
)
)
(block $do-once
(local.set $9
(i32.load
- (local.get $1)
+ (local.get $3)
)
)
(if
(i32.eqz
- (local.get $0)
+ (local.get $10)
)
(return)
)
- (local.set $7
- (i32.add
- (local.get $7)
- (local.get $9)
- )
- )
(if
(i32.lt_u
- (local.tee $1
+ (local.tee $0
(i32.sub
- (local.get $1)
+ (local.get $3)
(local.get $9)
)
)
- (local.get $14)
+ (local.get $13)
)
(call $qa)
)
+ (local.set $3
+ (i32.add
+ (local.get $4)
+ (local.get $9)
+ )
+ )
(if
(i32.eq
(i32.load
(i32.const 1228)
)
- (local.get $1)
+ (local.get $0)
)
(block
- (local.set $0
- (local.get $8)
- )
(if
(i32.ne
(i32.and
- (local.tee $3
+ (local.tee $1
(i32.load offset=4
- (local.get $0)
+ (local.get $6)
)
)
(i32.const 3)
@@ -5941,43 +5756,43 @@
)
(block
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
)
(i32.store
(i32.const 1216)
- (local.get $7)
+ (local.get $3)
)
(i32.store offset=4
- (local.get $0)
+ (local.get $6)
(i32.and
- (local.get $3)
+ (local.get $1)
(i32.const -2)
)
)
(i32.store offset=4
- (local.get $1)
+ (local.get $0)
(i32.or
- (local.get $7)
+ (local.get $3)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $1)
- (local.get $7)
+ (local.get $0)
+ (local.get $3)
)
- (local.get $7)
+ (local.get $3)
)
(return)
)
)
- (local.set $3
+ (local.set $10
(i32.shr_u
(local.get $9)
(i32.const 3)
@@ -5989,22 +5804,22 @@
(i32.const 256)
)
(block
- (local.set $0
+ (local.set $2
(i32.load offset=12
- (local.get $1)
+ (local.get $0)
)
)
(if
(i32.ne
- (local.tee $9
+ (local.tee $4
(i32.load offset=8
- (local.get $1)
+ (local.get $0)
)
)
- (local.tee $5
+ (local.tee $1
(i32.add
(i32.shl
- (local.get $3)
+ (local.get $10)
(i32.const 3)
)
(i32.const 1248)
@@ -6014,16 +5829,16 @@
(block
(if
(i32.lt_u
- (local.get $9)
- (local.get $14)
+ (local.get $4)
+ (local.get $13)
)
(call $qa)
)
(if
(i32.ne
- (local.get $1)
+ (local.get $0)
(i32.load offset=12
- (local.get $9)
+ (local.get $4)
)
)
(call $qa)
@@ -6032,8 +5847,8 @@
)
(if
(i32.eq
- (local.get $0)
- (local.get $9)
+ (local.get $2)
+ (local.get $4)
)
(block
(i32.store
@@ -6045,99 +5860,99 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $3)
+ (local.get $10)
)
(i32.const -1)
)
)
)
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
)
(if
(i32.eq
- (local.get $0)
- (local.get $5)
+ (local.get $1)
+ (local.get $2)
)
- (local.set $10
+ (local.set $5
(i32.add
- (local.get $0)
+ (local.get $2)
(i32.const 8)
)
)
(block
(if
(i32.lt_u
- (local.get $0)
- (local.get $14)
+ (local.get $2)
+ (local.get $13)
)
(call $qa)
)
(if
(i32.eq
- (local.get $1)
+ (local.get $0)
(i32.load
- (local.tee $5
+ (local.tee $1
(i32.add
- (local.get $0)
+ (local.get $2)
(i32.const 8)
)
)
)
)
- (local.set $10
- (local.get $5)
+ (local.set $5
+ (local.get $1)
)
(call $qa)
)
)
)
(i32.store offset=12
- (local.get $9)
- (local.get $0)
+ (local.get $4)
+ (local.get $2)
)
(i32.store
- (local.get $10)
- (local.get $9)
+ (local.get $5)
+ (local.get $4)
)
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
)
- (local.set $9
+ (local.set $12
(i32.load offset=24
- (local.get $1)
+ (local.get $0)
)
)
(if
(i32.eq
- (local.get $1)
- (local.tee $0
+ (local.get $0)
+ (local.tee $4
(i32.load offset=12
- (local.get $1)
+ (local.get $0)
)
)
)
(block $do-once0
(if
- (local.tee $10
+ (local.tee $4
(i32.load
- (local.tee $3
+ (local.tee $9
(i32.add
(local.tee $5
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 16)
)
)
@@ -6146,17 +5961,12 @@
)
)
)
- (block
- (local.set $0
- (local.get $10)
- )
- (local.set $5
- (local.get $3)
- )
+ (local.set $5
+ (local.get $9)
)
(br_if $do-once0
(i32.eqz
- (local.tee $0
+ (local.tee $4
(i32.load
(local.get $5)
)
@@ -6164,70 +5974,63 @@
)
)
)
- (if
- (i32.lt_u
- (local.tee $3
- (loop $while-in (result i32)
- (if
- (local.tee $10
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
- )
- )
- (block
- (local.set $0
- (local.get $10)
- )
- (local.set $5
- (local.get $3)
- )
- (br $while-in)
+ (loop $while-in
+ (if
+ (local.tee $10
+ (i32.load
+ (local.tee $9
+ (i32.add
+ (local.get $4)
+ (i32.const 20)
)
)
- (if (result i32)
- (local.tee $10
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 16)
- )
- )
- )
- )
- (block
- (local.set $0
- (local.get $10)
- )
- (local.set $5
- (local.get $3)
- )
- (br $while-in)
- )
- (block (result i32)
- (local.set $12
- (local.get $0)
- )
- (local.get $5)
+ )
+ )
+ (block
+ (local.set $4
+ (local.get $10)
+ )
+ (local.set $5
+ (local.get $9)
+ )
+ (br $while-in)
+ )
+ )
+ (if
+ (local.tee $10
+ (i32.load
+ (local.tee $9
+ (i32.add
+ (local.get $4)
+ (i32.const 16)
)
)
)
)
- (local.get $14)
+ (block
+ (local.set $4
+ (local.get $10)
+ )
+ (local.set $5
+ (local.get $9)
+ )
+ (br $while-in)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $5)
+ (local.get $13)
)
(call $qa)
(block
(i32.store
- (local.get $3)
+ (local.get $5)
(i32.const 0)
)
- (local.set $4
- (local.get $12)
+ (local.set $7
+ (local.get $4)
)
)
)
@@ -6235,48 +6038,42 @@
(block
(if
(i32.lt_u
- (local.tee $3
+ (local.tee $5
(i32.load offset=8
- (local.get $1)
+ (local.get $0)
)
)
- (local.get $14)
+ (local.get $13)
)
(call $qa)
)
- (local.set $5
- (local.get $3)
- )
(if
(i32.ne
- (local.get $1)
+ (local.get $0)
(i32.load offset=12
- (local.get $3)
+ (local.get $5)
)
)
(call $qa)
)
- (local.set $10
- (local.get $0)
- )
(if
(i32.eq
- (local.get $1)
+ (local.get $0)
(i32.load offset=8
- (local.get $0)
+ (local.get $4)
)
)
(block
(i32.store offset=12
(local.get $5)
- (local.get $0)
+ (local.get $4)
)
(i32.store offset=8
- (local.get $10)
- (local.get $3)
+ (local.get $4)
+ (local.get $5)
)
- (local.set $4
- (local.get $0)
+ (local.set $7
+ (local.get $4)
)
)
(call $qa)
@@ -6284,17 +6081,17 @@
)
)
(if
- (local.get $9)
+ (local.get $12)
(block
(if
(i32.eq
(i32.load
- (local.tee $3
+ (local.tee $5
(i32.add
(i32.shl
- (local.tee $0
+ (local.tee $4
(i32.load offset=28
- (local.get $1)
+ (local.get $0)
)
)
(i32.const 2)
@@ -6303,16 +6100,16 @@
)
)
)
- (local.get $1)
+ (local.get $0)
)
(block
(i32.store
- (local.get $3)
- (local.get $4)
+ (local.get $5)
+ (local.get $7)
)
(if
(i32.eqz
- (local.get $4)
+ (local.get $7)
)
(block
(i32.store
@@ -6324,17 +6121,17 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $0)
+ (local.get $4)
)
(i32.const -1)
)
)
)
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
@@ -6343,42 +6140,39 @@
(block
(if
(i32.lt_u
- (local.get $9)
+ (local.get $12)
(i32.load
(i32.const 1224)
)
)
(call $qa)
)
- (local.set $0
- (local.get $9)
- )
(if
(i32.eq
- (local.get $1)
+ (local.get $0)
(i32.load offset=16
- (local.get $0)
+ (local.get $12)
)
)
(i32.store offset=16
- (local.get $0)
- (local.get $4)
+ (local.get $12)
+ (local.get $7)
)
(i32.store offset=20
- (local.get $9)
- (local.get $4)
+ (local.get $12)
+ (local.get $7)
)
)
(if
(i32.eqz
- (local.get $4)
+ (local.get $7)
)
(block
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
@@ -6387,8 +6181,8 @@
)
(if
(i32.lt_u
- (local.get $4)
- (local.tee $0
+ (local.get $7)
+ (local.tee $5
(i32.load
(i32.const 1224)
)
@@ -6397,45 +6191,42 @@
(call $qa)
)
(i32.store offset=24
- (local.get $4)
- (local.get $9)
- )
- (local.set $3
- (local.get $1)
+ (local.get $7)
+ (local.get $12)
)
(if
- (local.tee $5
+ (local.tee $4
(i32.load offset=16
- (local.get $1)
+ (local.get $0)
)
)
(if
(i32.lt_u
+ (local.get $4)
(local.get $5)
- (local.get $0)
)
(call $qa)
(block
(i32.store offset=16
+ (local.get $7)
(local.get $4)
- (local.get $5)
)
(i32.store offset=24
- (local.get $5)
(local.get $4)
+ (local.get $7)
)
)
)
)
(if
- (local.tee $5
+ (local.tee $4
(i32.load offset=20
- (local.get $3)
+ (local.get $0)
)
)
(if
(i32.lt_u
- (local.get $5)
+ (local.get $4)
(i32.load
(i32.const 1224)
)
@@ -6443,37 +6234,37 @@
(call $qa)
(block
(i32.store offset=20
+ (local.get $7)
(local.get $4)
- (local.get $5)
)
(i32.store offset=24
- (local.get $5)
(local.get $4)
+ (local.get $7)
)
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
)
)
(block
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
)
)
)
(block
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
)
)
@@ -6482,19 +6273,16 @@
(if
(i32.ge_u
(local.get $2)
- (local.get $8)
+ (local.get $6)
)
(call $qa)
)
- (local.set $0
- (local.get $8)
- )
(if
(i32.eqz
(i32.and
- (local.tee $1
+ (local.tee $0
(i32.load offset=4
- (local.get $0)
+ (local.get $6)
)
)
(i32.const 1)
@@ -6502,639 +6290,622 @@
)
(call $qa)
)
- (local.set $6
- (i32.shr_u
- (local.tee $0
- (if (result i32)
- (i32.and
- (local.get $1)
- (i32.const 2)
+ (if
+ (i32.and
+ (local.get $0)
+ (i32.const 2)
+ )
+ (block
+ (i32.store offset=4
+ (local.get $6)
+ (i32.and
+ (local.get $0)
+ (i32.const -2)
+ )
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (local.get $1)
+ (local.get $2)
+ )
+ (local.get $1)
+ )
+ )
+ (block
+ (if
+ (i32.eq
+ (i32.load
+ (i32.const 1232)
)
- (block (result i32)
- (i32.store offset=4
- (local.get $0)
- (i32.and
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (i32.const 1220)
+ (local.tee $0
+ (i32.add
(local.get $1)
- (i32.const -2)
+ (i32.load
+ (i32.const 1220)
+ )
)
)
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $6)
- (i32.const 1)
+ )
+ (i32.store
+ (i32.const 1232)
+ (local.get $2)
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ (if
+ (i32.ne
+ (i32.load
+ (i32.const 1228)
)
+ (local.get $2)
)
- (i32.store
+ (return)
+ )
+ (i32.store
+ (i32.const 1228)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 1216)
+ (i32.const 0)
+ )
+ (return)
+ )
+ )
+ (if
+ (i32.eq
+ (i32.load
+ (i32.const 1228)
+ )
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (i32.const 1216)
+ (local.tee $0
(i32.add
- (local.get $2)
- (local.get $6)
+ (local.get $1)
+ (i32.load
+ (i32.const 1216)
+ )
)
- (local.get $6)
)
- (local.get $6)
)
- (block (result i32)
+ (i32.store
+ (i32.const 1228)
+ (local.get $2)
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (local.get $2)
+ )
+ (local.get $0)
+ )
+ (return)
+ )
+ )
+ (local.set $5
+ (i32.add
+ (local.get $1)
+ (i32.and
+ (local.get $0)
+ (i32.const -8)
+ )
+ )
+ )
+ (local.set $4
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 3)
+ )
+ )
+ (block $do-once4
+ (if
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 256)
+ )
+ (block
+ (local.set $1
+ (i32.load offset=12
+ (local.get $6)
+ )
+ )
(if
- (i32.eq
- (i32.load
- (i32.const 1232)
+ (i32.ne
+ (local.tee $3
+ (i32.load offset=8
+ (local.get $6)
+ )
)
- (local.get $8)
- )
- (block
- (i32.store
- (i32.const 1220)
- (local.tee $4
- (i32.add
- (local.get $6)
- (i32.load
- (i32.const 1220)
- )
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.get $4)
+ (i32.const 3)
)
+ (i32.const 1248)
)
)
- (i32.store
- (i32.const 1232)
- (local.get $2)
- )
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $4)
- (i32.const 1)
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $3)
+ (i32.load
+ (i32.const 1224)
+ )
)
+ (call $qa)
)
(if
(i32.ne
- (i32.load
- (i32.const 1228)
+ (local.get $6)
+ (i32.load offset=12
+ (local.get $3)
)
- (local.get $2)
)
- (return)
- )
- (i32.store
- (i32.const 1228)
- (i32.const 0)
- )
- (i32.store
- (i32.const 1216)
- (i32.const 0)
+ (call $qa)
)
- (return)
)
)
(if
(i32.eq
- (i32.load
- (i32.const 1228)
- )
- (local.get $8)
+ (local.get $1)
+ (local.get $3)
)
(block
(i32.store
- (i32.const 1216)
- (local.tee $4
- (i32.add
- (local.get $6)
- (i32.load
- (i32.const 1216)
+ (i32.const 1208)
+ (i32.and
+ (i32.load
+ (i32.const 1208)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $4)
)
+ (i32.const -1)
)
)
)
- (i32.store
- (i32.const 1228)
- (local.get $2)
+ (br $do-once4)
+ )
+ )
+ (if
+ (i32.eq
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $14
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
)
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $4)
- (i32.const 1)
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (i32.load
+ (i32.const 1224)
+ )
)
+ (call $qa)
)
- (i32.store
- (i32.add
- (local.get $2)
- (local.get $4)
+ (if
+ (i32.eq
+ (local.get $6)
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
+ )
+ )
)
- (local.get $4)
+ (local.set $14
+ (local.get $0)
+ )
+ (call $qa)
)
- (return)
)
)
- (local.set $4
- (i32.add
- (local.get $6)
- (i32.and
- (local.get $1)
- (i32.const -8)
- )
- )
+ (i32.store offset=12
+ (local.get $3)
+ (local.get $1)
)
- (local.set $14
- (i32.shr_u
- (local.get $1)
- (i32.const 3)
+ (i32.store
+ (local.get $14)
+ (local.get $3)
+ )
+ )
+ (block
+ (local.set $7
+ (i32.load offset=24
+ (local.get $6)
)
)
- (block $do-once4
- (if
- (i32.lt_u
- (local.get $1)
- (i32.const 256)
- )
- (block
- (local.set $3
- (i32.load offset=12
- (local.get $8)
- )
+ (if
+ (i32.eq
+ (local.get $6)
+ (local.tee $0
+ (i32.load offset=12
+ (local.get $6)
)
- (if
- (i32.ne
- (local.tee $5
+ )
+ )
+ (block $do-once6
+ (if
+ (local.tee $0
+ (i32.load
+ (local.tee $3
(i32.add
- (i32.shl
- (local.get $14)
- (i32.const 3)
+ (local.tee $1
+ (i32.add
+ (local.get $6)
+ (i32.const 16)
+ )
)
- (i32.const 1248)
- )
- )
- (local.tee $12
- (i32.load offset=8
- (local.get $8)
+ (i32.const 4)
)
)
)
- (block
- (if
- (i32.lt_u
- (local.get $12)
- (i32.load
- (i32.const 1224)
- )
- )
- (call $qa)
- )
- (if
- (i32.ne
- (local.get $8)
- (i32.load offset=12
- (local.get $12)
- )
+ )
+ (local.set $1
+ (local.get $3)
+ )
+ (br_if $do-once6
+ (i32.eqz
+ (local.tee $0
+ (i32.load
+ (local.get $1)
)
- (call $qa)
)
)
)
+ )
+ (loop $while-in9
(if
- (i32.eq
- (local.get $3)
- (local.get $12)
- )
- (block
- (i32.store
- (i32.const 1208)
- (i32.and
- (i32.load
- (i32.const 1208)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $14)
- )
- (i32.const -1)
+ (local.tee $4
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.get $0)
+ (i32.const 20)
)
)
)
- (br $do-once4)
)
- )
- (if
- (i32.eq
- (local.get $3)
- (local.get $5)
- )
- (local.set $16
- (i32.add
+ (block
+ (local.set $0
+ (local.get $4)
+ )
+ (local.set $1
(local.get $3)
- (i32.const 8)
)
+ (br $while-in9)
)
- (block
- (if
- (i32.lt_u
- (local.get $3)
- (i32.load
- (i32.const 1224)
+ )
+ (if
+ (local.tee $4
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
)
)
- (call $qa)
)
- (if
- (i32.eq
- (local.get $8)
- (i32.load
- (local.tee $5
- (i32.add
- (local.get $3)
- (i32.const 8)
- )
- )
- )
- )
- (local.set $16
- (local.get $5)
- )
- (call $qa)
+ )
+ (block
+ (local.set $0
+ (local.get $4)
)
+ (local.set $1
+ (local.get $3)
+ )
+ (br $while-in9)
)
)
- (i32.store offset=12
- (local.get $12)
- (local.get $3)
+ )
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (i32.load
+ (i32.const 1224)
+ )
)
- (i32.store
- (local.get $16)
- (local.get $12)
+ (call $qa)
+ (block
+ (i32.store
+ (local.get $1)
+ (i32.const 0)
+ )
+ (local.set $8
+ (local.get $0)
+ )
)
)
- (block
- (local.set $12
- (i32.load offset=24
- (local.get $8)
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $6)
+ )
+ )
+ (i32.load
+ (i32.const 1224)
)
)
- (if
- (i32.eq
- (local.get $8)
- (local.tee $3
- (i32.load offset=12
- (local.get $8)
- )
- )
+ (call $qa)
+ )
+ (if
+ (i32.ne
+ (local.get $6)
+ (i32.load offset=12
+ (local.get $1)
)
- (block $do-once6
- (local.set $6
- (if (result i32)
- (local.tee $10
- (i32.load
- (local.tee $0
- (i32.add
- (local.tee $5
- (i32.add
- (local.get $8)
- (i32.const 16)
- )
- )
- (i32.const 4)
- )
- )
- )
- )
- (block (result i32)
- (local.set $5
- (local.get $0)
- )
- (local.get $10)
- )
- (if (result i32)
+ )
+ (call $qa)
+ )
+ (if
+ (i32.eq
+ (local.get $6)
+ (i32.load offset=8
+ (local.get $0)
+ )
+ )
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $8
+ (local.get $0)
+ )
+ )
+ (call $qa)
+ )
+ )
+ )
+ (if
+ (local.get $7)
+ (block
+ (if
+ (i32.eq
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (i32.shl
(local.tee $0
- (i32.load
- (local.get $5)
+ (i32.load offset=28
+ (local.get $6)
)
)
- (local.get $0)
- (br $do-once6)
+ (i32.const 2)
)
+ (i32.const 1512)
)
)
- (loop $while-in9
- (if
- (local.tee $10
+ )
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (local.get $1)
+ (local.get $8)
+ )
+ (if
+ (i32.eqz
+ (local.get $8)
+ )
+ (block
+ (i32.store
+ (i32.const 1212)
+ (i32.and
(i32.load
- (local.tee $0
- (i32.add
- (local.get $6)
- (i32.const 20)
- )
- )
- )
- )
- (block
- (local.set $6
- (local.get $10)
- )
- (local.set $5
- (local.get $0)
+ (i32.const 1212)
)
- (br $while-in9)
- )
- )
- (if
- (local.tee $10
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $6)
- (i32.const 16)
- )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
)
+ (i32.const -1)
)
)
- (block
- (local.set $6
- (local.get $10)
- )
- (local.set $5
- (local.get $0)
- )
- (br $while-in9)
- )
)
+ (br $do-once4)
)
- (if
- (i32.lt_u
- (local.get $5)
- (i32.load
- (i32.const 1224)
- )
- )
- (call $qa)
- (block
- (i32.store
- (local.get $5)
- (i32.const 0)
- )
- (local.set $11
- (local.get $6)
- )
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $7)
+ (i32.load
+ (i32.const 1224)
)
)
+ (call $qa)
)
- (block
- (if
- (i32.lt_u
- (local.tee $0
- (i32.load offset=8
- (local.get $8)
- )
- )
- (i32.load
- (i32.const 1224)
- )
+ (if
+ (i32.eq
+ (local.get $6)
+ (i32.load offset=16
+ (local.get $7)
)
- (call $qa)
)
- (local.set $6
- (local.get $0)
+ (i32.store offset=16
+ (local.get $7)
+ (local.get $8)
)
- (if
- (i32.ne
- (local.get $8)
- (i32.load offset=12
- (local.get $0)
- )
- )
- (call $qa)
+ (i32.store offset=20
+ (local.get $7)
+ (local.get $8)
)
- (local.set $1
- (local.get $3)
+ )
+ (br_if $do-once4
+ (i32.eqz
+ (local.get $8)
)
- (if
- (i32.eq
- (local.get $8)
- (i32.load offset=8
- (local.get $1)
- )
- )
- (block
- (i32.store offset=12
- (local.get $6)
- (local.get $3)
- )
- (i32.store offset=8
- (local.get $1)
- (local.get $0)
- )
- (local.set $11
- (local.get $3)
- )
- )
- (call $qa)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $8)
+ (local.tee $1
+ (i32.load
+ (i32.const 1224)
)
)
)
+ (call $qa)
+ )
+ (i32.store offset=24
+ (local.get $8)
+ (local.get $7)
+ )
+ (if
+ (local.tee $0
+ (i32.load offset=16
+ (local.get $6)
+ )
+ )
(if
- (local.get $12)
+ (i32.lt_u
+ (local.get $0)
+ (local.get $1)
+ )
+ (call $qa)
(block
- (if
- (i32.eq
- (i32.load
- (local.tee $7
- (i32.add
- (i32.shl
- (local.tee $3
- (i32.load offset=28
- (local.get $8)
- )
- )
- (i32.const 2)
- )
- (i32.const 1512)
- )
- )
- )
- (local.get $8)
- )
- (block
- (i32.store
- (local.get $7)
- (local.get $11)
- )
- (if
- (i32.eqz
- (local.get $11)
- )
- (block
- (i32.store
- (i32.const 1212)
- (i32.and
- (i32.load
- (i32.const 1212)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $3)
- )
- (i32.const -1)
- )
- )
- )
- (br $do-once4)
- )
- )
- )
- (block
- (if
- (i32.lt_u
- (local.get $12)
- (i32.load
- (i32.const 1224)
- )
- )
- (call $qa)
- )
- (local.set $0
- (local.get $12)
- )
- (if
- (i32.eq
- (local.get $8)
- (i32.load offset=16
- (local.get $0)
- )
- )
- (i32.store offset=16
- (local.get $0)
- (local.get $11)
- )
- (i32.store offset=20
- (local.get $12)
- (local.get $11)
- )
- )
- (br_if $do-once4
- (i32.eqz
- (local.get $11)
- )
- )
- )
- )
- (if
- (i32.lt_u
- (local.get $11)
- (local.tee $3
- (i32.load
- (i32.const 1224)
- )
- )
- )
- (call $qa)
+ (i32.store offset=16
+ (local.get $8)
+ (local.get $0)
)
(i32.store offset=24
- (local.get $11)
- (local.get $12)
- )
- (local.set $0
+ (local.get $0)
(local.get $8)
)
- (if
- (local.tee $1
- (i32.load offset=16
- (local.get $0)
- )
- )
- (if
- (i32.lt_u
- (local.get $1)
- (local.get $3)
- )
- (call $qa)
- (block
- (i32.store offset=16
- (local.get $11)
- (local.get $1)
- )
- (i32.store offset=24
- (local.get $1)
- (local.get $11)
- )
- )
- )
+ )
+ )
+ )
+ (if
+ (local.tee $0
+ (i32.load offset=20
+ (local.get $6)
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $0)
+ (i32.load
+ (i32.const 1224)
)
- (if
- (local.tee $1
- (i32.load offset=20
- (local.get $0)
- )
- )
- (if
- (i32.lt_u
- (local.get $1)
- (i32.load
- (i32.const 1224)
- )
- )
- (call $qa)
- (block
- (i32.store offset=20
- (local.get $11)
- (local.get $1)
- )
- (i32.store offset=24
- (local.get $1)
- (local.get $11)
- )
- )
- )
+ )
+ (call $qa)
+ (block
+ (i32.store offset=20
+ (local.get $8)
+ (local.get $0)
+ )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $8)
)
)
)
)
)
)
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $4)
- (i32.const 1)
- )
+ )
+ )
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $5)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (local.get $2)
+ (local.get $5)
+ )
+ (local.get $5)
+ )
+ (local.set $1
+ (if (result i32)
+ (i32.eq
+ (i32.load
+ (i32.const 1228)
)
+ (local.get $2)
+ )
+ (block
(i32.store
- (i32.add
- (local.get $2)
- (local.get $4)
- )
- (local.get $4)
- )
- (if (result i32)
- (i32.eq
- (i32.load
- (i32.const 1228)
- )
- (local.get $2)
- )
- (block
- (i32.store
- (i32.const 1216)
- (local.get $4)
- )
- (return)
- )
- (local.get $4)
+ (i32.const 1216)
+ (local.get $5)
)
+ (return)
)
+ (local.get $5)
)
)
+ )
+ )
+ (local.set $3
+ (i32.shr_u
+ (local.get $1)
(i32.const 3)
)
)
(if
(i32.lt_u
- (local.get $0)
+ (local.get $1)
(i32.const 256)
)
(block
- (local.set $1
+ (local.set $0
(i32.add
(i32.shl
- (local.get $6)
+ (local.get $3)
(i32.const 3)
)
(i32.const 1248)
@@ -7142,25 +6913,25 @@
)
(if
(i32.and
- (local.tee $7
+ (local.tee $1
(i32.load
(i32.const 1208)
)
)
- (local.tee $4
+ (local.tee $3
(i32.shl
(i32.const 1)
- (local.get $6)
+ (local.get $3)
)
)
)
(if
(i32.lt_u
- (local.tee $7
+ (local.tee $3
(i32.load
- (local.tee $4
+ (local.tee $1
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
@@ -7173,10 +6944,10 @@
(call $qa)
(block
(local.set $15
- (local.get $4)
+ (local.get $1)
)
- (local.set $13
- (local.get $7)
+ (local.set $11
+ (local.get $3)
)
)
)
@@ -7184,18 +6955,18 @@
(i32.store
(i32.const 1208)
(i32.or
- (local.get $4)
- (local.get $7)
+ (local.get $1)
+ (local.get $3)
)
)
(local.set $15
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
- (local.set $13
- (local.get $1)
+ (local.set $11
+ (local.get $0)
)
)
)
@@ -7204,50 +6975,50 @@
(local.get $2)
)
(i32.store offset=12
- (local.get $13)
+ (local.get $11)
(local.get $2)
)
(i32.store offset=8
(local.get $2)
- (local.get $13)
+ (local.get $11)
)
(i32.store offset=12
(local.get $2)
- (local.get $1)
+ (local.get $0)
)
(return)
)
)
- (local.set $4
+ (local.set $3
(i32.add
(i32.shl
- (local.tee $6
+ (local.tee $0
(if (result i32)
- (local.tee $1
+ (local.tee $0
(i32.shr_u
- (local.get $0)
+ (local.get $1)
(i32.const 8)
)
)
(if (result i32)
(i32.gt_u
- (local.get $0)
+ (local.get $1)
(i32.const 16777215)
)
(i32.const 31)
(block (result i32)
- (local.set $1
+ (local.set $0
(i32.and
(i32.shr_u
(i32.add
- (local.tee $15
+ (local.tee $4
(i32.shl
- (local.get $1)
- (local.tee $13
+ (local.get $0)
+ (local.tee $3
(i32.and
(i32.shr_u
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 1048320)
)
(i32.const 16)
@@ -7267,21 +7038,21 @@
(i32.or
(i32.and
(i32.shr_u
- (local.get $0)
+ (local.get $1)
(i32.add
- (local.tee $4
+ (local.tee $0
(i32.add
(i32.sub
(i32.const 14)
(i32.or
- (local.tee $15
+ (local.tee $5
(i32.and
(i32.shr_u
(i32.add
- (local.tee $7
+ (local.tee $4
(i32.shl
- (local.get $15)
- (local.get $1)
+ (local.get $4)
+ (local.get $0)
)
)
(i32.const 245760)
@@ -7292,15 +7063,15 @@
)
)
(i32.or
- (local.get $1)
- (local.get $13)
+ (local.get $0)
+ (local.get $3)
)
)
)
(i32.shr_u
(i32.shl
- (local.get $7)
- (local.get $15)
+ (local.get $4)
+ (local.get $5)
)
(i32.const 15)
)
@@ -7312,7 +7083,7 @@
(i32.const 1)
)
(i32.shl
- (local.get $4)
+ (local.get $0)
(i32.const 1)
)
)
@@ -7328,7 +7099,7 @@
)
(i32.store offset=28
(local.get $2)
- (local.get $6)
+ (local.get $0)
)
(i32.store offset=20
(local.get $2)
@@ -7340,41 +7111,41 @@
)
(if
(i32.and
- (local.tee $7
- (i32.shl
- (i32.const 1)
- (local.get $6)
- )
- )
- (local.tee $15
+ (local.tee $4
(i32.load
(i32.const 1212)
)
)
+ (local.tee $5
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
+ )
)
(block
- (local.set $13
+ (local.set $11
(i32.shl
- (local.get $0)
+ (local.get $1)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (local.get $6)
+ (local.get $0)
(i32.const 1)
)
)
(i32.eq
- (local.get $6)
+ (local.get $0)
(i32.const 31)
)
)
)
)
- (local.set $1
+ (local.set $0
(i32.load
- (local.get $4)
+ (local.get $3)
)
)
(if
@@ -7384,17 +7155,17 @@
(block $while-out14 (result i32)
(if
(i32.eq
- (local.get $0)
+ (local.get $1)
(i32.and
(i32.load offset=4
- (local.get $1)
+ (local.get $0)
)
(i32.const -8)
)
)
(block
- (local.set $17
- (local.get $1)
+ (local.set $16
+ (local.get $0)
)
(br $while-out14
(i32.const 130)
@@ -7402,17 +7173,17 @@
)
)
(if (result i32)
- (local.tee $11
+ (local.tee $3
(i32.load
- (local.tee $6
+ (local.tee $4
(i32.add
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (local.get $13)
+ (local.get $11)
(i32.const 31)
)
(i32.const 2)
@@ -7422,23 +7193,23 @@
)
)
(block
- (local.set $13
+ (local.set $11
(i32.shl
- (local.get $13)
+ (local.get $11)
(i32.const 1)
)
)
- (local.set $1
- (local.get $11)
+ (local.set $0
+ (local.get $3)
)
(br $while-in15)
)
(block (result i32)
- (local.set $18
- (local.get $6)
+ (local.set $17
+ (local.get $4)
)
- (local.set $19
- (local.get $1)
+ (local.set $18
+ (local.get $0)
)
(i32.const 127)
)
@@ -7450,7 +7221,7 @@
)
(if
(i32.lt_u
- (local.get $18)
+ (local.get $17)
(i32.load
(i32.const 1224)
)
@@ -7458,12 +7229,12 @@
(call $qa)
(block
(i32.store
- (local.get $18)
+ (local.get $17)
(local.get $2)
)
(i32.store offset=24
(local.get $2)
- (local.get $19)
+ (local.get $18)
)
(i32.store offset=12
(local.get $2)
@@ -7480,53 +7251,50 @@
(local.get $0)
(i32.const 130)
)
- (block
- (local.set $0
- (local.get $17)
- )
- (if
- (i32.and
- (i32.ge_u
- (local.tee $13
- (i32.load offset=8
- (local.get $0)
- )
- )
- (local.tee $7
- (i32.load
- (i32.const 1224)
+ (if
+ (i32.and
+ (i32.ge_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.tee $0
+ (local.get $16)
)
)
)
- (i32.ge_u
- (local.get $0)
- (local.get $7)
+ (local.tee $3
+ (i32.load
+ (i32.const 1224)
+ )
)
)
- (block
- (i32.store offset=12
- (local.get $13)
- (local.get $2)
- )
- (i32.store offset=8
- (local.get $0)
- (local.get $2)
- )
- (i32.store offset=8
- (local.get $2)
- (local.get $13)
- )
- (i32.store offset=12
- (local.get $2)
- (local.get $17)
- )
- (i32.store offset=24
- (local.get $2)
- (i32.const 0)
- )
+ (i32.ge_u
+ (local.get $0)
+ (local.get $3)
)
- (call $qa)
)
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $2)
+ (local.get $1)
+ )
+ (i32.store offset=12
+ (local.get $2)
+ (local.get $16)
+ )
+ (i32.store offset=24
+ (local.get $2)
+ (i32.const 0)
+ )
+ )
+ (call $qa)
)
)
)
@@ -7535,17 +7303,17 @@
(i32.store
(i32.const 1212)
(i32.or
- (local.get $7)
- (local.get $15)
+ (local.get $4)
+ (local.get $5)
)
)
(i32.store
- (local.get $4)
+ (local.get $3)
(local.get $2)
)
(i32.store offset=24
(local.get $2)
- (local.get $4)
+ (local.get $3)
)
(i32.store offset=12
(local.get $2)
@@ -7559,7 +7327,7 @@
)
(i32.store
(i32.const 1240)
- (local.tee $2
+ (local.tee $0
(i32.add
(i32.load
(i32.const 1240)
@@ -7570,14 +7338,14 @@
)
(local.set $0
(if (result i32)
- (local.get $2)
+ (local.get $0)
(return)
(i32.const 1664)
)
)
(loop $while-in17
(if
- (local.tee $2
+ (local.tee $0
(i32.load
(local.get $0)
)
@@ -7585,7 +7353,7 @@
(block
(local.set $0
(i32.add
- (local.get $2)
+ (local.get $0)
(i32.const 8)
)
)
@@ -7610,9 +7378,7 @@
(local $11 i32)
(local $12 i32)
(local $13 i32)
- (local $14 i32)
- (local $15 i32)
- (local.set $10
+ (local.set $9
(global.get $r)
)
(global.set $r
@@ -7623,129 +7389,123 @@
)
(local.set $7
(i32.add
- (local.get $10)
+ (local.get $9)
(i32.const 16)
)
)
(i32.store
- (local.tee $3
+ (local.tee $4
(i32.add
(local.tee $8
- (local.get $10)
+ (local.get $9)
)
(i32.const 32)
)
)
- (local.tee $4
+ (local.tee $3
(i32.load offset=28
(local.get $0)
)
)
)
(i32.store offset=4
- (local.get $3)
- (local.tee $6
+ (local.get $4)
+ (local.tee $3
(i32.sub
(i32.load offset=20
(local.get $0)
)
- (local.get $4)
+ (local.get $3)
)
)
)
(i32.store offset=8
- (local.get $3)
+ (local.get $4)
(local.get $1)
)
(i32.store offset=12
- (local.get $3)
+ (local.get $4)
(local.get $2)
)
- (local.set $11
- (local.get $0)
- )
- (local.set $12
- (local.get $0)
- )
(local.set $1
- (local.get $3)
+ (local.get $4)
)
- (local.set $3
+ (local.set $4
(i32.const 2)
)
- (local.set $4
+ (local.set $10
(i32.add
(local.get $2)
- (local.get $6)
+ (local.get $3)
)
)
(loop $while-in
(block $while-out
(if
- (i32.eq
- (local.get $4)
- (local.tee $5
- (if (result i32)
- (i32.load
- (i32.const 1160)
- )
- (block (result i32)
- (call $ra
- (i32.const 1)
- (local.get $0)
- )
- (i32.store
- (local.get $8)
- (i32.load offset=60
- (local.get $11)
- )
- )
- (i32.store offset=4
- (local.get $8)
- (local.get $1)
- )
- (i32.store offset=8
- (local.get $8)
- (local.get $3)
- )
- (local.set $6
- (call $Pa
- (call $ya
- (i32.const 146)
- (local.get $8)
- )
- )
- )
- (call $oa
- (i32.const 0)
- )
- (local.get $6)
+ (i32.load
+ (i32.const 1160)
+ )
+ (block
+ (call $ra
+ (i32.const 1)
+ (local.get $0)
+ )
+ (i32.store
+ (local.get $8)
+ (i32.load offset=60
+ (local.get $0)
+ )
+ )
+ (i32.store offset=4
+ (local.get $8)
+ (local.get $1)
+ )
+ (i32.store offset=8
+ (local.get $8)
+ (local.get $4)
+ )
+ (local.set $3
+ (call $Pa
+ (call $ya
+ (i32.const 146)
+ (local.get $8)
)
- (block (result i32)
- (i32.store
- (local.get $7)
- (i32.load offset=60
- (local.get $11)
- )
- )
- (i32.store offset=4
- (local.get $7)
- (local.get $1)
- )
- (i32.store offset=8
- (local.get $7)
- (local.get $3)
- )
- (call $Pa
- (call $ya
- (i32.const 146)
- (local.get $7)
- )
- )
+ )
+ )
+ (call $oa
+ (i32.const 0)
+ )
+ )
+ (block
+ (i32.store
+ (local.get $7)
+ (i32.load offset=60
+ (local.get $0)
+ )
+ )
+ (i32.store offset=4
+ (local.get $7)
+ (local.get $1)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $4)
+ )
+ (local.set $3
+ (call $Pa
+ (call $ya
+ (i32.const 146)
+ (local.get $7)
)
)
)
)
+ )
+ (if
+ (i32.eq
+ (local.get $3)
+ (local.get $10)
+ )
(block
(local.set $1
(i32.const 6)
@@ -7755,123 +7515,125 @@
)
(if
(i32.lt_s
- (local.get $5)
+ (local.get $3)
(i32.const 0)
)
(block
- (local.set $14
+ (local.set $12
(local.get $1)
)
- (local.set $15
- (local.get $3)
+ (local.set $13
+ (local.get $4)
)
(local.set $1
(i32.const 8)
)
- (br $while-out)
- )
- )
- (local.set $6
- (i32.sub
- (local.get $4)
- (local.get $5)
- )
- )
- (if
- (i32.gt_u
- (local.get $5)
- (local.tee $4
- (i32.load offset=4
- (local.get $1)
- )
- )
)
(block
- (i32.store offset=28
- (local.get $0)
- (local.tee $9
- (i32.load offset=44
- (local.get $12)
+ (local.set $5
+ (if (result i32)
+ (i32.gt_u
+ (local.get $3)
+ (local.tee $5
+ (i32.load offset=4
+ (local.get $1)
+ )
+ )
+ )
+ (block (result i32)
+ (i32.store offset=28
+ (local.get $0)
+ (local.tee $6
+ (i32.load offset=44
+ (local.get $0)
+ )
+ )
+ )
+ (i32.store offset=20
+ (local.get $0)
+ (local.get $6)
+ )
+ (local.set $6
+ (i32.load offset=12
+ (local.get $1)
+ )
+ )
+ (local.set $1
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
+ )
+ (local.set $4
+ (i32.add
+ (local.get $4)
+ (i32.const -1)
+ )
+ )
+ (i32.sub
+ (local.get $3)
+ (local.get $5)
+ )
+ )
+ (block (result i32)
+ (if
+ (i32.eq
+ (local.get $4)
+ (i32.const 2)
+ )
+ (block
+ (i32.store offset=28
+ (local.get $0)
+ (i32.add
+ (local.get $3)
+ (i32.load offset=28
+ (local.get $0)
+ )
+ )
+ )
+ (local.set $6
+ (local.get $5)
+ )
+ (local.set $4
+ (i32.const 2)
+ )
+ )
+ (local.set $6
+ (local.get $5)
+ )
+ )
+ (local.get $3)
)
)
)
- (i32.store offset=20
- (local.get $0)
- (local.get $9)
- )
- (local.set $9
- (i32.load offset=12
- (local.get $1)
+ (i32.store
+ (local.get $1)
+ (i32.add
+ (local.get $5)
+ (i32.load
+ (local.get $1)
+ )
)
)
- (local.set $5
+ (i32.store offset=4
+ (local.get $1)
(i32.sub
+ (local.get $6)
(local.get $5)
- (local.get $4)
)
)
- (local.set $1
- (i32.add
- (local.get $1)
- (i32.const 8)
- )
- )
- (local.set $3
- (i32.add
- (local.get $3)
- (i32.const -1)
- )
- )
- )
- (block
- (if
- (i32.eq
+ (local.set $10
+ (i32.sub
+ (local.get $10)
(local.get $3)
- (i32.const 2)
- )
- (block
- (i32.store offset=28
- (local.get $0)
- (i32.add
- (local.get $5)
- (i32.load offset=28
- (local.get $0)
- )
- )
- )
- (local.set $3
- (i32.const 2)
- )
)
)
- (local.set $9
- (local.get $4)
- )
+ (br $while-in)
)
)
- (i32.store
- (local.get $1)
- (i32.add
- (local.get $5)
- (i32.load
- (local.get $1)
- )
- )
- )
- (i32.store offset=4
- (local.get $1)
- (i32.sub
- (local.get $9)
- (local.get $5)
- )
- )
- (local.set $4
- (local.get $6)
- )
- (br $while-in)
)
)
- (local.set $13
+ (local.set $11
(if (result i32)
(i32.eq
(local.get $1)
@@ -7881,9 +7643,9 @@
(i32.store offset=16
(local.get $0)
(i32.add
- (local.tee $4
+ (local.tee $1
(i32.load offset=44
- (local.get $12)
+ (local.get $0)
)
)
(i32.load offset=48
@@ -7893,11 +7655,11 @@
)
(i32.store offset=28
(local.get $0)
- (local.get $4)
+ (local.get $1)
)
(i32.store offset=20
(local.get $0)
- (local.get $4)
+ (local.get $1)
)
(local.get $2)
)
@@ -7930,26 +7692,26 @@
)
(if (result i32)
(i32.eq
- (local.get $15)
+ (local.get $13)
(i32.const 2)
)
(i32.const 0)
(i32.sub
(local.get $2)
(i32.load offset=4
- (local.get $14)
+ (local.get $12)
)
)
)
)
- (local.get $13)
+ (local.get $11)
)
)
)
(global.set $r
- (local.get $10)
+ (local.get $9)
)
- (local.get $13)
+ (local.get $11)
)
(func $Wa (; 16 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
@@ -7957,14 +7719,10 @@
(local $4 i32)
(local $5 i32)
(local $6 i32)
- (local $7 i32)
- (local.set $6
+ (local.set $5
(i32.const 1144)
)
(local.set $3
- (local.get $1)
- )
- (local.set $5
(if (result i32)
(local.tee $4
(i32.load offset=16
@@ -7972,7 +7730,7 @@
)
)
(block (result i32)
- (local.set $7
+ (local.set $6
(i32.const 5)
)
(local.get $4)
@@ -7981,13 +7739,13 @@
(call $Xa
(local.get $1)
)
- (local.get $5)
+ (local.get $3)
(block (result i32)
- (local.set $7
+ (local.set $6
(i32.const 5)
)
(i32.load offset=16
- (local.get $3)
+ (local.get $1)
)
)
)
@@ -7995,15 +7753,15 @@
)
(if
(i32.eq
- (local.get $7)
+ (local.get $6)
(i32.const 5)
)
(block $label$break$a
(if
(i32.lt_u
(i32.sub
- (local.get $5)
- (local.tee $2
+ (local.get $3)
+ (local.tee $3
(i32.load offset=20
(local.get $1)
)
@@ -8031,9 +7789,6 @@
(br $label$break$a)
)
)
- (local.set $4
- (local.get $2)
- )
(if
(i32.gt_s
(i32.load8_s offset=75
@@ -8061,7 +7816,7 @@
(i32.ne
(i32.load8_s
(i32.add
- (local.tee $5
+ (local.tee $4
(i32.add
(local.get $2)
(i32.const -1)
@@ -8074,7 +7829,7 @@
)
(block
(local.set $2
- (local.get $5)
+ (local.get $4)
)
(br $while-in)
)
@@ -8105,35 +7860,32 @@
(local.get $2)
)
)
- (local.set $6
+ (local.set $5
(i32.add
(local.get $2)
(i32.const 1144)
)
)
- (local.set $4
+ (local.set $3
(i32.load offset=20
- (local.get $3)
+ (local.get $1)
)
)
)
- (local.set $2
- (i32.const 0)
- )
)
(drop
(call $jb
- (local.get $4)
- (local.get $6)
+ (local.get $3)
+ (local.get $5)
(local.get $0)
)
)
(i32.store offset=20
- (local.get $3)
+ (local.get $1)
(i32.add
(local.get $0)
(i32.load offset=20
- (local.get $3)
+ (local.get $1)
)
)
)
@@ -8157,48 +7909,48 @@
(i32.const 1144)
)
(block
- (local.set $1
+ (local.set $4
(i32.const 1144)
)
- (local.set $2
+ (local.set $1
(i32.const 4)
)
)
(i32.sub
(if (result i32)
(i32.eq
- (local.get $2)
+ (local.get $1)
(i32.const 4)
)
(block (result i32)
- (local.set $2
- (local.get $1)
+ (local.set $1
+ (local.get $4)
)
(local.set $0
(loop $while-in1 (result i32)
(if (result i32)
(i32.and
(i32.add
- (local.tee $1
+ (local.tee $2
(i32.load
- (local.get $2)
+ (local.get $1)
)
)
(i32.const -16843009)
)
(i32.xor
(i32.and
- (local.get $1)
+ (local.get $2)
(i32.const -2139062144)
)
(i32.const -2139062144)
)
)
- (local.get $2)
+ (local.get $1)
(block
- (local.set $2
+ (local.set $1
(i32.add
- (local.get $2)
+ (local.get $1)
(i32.const 4)
)
)
@@ -8209,28 +7961,17 @@
)
(if
(i32.and
- (local.get $1)
+ (local.get $2)
(i32.const 255)
)
- (block
- (local.set $1
- (local.get $0)
- )
- (loop $while-in3
- (if
- (i32.load8_s
- (local.tee $0
- (i32.add
- (local.get $1)
- (i32.const 1)
- )
- )
- )
- (block
- (local.set $1
+ (loop $while-in3
+ (br_if $while-in3
+ (i32.load8_s
+ (local.tee $0
+ (i32.add
(local.get $0)
+ (i32.const 1)
)
- (br $while-in3)
)
)
)
@@ -8238,35 +7979,36 @@
)
(local.get $0)
)
- (local.get $4)
+ (local.get $2)
)
(i32.const 1144)
)
)
(func $_a (; 18 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
- (local $2 i32)
- (if (result i32)
+ (if
(local.get $0)
- (block $do-once (result i32)
- (if
- (i32.le_s
- (i32.load offset=76
- (local.get $0)
+ (local.set $0
+ (block $do-once (result i32)
+ (if
+ (i32.le_s
+ (i32.load offset=76
+ (local.get $0)
+ )
+ (i32.const -1)
)
- (i32.const -1)
- )
- (br $do-once
- (call $$a
- (local.get $0)
+ (br $do-once
+ (call $$a
+ (local.get $0)
+ )
)
)
- )
- (call $$a
- (local.get $0)
+ (call $$a
+ (local.get $0)
+ )
)
)
- (block (result i32)
+ (block
(local.set $0
(if (result i32)
(i32.load
@@ -8289,56 +8031,45 @@
(i32.const 1184)
)
)
- (block
- (local.set $2
- (local.get $1)
- )
- (local.set $1
- (local.get $0)
+ (loop $while-in
+ (drop
+ (i32.load offset=76
+ (local.get $1)
+ )
)
- (loop $while-in
- (drop
- (i32.load offset=76
- (local.get $2)
+ (if
+ (i32.gt_u
+ (i32.load offset=20
+ (local.get $1)
)
- )
- (if
- (i32.gt_u
- (i32.load offset=20
- (local.get $2)
- )
- (i32.load offset=28
- (local.get $2)
- )
+ (i32.load offset=28
+ (local.get $1)
)
- (local.set $1
- (i32.or
- (call $$a
- (local.get $2)
- )
+ )
+ (local.set $0
+ (i32.or
+ (call $$a
(local.get $1)
)
+ (local.get $0)
)
)
- (br_if $while-in
- (local.tee $2
- (i32.load offset=56
- (local.get $2)
- )
+ )
+ (br_if $while-in
+ (local.tee $1
+ (i32.load offset=56
+ (local.get $1)
)
)
)
)
- (local.set $1
- (local.get $0)
- )
)
(call $xa
(i32.const 1188)
)
- (local.get $1)
)
)
+ (local.get $0)
)
(func $ab (; 19 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
@@ -8347,7 +8078,6 @@
(local $4 i32)
(local $5 i32)
(local $6 i32)
- (local $7 i32)
(local.set $3
(global.get $r)
)
@@ -8363,18 +8093,15 @@
)
(i32.const 10)
)
- (local.set $7
- (local.get $0)
- )
(if
- (local.tee $2
+ (local.tee $1
(i32.load offset=16
(local.get $0)
)
)
(block
(local.set $5
- (local.get $2)
+ (local.get $1)
)
(local.set $6
(i32.const 4)
@@ -8384,13 +8111,13 @@
(call $Xa
(local.get $0)
)
- (local.set $1
+ (local.set $2
(i32.const -1)
)
(block
(local.set $5
(i32.load offset=16
- (local.get $7)
+ (local.get $0)
)
)
(local.set $6
@@ -8404,45 +8131,42 @@
(local.get $6)
(i32.const 4)
)
- (local.set $1
- (block $do-once (result i32)
- (local.set $1
- (local.get $0)
+ (block $do-once
+ (if
+ (i32.lt_u
+ (local.tee $1
+ (i32.load offset=20
+ (local.get $0)
+ )
+ )
+ (local.get $5)
)
(if
- (i32.lt_u
+ (i32.ne
(local.tee $2
- (i32.load offset=20
- (local.get $0)
- )
- )
- (local.get $5)
- )
- (if
- (i32.ne
- (i32.load8_s offset=75
- (local.get $0)
- )
(i32.const 10)
)
- (block
- (i32.store offset=20
+ (i32.load8_s offset=75
+ (local.get $0)
+ )
+ )
+ (block
+ (i32.store offset=20
+ (local.get $0)
+ (i32.add
(local.get $1)
- (i32.add
- (local.get $2)
- (i32.const 1)
- )
- )
- (i32.store8
- (local.get $2)
- (i32.const 10)
- )
- (br $do-once
- (i32.const 10)
+ (i32.const 1)
)
)
+ (i32.store8
+ (local.get $1)
+ (i32.const 10)
+ )
+ (br $do-once)
)
)
+ )
+ (local.set $2
(if (result i32)
(i32.eq
(call_indirect (type $FUNCSIG$iiii)
@@ -8472,12 +8196,11 @@
(global.set $r
(local.get $3)
)
- (local.get $1)
+ (local.get $2)
)
(func $$a (; 20 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
- (local $3 i32)
(if
(i32.gt_u
(i32.load offset=20
@@ -8526,17 +8249,14 @@
(i32.const 3)
)
(block (result i32)
- (local.set $1
- (local.get $0)
- )
(if
(i32.lt_u
- (local.tee $2
+ (local.tee $1
(i32.load offset=4
(local.get $0)
)
)
- (local.tee $3
+ (local.tee $2
(i32.load offset=8
(local.get $0)
)
@@ -8546,8 +8266,8 @@
(call_indirect (type $FUNCSIG$iiii)
(local.get $0)
(i32.sub
+ (local.get $1)
(local.get $2)
- (local.get $3)
)
(i32.const 1)
(i32.add
@@ -8579,7 +8299,7 @@
(i32.const 0)
)
(i32.store offset=4
- (local.get $1)
+ (local.get $0)
(i32.const 0)
)
(i32.const 0)
@@ -9168,7 +8888,7 @@
)
)
)
- (local.set $3
+ (local.set $0
(call $Ra
(local.get $0)
(local.get $1)
@@ -9178,7 +8898,7 @@
(global.set $r
(local.get $4)
)
- (local.get $3)
+ (local.get $0)
)
(func $Oa (; 29 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
diff --git a/test/memorygrowth.fromasm.clamp b/test/memorygrowth.fromasm.clamp
index dbf763a92..349fddb52 100644
--- a/test/memorygrowth.fromasm.clamp
+++ b/test/memorygrowth.fromasm.clamp
@@ -103,14 +103,7 @@
(local $45 i32)
(local $46 i32)
(local $47 i32)
- (local $48 i32)
- (local $49 i32)
- (local $50 i32)
- (local $51 i32)
- (local $52 i32)
- (local $53 i32)
- (local $54 i32)
- (local.set $25
+ (local.set $18
(global.get $r)
)
(global.set $r
@@ -119,1245 +112,1210 @@
(i32.const 16)
)
)
- (local.set $13
- (local.get $25)
- )
- (local.set $3
- (if (result i32)
- (i32.lt_u
- (local.get $0)
- (i32.const 245)
- )
- (block (result i32)
- (if
- (i32.and
- (local.tee $1
- (i32.shr_u
- (local.tee $4
- (i32.load
- (i32.const 1208)
- )
+ (if
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 245)
+ )
+ (block
+ (if
+ (i32.and
+ (local.tee $10
+ (i32.shr_u
+ (local.tee $12
+ (i32.load
+ (i32.const 1208)
)
- (local.tee $0
- (i32.shr_u
- (local.tee $2
- (select
- (i32.const 16)
- (i32.and
- (i32.add
- (local.get $0)
- (i32.const 11)
- )
- (i32.const -8)
- )
- (i32.lt_u
+ )
+ (local.tee $2
+ (i32.shr_u
+ (local.tee $4
+ (select
+ (i32.const 16)
+ (i32.and
+ (i32.add
(local.get $0)
(i32.const 11)
)
+ (i32.const -8)
+ )
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 11)
)
)
- (i32.const 3)
)
+ (i32.const 3)
)
)
)
- (i32.const 3)
)
- (block
- (local.set $1
- (local.tee $6
+ (i32.const 3)
+ )
+ (block
+ (local.set $0
+ (i32.load
+ (local.tee $2
(i32.add
- (i32.shl
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.xor
- (i32.and
- (local.get $1)
- (i32.const 1)
+ (local.tee $4
+ (i32.load offset=8
+ (local.tee $1
+ (i32.add
+ (i32.shl
+ (local.tee $3
+ (i32.add
+ (local.get $2)
+ (i32.xor
+ (i32.and
+ (local.get $10)
+ (i32.const 1)
+ )
+ (i32.const 1)
+ )
+ )
+ )
+ (i32.const 3)
)
- (i32.const 1)
+ (i32.const 1248)
)
)
)
- (i32.const 3)
)
- (i32.const 1248)
+ (i32.const 8)
)
)
)
- (if
- (i32.eq
- (local.get $6)
- (local.tee $8
- (i32.load
- (local.tee $2
- (i32.add
- (local.tee $14
- (i32.load offset=8
- (local.get $1)
- )
- )
- (i32.const 8)
- )
- )
+ )
+ (if
+ (i32.eq
+ (local.get $0)
+ (local.get $1)
+ )
+ (i32.store
+ (i32.const 1208)
+ (i32.and
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $3)
)
+ (i32.const -1)
)
+ (local.get $12)
)
- (i32.store
- (i32.const 1208)
- (i32.and
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $3)
- )
- (i32.const -1)
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $0)
+ (i32.load
+ (i32.const 1224)
)
- (local.get $4)
)
+ (call $qa)
)
- (block
- (if
- (i32.lt_u
- (local.get $8)
- (i32.load
- (i32.const 1224)
- )
+ (if
+ (i32.eq
+ (local.get $4)
+ (i32.load offset=12
+ (local.get $0)
)
- (call $qa)
)
- (local.set $0
- (local.get $8)
- )
- (if
- (i32.eq
- (local.get $14)
- (i32.load offset=12
- (local.get $0)
- )
+ (block
+ (i32.store offset=12
+ (local.get $0)
+ (local.get $1)
)
- (block
- (i32.store offset=12
- (local.get $0)
- (local.get $6)
- )
- (i32.store offset=8
- (local.get $1)
- (local.get $8)
- )
+ (i32.store offset=8
+ (local.get $1)
+ (local.get $0)
)
- (call $qa)
)
+ (call $qa)
)
)
- (i32.store offset=4
- (local.get $14)
- (i32.or
- (local.tee $8
- (i32.shl
- (local.get $3)
- (i32.const 3)
- )
+ )
+ (i32.store offset=4
+ (local.get $4)
+ (i32.or
+ (local.tee $0
+ (i32.shl
+ (local.get $3)
+ (i32.const 3)
)
- (i32.const 3)
)
+ (i32.const 3)
)
- (local.set $0
+ )
+ (i32.store offset=4
+ (local.tee $0
(i32.add
- (local.get $8)
- (local.get $14)
+ (local.get $0)
+ (local.get $4)
)
)
- (i32.store offset=4
- (local.get $0)
- (i32.or
- (i32.load offset=4
- (local.get $0)
- )
- (i32.const 1)
+ (i32.or
+ (i32.load offset=4
+ (local.get $0)
)
- )
- (global.set $r
- (local.get $25)
- )
- (return
- (local.get $2)
+ (i32.const 1)
)
)
- )
- (if (result i32)
- (i32.gt_u
+ (global.set $r
+ (local.get $18)
+ )
+ (return
(local.get $2)
- (local.tee $18
- (i32.load
- (i32.const 1216)
- )
+ )
+ )
+ )
+ (if
+ (i32.gt_u
+ (local.get $4)
+ (local.tee $0
+ (i32.load
+ (i32.const 1216)
)
)
- (block (result i32)
- (if
- (local.get $1)
- (block
- (local.set $6
- (i32.and
- (i32.shr_u
- (local.tee $8
- (i32.add
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $6
- (i32.and
- (i32.or
- (i32.sub
- (i32.const 0)
- (local.tee $8
- (i32.shl
- (i32.const 2)
- (local.get $0)
- )
+ )
+ (block
+ (if
+ (local.get $10)
+ (block
+ (local.set $1
+ (i32.and
+ (i32.shr_u
+ (local.tee $3
+ (i32.add
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.and
+ (i32.or
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.shl
+ (i32.const 2)
+ (local.get $2)
)
)
- (local.get $8)
- )
- (i32.shl
- (local.get $1)
- (local.get $0)
)
+ (local.get $1)
+ )
+ (i32.shl
+ (local.get $10)
+ (local.get $2)
)
)
)
- (local.get $6)
)
- (i32.const -1)
+ (local.get $1)
)
+ (i32.const -1)
)
- (i32.const 12)
)
- (i32.const 16)
+ (i32.const 12)
)
+ (i32.const 16)
)
- (local.set $8
- (i32.and
- (i32.shr_u
- (local.tee $7
- (i32.shr_u
- (local.get $8)
- (local.get $6)
- )
+ )
+ (local.set $3
+ (i32.and
+ (i32.shr_u
+ (local.tee $2
+ (i32.shr_u
+ (local.get $3)
+ (local.get $1)
)
- (i32.const 5)
)
- (i32.const 8)
+ (i32.const 5)
)
+ (i32.const 8)
)
- (local.set $7
- (i32.and
- (i32.shr_u
- (local.tee $10
- (i32.shr_u
- (local.get $7)
- (local.get $8)
- )
+ )
+ (local.set $2
+ (i32.and
+ (i32.shr_u
+ (local.tee $5
+ (i32.shr_u
+ (local.get $2)
+ (local.get $3)
)
- (i32.const 2)
)
- (i32.const 4)
+ (i32.const 2)
)
+ (i32.const 4)
)
- (local.set $10
- (i32.and
- (i32.shr_u
- (local.tee $3
- (i32.shr_u
- (local.get $10)
- (local.get $7)
- )
+ )
+ (local.set $5
+ (i32.and
+ (i32.shr_u
+ (local.tee $7
+ (i32.shr_u
+ (local.get $5)
+ (local.get $2)
)
- (i32.const 1)
)
- (i32.const 2)
+ (i32.const 1)
)
+ (i32.const 2)
)
- (local.set $8
- (local.tee $3
+ )
+ (local.set $1
+ (i32.load
+ (local.tee $6
(i32.add
- (i32.shl
- (local.tee $16
- (i32.add
- (i32.or
- (local.tee $3
- (i32.and
- (i32.shr_u
- (local.tee $14
- (i32.shr_u
- (local.get $3)
- (local.get $10)
+ (local.tee $2
+ (i32.load offset=8
+ (local.tee $3
+ (i32.add
+ (i32.shl
+ (local.tee $5
+ (i32.add
+ (i32.or
+ (local.tee $6
+ (i32.and
+ (i32.shr_u
+ (local.tee $7
+ (i32.shr_u
+ (local.get $7)
+ (local.get $5)
+ )
+ )
+ (i32.const 1)
+ )
+ (i32.const 1)
+ )
+ )
+ (i32.or
+ (local.get $5)
+ (i32.or
+ (local.get $2)
+ (i32.or
+ (local.get $1)
+ (local.get $3)
+ )
+ )
)
)
- (i32.const 1)
- )
- (i32.const 1)
- )
- )
- (i32.or
- (local.get $10)
- (i32.or
- (local.get $7)
- (i32.or
- (local.get $6)
- (local.get $8)
+ (i32.shr_u
+ (local.get $7)
+ (local.get $6)
+ )
)
)
+ (i32.const 3)
)
- )
- (i32.shr_u
- (local.get $14)
- (local.get $3)
+ (i32.const 1248)
)
)
)
- (i32.const 3)
)
- (i32.const 1248)
+ (i32.const 8)
)
)
)
- (if
- (i32.eq
- (local.tee $6
- (i32.load
- (local.tee $7
- (i32.add
- (local.tee $10
- (i32.load offset=8
- (local.get $8)
- )
- )
- (i32.const 8)
- )
+ )
+ (if
+ (i32.eq
+ (local.get $1)
+ (local.get $3)
+ )
+ (block
+ (i32.store
+ (i32.const 1208)
+ (i32.and
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $5)
)
+ (i32.const -1)
)
+ (local.get $12)
)
- (local.get $3)
)
- (block
- (i32.store
- (i32.const 1208)
- (i32.and
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $16)
- )
- (i32.const -1)
- )
- (local.get $4)
+ (local.set $13
+ (local.get $0)
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (i32.load
+ (i32.const 1224)
)
)
- (local.set $34
- (local.get $18)
- )
+ (call $qa)
)
- (block
- (if
- (i32.lt_u
- (local.get $6)
- (i32.load
- (i32.const 1224)
- )
+ (if
+ (i32.eq
+ (local.get $2)
+ (i32.load offset=12
+ (local.get $1)
)
- (call $qa)
- )
- (local.set $0
- (local.get $6)
)
- (if
- (i32.eq
- (local.get $10)
- (i32.load offset=12
- (local.get $0)
- )
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $3)
)
- (block
- (i32.store offset=12
- (local.get $0)
- (local.get $3)
- )
- (i32.store offset=8
- (local.get $8)
- (local.get $6)
- )
- (local.set $34
- (i32.load
- (i32.const 1216)
- )
+ (i32.store offset=8
+ (local.get $3)
+ (local.get $1)
+ )
+ (local.set $13
+ (i32.load
+ (i32.const 1216)
)
)
- (call $qa)
)
+ (call $qa)
)
)
- (i32.store offset=4
- (local.get $10)
- (i32.or
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $4)
+ (i32.const 3)
+ )
+ )
+ (i32.store offset=4
+ (local.tee $7
+ (i32.add
(local.get $2)
- (i32.const 3)
+ (local.get $4)
)
)
- (i32.store offset=4
- (local.tee $14
- (i32.add
- (local.get $2)
- (local.get $10)
- )
- )
- (i32.or
- (local.tee $6
- (i32.sub
- (i32.shl
- (local.get $16)
- (i32.const 3)
- )
- (local.get $2)
+ (i32.or
+ (local.tee $2
+ (i32.sub
+ (i32.shl
+ (local.get $5)
+ (i32.const 3)
)
+ (local.get $4)
)
- (i32.const 1)
)
+ (i32.const 1)
)
- (i32.store
- (i32.add
- (local.get $6)
- (local.get $14)
- )
- (local.get $6)
+ )
+ (i32.store
+ (i32.add
+ (local.get $2)
+ (local.get $7)
)
- (if
- (local.get $34)
- (block
- (local.set $3
- (i32.load
- (i32.const 1228)
- )
+ (local.get $2)
+ )
+ (if
+ (local.get $13)
+ (block
+ (local.set $3
+ (i32.load
+ (i32.const 1228)
)
- (local.set $4
- (i32.add
- (i32.shl
- (local.tee $18
- (i32.shr_u
- (local.get $34)
- (i32.const 3)
- )
+ )
+ (local.set $0
+ (i32.add
+ (i32.shl
+ (local.tee $1
+ (i32.shr_u
+ (local.get $13)
+ (i32.const 3)
)
- (i32.const 3)
)
- (i32.const 1248)
+ (i32.const 3)
)
+ (i32.const 1248)
)
- (if
- (i32.and
- (local.tee $0
- (i32.load
- (i32.const 1208)
- )
+ )
+ (if
+ (i32.and
+ (local.tee $4
+ (i32.load
+ (i32.const 1208)
)
- (local.tee $1
- (i32.shl
- (i32.const 1)
- (local.get $18)
- )
+ )
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
)
)
- (if
- (i32.lt_u
- (local.tee $0
- (i32.load
- (local.tee $1
- (i32.add
- (local.get $4)
- (i32.const 8)
- )
+ )
+ (if
+ (i32.lt_u
+ (local.tee $4
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
)
)
)
- (i32.load
- (i32.const 1224)
- )
)
- (call $qa)
- (block
- (local.set $40
- (local.get $1)
- )
- (local.set $35
- (local.get $0)
- )
+ (i32.load
+ (i32.const 1224)
)
)
+ (call $qa)
(block
- (i32.store
- (i32.const 1208)
- (i32.or
- (local.get $0)
- (local.get $1)
- )
- )
- (local.set $40
- (i32.add
- (local.get $4)
- (i32.const 8)
- )
+ (local.set $20
+ (local.get $1)
)
- (local.set $35
+ (local.set $8
(local.get $4)
)
)
)
- (i32.store
- (local.get $40)
- (local.get $3)
- )
- (i32.store offset=12
- (local.get $35)
- (local.get $3)
- )
- (i32.store offset=8
- (local.get $3)
- (local.get $35)
- )
- (i32.store offset=12
- (local.get $3)
- (local.get $4)
+ (block
+ (i32.store
+ (i32.const 1208)
+ (i32.or
+ (local.get $1)
+ (local.get $4)
+ )
+ )
+ (local.set $20
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
+ )
+ (local.set $8
+ (local.get $0)
+ )
)
)
- )
- (i32.store
- (i32.const 1216)
- (local.get $6)
- )
- (i32.store
- (i32.const 1228)
- (local.get $14)
- )
- (global.set $r
- (local.get $25)
- )
- (return
- (local.get $7)
+ (i32.store
+ (local.get $20)
+ (local.get $3)
+ )
+ (i32.store offset=12
+ (local.get $8)
+ (local.get $3)
+ )
+ (i32.store offset=8
+ (local.get $3)
+ (local.get $8)
+ )
+ (i32.store offset=12
+ (local.get $3)
+ (local.get $0)
+ )
)
)
+ (i32.store
+ (i32.const 1216)
+ (local.get $2)
+ )
+ (i32.store
+ (i32.const 1228)
+ (local.get $7)
+ )
+ (global.set $r
+ (local.get $18)
+ )
+ (return
+ (local.get $6)
+ )
)
- (if (result i32)
- (local.tee $14
- (i32.load
- (i32.const 1212)
- )
+ )
+ (if
+ (local.tee $0
+ (i32.load
+ (i32.const 1212)
)
- (block
- (local.set $14
- (i32.and
- (i32.shr_u
- (local.tee $6
- (i32.add
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.get $14)
- )
- (local.get $14)
+ )
+ (block
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (local.tee $1
+ (i32.add
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.get $0)
)
- (i32.const -1)
+ (local.get $0)
)
+ (i32.const -1)
)
- (i32.const 12)
)
- (i32.const 16)
+ (i32.const 12)
)
+ (i32.const 16)
)
- (local.set $6
- (i32.and
- (i32.shr_u
- (local.tee $4
- (i32.shr_u
- (local.get $6)
- (local.get $14)
- )
+ )
+ (local.set $1
+ (i32.and
+ (i32.shr_u
+ (local.tee $3
+ (i32.shr_u
+ (local.get $1)
+ (local.get $0)
)
- (i32.const 5)
)
- (i32.const 8)
+ (i32.const 5)
)
+ (i32.const 8)
)
- (local.set $4
- (i32.and
- (i32.shr_u
- (local.tee $3
- (i32.shr_u
- (local.get $4)
- (local.get $6)
- )
+ )
+ (local.set $3
+ (i32.and
+ (i32.shr_u
+ (local.tee $2
+ (i32.shr_u
+ (local.get $3)
+ (local.get $1)
)
- (i32.const 2)
)
- (i32.const 4)
+ (i32.const 2)
)
+ (i32.const 4)
)
- (local.set $3
- (i32.and
- (i32.shr_u
- (local.tee $0
- (i32.shr_u
- (local.get $3)
- (local.get $4)
- )
+ )
+ (local.set $2
+ (i32.and
+ (i32.shr_u
+ (local.tee $8
+ (i32.shr_u
+ (local.get $2)
+ (local.get $3)
)
- (i32.const 1)
)
- (i32.const 2)
+ (i32.const 1)
)
+ (i32.const 2)
)
- (local.set $0
- (i32.sub
- (i32.and
- (i32.load offset=4
- (local.tee $18
- (i32.load
- (i32.add
- (i32.shl
- (i32.add
- (i32.or
- (local.tee $0
- (i32.and
- (i32.shr_u
- (local.tee $1
- (i32.shr_u
- (local.get $0)
- (local.get $3)
- )
+ )
+ (local.set $7
+ (i32.sub
+ (i32.and
+ (i32.load offset=4
+ (local.tee $0
+ (i32.load
+ (i32.add
+ (i32.shl
+ (i32.add
+ (i32.or
+ (local.tee $7
+ (i32.and
+ (i32.shr_u
+ (local.tee $8
+ (i32.shr_u
+ (local.get $8)
+ (local.get $2)
)
- (i32.const 1)
)
(i32.const 1)
)
+ (i32.const 1)
)
+ )
+ (i32.or
+ (local.get $2)
(i32.or
(local.get $3)
(i32.or
- (local.get $4)
- (i32.or
- (local.get $6)
- (local.get $14)
- )
+ (local.get $0)
+ (local.get $1)
)
)
)
- (i32.shr_u
- (local.get $1)
- (local.get $0)
- )
)
- (i32.const 2)
+ (i32.shr_u
+ (local.get $8)
+ (local.get $7)
+ )
)
- (i32.const 1512)
+ (i32.const 2)
)
+ (i32.const 1512)
)
)
)
- (i32.const -8)
)
- (local.get $2)
- )
- )
- (local.set $3
- (local.tee $1
- (local.get $18)
+ (i32.const -8)
)
+ (local.get $4)
)
- (loop $while-in
- (block $while-out
- (local.set $4
- (i32.lt_u
- (local.tee $18
- (i32.sub
- (i32.and
- (i32.load offset=4
- (local.tee $1
- (if (result i32)
- (local.tee $18
- (i32.load offset=16
- (local.get $1)
- )
- )
- (local.get $18)
- (if (result i32)
- (local.tee $4
- (i32.load offset=20
- (local.get $1)
- )
- )
- (local.get $4)
- (block
- (local.set $6
- (local.get $0)
- )
- (local.set $9
- (local.get $3)
- )
- (br $while-out)
- )
- )
- )
- )
- )
- (i32.const -8)
- )
- (local.get $2)
- )
- )
+ )
+ (local.set $9
+ (local.get $0)
+ )
+ (loop $while-in
+ (block $while-out
+ (if
+ (local.tee $1
+ (i32.load offset=16
(local.get $0)
)
)
(local.set $0
- (select
- (local.get $18)
- (local.get $0)
- (local.get $4)
- )
+ (local.get $1)
)
- (local.set $3
- (select
- (local.get $1)
- (local.get $3)
- (local.get $4)
+ (if
+ (i32.eqz
+ (local.tee $0
+ (i32.load offset=20
+ (local.get $0)
+ )
+ )
+ )
+ (block
+ (local.set $8
+ (local.get $9)
+ )
+ (br $while-out)
)
)
- (br $while-in)
)
- )
- (if
- (i32.lt_u
- (local.get $9)
- (local.tee $3
- (i32.load
- (i32.const 1224)
+ (local.set $1
+ (i32.lt_u
+ (local.tee $3
+ (i32.sub
+ (i32.and
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const -8)
+ )
+ (local.get $4)
+ )
)
+ (local.get $7)
)
)
- (call $qa)
+ (local.set $7
+ (select
+ (local.get $3)
+ (local.get $7)
+ (local.get $1)
+ )
+ )
+ (local.set $9
+ (select
+ (local.get $0)
+ (local.get $9)
+ (local.get $1)
+ )
+ )
+ (br $while-in)
)
- (if
- (i32.ge_u
- (local.get $9)
- (local.tee $1
- (i32.add
- (local.get $2)
- (local.get $9)
- )
+ )
+ (if
+ (i32.lt_u
+ (local.get $8)
+ (local.tee $14
+ (i32.load
+ (i32.const 1224)
)
)
- (call $qa)
)
- (local.set $0
- (i32.load offset=24
- (local.get $9)
+ (call $qa)
+ )
+ (if
+ (i32.ge_u
+ (local.get $8)
+ (local.tee $12
+ (i32.add
+ (local.get $4)
+ (local.get $8)
+ )
)
)
- (if
- (i32.eq
- (local.tee $7
- (i32.load offset=12
- (local.get $9)
- )
+ (call $qa)
+ )
+ (local.set $10
+ (i32.load offset=24
+ (local.get $8)
+ )
+ )
+ (if
+ (i32.eq
+ (local.get $8)
+ (local.tee $0
+ (i32.load offset=12
+ (local.get $8)
)
- (local.get $9)
)
- (block $do-once4
- (if
- (local.tee $16
+ )
+ (block $do-once4
+ (if
+ (i32.eqz
+ (local.tee $0
(i32.load
- (local.tee $10
+ (local.tee $1
(i32.add
- (local.get $9)
+ (local.get $8)
(i32.const 20)
)
)
)
)
- (block
- (local.set $18
- (local.get $16)
- )
- (local.set $4
- (local.get $10)
- )
- )
- (br_if $do-once4
- (i32.eqz
- (local.tee $18
- (i32.load
- (local.tee $4
- (i32.add
- (local.get $9)
- (i32.const 16)
- )
- )
- )
- )
- )
- )
)
- (loop $while-in7
- (if
- (local.tee $16
+ (br_if $do-once4
+ (i32.eqz
+ (local.tee $0
(i32.load
- (local.tee $10
+ (local.tee $1
(i32.add
- (local.get $18)
- (i32.const 20)
+ (local.get $8)
+ (i32.const 16)
)
)
)
)
- (block
- (local.set $18
- (local.get $16)
- )
- (local.set $4
- (local.get $10)
- )
- (br $while-in7)
- )
)
- (if
- (local.tee $16
- (i32.load
- (local.tee $10
- (i32.add
- (local.get $18)
- (i32.const 16)
- )
+ )
+ )
+ (loop $while-in7
+ (if
+ (local.tee $2
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.get $0)
+ (i32.const 20)
)
)
)
- (block
- (local.set $18
- (local.get $16)
- )
- (local.set $4
- (local.get $10)
- )
- (br $while-in7)
+ )
+ (block
+ (local.set $0
+ (local.get $2)
)
+ (local.set $1
+ (local.get $3)
+ )
+ (br $while-in7)
)
)
(if
- (i32.lt_u
- (local.get $4)
- (local.get $3)
+ (local.tee $2
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ )
+ )
)
- (call $qa)
(block
- (i32.store
- (local.get $4)
- (i32.const 0)
+ (local.set $0
+ (local.get $2)
)
- (local.set $23
- (local.get $18)
+ (local.set $1
+ (local.get $3)
)
+ (br $while-in7)
)
)
)
- (block
- (if
- (i32.lt_u
- (local.tee $10
- (i32.load offset=8
- (local.get $9)
- )
- )
- (local.get $3)
- )
- (call $qa)
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (local.get $14)
)
- (local.set $8
- (local.get $10)
+ (call $qa)
+ (block
+ (i32.store
+ (local.get $1)
+ (i32.const 0)
+ )
+ (local.set $5
+ (local.get $0)
+ )
)
- (if
- (i32.ne
- (local.get $9)
- (i32.load offset=12
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.tee $1
+ (i32.load offset=8
(local.get $8)
)
)
- (call $qa)
+ (local.get $14)
)
- (local.set $4
- (local.get $7)
+ (call $qa)
+ )
+ (if
+ (i32.ne
+ (local.get $8)
+ (i32.load offset=12
+ (local.get $1)
+ )
)
- (if
- (i32.eq
- (local.get $9)
- (i32.load offset=8
- (local.get $4)
- )
+ (call $qa)
+ )
+ (if
+ (i32.eq
+ (local.get $8)
+ (i32.load offset=8
+ (local.get $0)
)
- (block
- (i32.store offset=12
- (local.get $8)
- (local.get $7)
- )
- (i32.store offset=8
- (local.get $4)
- (local.get $10)
- )
- (local.set $23
- (local.get $7)
- )
+ )
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $5
+ (local.get $0)
)
- (call $qa)
)
+ (call $qa)
)
)
- (if
- (local.get $0)
- (block $do-once8
- (if
- (i32.eq
- (i32.load
- (local.tee $3
- (i32.add
- (i32.shl
- (local.tee $7
- (i32.load offset=28
- (local.get $9)
- )
+ )
+ (if
+ (local.get $10)
+ (block $do-once8
+ (if
+ (i32.eq
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (i32.shl
+ (local.tee $0
+ (i32.load offset=28
+ (local.get $8)
)
- (i32.const 2)
)
- (i32.const 1512)
+ (i32.const 2)
)
+ (i32.const 1512)
)
)
- (local.get $9)
)
- (block
- (i32.store
- (local.get $3)
- (local.get $23)
+ (local.get $8)
+ )
+ (block
+ (i32.store
+ (local.get $1)
+ (local.get $5)
+ )
+ (if
+ (i32.eqz
+ (local.get $5)
)
- (if
- (i32.eqz
- (local.get $23)
- )
- (block
- (i32.store
- (i32.const 1212)
- (i32.and
- (i32.load
- (i32.const 1212)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $7)
- )
- (i32.const -1)
+ (block
+ (i32.store
+ (i32.const 1212)
+ (i32.and
+ (i32.load
+ (i32.const 1212)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
)
+ (i32.const -1)
)
)
- (br $do-once8)
)
+ (br $do-once8)
)
)
- (block
- (if
- (i32.lt_u
- (local.get $0)
- (i32.load
- (i32.const 1224)
- )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $10)
+ (i32.load
+ (i32.const 1224)
)
- (call $qa)
- )
- (local.set $4
- (local.get $0)
)
- (if
- (i32.eq
- (local.get $9)
- (i32.load offset=16
- (local.get $0)
- )
- )
- (i32.store offset=16
- (local.get $4)
- (local.get $23)
- )
- (i32.store offset=20
- (local.get $0)
- (local.get $23)
+ (call $qa)
+ )
+ (if
+ (i32.eq
+ (local.get $8)
+ (i32.load offset=16
+ (local.get $10)
)
)
- (br_if $do-once8
- (i32.eqz
- (local.get $23)
- )
+ (i32.store offset=16
+ (local.get $10)
+ (local.get $5)
+ )
+ (i32.store offset=20
+ (local.get $10)
+ (local.get $5)
+ )
+ )
+ (br_if $do-once8
+ (i32.eqz
+ (local.get $5)
)
)
)
- (if
- (i32.lt_u
- (local.get $23)
- (local.tee $7
- (i32.load
- (i32.const 1224)
- )
+ )
+ (if
+ (i32.lt_u
+ (local.get $5)
+ (local.tee $1
+ (i32.load
+ (i32.const 1224)
)
)
- (call $qa)
)
- (i32.store offset=24
- (local.get $23)
- (local.get $0)
+ (call $qa)
+ )
+ (i32.store offset=24
+ (local.get $5)
+ (local.get $10)
+ )
+ (if
+ (local.tee $0
+ (i32.load offset=16
+ (local.get $8)
+ )
)
(if
- (local.tee $3
- (i32.load offset=16
- (local.get $9)
- )
+ (i32.lt_u
+ (local.get $0)
+ (local.get $1)
)
- (if
- (i32.lt_u
- (local.get $3)
- (local.get $7)
+ (call $qa)
+ (block
+ (i32.store offset=16
+ (local.get $5)
+ (local.get $0)
)
- (call $qa)
- (block
- (i32.store offset=16
- (local.get $23)
- (local.get $3)
- )
- (i32.store offset=24
- (local.get $3)
- (local.get $23)
- )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $5)
)
)
)
+ )
+ (if
+ (local.tee $0
+ (i32.load offset=20
+ (local.get $8)
+ )
+ )
(if
- (local.tee $3
- (i32.load offset=20
- (local.get $9)
+ (i32.lt_u
+ (local.get $0)
+ (i32.load
+ (i32.const 1224)
)
)
- (if
- (i32.lt_u
- (local.get $3)
- (i32.load
- (i32.const 1224)
- )
+ (call $qa)
+ (block
+ (i32.store offset=20
+ (local.get $5)
+ (local.get $0)
)
- (call $qa)
- (block
- (i32.store offset=20
- (local.get $23)
- (local.get $3)
- )
- (i32.store offset=24
- (local.get $3)
- (local.get $23)
- )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $5)
)
)
)
)
)
- (if
- (i32.lt_u
- (local.get $6)
- (i32.const 16)
- )
- (block
- (i32.store offset=4
- (local.get $9)
- (i32.or
- (local.tee $0
- (i32.add
- (local.get $2)
- (local.get $6)
- )
+ )
+ (if
+ (i32.lt_u
+ (local.get $7)
+ (i32.const 16)
+ )
+ (block
+ (i32.store offset=4
+ (local.get $8)
+ (i32.or
+ (local.tee $0
+ (i32.add
+ (local.get $4)
+ (local.get $7)
)
- (i32.const 3)
)
+ (i32.const 3)
)
- (local.set $0
+ )
+ (i32.store offset=4
+ (local.tee $0
(i32.add
(local.get $0)
- (local.get $9)
+ (local.get $8)
)
)
- (i32.store offset=4
- (local.get $0)
- (i32.or
- (i32.load offset=4
- (local.get $0)
- )
- (i32.const 1)
+ (i32.or
+ (i32.load offset=4
+ (local.get $0)
)
+ (i32.const 1)
)
)
- (block
- (i32.store offset=4
- (local.get $9)
- (i32.or
- (local.get $2)
- (i32.const 3)
- )
+ )
+ (block
+ (i32.store offset=4
+ (local.get $8)
+ (i32.or
+ (local.get $4)
+ (i32.const 3)
)
- (i32.store offset=4
- (local.get $1)
- (i32.or
- (local.get $6)
- (i32.const 1)
- )
+ )
+ (i32.store offset=4
+ (local.get $12)
+ (i32.or
+ (local.get $7)
+ (i32.const 1)
)
- (i32.store
- (i32.add
- (local.get $1)
- (local.get $6)
+ )
+ (i32.store
+ (i32.add
+ (local.get $7)
+ (local.get $12)
+ )
+ (local.get $7)
+ )
+ (if
+ (local.tee $0
+ (i32.load
+ (i32.const 1216)
)
- (local.get $6)
)
- (if
- (local.tee $3
+ (block
+ (local.set $3
(i32.load
- (i32.const 1216)
+ (i32.const 1228)
)
)
- (block
- (local.set $0
- (i32.load
- (i32.const 1228)
+ (local.set $0
+ (i32.add
+ (i32.shl
+ (local.tee $1
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 3)
+ )
+ )
+ (i32.const 3)
)
+ (i32.const 1248)
)
- (local.set $3
- (i32.add
+ )
+ (if
+ (i32.and
+ (local.tee $4
+ (i32.load
+ (i32.const 1208)
+ )
+ )
+ (local.tee $1
(i32.shl
- (local.tee $7
- (i32.shr_u
- (local.get $3)
- (i32.const 3)
- )
- )
- (i32.const 3)
+ (i32.const 1)
+ (local.get $1)
)
- (i32.const 1248)
)
)
(if
- (i32.and
+ (i32.lt_u
(local.tee $4
- (i32.shl
- (i32.const 1)
- (local.get $7)
- )
- )
- (local.tee $10
(i32.load
- (i32.const 1208)
- )
- )
- )
- (if
- (i32.lt_u
- (local.tee $10
- (i32.load
- (local.tee $4
- (i32.add
- (local.get $3)
- (i32.const 8)
- )
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
)
)
)
- (i32.load
- (i32.const 1224)
- )
)
- (call $qa)
- (block
- (local.set $41
- (local.get $4)
- )
- (local.set $27
- (local.get $10)
- )
+ (i32.load
+ (i32.const 1224)
)
)
+ (call $qa)
(block
- (i32.store
- (i32.const 1208)
- (i32.or
- (local.get $4)
- (local.get $10)
- )
- )
- (local.set $41
- (i32.add
- (local.get $3)
- (i32.const 8)
- )
+ (local.set $21
+ (local.get $1)
)
- (local.set $27
- (local.get $3)
+ (local.set $6
+ (local.get $4)
)
)
)
- (i32.store
- (local.get $41)
- (local.get $0)
- )
- (i32.store offset=12
- (local.get $27)
- (local.get $0)
- )
- (i32.store offset=8
- (local.get $0)
- (local.get $27)
- )
- (i32.store offset=12
- (local.get $0)
- (local.get $3)
+ (block
+ (i32.store
+ (i32.const 1208)
+ (i32.or
+ (local.get $1)
+ (local.get $4)
+ )
+ )
+ (local.set $21
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
+ )
+ (local.set $6
+ (local.get $0)
+ )
)
)
- )
- (i32.store
- (i32.const 1216)
- (local.get $6)
- )
- (i32.store
- (i32.const 1228)
- (local.get $1)
+ (i32.store
+ (local.get $21)
+ (local.get $3)
+ )
+ (i32.store offset=12
+ (local.get $6)
+ (local.get $3)
+ )
+ (i32.store offset=8
+ (local.get $3)
+ (local.get $6)
+ )
+ (i32.store offset=12
+ (local.get $3)
+ (local.get $0)
+ )
)
)
- )
- (global.set $r
- (local.get $25)
- )
- (return
- (i32.add
- (local.get $9)
- (i32.const 8)
+ (i32.store
+ (i32.const 1216)
+ (local.get $7)
+ )
+ (i32.store
+ (i32.const 1228)
+ (local.get $12)
)
)
)
- (local.get $2)
+ (global.set $r
+ (local.get $18)
+ )
+ (return
+ (i32.add
+ (local.get $8)
+ (i32.const 8)
+ )
+ )
)
)
- (local.get $2)
)
)
+ )
+ (local.set $4
(if (result i32)
(i32.gt_u
(local.get $0)
@@ -1365,9 +1323,9 @@
)
(i32.const -1)
(block $do-once (result i32)
- (local.set $0
+ (local.set $8
(i32.and
- (local.tee $3
+ (local.tee $0
(i32.add
(local.get $0)
(i32.const 11)
@@ -1377,123 +1335,124 @@
)
)
(if (result i32)
- (local.tee $10
+ (local.tee $39
(i32.load
(i32.const 1212)
)
)
(block (result i32)
- (local.set $4
- (i32.sub
- (i32.const 0)
- (local.get $0)
- )
- )
- (if
- (local.tee $14
- (i32.load
- (i32.add
- (i32.shl
- (local.tee $27
- (if (result i32)
- (local.tee $7
- (i32.shr_u
- (local.get $3)
- (i32.const 8)
- )
- )
- (if (result i32)
- (i32.gt_u
- (local.get $0)
- (i32.const 16777215)
- )
- (i32.const 31)
- (block (result i32)
- (local.set $7
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $16
- (i32.shl
- (local.get $7)
- (local.tee $3
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $7)
- (i32.const 1048320)
- )
- (i32.const 16)
- )
- (i32.const 8)
- )
- )
- )
+ (local.set $21
+ (if (result i32)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 8)
+ )
+ )
+ (if (result i32)
+ (i32.gt_u
+ (local.get $8)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $6
+ (i32.shl
+ (local.get $0)
+ (local.tee $5
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $0)
+ (i32.const 1048320)
)
- (i32.const 520192)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 8)
)
- (i32.const 4)
)
)
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $0)
- (i32.add
- (local.tee $14
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
- (local.tee $16
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $18
- (i32.shl
- (local.get $16)
- (local.get $7)
- )
- )
- (i32.const 245760)
- )
- (i32.const 16)
- )
- (i32.const 2)
- )
- )
- (i32.or
- (local.get $3)
- (local.get $7)
+ )
+ (i32.const 520192)
+ )
+ (i32.const 16)
+ )
+ (i32.const 4)
+ )
+ )
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $8)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
+ (i32.or
+ (local.tee $13
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $6
+ (i32.shl
+ (local.get $6)
+ (local.get $0)
)
)
+ (i32.const 245760)
)
- (i32.shr_u
- (i32.shl
- (local.get $18)
- (local.get $16)
- )
- (i32.const 15)
- )
+ (i32.const 16)
)
+ (i32.const 2)
)
- (i32.const 7)
+ )
+ (i32.or
+ (local.get $0)
+ (local.get $5)
)
)
- (i32.const 1)
)
- (i32.shl
- (local.get $14)
- (i32.const 1)
+ (i32.shr_u
+ (i32.shl
+ (local.get $6)
+ (local.get $13)
+ )
+ (i32.const 15)
)
)
)
+ (i32.const 7)
)
- (i32.const 0)
)
+ (i32.const 1)
)
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ )
+ )
+ (i32.const 0)
+ )
+ )
+ (local.set $0
+ (i32.sub
+ (i32.const 0)
+ (local.get $8)
+ )
+ )
+ (if
+ (local.tee $6
+ (i32.load
+ (i32.add
+ (i32.shl
+ (local.get $21)
(i32.const 2)
)
(i32.const 1512)
@@ -1501,107 +1460,100 @@
)
)
(block $label$break$a
- (local.set $16
- (local.get $4)
- )
- (local.set $18
- (i32.const 0)
- )
- (local.set $3
+ (local.set $9
(i32.shl
- (local.get $0)
+ (local.get $8)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (local.get $27)
+ (local.get $21)
(i32.const 1)
)
)
(i32.eq
- (local.get $27)
+ (local.get $21)
(i32.const 31)
)
)
)
)
- (local.set $7
- (local.get $14)
+ (local.set $5
+ (i32.const 0)
)
- (local.set $1
+ (local.set $10
(loop $while-in14 (result i32)
(if
(i32.lt_u
- (local.tee $14
+ (local.tee $13
(i32.sub
- (local.tee $2
+ (local.tee $25
(i32.and
(i32.load offset=4
- (local.get $7)
+ (local.get $6)
)
(i32.const -8)
)
)
- (local.get $0)
+ (local.get $8)
)
)
- (local.get $16)
+ (local.get $0)
)
- (local.set $16
+ (local.set $0
(if (result i32)
(i32.eq
- (local.get $0)
- (local.get $2)
+ (local.get $8)
+ (local.get $25)
)
(block
- (local.set $30
- (local.get $14)
+ (local.set $4
+ (local.get $13)
)
- (local.set $28
- (local.get $7)
+ (local.set $12
+ (local.get $6)
)
- (local.set $31
- (local.get $7)
+ (local.set $2
+ (local.get $6)
)
- (local.set $7
+ (local.set $9
(i32.const 90)
)
(br $label$break$a)
)
(block (result i32)
- (local.set $6
- (local.get $7)
+ (local.set $5
+ (local.get $6)
)
- (local.get $14)
+ (local.get $13)
)
)
)
)
- (local.set $2
+ (local.set $13
(select
- (local.get $18)
- (local.tee $14
+ (local.get $20)
+ (local.tee $13
(i32.load offset=20
- (local.get $7)
+ (local.get $6)
)
)
(i32.or
(i32.eqz
- (local.get $14)
+ (local.get $13)
)
(i32.eq
- (local.get $14)
- (local.tee $7
+ (local.tee $6
(i32.load
(i32.add
(i32.add
- (local.get $7)
+ (local.get $6)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (local.get $3)
+ (local.get $9)
(i32.const 31)
)
(i32.const 2)
@@ -1609,40 +1561,38 @@
)
)
)
+ (local.get $13)
)
)
)
)
(if (result i32)
- (local.tee $14
+ (local.tee $25
(i32.eqz
- (local.get $7)
+ (local.get $6)
)
)
(block (result i32)
- (local.set $36
- (local.get $16)
+ (local.set $19
+ (local.get $13)
)
- (local.set $32
- (local.get $6)
+ (local.set $22
+ (local.get $5)
)
- (local.set $7
+ (local.set $9
(i32.const 86)
)
- (local.get $2)
+ (local.get $0)
)
(block
- (local.set $18
- (local.get $2)
+ (local.set $20
+ (local.get $13)
)
- (local.set $3
+ (local.set $9
(i32.shl
- (local.get $3)
+ (local.get $9)
(i32.xor
- (i32.and
- (local.get $14)
- (i32.const 1)
- )
+ (local.get $25)
(i32.const 1)
)
)
@@ -1654,126 +1604,127 @@
)
)
(block
- (local.set $36
- (local.get $4)
+ (local.set $10
+ (local.get $0)
)
- (local.set $7
+ (local.set $9
(i32.const 86)
)
)
)
(if
(i32.eq
- (local.get $7)
+ (local.get $9)
(i32.const 86)
)
- (if
- (local.tee $2
- (if (result i32)
+ (block
+ (if
+ (i32.eqz
(i32.or
- (local.get $1)
- (local.get $32)
+ (local.get $19)
+ (local.get $22)
)
- (local.get $1)
- (block (result i32)
- (drop
- (br_if $do-once
- (local.get $0)
- (i32.eqz
- (local.tee $4
- (i32.and
- (i32.or
- (i32.sub
- (i32.const 0)
- (local.tee $14
- (i32.shl
- (i32.const 2)
- (local.get $27)
- )
+ )
+ (block
+ (drop
+ (br_if $do-once
+ (local.get $8)
+ (i32.eqz
+ (local.tee $0
+ (i32.and
+ (i32.or
+ (i32.sub
+ (i32.const 0)
+ (local.tee $0
+ (i32.shl
+ (i32.const 2)
+ (local.get $21)
)
)
- (local.get $14)
)
- (local.get $10)
+ (local.get $0)
)
+ (local.get $39)
)
)
)
)
- (local.set $4
- (i32.and
- (i32.shr_u
- (local.tee $14
- (i32.add
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.get $4)
- )
- (local.get $4)
+ )
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (local.tee $5
+ (i32.add
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.get $0)
)
- (i32.const -1)
+ (local.get $0)
)
+ (i32.const -1)
)
- (i32.const 12)
)
- (i32.const 16)
+ (i32.const 12)
)
+ (i32.const 16)
)
- (local.set $14
- (i32.and
- (i32.shr_u
- (local.tee $2
- (i32.shr_u
- (local.get $14)
- (local.get $4)
- )
+ )
+ (local.set $5
+ (i32.and
+ (i32.shr_u
+ (local.tee $6
+ (i32.shr_u
+ (local.get $5)
+ (local.get $0)
)
- (i32.const 5)
)
- (i32.const 8)
+ (i32.const 5)
)
+ (i32.const 8)
)
- (local.set $2
- (i32.and
- (i32.shr_u
- (local.tee $1
- (i32.shr_u
- (local.get $2)
- (local.get $14)
- )
+ )
+ (local.set $6
+ (i32.and
+ (i32.shr_u
+ (local.tee $13
+ (i32.shr_u
+ (local.get $6)
+ (local.get $5)
)
- (i32.const 2)
)
- (i32.const 4)
+ (i32.const 2)
)
+ (i32.const 4)
)
- (local.set $1
- (i32.and
- (i32.shr_u
- (local.tee $6
- (i32.shr_u
- (local.get $1)
- (local.get $2)
- )
+ )
+ (local.set $13
+ (i32.and
+ (i32.shr_u
+ (local.tee $19
+ (i32.shr_u
+ (local.get $13)
+ (local.get $6)
)
- (i32.const 1)
)
- (i32.const 2)
+ (i32.const 1)
)
+ (i32.const 2)
)
+ )
+ (local.set $19
(i32.load
(i32.add
(i32.shl
(i32.add
(i32.or
- (local.tee $6
+ (local.tee $20
(i32.and
(i32.shr_u
- (local.tee $3
+ (local.tee $19
(i32.shr_u
- (local.get $6)
- (local.get $1)
+ (local.get $19)
+ (local.get $13)
)
)
(i32.const 1)
@@ -1782,19 +1733,19 @@
)
)
(i32.or
- (local.get $1)
+ (local.get $13)
(i32.or
- (local.get $2)
+ (local.get $6)
(i32.or
- (local.get $4)
- (local.get $14)
+ (local.get $0)
+ (local.get $5)
)
)
)
)
(i32.shr_u
- (local.get $3)
- (local.get $6)
+ (local.get $19)
+ (local.get $20)
)
)
(i32.const 2)
@@ -1805,131 +1756,119 @@
)
)
)
- (block
- (local.set $30
- (local.get $36)
- )
- (local.set $28
- (local.get $2)
- )
- (local.set $31
- (local.get $32)
- )
- (local.set $7
- (i32.const 90)
- )
- )
- (block
- (local.set $17
- (local.get $36)
+ (if
+ (local.get $19)
+ (block
+ (local.set $4
+ (local.get $10)
+ )
+ (local.set $12
+ (local.get $19)
+ )
+ (local.set $2
+ (local.get $22)
+ )
+ (local.set $9
+ (i32.const 90)
+ )
)
- (local.set $12
- (local.get $32)
+ (block
+ (local.set $15
+ (local.get $10)
+ )
+ (local.set $11
+ (local.get $22)
+ )
)
)
)
)
- (if
- (i32.eq
- (local.get $7)
- (i32.const 90)
- )
- (local.set $17
- (loop $while-in16 (result i32)
- (local.set $7
- (i32.const 0)
+ (if (result i32)
+ (block (result i32)
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 90)
)
- (local.set $3
- (i32.lt_u
- (local.tee $6
- (i32.sub
- (i32.and
- (i32.load offset=4
- (local.get $28)
+ (local.set $11
+ (loop $while-in16 (result i32)
+ (local.set $9
+ (i32.const 0)
+ )
+ (local.set $0
+ (i32.lt_u
+ (local.tee $5
+ (i32.sub
+ (i32.and
+ (i32.load offset=4
+ (local.get $12)
+ )
+ (i32.const -8)
+ )
+ (local.get $8)
)
- (i32.const -8)
)
- (local.get $0)
+ (local.get $4)
)
)
- (local.get $30)
- )
- )
- (local.set $1
- (select
- (local.get $6)
- (local.get $30)
- (local.get $3)
- )
- )
- (local.set $6
- (select
- (local.get $28)
- (local.get $31)
- (local.get $3)
- )
- )
- (if
- (local.tee $3
- (i32.load offset=16
- (local.get $28)
- )
- )
- (block
- (local.set $30
- (local.get $1)
- )
- (local.set $28
- (local.get $3)
- )
- (local.set $31
- (local.get $6)
+ (local.set $4
+ (select
+ (local.get $5)
+ (local.get $4)
+ (local.get $0)
+ )
)
- (br $while-in16)
- )
- )
- (if (result i32)
- (local.tee $28
- (i32.load offset=20
- (local.get $28)
+ (local.set $2
+ (select
+ (local.get $12)
+ (local.get $2)
+ (local.get $0)
+ )
)
- )
- (block
- (local.set $30
- (local.get $1)
+ (if
+ (local.tee $0
+ (i32.load offset=16
+ (local.get $12)
+ )
+ )
+ (block
+ (local.set $12
+ (local.get $0)
+ )
+ (br $while-in16)
+ )
)
- (local.set $31
- (local.get $6)
+ (br_if $while-in16
+ (local.tee $12
+ (i32.load offset=20
+ (local.get $12)
+ )
+ )
)
- (br $while-in16)
- )
- (block (result i32)
- (local.set $12
- (local.get $6)
+ (local.set $15
+ (local.get $4)
)
- (local.get $1)
+ (local.get $2)
)
)
)
+ (local.get $11)
)
- )
- (if (result i32)
- (local.get $12)
(if (result i32)
(i32.lt_u
- (local.get $17)
+ (local.get $15)
(i32.sub
(i32.load
(i32.const 1216)
)
- (local.get $0)
+ (local.get $8)
)
)
(block
(if
(i32.lt_u
- (local.get $12)
- (local.tee $10
+ (local.get $11)
+ (local.tee $7
(i32.load
(i32.const 1224)
)
@@ -1939,104 +1878,98 @@
)
(if
(i32.ge_u
- (local.get $12)
- (local.tee $6
+ (local.get $11)
+ (local.tee $2
(i32.add
- (local.get $0)
- (local.get $12)
+ (local.get $8)
+ (local.get $11)
)
)
)
(call $qa)
)
- (local.set $1
+ (local.set $5
(i32.load offset=24
- (local.get $12)
+ (local.get $11)
)
)
(if
(i32.eq
- (local.tee $3
+ (local.get $11)
+ (local.tee $0
(i32.load offset=12
- (local.get $12)
+ (local.get $11)
)
)
- (local.get $12)
)
(block $do-once17
- (local.set $3
- (if (result i32)
- (local.tee $4
+ (if
+ (i32.eqz
+ (local.tee $0
(i32.load
- (local.tee $2
+ (local.tee $1
(i32.add
- (local.get $12)
+ (local.get $11)
(i32.const 20)
)
)
)
)
- (block (result i32)
- (local.set $18
- (local.get $4)
- )
- (local.get $2)
- )
- (if (result i32)
- (local.tee $18
+ )
+ (br_if $do-once17
+ (i32.eqz
+ (local.tee $0
(i32.load
- (local.tee $14
+ (local.tee $1
(i32.add
- (local.get $12)
+ (local.get $11)
(i32.const 16)
)
)
)
)
- (local.get $14)
- (br $do-once17)
)
)
)
(loop $while-in20
(if
- (local.tee $4
+ (local.tee $3
(i32.load
- (local.tee $2
+ (local.tee $4
(i32.add
- (local.get $18)
+ (local.get $0)
(i32.const 20)
)
)
)
)
(block
- (local.set $18
- (local.get $4)
+ (local.set $0
+ (local.get $3)
)
- (local.set $3
- (local.get $2)
+ (local.set $1
+ (local.get $4)
)
(br $while-in20)
)
)
(if
- (local.tee $4
+ (local.tee $3
(i32.load
- (local.tee $2
+ (local.tee $4
(i32.add
- (local.get $18)
+ (local.get $0)
(i32.const 16)
)
)
)
)
(block
- (local.set $18
- (local.get $4)
+ (local.set $0
+ (local.get $3)
)
- (local.set $3
- (local.get $2)
+ (local.set $1
+ (local.get $4)
)
(br $while-in20)
)
@@ -2044,17 +1977,17 @@
)
(if
(i32.lt_u
- (local.get $3)
- (local.get $10)
+ (local.get $1)
+ (local.get $7)
)
(call $qa)
(block
(i32.store
- (local.get $3)
+ (local.get $1)
(i32.const 0)
)
- (local.set $21
- (local.get $18)
+ (local.set $16
+ (local.get $0)
)
)
)
@@ -2062,48 +1995,42 @@
(block
(if
(i32.lt_u
- (local.tee $2
+ (local.tee $1
(i32.load offset=8
- (local.get $12)
+ (local.get $11)
)
)
- (local.get $10)
+ (local.get $7)
)
(call $qa)
)
- (local.set $16
- (local.get $2)
- )
(if
(i32.ne
- (local.get $12)
+ (local.get $11)
(i32.load offset=12
- (local.get $2)
+ (local.get $1)
)
)
(call $qa)
)
- (local.set $4
- (local.get $3)
- )
(if
(i32.eq
- (local.get $12)
+ (local.get $11)
(i32.load offset=8
- (local.get $3)
+ (local.get $0)
)
)
(block
(i32.store offset=12
- (local.get $16)
- (local.get $3)
+ (local.get $1)
+ (local.get $0)
)
(i32.store offset=8
- (local.get $4)
- (local.get $2)
+ (local.get $0)
+ (local.get $1)
)
- (local.set $21
- (local.get $3)
+ (local.set $16
+ (local.get $0)
)
)
(call $qa)
@@ -2111,17 +2038,17 @@
)
)
(if
- (local.get $1)
+ (local.get $5)
(block $do-once21
(if
(i32.eq
(i32.load
- (local.tee $10
+ (local.tee $1
(i32.add
(i32.shl
- (local.tee $3
+ (local.tee $0
(i32.load offset=28
- (local.get $12)
+ (local.get $11)
)
)
(i32.const 2)
@@ -2130,16 +2057,16 @@
)
)
)
- (local.get $12)
+ (local.get $11)
)
(block
(i32.store
- (local.get $10)
- (local.get $21)
+ (local.get $1)
+ (local.get $16)
)
(if
(i32.eqz
- (local.get $21)
+ (local.get $16)
)
(block
(i32.store
@@ -2151,7 +2078,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $3)
+ (local.get $0)
)
(i32.const -1)
)
@@ -2164,43 +2091,40 @@
(block
(if
(i32.lt_u
- (local.get $1)
+ (local.get $5)
(i32.load
(i32.const 1224)
)
)
(call $qa)
)
- (local.set $2
- (local.get $1)
- )
(if
(i32.eq
- (local.get $12)
+ (local.get $11)
(i32.load offset=16
- (local.get $1)
+ (local.get $5)
)
)
(i32.store offset=16
- (local.get $2)
- (local.get $21)
+ (local.get $5)
+ (local.get $16)
)
(i32.store offset=20
- (local.get $1)
- (local.get $21)
+ (local.get $5)
+ (local.get $16)
)
)
(br_if $do-once21
(i32.eqz
- (local.get $21)
+ (local.get $16)
)
)
)
)
(if
(i32.lt_u
- (local.get $21)
- (local.tee $3
+ (local.get $16)
+ (local.tee $1
(i32.load
(i32.const 1224)
)
@@ -2209,42 +2133,42 @@
(call $qa)
)
(i32.store offset=24
- (local.get $21)
- (local.get $1)
+ (local.get $16)
+ (local.get $5)
)
(if
- (local.tee $10
+ (local.tee $0
(i32.load offset=16
- (local.get $12)
+ (local.get $11)
)
)
(if
(i32.lt_u
- (local.get $10)
- (local.get $3)
+ (local.get $0)
+ (local.get $1)
)
(call $qa)
(block
(i32.store offset=16
- (local.get $21)
- (local.get $10)
+ (local.get $16)
+ (local.get $0)
)
(i32.store offset=24
- (local.get $10)
- (local.get $21)
+ (local.get $0)
+ (local.get $16)
)
)
)
)
(if
- (local.tee $10
+ (local.tee $0
(i32.load offset=20
- (local.get $12)
+ (local.get $11)
)
)
(if
(i32.lt_u
- (local.get $10)
+ (local.get $0)
(i32.load
(i32.const 1224)
)
@@ -2252,12 +2176,12 @@
(call $qa)
(block
(i32.store offset=20
- (local.get $21)
- (local.get $10)
+ (local.get $16)
+ (local.get $0)
)
(i32.store offset=24
- (local.get $10)
- (local.get $21)
+ (local.get $0)
+ (local.get $16)
)
)
)
@@ -2266,30 +2190,29 @@
)
(if
(i32.lt_u
- (local.get $17)
+ (local.get $15)
(i32.const 16)
)
(block
(i32.store offset=4
- (local.get $12)
+ (local.get $11)
(i32.or
- (local.tee $1
+ (local.tee $0
(i32.add
- (local.get $0)
- (local.get $17)
+ (local.get $8)
+ (local.get $15)
)
)
(i32.const 3)
)
)
- (local.set $0
- (i32.add
- (local.get $1)
- (local.get $12)
- )
- )
(i32.store offset=4
- (local.get $0)
+ (local.tee $0
+ (i32.add
+ (local.get $0)
+ (local.get $11)
+ )
+ )
(i32.or
(i32.load offset=4
(local.get $0)
@@ -2300,42 +2223,42 @@
)
(block $do-once25
(i32.store offset=4
- (local.get $12)
+ (local.get $11)
(i32.or
- (local.get $0)
+ (local.get $8)
(i32.const 3)
)
)
(i32.store offset=4
- (local.get $6)
+ (local.get $2)
(i32.or
- (local.get $17)
+ (local.get $15)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $6)
- (local.get $17)
+ (local.get $2)
+ (local.get $15)
)
- (local.get $17)
+ (local.get $15)
)
- (local.set $10
+ (local.set $1
(i32.shr_u
- (local.get $17)
+ (local.get $15)
(i32.const 3)
)
)
(if
(i32.lt_u
- (local.get $17)
+ (local.get $15)
(i32.const 256)
)
(block
- (local.set $1
+ (local.set $0
(i32.add
(i32.shl
- (local.get $10)
+ (local.get $1)
(i32.const 3)
)
(i32.const 1248)
@@ -2343,25 +2266,25 @@
)
(if
(i32.and
- (local.tee $2
- (i32.shl
- (i32.const 1)
- (local.get $10)
- )
- )
- (local.tee $3
+ (local.tee $4
(i32.load
(i32.const 1208)
)
)
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ )
)
(if
(i32.lt_u
- (local.tee $3
+ (local.tee $4
(i32.load
- (local.tee $2
+ (local.tee $1
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
@@ -2373,11 +2296,11 @@
)
(call $qa)
(block
- (local.set $9
- (local.get $2)
+ (local.set $29
+ (local.get $1)
)
- (local.set $8
- (local.get $3)
+ (local.set $14
+ (local.get $4)
)
)
)
@@ -2385,70 +2308,70 @@
(i32.store
(i32.const 1208)
(i32.or
- (local.get $2)
- (local.get $3)
+ (local.get $1)
+ (local.get $4)
)
)
- (local.set $9
+ (local.set $29
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
- (local.set $8
- (local.get $1)
+ (local.set $14
+ (local.get $0)
)
)
)
(i32.store
- (local.get $9)
- (local.get $6)
+ (local.get $29)
+ (local.get $2)
)
(i32.store offset=12
- (local.get $8)
- (local.get $6)
+ (local.get $14)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $6)
- (local.get $8)
+ (local.get $2)
+ (local.get $14)
)
(i32.store offset=12
- (local.get $6)
- (local.get $1)
+ (local.get $2)
+ (local.get $0)
)
(br $do-once25)
)
)
- (local.set $14
+ (local.set $1
(i32.add
(i32.shl
- (local.tee $16
+ (local.tee $0
(if (result i32)
- (local.tee $1
+ (local.tee $0
(i32.shr_u
- (local.get $17)
+ (local.get $15)
(i32.const 8)
)
)
(if (result i32)
(i32.gt_u
- (local.get $17)
+ (local.get $15)
(i32.const 16777215)
)
(i32.const 31)
(block (result i32)
- (local.set $1
+ (local.set $0
(i32.and
(i32.shr_u
(i32.add
- (local.tee $2
+ (local.tee $4
(i32.shl
- (local.get $1)
- (local.tee $3
+ (local.get $0)
+ (local.tee $1
(i32.and
(i32.shr_u
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 1048320)
)
(i32.const 16)
@@ -2468,21 +2391,21 @@
(i32.or
(i32.and
(i32.shr_u
- (local.get $17)
+ (local.get $15)
(i32.add
- (local.tee $14
+ (local.tee $0
(i32.add
(i32.sub
(i32.const 14)
(i32.or
- (local.tee $2
+ (local.tee $3
(i32.and
(i32.shr_u
(i32.add
- (local.tee $10
+ (local.tee $4
(i32.shl
- (local.get $2)
- (local.get $1)
+ (local.get $4)
+ (local.get $0)
)
)
(i32.const 245760)
@@ -2493,15 +2416,15 @@
)
)
(i32.or
+ (local.get $0)
(local.get $1)
- (local.get $3)
)
)
)
(i32.shr_u
(i32.shl
- (local.get $10)
- (local.get $2)
+ (local.get $4)
+ (local.get $3)
)
(i32.const 15)
)
@@ -2513,7 +2436,7 @@
(i32.const 1)
)
(i32.shl
- (local.get $14)
+ (local.get $0)
(i32.const 1)
)
)
@@ -2528,29 +2451,29 @@
)
)
(i32.store offset=28
- (local.get $6)
- (local.get $16)
+ (local.get $2)
+ (local.get $0)
)
(i32.store offset=20
- (local.get $6)
+ (local.get $2)
(i32.const 0)
)
(i32.store offset=16
- (local.get $6)
+ (local.get $2)
(i32.const 0)
)
(if
(i32.eqz
(i32.and
- (local.tee $2
+ (local.tee $4
(i32.load
(i32.const 1212)
)
)
- (local.tee $10
+ (local.tee $3
(i32.shl
(i32.const 1)
- (local.get $16)
+ (local.get $0)
)
)
)
@@ -2559,71 +2482,71 @@
(i32.store
(i32.const 1212)
(i32.or
- (local.get $2)
- (local.get $10)
+ (local.get $3)
+ (local.get $4)
)
)
(i32.store
- (local.get $14)
- (local.get $6)
+ (local.get $1)
+ (local.get $2)
)
(i32.store offset=24
- (local.get $6)
- (local.get $14)
+ (local.get $2)
+ (local.get $1)
)
(i32.store offset=12
- (local.get $6)
- (local.get $6)
+ (local.get $2)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $6)
- (local.get $6)
+ (local.get $2)
+ (local.get $2)
)
(br $do-once25)
)
)
- (local.set $10
+ (local.set $3
(i32.shl
- (local.get $17)
+ (local.get $15)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (local.get $16)
+ (local.get $0)
(i32.const 1)
)
)
(i32.eq
- (local.get $16)
+ (local.get $0)
(i32.const 31)
)
)
)
)
- (local.set $2
+ (local.set $0
(i32.load
- (local.get $14)
+ (local.get $1)
)
)
(if
(i32.eq
- (local.tee $7
+ (local.tee $9
(loop $while-in28 (result i32)
(block $while-out27 (result i32)
(if
(i32.eq
- (local.get $17)
+ (local.get $15)
(i32.and
(i32.load offset=4
- (local.get $2)
+ (local.get $0)
)
(i32.const -8)
)
)
(block
- (local.set $19
- (local.get $2)
+ (local.set $30
+ (local.get $0)
)
(br $while-out27
(i32.const 148)
@@ -2631,17 +2554,17 @@
)
)
(if (result i32)
- (local.tee $3
+ (local.tee $1
(i32.load
- (local.tee $14
+ (local.tee $4
(i32.add
(i32.add
- (local.get $2)
+ (local.get $0)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (local.get $10)
+ (local.get $3)
(i32.const 31)
)
(i32.const 2)
@@ -2651,23 +2574,23 @@
)
)
(block
- (local.set $10
+ (local.set $3
(i32.shl
- (local.get $10)
+ (local.get $3)
(i32.const 1)
)
)
- (local.set $2
- (local.get $3)
+ (local.set $0
+ (local.get $1)
)
(br $while-in28)
)
(block (result i32)
- (local.set $22
- (local.get $14)
+ (local.set $31
+ (local.get $4)
)
- (local.set $15
- (local.get $2)
+ (local.set $40
+ (local.get $0)
)
(i32.const 145)
)
@@ -2679,7 +2602,7 @@
)
(if
(i32.lt_u
- (local.get $22)
+ (local.get $31)
(i32.load
(i32.const 1224)
)
@@ -2687,123 +2610,120 @@
(call $qa)
(block
(i32.store
- (local.get $22)
- (local.get $6)
+ (local.get $31)
+ (local.get $2)
)
(i32.store offset=24
- (local.get $6)
- (local.get $15)
+ (local.get $2)
+ (local.get $40)
)
(i32.store offset=12
- (local.get $6)
- (local.get $6)
+ (local.get $2)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $6)
- (local.get $6)
+ (local.get $2)
+ (local.get $2)
)
)
)
(if
(i32.eq
- (local.get $7)
+ (local.get $9)
(i32.const 148)
)
- (block
- (local.set $0
- (local.get $19)
- )
- (if
- (i32.and
- (i32.ge_u
- (local.tee $10
- (i32.load offset=8
- (local.get $0)
- )
- )
- (local.tee $3
- (i32.load
- (i32.const 1224)
+ (if
+ (i32.and
+ (i32.ge_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.tee $0
+ (local.get $30)
)
)
)
- (i32.ge_u
- (local.get $0)
- (local.get $3)
+ (local.tee $4
+ (i32.load
+ (i32.const 1224)
+ )
)
)
- (block
- (i32.store offset=12
- (local.get $10)
- (local.get $6)
- )
- (i32.store offset=8
- (local.get $0)
- (local.get $6)
- )
- (i32.store offset=8
- (local.get $6)
- (local.get $10)
- )
- (i32.store offset=12
- (local.get $6)
- (local.get $19)
- )
- (i32.store offset=24
- (local.get $6)
- (i32.const 0)
- )
+ (i32.ge_u
+ (local.get $0)
+ (local.get $4)
+ )
+ )
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $2)
+ (local.get $1)
+ )
+ (i32.store offset=12
+ (local.get $2)
+ (local.get $30)
+ )
+ (i32.store offset=24
+ (local.get $2)
+ (i32.const 0)
)
- (call $qa)
)
+ (call $qa)
)
)
)
)
)
(global.set $r
- (local.get $25)
+ (local.get $18)
)
(return
(i32.add
- (local.get $12)
+ (local.get $11)
(i32.const 8)
)
)
)
- (local.get $0)
+ (local.get $8)
)
- (local.get $0)
+ (local.get $8)
)
)
- (local.get $0)
+ (local.get $8)
)
)
)
)
)
- (block $folding-inner0
+ (block $folding-inner1
(if
(i32.ge_u
- (local.tee $12
+ (local.tee $2
(i32.load
(i32.const 1216)
)
)
- (local.get $3)
+ (local.get $4)
)
(block
- (local.set $15
+ (local.set $0
(i32.load
(i32.const 1228)
)
)
(if
(i32.gt_u
- (local.tee $19
+ (local.tee $1
(i32.sub
- (local.get $12)
- (local.get $3)
+ (local.get $2)
+ (local.get $4)
)
)
(i32.const 15)
@@ -2811,35 +2731,35 @@
(block
(i32.store
(i32.const 1228)
- (local.tee $22
+ (local.tee $3
(i32.add
- (local.get $3)
- (local.get $15)
+ (local.get $0)
+ (local.get $4)
)
)
)
(i32.store
(i32.const 1216)
- (local.get $19)
+ (local.get $1)
)
(i32.store offset=4
- (local.get $22)
+ (local.get $3)
(i32.or
- (local.get $19)
+ (local.get $1)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $19)
- (local.get $22)
+ (local.get $1)
+ (local.get $3)
)
- (local.get $19)
+ (local.get $1)
)
(i32.store offset=4
- (local.get $15)
+ (local.get $0)
(i32.or
- (local.get $3)
+ (local.get $4)
(i32.const 3)
)
)
@@ -2854,1987 +2774,1914 @@
(i32.const 0)
)
(i32.store offset=4
- (local.get $15)
+ (local.get $0)
(i32.or
- (local.get $12)
+ (local.get $2)
(i32.const 3)
)
)
- (local.set $0
- (i32.add
- (local.get $12)
- (local.get $15)
- )
- )
(i32.store offset=4
- (local.get $0)
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (local.get $2)
+ )
+ )
(i32.or
(i32.load offset=4
- (local.get $0)
+ (local.get $1)
)
(i32.const 1)
)
)
)
)
- (br $folding-inner0)
+ (br $folding-inner1)
)
)
- (if
- (i32.gt_u
- (local.tee $15
- (i32.load
- (i32.const 1220)
+ (block $folding-inner0
+ (br_if $folding-inner0
+ (i32.gt_u
+ (local.tee $0
+ (i32.load
+ (i32.const 1220)
+ )
)
+ (local.get $4)
)
- (local.get $3)
)
- (block
- (i32.store
- (i32.const 1220)
- (local.tee $19
- (i32.sub
- (local.get $15)
- (local.get $3)
- )
+ (local.set $0
+ (local.get $18)
+ )
+ (if
+ (i32.eqz
+ (i32.load
+ (i32.const 1680)
)
)
- (i32.store
- (i32.const 1232)
- (local.tee $12
- (i32.add
- (local.get $3)
- (local.tee $15
- (i32.load
- (i32.const 1232)
- )
- )
- )
+ (block
+ (i32.store
+ (i32.const 1688)
+ (i32.const 4096)
)
- )
- (i32.store offset=4
- (local.get $12)
- (i32.or
- (local.get $19)
- (i32.const 1)
+ (i32.store
+ (i32.const 1684)
+ (i32.const 4096)
)
- )
- (i32.store offset=4
- (local.get $15)
- (i32.or
- (local.get $3)
- (i32.const 3)
+ (i32.store
+ (i32.const 1692)
+ (i32.const -1)
)
- )
- (br $folding-inner0)
- )
- )
- (if
- (i32.eqz
- (i32.load
- (i32.const 1680)
- )
- )
- (block
- (i32.store
- (i32.const 1688)
- (i32.const 4096)
- )
- (i32.store
- (i32.const 1684)
- (i32.const 4096)
- )
- (i32.store
- (i32.const 1692)
- (i32.const -1)
- )
- (i32.store
- (i32.const 1696)
- (i32.const -1)
- )
- (i32.store
- (i32.const 1700)
- (i32.const 0)
- )
- (i32.store
- (i32.const 1652)
- (i32.const 0)
- )
- (i32.store
- (local.get $13)
- (local.tee $15
- (i32.xor
- (i32.and
- (local.get $13)
- (i32.const -16)
+ (i32.store
+ (i32.const 1696)
+ (i32.const -1)
+ )
+ (i32.store
+ (i32.const 1700)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 1652)
+ (i32.const 0)
+ )
+ (i32.store
+ (local.get $0)
+ (local.tee $0
+ (i32.xor
+ (i32.and
+ (local.get $0)
+ (i32.const -16)
+ )
+ (i32.const 1431655768)
)
- (i32.const 1431655768)
)
)
- )
- (i32.store
- (i32.const 1680)
- (local.get $15)
+ (i32.store
+ (i32.const 1680)
+ (local.get $0)
+ )
)
)
- )
- (local.set $15
- (i32.add
- (local.get $3)
- (i32.const 48)
- )
- )
- (if
- (i32.le_u
- (local.tee $13
- (i32.and
- (local.tee $12
- (i32.add
- (local.tee $13
- (i32.load
- (i32.const 1688)
+ (if
+ (i32.le_u
+ (local.tee $5
+ (i32.and
+ (local.tee $10
+ (i32.add
+ (local.tee $0
+ (i32.load
+ (i32.const 1688)
+ )
)
- )
- (local.tee $19
- (i32.add
- (local.get $3)
- (i32.const 47)
+ (local.tee $6
+ (i32.add
+ (local.get $4)
+ (i32.const 47)
+ )
)
)
)
- )
- (local.tee $22
- (i32.sub
- (i32.const 0)
- (local.get $13)
+ (local.tee $12
+ (i32.sub
+ (i32.const 0)
+ (local.get $0)
+ )
)
)
)
+ (local.get $4)
)
- (local.get $3)
- )
- (block
- (global.set $r
- (local.get $25)
- )
- (return
- (i32.const 0)
- )
- )
- )
- (if
- (local.tee $17
- (i32.load
- (i32.const 1648)
+ (block
+ (global.set $r
+ (local.get $18)
+ )
+ (return
+ (i32.const 0)
+ )
)
)
(if
- (i32.or
- (i32.le_u
- (local.tee $8
- (i32.add
- (local.get $13)
- (local.tee $16
- (i32.load
- (i32.const 1640)
+ (local.tee $0
+ (i32.load
+ (i32.const 1648)
+ )
+ )
+ (if
+ (i32.or
+ (i32.le_u
+ (local.tee $8
+ (i32.add
+ (local.get $5)
+ (local.tee $2
+ (i32.load
+ (i32.const 1640)
+ )
)
)
)
+ (local.get $2)
+ )
+ (i32.gt_u
+ (local.get $8)
+ (local.get $0)
)
- (local.get $16)
)
- (i32.gt_u
- (local.get $8)
- (local.get $17)
+ (block
+ (global.set $r
+ (local.get $18)
+ )
+ (return
+ (i32.const 0)
+ )
)
)
- (block
- (global.set $r
- (local.get $25)
- )
- (return
- (i32.const 0)
- )
+ )
+ (local.set $22
+ (i32.add
+ (local.get $4)
+ (i32.const 48)
)
)
- )
- (if
- (block (result i32)
- (if
- (i32.eq
- (local.tee $7
- (if (result i32)
- (i32.and
- (i32.load
- (i32.const 1652)
- )
- (i32.const 4)
+ (if
+ (i32.eq
+ (local.tee $9
+ (if (result i32)
+ (i32.and
+ (i32.load
+ (i32.const 1652)
)
- (i32.const 188)
- (block $label$break$b (result i32)
- (if
- (local.tee $17
- (i32.load
- (i32.const 1232)
- )
+ (i32.const 4)
+ )
+ (i32.const 188)
+ (block $label$break$b (result i32)
+ (if
+ (local.tee $2
+ (i32.load
+ (i32.const 1232)
)
- (block $label$break$c
- (local.set $8
- (i32.const 1656)
- )
- (loop $while-in32
- (block $while-out31
- (if
- (i32.le_u
- (local.tee $16
- (i32.load
- (local.get $8)
- )
+ )
+ (block $label$break$c
+ (local.set $14
+ (i32.const 1656)
+ )
+ (loop $while-in32
+ (block $while-out31
+ (if
+ (i32.le_u
+ (local.tee $8
+ (i32.load
+ (local.get $14)
)
- (local.get $17)
)
- (if
- (i32.gt_u
- (i32.add
- (i32.load
- (local.tee $9
- (i32.add
- (local.get $8)
- (i32.const 4)
- )
+ (local.get $2)
+ )
+ (if
+ (i32.gt_u
+ (i32.add
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (local.get $14)
+ (i32.const 4)
)
)
- (local.get $16)
- )
- (local.get $17)
- )
- (block
- (local.set $0
- (local.get $8)
)
- (local.set $4
- (local.get $9)
- )
- (br $while-out31)
+ (local.get $8)
)
+ (local.get $2)
)
- )
- (br_if $while-in32
- (local.tee $8
- (i32.load offset=8
- (local.get $8)
+ (block
+ (local.set $8
+ (local.get $0)
)
+ (br $while-out31)
)
)
- (local.set $7
- (i32.const 171)
+ )
+ (br_if $while-in32
+ (local.tee $14
+ (i32.load offset=8
+ (local.get $14)
+ )
)
- (br $label$break$c)
)
+ (local.set $9
+ (i32.const 171)
+ )
+ (br $label$break$c)
)
- (if
- (i32.lt_u
- (local.tee $8
- (i32.and
- (local.get $22)
- (i32.sub
- (local.get $12)
- (i32.load
- (i32.const 1220)
- )
+ )
+ (if
+ (i32.lt_u
+ (local.tee $2
+ (i32.and
+ (local.get $12)
+ (i32.sub
+ (local.get $10)
+ (i32.load
+ (i32.const 1220)
)
)
)
- (i32.const 2147483647)
)
- (block
- (local.set $9
- (call $ta
- (local.get $8)
- )
+ (i32.const 2147483647)
+ )
+ (block
+ (local.set $0
+ (call $ta
+ (local.get $2)
)
- (if
- (i32.eq
- (i32.add
- (i32.load
- (local.get $0)
- )
- (i32.load
- (local.get $4)
- )
- )
- (local.get $9)
- )
- (if
- (i32.ne
- (local.get $9)
- (i32.const -1)
+ )
+ (if
+ (i32.eq
+ (i32.add
+ (i32.load
+ (local.get $14)
)
- (block
- (local.set $20
- (local.get $9)
- )
- (local.set $26
- (local.get $8)
- )
- (br $label$break$b
- (i32.const 191)
- )
+ (i32.load
+ (local.get $8)
)
)
+ (local.get $0)
+ )
+ (if
+ (i32.ne
+ (local.get $0)
+ (i32.const -1)
+ )
(block
- (local.set $11
- (local.get $9)
- )
- (local.set $5
- (local.get $8)
+ (local.set $3
+ (local.get $0)
)
(local.set $7
- (i32.const 181)
+ (local.get $2)
)
+ (br $label$break$b
+ (i32.const 191)
+ )
+ )
+ )
+ (block
+ (local.set $24
+ (local.get $0)
+ )
+ (local.set $1
+ (local.get $2)
+ )
+ (local.set $9
+ (i32.const 181)
)
)
)
)
)
- (local.set $7
- (i32.const 171)
- )
+ )
+ (local.set $9
+ (i32.const 171)
+ )
+ )
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 171)
)
(if
- (i32.eq
- (local.get $7)
- (i32.const 171)
- )
- (if
- (i32.ne
- (local.tee $17
- (call $ta
- (i32.const 0)
- )
+ (i32.ne
+ (local.tee $2
+ (call $ta
+ (i32.const 0)
)
- (i32.const -1)
)
- (block $do-once33
- (local.set $2
- (if (result i32)
- (i32.and
- (local.tee $0
- (local.get $17)
- )
- (local.tee $9
- (i32.add
- (local.tee $8
- (i32.load
- (i32.const 1684)
+ (i32.const -1)
+ )
+ (block $do-once33
+ (local.set $8
+ (i32.add
+ (local.tee $0
+ (if (result i32)
+ (i32.and
+ (local.tee $0
+ (local.get $2)
+ )
+ (local.tee $10
+ (i32.add
+ (local.tee $8
+ (i32.load
+ (i32.const 1684)
+ )
)
+ (i32.const -1)
)
- (i32.const -1)
)
)
- )
- (i32.add
- (i32.sub
- (local.get $13)
- (local.get $0)
- )
- (i32.and
- (i32.add
+ (i32.add
+ (i32.sub
+ (local.get $5)
(local.get $0)
- (local.get $9)
)
- (i32.sub
- (i32.const 0)
- (local.get $8)
+ (i32.and
+ (i32.add
+ (local.get $0)
+ (local.get $10)
+ )
+ (i32.sub
+ (i32.const 0)
+ (local.get $8)
+ )
)
)
+ (local.get $5)
)
- (local.get $13)
)
- )
- (local.set $0
- (i32.add
- (local.tee $8
- (i32.load
- (i32.const 1640)
- )
+ (local.tee $10
+ (i32.load
+ (i32.const 1640)
)
- (local.get $2)
)
)
- (if
- (i32.and
- (i32.lt_u
- (local.get $2)
- (i32.const 2147483647)
- )
- (i32.gt_u
- (local.get $2)
- (local.get $3)
- )
+ )
+ (if
+ (i32.and
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 2147483647)
)
- (block
- (if
- (local.tee $9
- (i32.load
- (i32.const 1648)
+ (i32.gt_u
+ (local.get $0)
+ (local.get $4)
+ )
+ )
+ (block
+ (if
+ (local.tee $12
+ (i32.load
+ (i32.const 1648)
+ )
+ )
+ (br_if $do-once33
+ (i32.or
+ (i32.le_u
+ (local.get $8)
+ (local.get $10)
+ )
+ (i32.gt_u
+ (local.get $8)
+ (local.get $12)
)
)
- (br_if $do-once33
- (i32.or
- (i32.le_u
- (local.get $0)
- (local.get $8)
- )
- (i32.gt_u
+ )
+ )
+ (local.set $1
+ (if (result i32)
+ (i32.eq
+ (local.get $2)
+ (local.tee $24
+ (call $ta
(local.get $0)
- (local.get $9)
)
)
)
- )
- (local.set $5
- (if (result i32)
- (i32.eq
- (local.get $17)
- (local.tee $9
- (call $ta
- (local.get $2)
- )
- )
+ (block
+ (local.set $3
+ (local.get $2)
)
- (block
- (local.set $20
- (local.get $17)
- )
- (local.set $26
- (local.get $2)
- )
- (br $label$break$b
- (i32.const 191)
- )
+ (local.set $7
+ (local.get $0)
)
- (block (result i32)
- (local.set $11
- (local.get $9)
- )
- (local.set $7
- (i32.const 181)
- )
- (local.get $2)
+ (br $label$break$b
+ (i32.const 191)
)
)
+ (block (result i32)
+ (local.set $9
+ (i32.const 181)
+ )
+ (local.get $0)
+ )
)
)
)
)
)
)
- (if
- (i32.eq
- (local.get $7)
- (i32.const 181)
+ )
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 181)
+ )
+ (block $label$break$d
+ (local.set $2
+ (i32.sub
+ (i32.const 0)
+ (local.get $1)
+ )
)
- (block $label$break$d
- (local.set $9
- (i32.sub
- (i32.const 0)
- (local.get $5)
+ (if
+ (i32.and
+ (i32.and
+ (i32.ne
+ (local.get $24)
+ (i32.const -1)
+ )
+ (i32.lt_u
+ (local.get $1)
+ (i32.const 2147483647)
+ )
+ )
+ (i32.gt_u
+ (local.get $22)
+ (local.get $1)
)
)
- (local.set $1
- (if (result i32)
- (i32.and
+ (if
+ (i32.lt_u
+ (local.tee $0
(i32.and
- (i32.ne
- (local.get $11)
- (i32.const -1)
+ (i32.add
+ (local.tee $0
+ (i32.load
+ (i32.const 1688)
+ )
+ )
+ (i32.sub
+ (local.get $6)
+ (local.get $1)
+ )
)
- (i32.lt_u
- (local.get $5)
- (i32.const 2147483647)
+ (i32.sub
+ (i32.const 0)
+ (local.get $0)
)
)
- (i32.gt_u
- (local.get $15)
- (local.get $5)
- )
)
+ (i32.const 2147483647)
+ )
+ (local.set $1
(if (result i32)
- (i32.lt_u
- (local.tee $0
- (i32.and
- (i32.add
- (local.tee $17
- (i32.load
- (i32.const 1688)
- )
- )
- (i32.sub
- (local.get $19)
- (local.get $5)
- )
- )
- (i32.sub
- (i32.const 0)
- (local.get $17)
- )
- )
+ (i32.eq
+ (call $ta
+ (local.get $0)
)
- (i32.const 2147483647)
+ (i32.const -1)
)
- (if (result i32)
- (i32.eq
+ (block
+ (drop
(call $ta
- (local.get $0)
- )
- (i32.const -1)
- )
- (block
- (drop
- (call $ta
- (local.get $9)
- )
+ (local.get $2)
)
- (br $label$break$d)
- )
- (i32.add
- (local.get $0)
- (local.get $5)
)
+ (br $label$break$d)
+ )
+ (i32.add
+ (local.get $0)
+ (local.get $1)
)
- (local.get $5)
)
- (local.get $5)
)
)
- (if
- (i32.ne
- (local.get $11)
- (i32.const -1)
+ )
+ (if
+ (i32.ne
+ (local.get $24)
+ (i32.const -1)
+ )
+ (block
+ (local.set $3
+ (local.get $24)
)
- (block
- (local.set $20
- (local.get $11)
- )
- (local.set $26
- (local.get $1)
- )
- (br $label$break$b
- (i32.const 191)
- )
+ (local.set $7
+ (local.get $1)
+ )
+ (br $label$break$b
+ (i32.const 191)
)
)
)
)
- (i32.store
- (i32.const 1652)
- (i32.or
- (i32.load
- (i32.const 1652)
- )
- (i32.const 4)
+ )
+ (i32.store
+ (i32.const 1652)
+ (i32.or
+ (i32.load
+ (i32.const 1652)
)
+ (i32.const 4)
)
- (i32.const 188)
)
+ (i32.const 188)
)
)
- (i32.const 188)
+ )
+ (i32.const 188)
+ )
+ (if
+ (i32.lt_u
+ (local.get $5)
+ (i32.const 2147483647)
)
(if
- (i32.lt_u
- (local.get $13)
- (i32.const 2147483647)
- )
- (if
+ (i32.and
(i32.and
- (i32.and
- (i32.ne
- (local.tee $1
- (call $ta
- (local.get $13)
- )
- )
- (i32.const -1)
- )
- (i32.ne
- (local.tee $13
- (call $ta
- (i32.const 0)
- )
+ (i32.ne
+ (local.tee $0
+ (call $ta
+ (local.get $5)
)
- (i32.const -1)
)
+ (i32.const -1)
)
- (i32.lt_u
- (local.get $1)
- (local.get $13)
- )
- )
- (if
- (i32.gt_u
- (local.tee $11
- (i32.sub
- (local.get $13)
- (local.get $1)
+ (i32.ne
+ (local.tee $1
+ (call $ta
+ (i32.const 0)
)
)
- (i32.add
- (local.get $3)
- (i32.const 40)
- )
+ (i32.const -1)
)
- (block
- (local.set $20
+ )
+ (i32.lt_u
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.gt_u
+ (local.tee $1
+ (i32.sub
(local.get $1)
+ (local.get $0)
)
- (local.set $26
- (local.get $11)
- )
- (local.set $7
- (i32.const 191)
- )
+ )
+ (i32.add
+ (local.get $4)
+ (i32.const 40)
+ )
+ )
+ (block
+ (local.set $7
+ (local.get $1)
+ )
+ (local.set $9
+ (i32.const 191)
+ )
+ (local.set $3
+ (local.get $0)
)
)
)
)
)
+ )
+ (if
(i32.eq
- (local.get $7)
+ (local.get $9)
(i32.const 191)
)
- )
- (block
- (i32.store
- (i32.const 1640)
- (local.tee $11
- (i32.add
- (local.get $26)
- (i32.load
- (i32.const 1640)
+ (block
+ (i32.store
+ (i32.const 1640)
+ (local.tee $0
+ (i32.add
+ (local.get $7)
+ (i32.load
+ (i32.const 1640)
+ )
)
)
)
- )
- (if
- (i32.gt_u
- (local.get $11)
- (i32.load
- (i32.const 1644)
+ (if
+ (i32.gt_u
+ (local.get $0)
+ (i32.load
+ (i32.const 1644)
+ )
)
- )
- (i32.store
- (i32.const 1644)
- (local.get $11)
- )
- )
- (if
- (local.tee $11
- (i32.load
- (i32.const 1232)
+ (i32.store
+ (i32.const 1644)
+ (local.get $0)
)
)
- (block $do-once38
- (local.set $5
- (i32.const 1656)
+ (if
+ (local.tee $6
+ (i32.load
+ (i32.const 1232)
+ )
)
- (loop $do-in41
- (block $do-out40
- (if
- (i32.eq
- (i32.add
- (local.tee $19
- (i32.load
- (local.tee $13
- (i32.add
- (local.get $5)
- (i32.const 4)
- )
+ (block $do-once38
+ (local.set $1
+ (i32.const 1656)
+ )
+ (loop $do-in41
+ (block $do-out40
+ (if
+ (i32.eq
+ (i32.add
+ (local.tee $0
+ (i32.load
+ (local.get $1)
)
)
- )
- (local.tee $1
- (i32.load
- (local.get $5)
+ (local.tee $5
+ (i32.load
+ (local.tee $2
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
+ )
+ )
+ )
)
)
+ (local.get $3)
)
- (local.get $20)
- )
- (block
- (local.set $48
- (local.get $1)
- )
- (local.set $49
- (local.get $13)
- )
- (local.set $50
- (local.get $19)
- )
- (local.set $51
- (local.get $5)
- )
- (local.set $7
- (i32.const 201)
+ (block
+ (local.set $41
+ (local.get $0)
+ )
+ (local.set $42
+ (local.get $2)
+ )
+ (local.set $43
+ (local.get $5)
+ )
+ (local.set $44
+ (local.get $1)
+ )
+ (local.set $9
+ (i32.const 201)
+ )
+ (br $do-out40)
)
- (br $do-out40)
)
- )
- (br_if $do-in41
- (local.tee $5
- (i32.load offset=8
- (local.get $5)
+ (br_if $do-in41
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $1)
+ )
)
)
)
)
- )
- (if
- (i32.eq
- (local.get $7)
- (i32.const 201)
- )
(if
- (i32.eqz
- (i32.and
- (i32.load offset=12
- (local.get $51)
- )
- (i32.const 8)
- )
+ (i32.eq
+ (local.get $9)
+ (i32.const 201)
)
(if
- (i32.and
- (i32.lt_u
- (local.get $11)
- (local.get $20)
- )
- (i32.ge_u
- (local.get $11)
- (local.get $48)
+ (i32.eqz
+ (i32.and
+ (i32.load offset=12
+ (local.get $44)
+ )
+ (i32.const 8)
)
)
- (block
- (i32.store
- (local.get $49)
- (i32.add
- (local.get $26)
- (local.get $50)
+ (if
+ (i32.and
+ (i32.lt_u
+ (local.get $6)
+ (local.get $3)
+ )
+ (i32.ge_u
+ (local.get $6)
+ (local.get $41)
)
)
- (local.set $5
- (i32.add
- (local.tee $19
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $5
- (i32.add
- (local.get $11)
- (i32.const 8)
+ (block
+ (i32.store
+ (local.get $42)
+ (i32.add
+ (local.get $7)
+ (local.get $43)
+ )
+ )
+ (local.set $0
+ (i32.add
+ (local.get $6)
+ (local.tee $1
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $0
+ (i32.add
+ (local.get $6)
+ (i32.const 8)
+ )
)
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $0)
+ (i32.const 7)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $5)
- (i32.const 7)
)
)
)
- (local.get $11)
)
- )
- (local.set $13
- (i32.add
- (i32.load
- (i32.const 1220)
- )
- (i32.sub
- (local.get $26)
- (local.get $19)
+ (local.set $1
+ (i32.add
+ (i32.load
+ (i32.const 1220)
+ )
+ (i32.sub
+ (local.get $7)
+ (local.get $1)
+ )
)
)
- )
- (i32.store
- (i32.const 1232)
- (local.get $5)
- )
- (i32.store
- (i32.const 1220)
- (local.get $13)
- )
- (i32.store offset=4
- (local.get $5)
- (i32.or
- (local.get $13)
- (i32.const 1)
+ (i32.store
+ (i32.const 1232)
+ (local.get $0)
)
- )
- (i32.store offset=4
- (i32.add
- (local.get $5)
- (local.get $13)
+ (i32.store
+ (i32.const 1220)
+ (local.get $1)
)
- (i32.const 40)
- )
- (i32.store
- (i32.const 1236)
- (i32.load
- (i32.const 1696)
+ (i32.store offset=4
+ (local.get $0)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ (i32.const 40)
+ )
+ (i32.store
+ (i32.const 1236)
+ (i32.load
+ (i32.const 1696)
+ )
)
+ (br $do-once38)
)
- (br $do-once38)
)
)
)
- )
- (local.set $6
- (if (result i32)
+ (if
(i32.lt_u
- (local.get $20)
- (local.tee $13
+ (local.get $3)
+ (local.tee $2
(i32.load
(i32.const 1224)
)
)
)
- (block (result i32)
+ (block
(i32.store
(i32.const 1224)
- (local.get $20)
+ (local.get $3)
+ )
+ (local.set $2
+ (local.get $3)
)
- (local.get $20)
)
- (local.get $13)
)
- )
- (local.set $13
- (i32.add
- (local.get $20)
- (local.get $26)
+ (local.set $0
+ (i32.add
+ (local.get $3)
+ (local.get $7)
+ )
)
- )
- (local.set $5
- (i32.const 1656)
- )
- (loop $while-in43
- (block $while-out42
- (if
- (i32.eq
- (local.get $13)
- (i32.load
- (local.get $5)
- )
- )
- (block
- (local.set $52
- (local.get $5)
- )
- (local.set $37
- (local.get $5)
+ (local.set $1
+ (i32.const 1656)
+ )
+ (loop $while-in43
+ (block $while-out42
+ (if
+ (i32.eq
+ (local.get $0)
+ (i32.load
+ (local.get $1)
+ )
)
- (local.set $7
- (i32.const 209)
+ (block
+ (local.set $45
+ (local.get $1)
+ )
+ (local.set $26
+ (local.get $1)
+ )
+ (local.set $9
+ (i32.const 209)
+ )
+ (br $while-out42)
)
- (br $while-out42)
)
- )
- (br_if $while-in43
- (local.tee $5
- (i32.load offset=8
- (local.get $5)
+ (br_if $while-in43
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $1)
+ )
)
)
- )
- (local.set $29
- (i32.const 1656)
+ (local.set $23
+ (i32.const 1656)
+ )
)
)
- )
- (if
- (i32.eq
- (local.get $7)
- (i32.const 209)
- )
- (local.set $29
- (if (result i32)
- (i32.and
- (i32.load offset=12
- (local.get $37)
- )
- (i32.const 8)
- )
- (i32.const 1656)
- (block
- (i32.store
- (local.get $52)
- (local.get $20)
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 209)
+ )
+ (local.set $23
+ (if (result i32)
+ (i32.and
+ (i32.load offset=12
+ (local.get $26)
+ )
+ (i32.const 8)
)
- (i32.store offset=4
- (local.get $37)
- (i32.add
+ (i32.const 1656)
+ (block
+ (i32.store
+ (local.get $45)
+ (local.get $3)
+ )
+ (i32.store offset=4
(local.get $26)
- (i32.load offset=4
- (local.get $37)
+ (i32.add
+ (local.get $7)
+ (i32.load offset=4
+ (local.get $26)
+ )
)
)
- )
- (local.set $19
- (i32.add
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $5
- (i32.add
- (local.get $20)
- (i32.const 8)
+ (local.set $7
+ (i32.add
+ (local.get $4)
+ (local.tee $10
+ (i32.add
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
)
)
+ (local.get $3)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $5)
- (i32.const 7)
)
)
- (local.get $20)
)
- )
- (local.set $1
- (i32.add
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $5
- (i32.add
- (local.get $13)
- (i32.const 8)
+ (local.set $8
+ (i32.sub
+ (i32.sub
+ (local.tee $5
+ (i32.add
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
+ )
)
+ (local.get $0)
)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $5)
- (i32.const 7)
+ (local.get $10)
)
+ (local.get $4)
)
- (local.get $13)
)
- )
- (local.set $5
- (i32.add
- (local.get $3)
- (local.get $19)
- )
- )
- (local.set $15
- (i32.sub
- (i32.sub
- (local.get $1)
- (local.get $19)
+ (i32.store offset=4
+ (local.get $10)
+ (i32.or
+ (local.get $4)
+ (i32.const 3)
)
- (local.get $3)
)
- )
- (i32.store offset=4
- (local.get $19)
- (i32.or
- (local.get $3)
- (i32.const 3)
- )
- )
- (if
- (i32.eq
- (local.get $1)
- (local.get $11)
- )
- (block
- (i32.store
- (i32.const 1220)
- (local.tee $2
- (i32.add
- (local.get $15)
- (i32.load
- (i32.const 1220)
+ (if
+ (i32.eq
+ (local.get $5)
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (i32.const 1220)
+ (local.tee $0
+ (i32.add
+ (local.get $8)
+ (i32.load
+ (i32.const 1220)
+ )
)
)
)
- )
- (i32.store
- (i32.const 1232)
- (local.get $5)
- )
- (i32.store offset=4
- (local.get $5)
- (i32.or
- (local.get $2)
- (i32.const 1)
+ (i32.store
+ (i32.const 1232)
+ (local.get $7)
)
- )
- )
- (block $do-once44
- (if
- (i32.eq
- (i32.load
- (i32.const 1228)
+ (i32.store offset=4
+ (local.get $7)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
)
- (local.get $1)
)
- (block
- (i32.store
- (i32.const 1216)
- (local.tee $2
- (i32.add
- (local.get $15)
- (i32.load
- (i32.const 1216)
- )
- )
+ )
+ (block $do-once44
+ (if
+ (i32.eq
+ (i32.load
+ (i32.const 1228)
)
- )
- (i32.store
- (i32.const 1228)
(local.get $5)
)
- (i32.store offset=4
- (local.get $5)
- (i32.or
- (local.get $2)
- (i32.const 1)
+ (block
+ (i32.store
+ (i32.const 1216)
+ (local.tee $0
+ (i32.add
+ (local.get $8)
+ (i32.load
+ (i32.const 1216)
+ )
+ )
+ )
)
- )
- (i32.store
- (i32.add
- (local.get $2)
- (local.get $5)
+ (i32.store
+ (i32.const 1228)
+ (local.get $7)
)
- (local.get $2)
- )
- (br $do-once44)
- )
- )
- (if
- (i32.eq
- (i32.and
- (local.tee $2
- (i32.load offset=4
- (local.get $1)
+ (i32.store offset=4
+ (local.get $7)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
)
)
- (i32.const 3)
- )
- (i32.const 1)
- )
- (block
- (local.set $4
- (i32.and
- (local.get $2)
- (i32.const -8)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (local.get $7)
+ )
+ (local.get $0)
)
+ (br $do-once44)
)
- (local.set $0
- (i32.shr_u
- (local.get $2)
- (i32.const 3)
+ )
+ (local.set $4
+ (if (result i32)
+ (i32.eq
+ (i32.and
+ (local.tee $0
+ (i32.load offset=4
+ (local.get $5)
+ )
+ )
+ (i32.const 3)
+ )
+ (i32.const 1)
)
- )
- (block $label$break$e
- (if
- (i32.lt_u
- (local.get $2)
- (i32.const 256)
+ (block (result i32)
+ (local.set $12
+ (i32.and
+ (local.get $0)
+ (i32.const -8)
+ )
)
- (block
- (local.set $12
- (i32.load offset=12
- (local.get $1)
- )
+ (local.set $3
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 3)
)
+ )
+ (block $label$break$e
(if
- (i32.ne
- (local.tee $9
- (i32.add
- (i32.shl
- (local.get $0)
- (i32.const 3)
- )
- (i32.const 1248)
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 256)
+ )
+ (block
+ (local.set $1
+ (i32.load offset=12
+ (local.get $5)
)
)
- (local.tee $22
- (i32.load offset=8
- (local.get $1)
+ (if
+ (i32.ne
+ (local.tee $4
+ (i32.load offset=8
+ (local.get $5)
+ )
+ )
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.get $3)
+ (i32.const 3)
+ )
+ (i32.const 1248)
+ )
+ )
+ )
+ (block $do-once47
+ (if
+ (i32.lt_u
+ (local.get $4)
+ (local.get $2)
+ )
+ (call $qa)
+ )
+ (br_if $do-once47
+ (i32.eq
+ (local.get $5)
+ (i32.load offset=12
+ (local.get $4)
+ )
+ )
+ )
+ (call $qa)
)
)
- )
- (block $do-once47
(if
- (i32.lt_u
- (local.get $22)
- (local.get $6)
+ (i32.eq
+ (local.get $1)
+ (local.get $4)
+ )
+ (block
+ (i32.store
+ (i32.const 1208)
+ (i32.and
+ (i32.load
+ (i32.const 1208)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $3)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (br $label$break$e)
)
- (call $qa)
)
- (br_if $do-once47
+ (if
(i32.eq
+ (local.get $0)
(local.get $1)
- (i32.load offset=12
- (local.get $22)
+ )
+ (local.set $32
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
)
)
- )
- (call $qa)
- )
- )
- (if
- (i32.eq
- (local.get $12)
- (local.get $22)
- )
- (block
- (i32.store
- (i32.const 1208)
- (i32.and
- (i32.load
- (i32.const 1208)
+ (block $do-once49
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (local.get $2)
+ )
+ (call $qa)
)
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $0)
+ (if
+ (i32.eq
+ (local.get $5)
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
+ )
+ )
+ )
+ (block
+ (local.set $32
+ (local.get $0)
+ )
+ (br $do-once49)
)
- (i32.const -1)
)
+ (call $qa)
)
)
- (br $label$break$e)
- )
- )
- (if
- (i32.eq
- (local.get $9)
- (local.get $12)
- )
- (local.set $42
- (i32.add
- (local.get $12)
- (i32.const 8)
+ (i32.store offset=12
+ (local.get $4)
+ (local.get $1)
+ )
+ (i32.store
+ (local.get $32)
+ (local.get $4)
)
)
- (block $do-once49
- (if
- (i32.lt_u
- (local.get $12)
- (local.get $6)
+ (block
+ (local.set $6
+ (i32.load offset=24
+ (local.get $5)
)
- (call $qa)
)
(if
(i32.eq
- (local.get $1)
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $12)
- (i32.const 8)
- )
+ (local.get $5)
+ (local.tee $0
+ (i32.load offset=12
+ (local.get $5)
)
)
)
- (block
- (local.set $42
- (local.get $0)
- )
- (br $do-once49)
- )
- )
- (call $qa)
- )
- )
- (i32.store offset=12
- (local.get $22)
- (local.get $12)
- )
- (i32.store
- (local.get $42)
- (local.get $22)
- )
- )
- (block
- (local.set $9
- (i32.load offset=24
- (local.get $1)
- )
- )
- (if
- (i32.eq
- (local.tee $0
- (i32.load offset=12
- (local.get $1)
- )
- )
- (local.get $1)
- )
- (block $do-once51
- (local.set $0
- (if (result i32)
- (local.tee $16
- (i32.load
- (local.tee $8
- (i32.add
- (local.tee $17
- (i32.add
- (local.get $1)
- (i32.const 16)
+ (block $do-once51
+ (if
+ (local.tee $0
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (local.tee $1
+ (i32.add
+ (local.get $5)
+ (i32.const 16)
+ )
)
+ (i32.const 4)
)
- (i32.const 4)
)
)
)
- )
- (block (result i32)
- (local.set $2
- (local.get $16)
+ (local.set $1
+ (local.get $4)
)
- (local.get $8)
- )
- (if (result i32)
- (local.tee $21
- (i32.load
- (local.get $17)
+ (br_if $do-once51
+ (i32.eqz
+ (local.tee $0
+ (i32.load
+ (local.get $1)
+ )
+ )
)
)
- (block (result i32)
- (local.set $2
- (local.get $21)
+ )
+ (loop $while-in54
+ (if
+ (local.tee $3
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (local.get $0)
+ (i32.const 20)
+ )
+ )
+ )
+ )
+ (block
+ (local.set $0
+ (local.get $3)
+ )
+ (local.set $1
+ (local.get $4)
+ )
+ (br $while-in54)
)
- (local.get $17)
)
- (br $do-once51)
- )
- )
- )
- (loop $while-in54
- (if
- (local.tee $16
- (i32.load
- (local.tee $8
- (i32.add
- (local.get $2)
- (i32.const 20)
+ (if
+ (local.tee $3
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ )
+ )
+ )
+ (block
+ (local.set $0
+ (local.get $3)
)
+ (local.set $1
+ (local.get $4)
+ )
+ (br $while-in54)
)
)
)
- (block
- (local.set $2
- (local.get $16)
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (local.get $2)
)
- (local.set $0
- (local.get $8)
+ (call $qa)
+ (block
+ (i32.store
+ (local.get $1)
+ (i32.const 0)
+ )
+ (local.set $17
+ (local.get $0)
+ )
)
- (br $while-in54)
)
)
- (if
- (local.tee $16
- (i32.load
- (local.tee $8
- (i32.add
- (local.get $2)
- (i32.const 16)
+ (block
+ (if
+ (i32.lt_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $5)
)
)
+ (local.get $2)
)
+ (call $qa)
)
- (block
- (local.set $2
- (local.get $16)
+ (if
+ (i32.ne
+ (local.get $5)
+ (i32.load offset=12
+ (local.get $1)
+ )
)
- (local.set $0
- (local.get $8)
+ (call $qa)
+ )
+ (if
+ (i32.eq
+ (local.get $5)
+ (i32.load offset=8
+ (local.get $0)
+ )
)
- (br $while-in54)
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $17
+ (local.get $0)
+ )
+ )
+ (call $qa)
)
)
)
- (if
- (i32.lt_u
- (local.get $0)
+ (br_if $label$break$e
+ (i32.eqz
(local.get $6)
)
- (call $qa)
- (block
+ )
+ (if
+ (i32.eq
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (i32.shl
+ (local.tee $0
+ (i32.load offset=28
+ (local.get $5)
+ )
+ )
+ (i32.const 2)
+ )
+ (i32.const 1512)
+ )
+ )
+ )
+ (local.get $5)
+ )
+ (block $do-once55
(i32.store
- (local.get $0)
- (i32.const 0)
+ (local.get $1)
+ (local.get $17)
)
- (local.set $24
- (local.get $2)
+ (br_if $do-once55
+ (local.get $17)
)
+ (i32.store
+ (i32.const 1212)
+ (i32.and
+ (i32.load
+ (i32.const 1212)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (br $label$break$e)
)
- )
- )
- (block
- (if
- (i32.lt_u
- (local.tee $8
- (i32.load offset=8
- (local.get $1)
+ (block
+ (if
+ (i32.lt_u
+ (local.get $6)
+ (i32.load
+ (i32.const 1224)
+ )
+ )
+ (call $qa)
+ )
+ (if
+ (i32.eq
+ (local.get $5)
+ (i32.load offset=16
+ (local.get $6)
+ )
+ )
+ (i32.store offset=16
+ (local.get $6)
+ (local.get $17)
+ )
+ (i32.store offset=20
+ (local.get $6)
+ (local.get $17)
+ )
+ )
+ (br_if $label$break$e
+ (i32.eqz
+ (local.get $17)
)
)
- (local.get $6)
)
- (call $qa)
- )
- (local.set $3
- (local.get $8)
)
(if
- (i32.ne
- (local.get $1)
- (i32.load offset=12
- (local.get $3)
+ (i32.lt_u
+ (local.get $17)
+ (local.tee $1
+ (i32.load
+ (i32.const 1224)
+ )
)
)
(call $qa)
)
- (local.set $2
- (local.get $0)
+ (i32.store offset=24
+ (local.get $17)
+ (local.get $6)
)
(if
- (i32.eq
- (local.get $1)
- (i32.load offset=8
- (local.get $0)
+ (local.tee $0
+ (i32.load offset=16
+ (local.get $5)
)
)
- (block
- (i32.store offset=12
- (local.get $3)
- (local.get $0)
- )
- (i32.store offset=8
- (local.get $2)
- (local.get $8)
- )
- (local.set $24
+ (if
+ (i32.lt_u
(local.get $0)
+ (local.get $1)
)
- )
- (call $qa)
- )
- )
- )
- (br_if $label$break$e
- (i32.eqz
- (local.get $9)
- )
- )
- (if
- (i32.eq
- (i32.load
- (local.tee $22
- (i32.add
- (i32.shl
- (local.tee $0
- (i32.load offset=28
- (local.get $1)
- )
- )
- (i32.const 2)
+ (call $qa)
+ (block
+ (i32.store offset=16
+ (local.get $17)
+ (local.get $0)
+ )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $17)
)
- (i32.const 1512)
)
)
)
- (local.get $1)
- )
- (block $do-once55
- (i32.store
- (local.get $22)
- (local.get $24)
- )
- (br_if $do-once55
- (local.get $24)
- )
- (i32.store
- (i32.const 1212)
- (i32.and
- (i32.load
- (i32.const 1212)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $0)
+ (br_if $label$break$e
+ (i32.eqz
+ (local.tee $0
+ (i32.load offset=20
+ (local.get $5)
)
- (i32.const -1)
)
)
)
- (br $label$break$e)
- )
- (block
(if
(i32.lt_u
- (local.get $9)
+ (local.get $0)
(i32.load
(i32.const 1224)
)
)
(call $qa)
- )
- (local.set $0
- (local.get $9)
- )
- (if
- (i32.eq
- (local.get $1)
- (i32.load offset=16
+ (block
+ (i32.store offset=20
+ (local.get $17)
(local.get $0)
)
- )
- (i32.store offset=16
- (local.get $0)
- (local.get $24)
- )
- (i32.store offset=20
- (local.get $9)
- (local.get $24)
- )
- )
- (br_if $label$break$e
- (i32.eqz
- (local.get $24)
- )
- )
- )
- )
- (if
- (i32.lt_u
- (local.get $24)
- (local.tee $0
- (i32.load
- (i32.const 1224)
- )
- )
- )
- (call $qa)
- )
- (i32.store offset=24
- (local.get $24)
- (local.get $9)
- )
- (local.set $2
- (local.get $1)
- )
- (if
- (local.tee $12
- (i32.load offset=16
- (local.get $1)
- )
- )
- (if
- (i32.lt_u
- (local.get $12)
- (local.get $0)
- )
- (call $qa)
- (block
- (i32.store offset=16
- (local.get $24)
- (local.get $12)
- )
- (i32.store offset=24
- (local.get $12)
- (local.get $24)
- )
- )
- )
- )
- (br_if $label$break$e
- (i32.eqz
- (local.tee $12
- (i32.load offset=20
- (local.get $2)
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $17)
+ )
)
)
)
)
- (if
- (i32.lt_u
- (local.get $12)
- (i32.load
- (i32.const 1224)
- )
- )
- (call $qa)
- (block
- (i32.store offset=20
- (local.get $24)
- (local.get $12)
- )
- (i32.store offset=24
- (local.get $12)
- (local.get $24)
- )
- )
+ )
+ (local.set $5
+ (i32.add
+ (local.get $5)
+ (local.get $12)
)
)
+ (i32.add
+ (local.get $8)
+ (local.get $12)
+ )
)
+ (local.get $8)
)
- (local.set $1
- (i32.add
- (local.get $1)
- (local.get $4)
- )
- )
- (local.set $15
- (i32.add
- (local.get $4)
- (local.get $15)
+ )
+ (i32.store offset=4
+ (local.get $5)
+ (i32.and
+ (i32.load offset=4
+ (local.get $5)
)
+ (i32.const -2)
)
)
- )
- (i32.store offset=4
- (local.get $1)
- (i32.and
- (i32.load offset=4
- (local.get $1)
+ (i32.store offset=4
+ (local.get $7)
+ (i32.or
+ (local.get $4)
+ (i32.const 1)
)
- (i32.const -2)
- )
- )
- (i32.store offset=4
- (local.get $5)
- (i32.or
- (local.get $15)
- (i32.const 1)
)
- )
- (i32.store
- (i32.add
- (local.get $5)
- (local.get $15)
- )
- (local.get $15)
- )
- (local.set $0
- (i32.shr_u
- (local.get $15)
- (i32.const 3)
+ (i32.store
+ (i32.add
+ (local.get $4)
+ (local.get $7)
+ )
+ (local.get $4)
)
- )
- (if
- (i32.lt_u
- (local.get $15)
- (i32.const 256)
+ (local.set $1
+ (i32.shr_u
+ (local.get $4)
+ (i32.const 3)
+ )
)
- (block
- (local.set $2
- (i32.add
- (i32.shl
- (local.get $0)
- (i32.const 3)
- )
- (i32.const 1248)
- )
+ (if
+ (i32.lt_u
+ (local.get $4)
+ (i32.const 256)
)
- (if
- (i32.and
- (local.tee $0
+ (block
+ (local.set $0
+ (i32.add
(i32.shl
- (i32.const 1)
- (local.get $0)
+ (local.get $1)
+ (i32.const 3)
)
+ (i32.const 1248)
)
- (local.tee $12
- (i32.load
- (i32.const 1208)
+ )
+ (if
+ (i32.and
+ (local.tee $4
+ (i32.load
+ (i32.const 1208)
+ )
+ )
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
)
)
- )
- (block $do-once59
- (if
- (i32.ge_u
- (local.tee $9
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $2)
- (i32.const 8)
+ (block $do-once59
+ (if
+ (i32.ge_u
+ (local.tee $4
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
)
)
)
+ (i32.load
+ (i32.const 1224)
+ )
)
- (i32.load
- (i32.const 1224)
+ (block
+ (local.set $33
+ (local.get $1)
+ )
+ (local.set $27
+ (local.get $4)
+ )
+ (br $do-once59)
)
)
- (block
- (local.set $43
- (local.get $0)
+ (call $qa)
+ )
+ (block
+ (i32.store
+ (i32.const 1208)
+ (i32.or
+ (local.get $1)
+ (local.get $4)
)
- (local.set $38
- (local.get $9)
+ )
+ (local.set $33
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
)
- (br $do-once59)
)
- )
- (call $qa)
- )
- (block
- (i32.store
- (i32.const 1208)
- (i32.or
+ (local.set $27
(local.get $0)
- (local.get $12)
- )
- )
- (local.set $43
- (i32.add
- (local.get $2)
- (i32.const 8)
)
)
- (local.set $38
- (local.get $2)
- )
)
+ (i32.store
+ (local.get $33)
+ (local.get $7)
+ )
+ (i32.store offset=12
+ (local.get $27)
+ (local.get $7)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $27)
+ )
+ (i32.store offset=12
+ (local.get $7)
+ (local.get $0)
+ )
+ (br $do-once44)
)
- (i32.store
- (local.get $43)
- (local.get $5)
- )
- (i32.store offset=12
- (local.get $38)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $38)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $2)
- )
- (br $do-once44)
)
- )
- (local.set $0
- (i32.add
- (i32.shl
- (local.tee $4
- (if (result i32)
- (local.tee $0
- (i32.shr_u
- (local.get $15)
- (i32.const 8)
- )
- )
+ (local.set $1
+ (i32.add
+ (i32.shl
+ (local.tee $0
(if (result i32)
- (i32.gt_u
- (local.get $15)
- (i32.const 16777215)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $4)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $9
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $4
- (i32.shl
- (local.get $0)
- (local.tee $12
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $0)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $4)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $0)
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $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 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $15)
- (i32.add
- (local.tee $8
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
- (local.tee $4
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $4)
- (local.get $9)
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $4)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
+ (i32.or
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $3)
+ (local.get $0)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
)
- )
- (i32.or
- (local.get $9)
- (local.get $12)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
+ )
)
)
- )
- (i32.shr_u
- (i32.shl
- (local.get $0)
- (local.get $4)
+ (i32.shr_u
+ (i32.shl
+ (local.get $3)
+ (local.get $2)
+ )
+ (i32.const 15)
)
- (i32.const 15)
)
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $8)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 1512)
)
- (i32.const 1512)
)
- )
- (i32.store offset=28
- (local.get $5)
- (local.get $4)
- )
- (i32.store offset=20
- (local.get $5)
- (i32.const 0)
- )
- (i32.store offset=16
- (local.get $5)
- (i32.const 0)
- )
- (if
- (i32.eqz
- (i32.and
- (local.tee $8
- (i32.shl
- (i32.const 1)
- (local.get $4)
+ (i32.store offset=28
+ (local.get $7)
+ (local.get $0)
+ )
+ (i32.store offset=20
+ (local.get $7)
+ (i32.const 0)
+ )
+ (i32.store offset=16
+ (local.get $7)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (local.tee $3
+ (i32.load
+ (i32.const 1212)
+ )
)
- )
- (local.tee $2
- (i32.load
- (i32.const 1212)
+ (local.tee $2
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
)
)
)
- )
- (block
- (i32.store
- (i32.const 1212)
- (i32.or
- (local.get $2)
- (local.get $8)
+ (block
+ (i32.store
+ (i32.const 1212)
+ (i32.or
+ (local.get $2)
+ (local.get $3)
+ )
)
+ (i32.store
+ (local.get $1)
+ (local.get $7)
+ )
+ (i32.store offset=24
+ (local.get $7)
+ (local.get $1)
+ )
+ (i32.store offset=12
+ (local.get $7)
+ (local.get $7)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $7)
+ )
+ (br $do-once44)
)
- (i32.store
- (local.get $0)
- (local.get $5)
- )
- (i32.store offset=24
- (local.get $5)
- (local.get $0)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $5)
- )
- (br $do-once44)
)
- )
- (local.set $8
- (i32.shl
- (local.get $15)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
- (local.get $4)
- (i32.const 1)
+ (local.set $14
+ (i32.shl
+ (local.get $4)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ (i32.eq
+ (local.get $0)
+ (i32.const 31)
)
- )
- (i32.eq
- (local.get $4)
- (i32.const 31)
)
)
)
- )
- (local.set $2
- (i32.load
- (local.get $0)
+ (local.set $0
+ (i32.load
+ (local.get $1)
+ )
)
- )
- (if
- (i32.eq
- (local.tee $7
- (loop $while-in64 (result i32)
- (block $while-out63 (result i32)
- (if
- (i32.eq
- (local.get $15)
- (i32.and
- (i32.load offset=4
- (local.get $2)
+ (if
+ (i32.eq
+ (local.tee $9
+ (loop $while-in64 (result i32)
+ (block $while-out63 (result i32)
+ (if
+ (i32.eq
+ (local.get $4)
+ (i32.and
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const -8)
)
- (i32.const -8)
)
- )
- (block
- (local.set $44
- (local.get $2)
- )
- (br $while-out63
- (i32.const 279)
+ (block
+ (local.set $34
+ (local.get $0)
+ )
+ (br $while-out63
+ (i32.const 279)
+ )
)
)
- )
- (if (result i32)
- (local.tee $4
- (i32.load
- (local.tee $0
- (i32.add
+ (if (result i32)
+ (local.tee $1
+ (i32.load
+ (local.tee $3
(i32.add
- (local.get $2)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $8)
- (i32.const 31)
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $14)
+ (i32.const 31)
+ )
+ (i32.const 2)
)
- (i32.const 2)
)
)
)
)
- )
- (block
- (local.set $8
- (i32.shl
- (local.get $8)
- (i32.const 1)
+ (block
+ (local.set $14
+ (i32.shl
+ (local.get $14)
+ (i32.const 1)
+ )
)
+ (local.set $0
+ (local.get $1)
+ )
+ (br $while-in64)
)
- (local.set $2
- (local.get $4)
- )
- (br $while-in64)
- )
- (block (result i32)
- (local.set $45
- (local.get $0)
- )
- (local.set $53
- (local.get $2)
+ (block (result i32)
+ (local.set $35
+ (local.get $3)
+ )
+ (local.set $46
+ (local.get $0)
+ )
+ (i32.const 276)
)
- (i32.const 276)
)
)
)
)
+ (i32.const 276)
)
- (i32.const 276)
- )
- (if
- (i32.lt_u
- (local.get $45)
- (i32.load
- (i32.const 1224)
- )
- )
- (call $qa)
- (block
- (i32.store
- (local.get $45)
- (local.get $5)
- )
- (i32.store offset=24
- (local.get $5)
- (local.get $53)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $5)
+ (if
+ (i32.lt_u
+ (local.get $35)
+ (i32.load
+ (i32.const 1224)
+ )
)
- (i32.store offset=8
- (local.get $5)
- (local.get $5)
+ (call $qa)
+ (block
+ (i32.store
+ (local.get $35)
+ (local.get $7)
+ )
+ (i32.store offset=24
+ (local.get $7)
+ (local.get $46)
+ )
+ (i32.store offset=12
+ (local.get $7)
+ (local.get $7)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $7)
+ )
)
)
- )
- (if
- (i32.eq
- (local.get $7)
- (i32.const 279)
- )
- (block
- (local.set $0
- (local.get $44)
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 279)
)
(if
(i32.and
(i32.ge_u
- (local.tee $8
+ (local.tee $1
(i32.load offset=8
- (local.get $0)
+ (local.tee $0
+ (local.get $34)
+ )
)
)
(local.tee $4
@@ -4850,23 +4697,23 @@
)
(block
(i32.store offset=12
- (local.get $8)
- (local.get $5)
+ (local.get $1)
+ (local.get $7)
)
(i32.store offset=8
(local.get $0)
- (local.get $5)
+ (local.get $7)
)
(i32.store offset=8
- (local.get $5)
- (local.get $8)
+ (local.get $7)
+ (local.get $1)
)
(i32.store offset=12
- (local.get $5)
- (local.get $44)
+ (local.get $7)
+ (local.get $34)
)
(i32.store offset=24
- (local.get $5)
+ (local.get $7)
(i32.const 0)
)
)
@@ -4876,676 +4723,659 @@
)
)
)
- )
- (global.set $r
- (local.get $25)
- )
- (return
- (i32.add
- (local.get $19)
- (i32.const 8)
+ (global.set $r
+ (local.get $18)
+ )
+ (return
+ (i32.add
+ (local.get $10)
+ (i32.const 8)
+ )
)
)
)
)
)
- )
- (loop $while-in66
- (block $while-out65
- (if
- (i32.le_u
- (local.tee $5
- (i32.load
- (local.get $29)
- )
- )
- (local.get $11)
- )
+ (loop $while-in66
+ (block $while-out65
(if
- (i32.gt_u
- (local.tee $15
- (i32.add
- (i32.load offset=4
- (local.get $29)
- )
- (local.get $5)
+ (i32.le_u
+ (local.tee $0
+ (i32.load
+ (local.get $23)
)
)
- (local.get $11)
+ (local.get $6)
)
- (block
- (local.set $2
- (local.get $15)
+ (br_if $while-out65
+ (i32.gt_u
+ (local.tee $0
+ (i32.add
+ (i32.load offset=4
+ (local.get $23)
+ )
+ (local.get $0)
+ )
+ )
+ (local.get $6)
)
- (br $while-out65)
)
)
- )
- (local.set $29
- (i32.load offset=8
- (local.get $29)
+ (local.set $23
+ (i32.load offset=8
+ (local.get $23)
+ )
)
+ (br $while-in66)
)
- (br $while-in66)
)
- )
- (local.set $5
- (i32.add
- (local.tee $4
- (local.tee $19
- (select
- (local.get $11)
- (local.tee $5
- (i32.add
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $15
- (i32.add
- (local.tee $19
- (i32.add
- (local.get $2)
- (i32.const -47)
- )
- )
- (i32.const 8)
- )
- )
- )
- (i32.const 7)
- )
+ (i32.store
+ (i32.const 1232)
+ (local.tee $1
+ (i32.add
+ (local.get $3)
+ (local.tee $2
+ (select
+ (i32.and
+ (i32.sub
(i32.const 0)
- (i32.and
- (local.get $15)
- (i32.const 7)
+ (local.tee $1
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
)
)
- (local.get $19)
+ (i32.const 7)
)
- )
- (i32.lt_u
- (local.get $5)
- (local.tee $15
- (i32.add
- (local.get $11)
- (i32.const 16)
- )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
)
)
)
)
)
- (i32.const 8)
)
- )
- (i32.store
- (i32.const 1232)
- (local.tee $1
+ (i32.store
+ (i32.const 1220)
+ (local.tee $2
+ (i32.sub
+ (i32.add
+ (local.get $7)
+ (i32.const -40)
+ )
+ (local.get $2)
+ )
+ )
+ )
+ (i32.store offset=4
+ (local.get $1)
+ (i32.or
+ (local.get $2)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4
(i32.add
- (local.tee $13
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $1
- (i32.add
- (local.get $20)
- (i32.const 8)
+ (local.get $1)
+ (local.get $2)
+ )
+ (i32.const 40)
+ )
+ (i32.store
+ (i32.const 1236)
+ (i32.load
+ (i32.const 1696)
+ )
+ )
+ (i32.store offset=4
+ (local.tee $2
+ (select
+ (local.get $6)
+ (local.tee $1
+ (i32.add
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $2
+ (i32.add
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const -47)
+ )
+ )
+ (i32.const 8)
+ )
+ )
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $2)
+ (i32.const 7)
)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
(local.get $1)
- (i32.const 7)
+ )
+ )
+ (i32.lt_u
+ (local.get $1)
+ (local.tee $8
+ (i32.add
+ (local.get $6)
+ (i32.const 16)
+ )
)
)
)
- (local.get $20)
)
+ (i32.const 27)
)
- )
- (i32.store
- (i32.const 1220)
- (local.tee $8
- (i32.sub
- (i32.add
- (local.get $26)
- (i32.const -40)
- )
- (local.get $13)
+ (i32.store offset=8
+ (local.get $2)
+ (i32.load
+ (i32.const 1656)
)
)
- )
- (i32.store offset=4
- (local.get $1)
- (i32.or
- (local.get $8)
- (i32.const 1)
+ (i32.store offset=12
+ (local.get $2)
+ (i32.load
+ (i32.const 1660)
+ )
)
- )
- (i32.store offset=4
- (i32.add
- (local.get $1)
- (local.get $8)
+ (i32.store offset=16
+ (local.get $2)
+ (i32.load
+ (i32.const 1664)
+ )
)
- (i32.const 40)
- )
- (i32.store
- (i32.const 1236)
- (i32.load
- (i32.const 1696)
+ (i32.store offset=20
+ (local.get $2)
+ (i32.load
+ (i32.const 1668)
+ )
)
- )
- (local.set $0
- (local.get $19)
- )
- (i32.store offset=4
- (local.get $0)
- (i32.const 27)
- )
- (i32.store offset=8
- (local.get $4)
- (i32.load
+ (i32.store
(i32.const 1656)
+ (local.get $3)
)
- )
- (i32.store offset=12
- (local.get $4)
- (i32.load
+ (i32.store
(i32.const 1660)
+ (local.get $7)
)
- )
- (i32.store offset=16
- (local.get $4)
- (i32.load
- (i32.const 1664)
- )
- )
- (i32.store offset=20
- (local.get $4)
- (i32.load
+ (i32.store
(i32.const 1668)
+ (i32.const 0)
)
- )
- (i32.store
- (i32.const 1656)
- (local.get $20)
- )
- (i32.store
- (i32.const 1660)
- (local.get $26)
- )
- (i32.store
- (i32.const 1668)
- (i32.const 0)
- )
- (i32.store
- (i32.const 1664)
- (local.get $5)
- )
- (local.set $5
- (i32.add
- (local.get $0)
- (i32.const 24)
- )
- )
- (loop $do-in68
(i32.store
- (local.tee $5
- (i32.add
- (local.get $5)
- (i32.const 4)
- )
+ (i32.const 1664)
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
)
- (i32.const 7)
)
- (br_if $do-in68
- (i32.lt_u
- (i32.add
- (local.get $5)
- (i32.const 4)
- )
+ (local.set $1
+ (i32.add
(local.get $2)
+ (i32.const 24)
)
)
- )
- (if
- (i32.ne
- (local.get $11)
- (local.get $19)
- )
- (block
- (i32.store offset=4
- (local.get $0)
- (i32.and
- (i32.load offset=4
- (local.get $0)
+ (loop $do-in68
+ (i32.store
+ (local.tee $1
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
)
- (i32.const -2)
)
+ (i32.const 7)
)
- (i32.store offset=4
- (local.get $11)
- (i32.or
- (local.tee $5
- (i32.sub
- (local.get $19)
- (local.get $11)
- )
+ (br_if $do-in68
+ (i32.lt_u
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
)
- (i32.const 1)
+ (local.get $0)
)
)
- (i32.store
- (local.get $19)
- (local.get $5)
- )
- (local.set $1
- (i32.shr_u
- (local.get $5)
- (i32.const 3)
- )
+ )
+ (if
+ (i32.ne
+ (local.get $2)
+ (local.get $6)
)
- (if
- (i32.lt_u
- (local.get $5)
- (i32.const 256)
+ (block
+ (i32.store offset=4
+ (local.get $2)
+ (i32.and
+ (i32.load offset=4
+ (local.get $2)
+ )
+ (i32.const -2)
+ )
)
- (block
- (local.set $13
- (i32.add
- (i32.shl
- (local.get $1)
- (i32.const 3)
+ (i32.store offset=4
+ (local.get $6)
+ (i32.or
+ (local.tee $5
+ (i32.sub
+ (local.get $2)
+ (local.get $6)
)
- (i32.const 1248)
)
+ (i32.const 1)
)
- (if
- (i32.and
- (local.tee $4
+ )
+ (i32.store
+ (local.get $2)
+ (local.get $5)
+ )
+ (local.set $1
+ (i32.shr_u
+ (local.get $5)
+ (i32.const 3)
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $5)
+ (i32.const 256)
+ )
+ (block
+ (local.set $0
+ (i32.add
(i32.shl
- (i32.const 1)
(local.get $1)
+ (i32.const 3)
)
- )
- (local.tee $2
- (i32.load
- (i32.const 1208)
- )
+ (i32.const 1248)
)
)
(if
- (i32.lt_u
- (local.tee $2
+ (i32.and
+ (local.tee $3
(i32.load
- (local.tee $4
- (i32.add
- (local.get $13)
- (i32.const 8)
+ (i32.const 1208)
+ )
+ )
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.tee $3
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
)
)
)
+ (i32.load
+ (i32.const 1224)
+ )
)
- (i32.load
- (i32.const 1224)
+ (call $qa)
+ (block
+ (local.set $36
+ (local.get $1)
+ )
+ (local.set $28
+ (local.get $3)
+ )
)
)
- (call $qa)
(block
- (local.set $46
- (local.get $4)
- )
- (local.set $39
- (local.get $2)
+ (i32.store
+ (i32.const 1208)
+ (i32.or
+ (local.get $1)
+ (local.get $3)
+ )
)
- )
- )
- (block
- (i32.store
- (i32.const 1208)
- (i32.or
- (local.get $2)
- (local.get $4)
+ (local.set $36
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
)
- )
- (local.set $46
- (i32.add
- (local.get $13)
- (i32.const 8)
+ (local.set $28
+ (local.get $0)
)
)
- (local.set $39
- (local.get $13)
- )
)
+ (i32.store
+ (local.get $36)
+ (local.get $6)
+ )
+ (i32.store offset=12
+ (local.get $28)
+ (local.get $6)
+ )
+ (i32.store offset=8
+ (local.get $6)
+ (local.get $28)
+ )
+ (i32.store offset=12
+ (local.get $6)
+ (local.get $0)
+ )
+ (br $do-once38)
)
- (i32.store
- (local.get $46)
- (local.get $11)
- )
- (i32.store offset=12
- (local.get $39)
- (local.get $11)
- )
- (i32.store offset=8
- (local.get $11)
- (local.get $39)
- )
- (i32.store offset=12
- (local.get $11)
- (local.get $13)
- )
- (br $do-once38)
)
- )
- (local.set $0
- (i32.add
- (i32.shl
- (local.tee $2
- (if (result i32)
- (local.tee $13
- (i32.shr_u
- (local.get $5)
- (i32.const 8)
- )
- )
+ (local.set $3
+ (i32.add
+ (i32.shl
+ (local.tee $0
(if (result i32)
- (i32.gt_u
- (local.get $5)
- (i32.const 16777215)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $5)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $13
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $4
- (i32.shl
- (local.get $13)
- (local.tee $2
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $13)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $5)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $0)
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $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 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $5)
- (i32.add
- (local.tee $0
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
- (local.tee $4
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $1
- (i32.shl
- (local.get $4)
- (local.get $13)
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $5)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
+ (i32.or
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $3)
+ (local.get $0)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
+ )
+ (i32.or
+ (local.get $0)
+ (local.get $1)
)
)
- (i32.or
+ )
+ (i32.shr_u
+ (i32.shl
+ (local.get $3)
(local.get $2)
- (local.get $13)
)
+ (i32.const 15)
)
)
- (i32.shr_u
- (i32.shl
- (local.get $1)
- (local.get $4)
- )
- (i32.const 15)
- )
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $0)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 1512)
)
- (i32.const 1512)
)
- )
- (i32.store offset=28
- (local.get $11)
- (local.get $2)
- )
- (i32.store offset=20
- (local.get $11)
- (i32.const 0)
- )
- (i32.store
- (local.get $15)
- (i32.const 0)
- )
- (if
- (i32.eqz
- (i32.and
- (local.tee $4
- (i32.load
- (i32.const 1212)
+ (i32.store offset=28
+ (local.get $6)
+ (local.get $0)
+ )
+ (i32.store offset=20
+ (local.get $6)
+ (i32.const 0)
+ )
+ (i32.store
+ (local.get $8)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (local.tee $1
+ (i32.load
+ (i32.const 1212)
+ )
+ )
+ (local.tee $2
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
)
)
- (local.tee $1
- (i32.shl
- (i32.const 1)
+ )
+ (block
+ (i32.store
+ (i32.const 1212)
+ (i32.or
+ (local.get $1)
(local.get $2)
)
)
- )
- )
- (block
- (i32.store
- (i32.const 1212)
- (i32.or
- (local.get $1)
- (local.get $4)
+ (i32.store
+ (local.get $3)
+ (local.get $6)
)
+ (i32.store offset=24
+ (local.get $6)
+ (local.get $3)
+ )
+ (i32.store offset=12
+ (local.get $6)
+ (local.get $6)
+ )
+ (i32.store offset=8
+ (local.get $6)
+ (local.get $6)
+ )
+ (br $do-once38)
)
- (i32.store
- (local.get $0)
- (local.get $11)
- )
- (i32.store offset=24
- (local.get $11)
- (local.get $0)
- )
- (i32.store offset=12
- (local.get $11)
- (local.get $11)
- )
- (i32.store offset=8
- (local.get $11)
- (local.get $11)
- )
- (br $do-once38)
)
- )
- (local.set $1
- (i32.shl
- (local.get $5)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
- (local.get $2)
- (i32.const 1)
+ (local.set $1
+ (i32.shl
+ (local.get $5)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ (i32.eq
+ (local.get $0)
+ (i32.const 31)
)
- )
- (i32.eq
- (local.get $2)
- (i32.const 31)
)
)
)
- )
- (local.set $4
- (i32.load
- (local.get $0)
+ (local.set $0
+ (i32.load
+ (local.get $3)
+ )
)
- )
- (if
- (i32.eq
- (local.tee $7
- (loop $while-in70 (result i32)
- (block $while-out69 (result i32)
- (if
- (i32.eq
- (local.get $5)
- (i32.and
- (i32.load offset=4
- (local.get $4)
+ (if
+ (i32.eq
+ (local.tee $9
+ (loop $while-in70 (result i32)
+ (block $while-out69 (result i32)
+ (if
+ (i32.eq
+ (local.get $5)
+ (i32.and
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const -8)
)
- (i32.const -8)
)
- )
- (block
- (local.set $33
- (local.get $4)
- )
- (br $while-out69
- (i32.const 305)
+ (block
+ (local.set $37
+ (local.get $0)
+ )
+ (br $while-out69
+ (i32.const 305)
+ )
)
)
- )
- (if (result i32)
- (local.tee $2
- (i32.load
- (local.tee $0
- (i32.add
+ (if (result i32)
+ (local.tee $3
+ (i32.load
+ (local.tee $2
(i32.add
- (local.get $4)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $1)
- (i32.const 31)
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $1)
+ (i32.const 31)
+ )
+ (i32.const 2)
)
- (i32.const 2)
)
)
)
)
- )
- (block
- (local.set $1
- (i32.shl
- (local.get $1)
- (i32.const 1)
+ (block
+ (local.set $1
+ (i32.shl
+ (local.get $1)
+ (i32.const 1)
+ )
)
+ (local.set $0
+ (local.get $3)
+ )
+ (br $while-in70)
)
- (local.set $4
- (local.get $2)
- )
- (br $while-in70)
- )
- (block (result i32)
- (local.set $47
- (local.get $0)
- )
- (local.set $54
- (local.get $4)
+ (block (result i32)
+ (local.set $38
+ (local.get $2)
+ )
+ (local.set $47
+ (local.get $0)
+ )
+ (i32.const 302)
)
- (i32.const 302)
)
)
)
)
+ (i32.const 302)
)
- (i32.const 302)
- )
- (if
- (i32.lt_u
- (local.get $47)
- (i32.load
- (i32.const 1224)
- )
- )
- (call $qa)
- (block
- (i32.store
- (local.get $47)
- (local.get $11)
- )
- (i32.store offset=24
- (local.get $11)
- (local.get $54)
- )
- (i32.store offset=12
- (local.get $11)
- (local.get $11)
+ (if
+ (i32.lt_u
+ (local.get $38)
+ (i32.load
+ (i32.const 1224)
+ )
)
- (i32.store offset=8
- (local.get $11)
- (local.get $11)
+ (call $qa)
+ (block
+ (i32.store
+ (local.get $38)
+ (local.get $6)
+ )
+ (i32.store offset=24
+ (local.get $6)
+ (local.get $47)
+ )
+ (i32.store offset=12
+ (local.get $6)
+ (local.get $6)
+ )
+ (i32.store offset=8
+ (local.get $6)
+ (local.get $6)
+ )
)
)
- )
- (if
- (i32.eq
- (local.get $7)
- (i32.const 305)
- )
- (block
- (local.set $0
- (local.get $33)
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 305)
)
(if
(i32.and
(i32.ge_u
(local.tee $1
(i32.load offset=8
- (local.get $0)
+ (local.tee $0
+ (local.get $37)
+ )
)
)
- (local.tee $5
+ (local.tee $3
(i32.load
(i32.const 1224)
)
@@ -5553,28 +5383,28 @@
)
(i32.ge_u
(local.get $0)
- (local.get $5)
+ (local.get $3)
)
)
(block
(i32.store offset=12
(local.get $1)
- (local.get $11)
+ (local.get $6)
)
(i32.store offset=8
(local.get $0)
- (local.get $11)
+ (local.get $6)
)
(i32.store offset=8
- (local.get $11)
+ (local.get $6)
(local.get $1)
)
(i32.store offset=12
- (local.get $11)
- (local.get $33)
+ (local.get $6)
+ (local.get $37)
)
(i32.store offset=24
- (local.get $11)
+ (local.get $6)
(i32.const 0)
)
)
@@ -5585,219 +5415,208 @@
)
)
)
- )
- (block
- (if
- (i32.or
- (i32.eqz
- (local.tee $1
- (i32.load
- (i32.const 1224)
+ (block
+ (if
+ (i32.or
+ (i32.eqz
+ (local.tee $0
+ (i32.load
+ (i32.const 1224)
+ )
)
)
+ (i32.lt_u
+ (local.get $3)
+ (local.get $0)
+ )
)
- (i32.lt_u
- (local.get $20)
- (local.get $1)
+ (i32.store
+ (i32.const 1224)
+ (local.get $3)
)
)
(i32.store
- (i32.const 1224)
- (local.get $20)
+ (i32.const 1656)
+ (local.get $3)
)
- )
- (i32.store
- (i32.const 1656)
- (local.get $20)
- )
- (i32.store
- (i32.const 1660)
- (local.get $26)
- )
- (i32.store
- (i32.const 1668)
- (i32.const 0)
- )
- (i32.store
- (i32.const 1244)
- (i32.load
- (i32.const 1680)
+ (i32.store
+ (i32.const 1660)
+ (local.get $7)
)
- )
- (i32.store
- (i32.const 1240)
- (i32.const -1)
- )
- (local.set $1
- (i32.const 0)
- )
- (loop $do-in
- (i32.store offset=12
- (local.tee $13
- (i32.add
- (i32.shl
- (local.get $1)
- (i32.const 3)
- )
- (i32.const 1248)
- )
+ (i32.store
+ (i32.const 1668)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 1244)
+ (i32.load
+ (i32.const 1680)
)
- (local.get $13)
)
- (i32.store offset=8
- (local.get $13)
- (local.get $13)
+ (i32.store
+ (i32.const 1240)
+ (i32.const -1)
)
- (br_if $do-in
- (i32.ne
- (local.tee $1
+ (local.set $1
+ (i32.const 0)
+ )
+ (loop $do-in
+ (i32.store offset=12
+ (local.tee $0
(i32.add
- (local.get $1)
- (i32.const 1)
+ (i32.shl
+ (local.get $1)
+ (i32.const 3)
+ )
+ (i32.const 1248)
)
)
- (i32.const 32)
+ (local.get $0)
)
- )
- )
- (i32.store
- (i32.const 1232)
- (local.tee $1
- (i32.add
- (local.tee $13
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $1
- (i32.add
- (local.get $20)
- (i32.const 8)
- )
- )
- )
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $0)
+ )
+ (br_if $do-in
+ (i32.ne
+ (local.tee $1
+ (i32.add
(local.get $1)
- (i32.const 7)
+ (i32.const 1)
)
)
+ (i32.const 32)
)
- (local.get $20)
)
)
- )
- (i32.store
- (i32.const 1220)
- (local.tee $5
- (i32.sub
+ (i32.store
+ (i32.const 1232)
+ (local.tee $0
(i32.add
- (local.get $26)
- (i32.const -40)
+ (local.get $3)
+ (local.tee $1
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $0
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $0)
+ (i32.const 7)
+ )
+ )
+ )
)
- (local.get $13)
)
)
- )
- (i32.store offset=4
- (local.get $1)
- (i32.or
- (local.get $5)
- (i32.const 1)
- )
- )
- (i32.store offset=4
- (i32.add
- (local.get $1)
- (local.get $5)
- )
- (i32.const 40)
- )
- (i32.store
- (i32.const 1236)
- (i32.load
- (i32.const 1696)
- )
- )
- )
- )
- (if
- (i32.gt_u
- (local.tee $11
- (i32.load
+ (i32.store
(i32.const 1220)
+ (local.tee $1
+ (i32.sub
+ (i32.add
+ (local.get $7)
+ (i32.const -40)
+ )
+ (local.get $1)
+ )
+ )
)
- )
- (local.get $3)
- )
- (block
- (i32.store
- (i32.const 1220)
- (local.tee $33
- (i32.sub
- (local.get $11)
- (local.get $3)
+ (i32.store offset=4
+ (local.get $0)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
)
)
- )
- (i32.store
- (i32.const 1232)
- (local.tee $7
+ (i32.store offset=4
(i32.add
- (local.get $3)
- (local.tee $11
- (i32.load
- (i32.const 1232)
- )
- )
+ (local.get $0)
+ (local.get $1)
)
+ (i32.const 40)
)
- )
- (i32.store offset=4
- (local.get $7)
- (i32.or
- (local.get $33)
- (i32.const 1)
- )
- )
- (i32.store offset=4
- (local.get $11)
- (i32.or
- (local.get $3)
- (i32.const 3)
+ (i32.store
+ (i32.const 1236)
+ (i32.load
+ (i32.const 1696)
+ )
)
)
- (global.set $r
- (local.get $25)
- )
- (return
- (i32.add
- (local.get $11)
- (i32.const 8)
+ )
+ (br_if $folding-inner0
+ (i32.gt_u
+ (local.tee $0
+ (i32.load
+ (i32.const 1220)
+ )
)
+ (local.get $4)
)
)
)
)
+ (i32.store
+ (call $Qa)
+ (i32.const 12)
+ )
+ (global.set $r
+ (local.get $18)
+ )
+ (return
+ (i32.const 0)
+ )
+ )
+ (i32.store
+ (i32.const 1220)
+ (local.tee $1
+ (i32.sub
+ (local.get $0)
+ (local.get $4)
+ )
+ )
)
(i32.store
- (call $Qa)
- (i32.const 12)
+ (i32.const 1232)
+ (local.tee $3
+ (i32.add
+ (local.get $4)
+ (local.tee $0
+ (i32.load
+ (i32.const 1232)
+ )
+ )
+ )
+ )
)
- (global.set $r
- (local.get $25)
+ (i32.store offset=4
+ (local.get $3)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
)
- (return
- (i32.const 0)
+ (i32.store offset=4
+ (local.get $0)
+ (i32.or
+ (local.get $4)
+ (i32.const 3)
+ )
)
)
(global.set $r
- (local.get $25)
+ (local.get $18)
)
(i32.add
- (local.get $15)
+ (local.get $0)
(i32.const 8)
)
)
@@ -5820,7 +5639,6 @@
(local $16 i32)
(local $17 i32)
(local $18 i32)
- (local $19 i32)
(if
(i32.eqz
(local.get $0)
@@ -5829,13 +5647,13 @@
)
(if
(i32.lt_u
- (local.tee $1
+ (local.tee $3
(i32.add
(local.get $0)
(i32.const -8)
)
)
- (local.tee $14
+ (local.tee $13
(i32.load
(i32.const 1224)
)
@@ -5845,9 +5663,9 @@
)
(if
(i32.eq
- (local.tee $0
+ (local.tee $10
(i32.and
- (local.tee $5
+ (local.tee $0
(i32.load
(i32.add
(local.get $0)
@@ -5862,12 +5680,12 @@
)
(call $qa)
)
- (local.set $8
+ (local.set $6
(i32.add
- (local.get $1)
- (local.tee $7
+ (local.get $3)
+ (local.tee $4
(i32.and
- (local.get $5)
+ (local.get $0)
(i32.const -8)
)
)
@@ -5875,64 +5693,61 @@
)
(if
(i32.and
- (local.get $5)
+ (local.get $0)
(i32.const 1)
)
(block
(local.set $2
- (local.get $1)
+ (local.get $3)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $4)
)
)
(block $do-once
(local.set $9
(i32.load
- (local.get $1)
+ (local.get $3)
)
)
(if
(i32.eqz
- (local.get $0)
+ (local.get $10)
)
(return)
)
- (local.set $7
- (i32.add
- (local.get $7)
- (local.get $9)
- )
- )
(if
(i32.lt_u
- (local.tee $1
+ (local.tee $0
(i32.sub
- (local.get $1)
+ (local.get $3)
(local.get $9)
)
)
- (local.get $14)
+ (local.get $13)
)
(call $qa)
)
+ (local.set $3
+ (i32.add
+ (local.get $4)
+ (local.get $9)
+ )
+ )
(if
(i32.eq
(i32.load
(i32.const 1228)
)
- (local.get $1)
+ (local.get $0)
)
(block
- (local.set $0
- (local.get $8)
- )
(if
(i32.ne
(i32.and
- (local.tee $3
+ (local.tee $1
(i32.load offset=4
- (local.get $0)
+ (local.get $6)
)
)
(i32.const 3)
@@ -5941,43 +5756,43 @@
)
(block
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
)
(i32.store
(i32.const 1216)
- (local.get $7)
+ (local.get $3)
)
(i32.store offset=4
- (local.get $0)
+ (local.get $6)
(i32.and
- (local.get $3)
+ (local.get $1)
(i32.const -2)
)
)
(i32.store offset=4
- (local.get $1)
+ (local.get $0)
(i32.or
- (local.get $7)
+ (local.get $3)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $1)
- (local.get $7)
+ (local.get $0)
+ (local.get $3)
)
- (local.get $7)
+ (local.get $3)
)
(return)
)
)
- (local.set $3
+ (local.set $10
(i32.shr_u
(local.get $9)
(i32.const 3)
@@ -5989,22 +5804,22 @@
(i32.const 256)
)
(block
- (local.set $0
+ (local.set $2
(i32.load offset=12
- (local.get $1)
+ (local.get $0)
)
)
(if
(i32.ne
- (local.tee $9
+ (local.tee $4
(i32.load offset=8
- (local.get $1)
+ (local.get $0)
)
)
- (local.tee $5
+ (local.tee $1
(i32.add
(i32.shl
- (local.get $3)
+ (local.get $10)
(i32.const 3)
)
(i32.const 1248)
@@ -6014,16 +5829,16 @@
(block
(if
(i32.lt_u
- (local.get $9)
- (local.get $14)
+ (local.get $4)
+ (local.get $13)
)
(call $qa)
)
(if
(i32.ne
- (local.get $1)
+ (local.get $0)
(i32.load offset=12
- (local.get $9)
+ (local.get $4)
)
)
(call $qa)
@@ -6032,8 +5847,8 @@
)
(if
(i32.eq
- (local.get $0)
- (local.get $9)
+ (local.get $2)
+ (local.get $4)
)
(block
(i32.store
@@ -6045,99 +5860,99 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $3)
+ (local.get $10)
)
(i32.const -1)
)
)
)
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
)
(if
(i32.eq
- (local.get $0)
- (local.get $5)
+ (local.get $1)
+ (local.get $2)
)
- (local.set $10
+ (local.set $5
(i32.add
- (local.get $0)
+ (local.get $2)
(i32.const 8)
)
)
(block
(if
(i32.lt_u
- (local.get $0)
- (local.get $14)
+ (local.get $2)
+ (local.get $13)
)
(call $qa)
)
(if
(i32.eq
- (local.get $1)
+ (local.get $0)
(i32.load
- (local.tee $5
+ (local.tee $1
(i32.add
- (local.get $0)
+ (local.get $2)
(i32.const 8)
)
)
)
)
- (local.set $10
- (local.get $5)
+ (local.set $5
+ (local.get $1)
)
(call $qa)
)
)
)
(i32.store offset=12
- (local.get $9)
- (local.get $0)
+ (local.get $4)
+ (local.get $2)
)
(i32.store
- (local.get $10)
- (local.get $9)
+ (local.get $5)
+ (local.get $4)
)
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
)
- (local.set $9
+ (local.set $12
(i32.load offset=24
- (local.get $1)
+ (local.get $0)
)
)
(if
(i32.eq
- (local.get $1)
- (local.tee $0
+ (local.get $0)
+ (local.tee $4
(i32.load offset=12
- (local.get $1)
+ (local.get $0)
)
)
)
(block $do-once0
(if
- (local.tee $10
+ (local.tee $4
(i32.load
- (local.tee $3
+ (local.tee $9
(i32.add
(local.tee $5
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 16)
)
)
@@ -6146,17 +5961,12 @@
)
)
)
- (block
- (local.set $0
- (local.get $10)
- )
- (local.set $5
- (local.get $3)
- )
+ (local.set $5
+ (local.get $9)
)
(br_if $do-once0
(i32.eqz
- (local.tee $0
+ (local.tee $4
(i32.load
(local.get $5)
)
@@ -6164,70 +5974,63 @@
)
)
)
- (if
- (i32.lt_u
- (local.tee $3
- (loop $while-in (result i32)
- (if
- (local.tee $10
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
- )
- )
- (block
- (local.set $0
- (local.get $10)
- )
- (local.set $5
- (local.get $3)
- )
- (br $while-in)
+ (loop $while-in
+ (if
+ (local.tee $10
+ (i32.load
+ (local.tee $9
+ (i32.add
+ (local.get $4)
+ (i32.const 20)
)
)
- (if (result i32)
- (local.tee $10
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 16)
- )
- )
- )
- )
- (block
- (local.set $0
- (local.get $10)
- )
- (local.set $5
- (local.get $3)
- )
- (br $while-in)
- )
- (block (result i32)
- (local.set $12
- (local.get $0)
- )
- (local.get $5)
+ )
+ )
+ (block
+ (local.set $4
+ (local.get $10)
+ )
+ (local.set $5
+ (local.get $9)
+ )
+ (br $while-in)
+ )
+ )
+ (if
+ (local.tee $10
+ (i32.load
+ (local.tee $9
+ (i32.add
+ (local.get $4)
+ (i32.const 16)
)
)
)
)
- (local.get $14)
+ (block
+ (local.set $4
+ (local.get $10)
+ )
+ (local.set $5
+ (local.get $9)
+ )
+ (br $while-in)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $5)
+ (local.get $13)
)
(call $qa)
(block
(i32.store
- (local.get $3)
+ (local.get $5)
(i32.const 0)
)
- (local.set $4
- (local.get $12)
+ (local.set $7
+ (local.get $4)
)
)
)
@@ -6235,48 +6038,42 @@
(block
(if
(i32.lt_u
- (local.tee $3
+ (local.tee $5
(i32.load offset=8
- (local.get $1)
+ (local.get $0)
)
)
- (local.get $14)
+ (local.get $13)
)
(call $qa)
)
- (local.set $5
- (local.get $3)
- )
(if
(i32.ne
- (local.get $1)
+ (local.get $0)
(i32.load offset=12
- (local.get $3)
+ (local.get $5)
)
)
(call $qa)
)
- (local.set $10
- (local.get $0)
- )
(if
(i32.eq
- (local.get $1)
+ (local.get $0)
(i32.load offset=8
- (local.get $0)
+ (local.get $4)
)
)
(block
(i32.store offset=12
(local.get $5)
- (local.get $0)
+ (local.get $4)
)
(i32.store offset=8
- (local.get $10)
- (local.get $3)
+ (local.get $4)
+ (local.get $5)
)
- (local.set $4
- (local.get $0)
+ (local.set $7
+ (local.get $4)
)
)
(call $qa)
@@ -6284,17 +6081,17 @@
)
)
(if
- (local.get $9)
+ (local.get $12)
(block
(if
(i32.eq
(i32.load
- (local.tee $3
+ (local.tee $5
(i32.add
(i32.shl
- (local.tee $0
+ (local.tee $4
(i32.load offset=28
- (local.get $1)
+ (local.get $0)
)
)
(i32.const 2)
@@ -6303,16 +6100,16 @@
)
)
)
- (local.get $1)
+ (local.get $0)
)
(block
(i32.store
- (local.get $3)
- (local.get $4)
+ (local.get $5)
+ (local.get $7)
)
(if
(i32.eqz
- (local.get $4)
+ (local.get $7)
)
(block
(i32.store
@@ -6324,17 +6121,17 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $0)
+ (local.get $4)
)
(i32.const -1)
)
)
)
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
@@ -6343,42 +6140,39 @@
(block
(if
(i32.lt_u
- (local.get $9)
+ (local.get $12)
(i32.load
(i32.const 1224)
)
)
(call $qa)
)
- (local.set $0
- (local.get $9)
- )
(if
(i32.eq
- (local.get $1)
+ (local.get $0)
(i32.load offset=16
- (local.get $0)
+ (local.get $12)
)
)
(i32.store offset=16
- (local.get $0)
- (local.get $4)
+ (local.get $12)
+ (local.get $7)
)
(i32.store offset=20
- (local.get $9)
- (local.get $4)
+ (local.get $12)
+ (local.get $7)
)
)
(if
(i32.eqz
- (local.get $4)
+ (local.get $7)
)
(block
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
@@ -6387,8 +6181,8 @@
)
(if
(i32.lt_u
- (local.get $4)
- (local.tee $0
+ (local.get $7)
+ (local.tee $5
(i32.load
(i32.const 1224)
)
@@ -6397,45 +6191,42 @@
(call $qa)
)
(i32.store offset=24
- (local.get $4)
- (local.get $9)
- )
- (local.set $3
- (local.get $1)
+ (local.get $7)
+ (local.get $12)
)
(if
- (local.tee $5
+ (local.tee $4
(i32.load offset=16
- (local.get $1)
+ (local.get $0)
)
)
(if
(i32.lt_u
+ (local.get $4)
(local.get $5)
- (local.get $0)
)
(call $qa)
(block
(i32.store offset=16
+ (local.get $7)
(local.get $4)
- (local.get $5)
)
(i32.store offset=24
- (local.get $5)
(local.get $4)
+ (local.get $7)
)
)
)
)
(if
- (local.tee $5
+ (local.tee $4
(i32.load offset=20
- (local.get $3)
+ (local.get $0)
)
)
(if
(i32.lt_u
- (local.get $5)
+ (local.get $4)
(i32.load
(i32.const 1224)
)
@@ -6443,37 +6234,37 @@
(call $qa)
(block
(i32.store offset=20
+ (local.get $7)
(local.get $4)
- (local.get $5)
)
(i32.store offset=24
- (local.get $5)
(local.get $4)
+ (local.get $7)
)
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
)
)
(block
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
)
)
)
(block
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
)
)
@@ -6482,19 +6273,16 @@
(if
(i32.ge_u
(local.get $2)
- (local.get $8)
+ (local.get $6)
)
(call $qa)
)
- (local.set $0
- (local.get $8)
- )
(if
(i32.eqz
(i32.and
- (local.tee $1
+ (local.tee $0
(i32.load offset=4
- (local.get $0)
+ (local.get $6)
)
)
(i32.const 1)
@@ -6502,639 +6290,622 @@
)
(call $qa)
)
- (local.set $6
- (i32.shr_u
- (local.tee $0
- (if (result i32)
- (i32.and
- (local.get $1)
- (i32.const 2)
+ (if
+ (i32.and
+ (local.get $0)
+ (i32.const 2)
+ )
+ (block
+ (i32.store offset=4
+ (local.get $6)
+ (i32.and
+ (local.get $0)
+ (i32.const -2)
+ )
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (local.get $1)
+ (local.get $2)
+ )
+ (local.get $1)
+ )
+ )
+ (block
+ (if
+ (i32.eq
+ (i32.load
+ (i32.const 1232)
)
- (block (result i32)
- (i32.store offset=4
- (local.get $0)
- (i32.and
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (i32.const 1220)
+ (local.tee $0
+ (i32.add
(local.get $1)
- (i32.const -2)
+ (i32.load
+ (i32.const 1220)
+ )
)
)
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $6)
- (i32.const 1)
+ )
+ (i32.store
+ (i32.const 1232)
+ (local.get $2)
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ (if
+ (i32.ne
+ (i32.load
+ (i32.const 1228)
)
+ (local.get $2)
)
- (i32.store
+ (return)
+ )
+ (i32.store
+ (i32.const 1228)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 1216)
+ (i32.const 0)
+ )
+ (return)
+ )
+ )
+ (if
+ (i32.eq
+ (i32.load
+ (i32.const 1228)
+ )
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (i32.const 1216)
+ (local.tee $0
(i32.add
- (local.get $2)
- (local.get $6)
+ (local.get $1)
+ (i32.load
+ (i32.const 1216)
+ )
)
- (local.get $6)
)
- (local.get $6)
)
- (block (result i32)
+ (i32.store
+ (i32.const 1228)
+ (local.get $2)
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (local.get $2)
+ )
+ (local.get $0)
+ )
+ (return)
+ )
+ )
+ (local.set $5
+ (i32.add
+ (local.get $1)
+ (i32.and
+ (local.get $0)
+ (i32.const -8)
+ )
+ )
+ )
+ (local.set $4
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 3)
+ )
+ )
+ (block $do-once4
+ (if
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 256)
+ )
+ (block
+ (local.set $1
+ (i32.load offset=12
+ (local.get $6)
+ )
+ )
(if
- (i32.eq
- (i32.load
- (i32.const 1232)
+ (i32.ne
+ (local.tee $3
+ (i32.load offset=8
+ (local.get $6)
+ )
)
- (local.get $8)
- )
- (block
- (i32.store
- (i32.const 1220)
- (local.tee $4
- (i32.add
- (local.get $6)
- (i32.load
- (i32.const 1220)
- )
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.get $4)
+ (i32.const 3)
)
+ (i32.const 1248)
)
)
- (i32.store
- (i32.const 1232)
- (local.get $2)
- )
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $4)
- (i32.const 1)
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $3)
+ (i32.load
+ (i32.const 1224)
+ )
)
+ (call $qa)
)
(if
(i32.ne
- (i32.load
- (i32.const 1228)
+ (local.get $6)
+ (i32.load offset=12
+ (local.get $3)
)
- (local.get $2)
)
- (return)
- )
- (i32.store
- (i32.const 1228)
- (i32.const 0)
- )
- (i32.store
- (i32.const 1216)
- (i32.const 0)
+ (call $qa)
)
- (return)
)
)
(if
(i32.eq
- (i32.load
- (i32.const 1228)
- )
- (local.get $8)
+ (local.get $1)
+ (local.get $3)
)
(block
(i32.store
- (i32.const 1216)
- (local.tee $4
- (i32.add
- (local.get $6)
- (i32.load
- (i32.const 1216)
+ (i32.const 1208)
+ (i32.and
+ (i32.load
+ (i32.const 1208)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $4)
)
+ (i32.const -1)
)
)
)
- (i32.store
- (i32.const 1228)
- (local.get $2)
+ (br $do-once4)
+ )
+ )
+ (if
+ (i32.eq
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $14
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
)
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $4)
- (i32.const 1)
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (i32.load
+ (i32.const 1224)
+ )
)
+ (call $qa)
)
- (i32.store
- (i32.add
- (local.get $2)
- (local.get $4)
+ (if
+ (i32.eq
+ (local.get $6)
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
+ )
+ )
)
- (local.get $4)
+ (local.set $14
+ (local.get $0)
+ )
+ (call $qa)
)
- (return)
)
)
- (local.set $4
- (i32.add
- (local.get $6)
- (i32.and
- (local.get $1)
- (i32.const -8)
- )
- )
+ (i32.store offset=12
+ (local.get $3)
+ (local.get $1)
)
- (local.set $14
- (i32.shr_u
- (local.get $1)
- (i32.const 3)
+ (i32.store
+ (local.get $14)
+ (local.get $3)
+ )
+ )
+ (block
+ (local.set $7
+ (i32.load offset=24
+ (local.get $6)
)
)
- (block $do-once4
- (if
- (i32.lt_u
- (local.get $1)
- (i32.const 256)
- )
- (block
- (local.set $3
- (i32.load offset=12
- (local.get $8)
- )
+ (if
+ (i32.eq
+ (local.get $6)
+ (local.tee $0
+ (i32.load offset=12
+ (local.get $6)
)
- (if
- (i32.ne
- (local.tee $5
+ )
+ )
+ (block $do-once6
+ (if
+ (local.tee $0
+ (i32.load
+ (local.tee $3
(i32.add
- (i32.shl
- (local.get $14)
- (i32.const 3)
+ (local.tee $1
+ (i32.add
+ (local.get $6)
+ (i32.const 16)
+ )
)
- (i32.const 1248)
- )
- )
- (local.tee $12
- (i32.load offset=8
- (local.get $8)
+ (i32.const 4)
)
)
)
- (block
- (if
- (i32.lt_u
- (local.get $12)
- (i32.load
- (i32.const 1224)
- )
- )
- (call $qa)
- )
- (if
- (i32.ne
- (local.get $8)
- (i32.load offset=12
- (local.get $12)
- )
+ )
+ (local.set $1
+ (local.get $3)
+ )
+ (br_if $do-once6
+ (i32.eqz
+ (local.tee $0
+ (i32.load
+ (local.get $1)
)
- (call $qa)
)
)
)
+ )
+ (loop $while-in9
(if
- (i32.eq
- (local.get $3)
- (local.get $12)
- )
- (block
- (i32.store
- (i32.const 1208)
- (i32.and
- (i32.load
- (i32.const 1208)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $14)
- )
- (i32.const -1)
+ (local.tee $4
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.get $0)
+ (i32.const 20)
)
)
)
- (br $do-once4)
)
- )
- (if
- (i32.eq
- (local.get $3)
- (local.get $5)
- )
- (local.set $16
- (i32.add
+ (block
+ (local.set $0
+ (local.get $4)
+ )
+ (local.set $1
(local.get $3)
- (i32.const 8)
)
+ (br $while-in9)
)
- (block
- (if
- (i32.lt_u
- (local.get $3)
- (i32.load
- (i32.const 1224)
+ )
+ (if
+ (local.tee $4
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
)
)
- (call $qa)
)
- (if
- (i32.eq
- (local.get $8)
- (i32.load
- (local.tee $5
- (i32.add
- (local.get $3)
- (i32.const 8)
- )
- )
- )
- )
- (local.set $16
- (local.get $5)
- )
- (call $qa)
+ )
+ (block
+ (local.set $0
+ (local.get $4)
)
+ (local.set $1
+ (local.get $3)
+ )
+ (br $while-in9)
)
)
- (i32.store offset=12
- (local.get $12)
- (local.get $3)
+ )
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (i32.load
+ (i32.const 1224)
+ )
)
- (i32.store
- (local.get $16)
- (local.get $12)
+ (call $qa)
+ (block
+ (i32.store
+ (local.get $1)
+ (i32.const 0)
+ )
+ (local.set $8
+ (local.get $0)
+ )
)
)
- (block
- (local.set $12
- (i32.load offset=24
- (local.get $8)
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $6)
+ )
+ )
+ (i32.load
+ (i32.const 1224)
)
)
- (if
- (i32.eq
- (local.get $8)
- (local.tee $3
- (i32.load offset=12
- (local.get $8)
- )
- )
+ (call $qa)
+ )
+ (if
+ (i32.ne
+ (local.get $6)
+ (i32.load offset=12
+ (local.get $1)
)
- (block $do-once6
- (local.set $6
- (if (result i32)
- (local.tee $10
- (i32.load
- (local.tee $0
- (i32.add
- (local.tee $5
- (i32.add
- (local.get $8)
- (i32.const 16)
- )
- )
- (i32.const 4)
- )
- )
- )
- )
- (block (result i32)
- (local.set $5
- (local.get $0)
- )
- (local.get $10)
- )
- (if (result i32)
+ )
+ (call $qa)
+ )
+ (if
+ (i32.eq
+ (local.get $6)
+ (i32.load offset=8
+ (local.get $0)
+ )
+ )
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $8
+ (local.get $0)
+ )
+ )
+ (call $qa)
+ )
+ )
+ )
+ (if
+ (local.get $7)
+ (block
+ (if
+ (i32.eq
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (i32.shl
(local.tee $0
- (i32.load
- (local.get $5)
+ (i32.load offset=28
+ (local.get $6)
)
)
- (local.get $0)
- (br $do-once6)
+ (i32.const 2)
)
+ (i32.const 1512)
)
)
- (loop $while-in9
- (if
- (local.tee $10
+ )
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (local.get $1)
+ (local.get $8)
+ )
+ (if
+ (i32.eqz
+ (local.get $8)
+ )
+ (block
+ (i32.store
+ (i32.const 1212)
+ (i32.and
(i32.load
- (local.tee $0
- (i32.add
- (local.get $6)
- (i32.const 20)
- )
- )
- )
- )
- (block
- (local.set $6
- (local.get $10)
- )
- (local.set $5
- (local.get $0)
+ (i32.const 1212)
)
- (br $while-in9)
- )
- )
- (if
- (local.tee $10
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $6)
- (i32.const 16)
- )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
)
+ (i32.const -1)
)
)
- (block
- (local.set $6
- (local.get $10)
- )
- (local.set $5
- (local.get $0)
- )
- (br $while-in9)
- )
)
+ (br $do-once4)
)
- (if
- (i32.lt_u
- (local.get $5)
- (i32.load
- (i32.const 1224)
- )
- )
- (call $qa)
- (block
- (i32.store
- (local.get $5)
- (i32.const 0)
- )
- (local.set $11
- (local.get $6)
- )
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $7)
+ (i32.load
+ (i32.const 1224)
)
)
+ (call $qa)
)
- (block
- (if
- (i32.lt_u
- (local.tee $0
- (i32.load offset=8
- (local.get $8)
- )
- )
- (i32.load
- (i32.const 1224)
- )
+ (if
+ (i32.eq
+ (local.get $6)
+ (i32.load offset=16
+ (local.get $7)
)
- (call $qa)
)
- (local.set $6
- (local.get $0)
+ (i32.store offset=16
+ (local.get $7)
+ (local.get $8)
)
- (if
- (i32.ne
- (local.get $8)
- (i32.load offset=12
- (local.get $0)
- )
- )
- (call $qa)
+ (i32.store offset=20
+ (local.get $7)
+ (local.get $8)
)
- (local.set $1
- (local.get $3)
+ )
+ (br_if $do-once4
+ (i32.eqz
+ (local.get $8)
)
- (if
- (i32.eq
- (local.get $8)
- (i32.load offset=8
- (local.get $1)
- )
- )
- (block
- (i32.store offset=12
- (local.get $6)
- (local.get $3)
- )
- (i32.store offset=8
- (local.get $1)
- (local.get $0)
- )
- (local.set $11
- (local.get $3)
- )
- )
- (call $qa)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $8)
+ (local.tee $1
+ (i32.load
+ (i32.const 1224)
)
)
)
+ (call $qa)
+ )
+ (i32.store offset=24
+ (local.get $8)
+ (local.get $7)
+ )
+ (if
+ (local.tee $0
+ (i32.load offset=16
+ (local.get $6)
+ )
+ )
(if
- (local.get $12)
+ (i32.lt_u
+ (local.get $0)
+ (local.get $1)
+ )
+ (call $qa)
(block
- (if
- (i32.eq
- (i32.load
- (local.tee $7
- (i32.add
- (i32.shl
- (local.tee $3
- (i32.load offset=28
- (local.get $8)
- )
- )
- (i32.const 2)
- )
- (i32.const 1512)
- )
- )
- )
- (local.get $8)
- )
- (block
- (i32.store
- (local.get $7)
- (local.get $11)
- )
- (if
- (i32.eqz
- (local.get $11)
- )
- (block
- (i32.store
- (i32.const 1212)
- (i32.and
- (i32.load
- (i32.const 1212)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $3)
- )
- (i32.const -1)
- )
- )
- )
- (br $do-once4)
- )
- )
- )
- (block
- (if
- (i32.lt_u
- (local.get $12)
- (i32.load
- (i32.const 1224)
- )
- )
- (call $qa)
- )
- (local.set $0
- (local.get $12)
- )
- (if
- (i32.eq
- (local.get $8)
- (i32.load offset=16
- (local.get $0)
- )
- )
- (i32.store offset=16
- (local.get $0)
- (local.get $11)
- )
- (i32.store offset=20
- (local.get $12)
- (local.get $11)
- )
- )
- (br_if $do-once4
- (i32.eqz
- (local.get $11)
- )
- )
- )
- )
- (if
- (i32.lt_u
- (local.get $11)
- (local.tee $3
- (i32.load
- (i32.const 1224)
- )
- )
- )
- (call $qa)
+ (i32.store offset=16
+ (local.get $8)
+ (local.get $0)
)
(i32.store offset=24
- (local.get $11)
- (local.get $12)
- )
- (local.set $0
+ (local.get $0)
(local.get $8)
)
- (if
- (local.tee $1
- (i32.load offset=16
- (local.get $0)
- )
- )
- (if
- (i32.lt_u
- (local.get $1)
- (local.get $3)
- )
- (call $qa)
- (block
- (i32.store offset=16
- (local.get $11)
- (local.get $1)
- )
- (i32.store offset=24
- (local.get $1)
- (local.get $11)
- )
- )
- )
+ )
+ )
+ )
+ (if
+ (local.tee $0
+ (i32.load offset=20
+ (local.get $6)
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $0)
+ (i32.load
+ (i32.const 1224)
)
- (if
- (local.tee $1
- (i32.load offset=20
- (local.get $0)
- )
- )
- (if
- (i32.lt_u
- (local.get $1)
- (i32.load
- (i32.const 1224)
- )
- )
- (call $qa)
- (block
- (i32.store offset=20
- (local.get $11)
- (local.get $1)
- )
- (i32.store offset=24
- (local.get $1)
- (local.get $11)
- )
- )
- )
+ )
+ (call $qa)
+ (block
+ (i32.store offset=20
+ (local.get $8)
+ (local.get $0)
+ )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $8)
)
)
)
)
)
)
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $4)
- (i32.const 1)
- )
+ )
+ )
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $5)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (local.get $2)
+ (local.get $5)
+ )
+ (local.get $5)
+ )
+ (local.set $1
+ (if (result i32)
+ (i32.eq
+ (i32.load
+ (i32.const 1228)
)
+ (local.get $2)
+ )
+ (block
(i32.store
- (i32.add
- (local.get $2)
- (local.get $4)
- )
- (local.get $4)
- )
- (if (result i32)
- (i32.eq
- (i32.load
- (i32.const 1228)
- )
- (local.get $2)
- )
- (block
- (i32.store
- (i32.const 1216)
- (local.get $4)
- )
- (return)
- )
- (local.get $4)
+ (i32.const 1216)
+ (local.get $5)
)
+ (return)
)
+ (local.get $5)
)
)
+ )
+ )
+ (local.set $3
+ (i32.shr_u
+ (local.get $1)
(i32.const 3)
)
)
(if
(i32.lt_u
- (local.get $0)
+ (local.get $1)
(i32.const 256)
)
(block
- (local.set $1
+ (local.set $0
(i32.add
(i32.shl
- (local.get $6)
+ (local.get $3)
(i32.const 3)
)
(i32.const 1248)
@@ -7142,25 +6913,25 @@
)
(if
(i32.and
- (local.tee $7
+ (local.tee $1
(i32.load
(i32.const 1208)
)
)
- (local.tee $4
+ (local.tee $3
(i32.shl
(i32.const 1)
- (local.get $6)
+ (local.get $3)
)
)
)
(if
(i32.lt_u
- (local.tee $7
+ (local.tee $3
(i32.load
- (local.tee $4
+ (local.tee $1
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
@@ -7173,10 +6944,10 @@
(call $qa)
(block
(local.set $15
- (local.get $4)
+ (local.get $1)
)
- (local.set $13
- (local.get $7)
+ (local.set $11
+ (local.get $3)
)
)
)
@@ -7184,18 +6955,18 @@
(i32.store
(i32.const 1208)
(i32.or
- (local.get $4)
- (local.get $7)
+ (local.get $1)
+ (local.get $3)
)
)
(local.set $15
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
- (local.set $13
- (local.get $1)
+ (local.set $11
+ (local.get $0)
)
)
)
@@ -7204,50 +6975,50 @@
(local.get $2)
)
(i32.store offset=12
- (local.get $13)
+ (local.get $11)
(local.get $2)
)
(i32.store offset=8
(local.get $2)
- (local.get $13)
+ (local.get $11)
)
(i32.store offset=12
(local.get $2)
- (local.get $1)
+ (local.get $0)
)
(return)
)
)
- (local.set $4
+ (local.set $3
(i32.add
(i32.shl
- (local.tee $6
+ (local.tee $0
(if (result i32)
- (local.tee $1
+ (local.tee $0
(i32.shr_u
- (local.get $0)
+ (local.get $1)
(i32.const 8)
)
)
(if (result i32)
(i32.gt_u
- (local.get $0)
+ (local.get $1)
(i32.const 16777215)
)
(i32.const 31)
(block (result i32)
- (local.set $1
+ (local.set $0
(i32.and
(i32.shr_u
(i32.add
- (local.tee $15
+ (local.tee $4
(i32.shl
- (local.get $1)
- (local.tee $13
+ (local.get $0)
+ (local.tee $3
(i32.and
(i32.shr_u
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 1048320)
)
(i32.const 16)
@@ -7267,21 +7038,21 @@
(i32.or
(i32.and
(i32.shr_u
- (local.get $0)
+ (local.get $1)
(i32.add
- (local.tee $4
+ (local.tee $0
(i32.add
(i32.sub
(i32.const 14)
(i32.or
- (local.tee $15
+ (local.tee $5
(i32.and
(i32.shr_u
(i32.add
- (local.tee $7
+ (local.tee $4
(i32.shl
- (local.get $15)
- (local.get $1)
+ (local.get $4)
+ (local.get $0)
)
)
(i32.const 245760)
@@ -7292,15 +7063,15 @@
)
)
(i32.or
- (local.get $1)
- (local.get $13)
+ (local.get $0)
+ (local.get $3)
)
)
)
(i32.shr_u
(i32.shl
- (local.get $7)
- (local.get $15)
+ (local.get $4)
+ (local.get $5)
)
(i32.const 15)
)
@@ -7312,7 +7083,7 @@
(i32.const 1)
)
(i32.shl
- (local.get $4)
+ (local.get $0)
(i32.const 1)
)
)
@@ -7328,7 +7099,7 @@
)
(i32.store offset=28
(local.get $2)
- (local.get $6)
+ (local.get $0)
)
(i32.store offset=20
(local.get $2)
@@ -7340,41 +7111,41 @@
)
(if
(i32.and
- (local.tee $7
- (i32.shl
- (i32.const 1)
- (local.get $6)
- )
- )
- (local.tee $15
+ (local.tee $4
(i32.load
(i32.const 1212)
)
)
+ (local.tee $5
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
+ )
)
(block
- (local.set $13
+ (local.set $11
(i32.shl
- (local.get $0)
+ (local.get $1)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (local.get $6)
+ (local.get $0)
(i32.const 1)
)
)
(i32.eq
- (local.get $6)
+ (local.get $0)
(i32.const 31)
)
)
)
)
- (local.set $1
+ (local.set $0
(i32.load
- (local.get $4)
+ (local.get $3)
)
)
(if
@@ -7384,17 +7155,17 @@
(block $while-out14 (result i32)
(if
(i32.eq
- (local.get $0)
+ (local.get $1)
(i32.and
(i32.load offset=4
- (local.get $1)
+ (local.get $0)
)
(i32.const -8)
)
)
(block
- (local.set $17
- (local.get $1)
+ (local.set $16
+ (local.get $0)
)
(br $while-out14
(i32.const 130)
@@ -7402,17 +7173,17 @@
)
)
(if (result i32)
- (local.tee $11
+ (local.tee $3
(i32.load
- (local.tee $6
+ (local.tee $4
(i32.add
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (local.get $13)
+ (local.get $11)
(i32.const 31)
)
(i32.const 2)
@@ -7422,23 +7193,23 @@
)
)
(block
- (local.set $13
+ (local.set $11
(i32.shl
- (local.get $13)
+ (local.get $11)
(i32.const 1)
)
)
- (local.set $1
- (local.get $11)
+ (local.set $0
+ (local.get $3)
)
(br $while-in15)
)
(block (result i32)
- (local.set $18
- (local.get $6)
+ (local.set $17
+ (local.get $4)
)
- (local.set $19
- (local.get $1)
+ (local.set $18
+ (local.get $0)
)
(i32.const 127)
)
@@ -7450,7 +7221,7 @@
)
(if
(i32.lt_u
- (local.get $18)
+ (local.get $17)
(i32.load
(i32.const 1224)
)
@@ -7458,12 +7229,12 @@
(call $qa)
(block
(i32.store
- (local.get $18)
+ (local.get $17)
(local.get $2)
)
(i32.store offset=24
(local.get $2)
- (local.get $19)
+ (local.get $18)
)
(i32.store offset=12
(local.get $2)
@@ -7480,53 +7251,50 @@
(local.get $0)
(i32.const 130)
)
- (block
- (local.set $0
- (local.get $17)
- )
- (if
- (i32.and
- (i32.ge_u
- (local.tee $13
- (i32.load offset=8
- (local.get $0)
- )
- )
- (local.tee $7
- (i32.load
- (i32.const 1224)
+ (if
+ (i32.and
+ (i32.ge_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.tee $0
+ (local.get $16)
)
)
)
- (i32.ge_u
- (local.get $0)
- (local.get $7)
+ (local.tee $3
+ (i32.load
+ (i32.const 1224)
+ )
)
)
- (block
- (i32.store offset=12
- (local.get $13)
- (local.get $2)
- )
- (i32.store offset=8
- (local.get $0)
- (local.get $2)
- )
- (i32.store offset=8
- (local.get $2)
- (local.get $13)
- )
- (i32.store offset=12
- (local.get $2)
- (local.get $17)
- )
- (i32.store offset=24
- (local.get $2)
- (i32.const 0)
- )
+ (i32.ge_u
+ (local.get $0)
+ (local.get $3)
)
- (call $qa)
)
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $2)
+ (local.get $1)
+ )
+ (i32.store offset=12
+ (local.get $2)
+ (local.get $16)
+ )
+ (i32.store offset=24
+ (local.get $2)
+ (i32.const 0)
+ )
+ )
+ (call $qa)
)
)
)
@@ -7535,17 +7303,17 @@
(i32.store
(i32.const 1212)
(i32.or
- (local.get $7)
- (local.get $15)
+ (local.get $4)
+ (local.get $5)
)
)
(i32.store
- (local.get $4)
+ (local.get $3)
(local.get $2)
)
(i32.store offset=24
(local.get $2)
- (local.get $4)
+ (local.get $3)
)
(i32.store offset=12
(local.get $2)
@@ -7559,7 +7327,7 @@
)
(i32.store
(i32.const 1240)
- (local.tee $2
+ (local.tee $0
(i32.add
(i32.load
(i32.const 1240)
@@ -7570,14 +7338,14 @@
)
(local.set $0
(if (result i32)
- (local.get $2)
+ (local.get $0)
(return)
(i32.const 1664)
)
)
(loop $while-in17
(if
- (local.tee $2
+ (local.tee $0
(i32.load
(local.get $0)
)
@@ -7585,7 +7353,7 @@
(block
(local.set $0
(i32.add
- (local.get $2)
+ (local.get $0)
(i32.const 8)
)
)
@@ -7610,9 +7378,7 @@
(local $11 i32)
(local $12 i32)
(local $13 i32)
- (local $14 i32)
- (local $15 i32)
- (local.set $10
+ (local.set $9
(global.get $r)
)
(global.set $r
@@ -7623,129 +7389,123 @@
)
(local.set $7
(i32.add
- (local.get $10)
+ (local.get $9)
(i32.const 16)
)
)
(i32.store
- (local.tee $3
+ (local.tee $4
(i32.add
(local.tee $8
- (local.get $10)
+ (local.get $9)
)
(i32.const 32)
)
)
- (local.tee $4
+ (local.tee $3
(i32.load offset=28
(local.get $0)
)
)
)
(i32.store offset=4
- (local.get $3)
- (local.tee $6
+ (local.get $4)
+ (local.tee $3
(i32.sub
(i32.load offset=20
(local.get $0)
)
- (local.get $4)
+ (local.get $3)
)
)
)
(i32.store offset=8
- (local.get $3)
+ (local.get $4)
(local.get $1)
)
(i32.store offset=12
- (local.get $3)
+ (local.get $4)
(local.get $2)
)
- (local.set $11
- (local.get $0)
- )
- (local.set $12
- (local.get $0)
- )
(local.set $1
- (local.get $3)
+ (local.get $4)
)
- (local.set $3
+ (local.set $4
(i32.const 2)
)
- (local.set $4
+ (local.set $10
(i32.add
(local.get $2)
- (local.get $6)
+ (local.get $3)
)
)
(loop $while-in
(block $while-out
(if
- (i32.eq
- (local.get $4)
- (local.tee $5
- (if (result i32)
- (i32.load
- (i32.const 1160)
- )
- (block (result i32)
- (call $ra
- (i32.const 1)
- (local.get $0)
- )
- (i32.store
- (local.get $8)
- (i32.load offset=60
- (local.get $11)
- )
- )
- (i32.store offset=4
- (local.get $8)
- (local.get $1)
- )
- (i32.store offset=8
- (local.get $8)
- (local.get $3)
- )
- (local.set $6
- (call $Pa
- (call $ya
- (i32.const 146)
- (local.get $8)
- )
- )
- )
- (call $oa
- (i32.const 0)
- )
- (local.get $6)
+ (i32.load
+ (i32.const 1160)
+ )
+ (block
+ (call $ra
+ (i32.const 1)
+ (local.get $0)
+ )
+ (i32.store
+ (local.get $8)
+ (i32.load offset=60
+ (local.get $0)
+ )
+ )
+ (i32.store offset=4
+ (local.get $8)
+ (local.get $1)
+ )
+ (i32.store offset=8
+ (local.get $8)
+ (local.get $4)
+ )
+ (local.set $3
+ (call $Pa
+ (call $ya
+ (i32.const 146)
+ (local.get $8)
)
- (block (result i32)
- (i32.store
- (local.get $7)
- (i32.load offset=60
- (local.get $11)
- )
- )
- (i32.store offset=4
- (local.get $7)
- (local.get $1)
- )
- (i32.store offset=8
- (local.get $7)
- (local.get $3)
- )
- (call $Pa
- (call $ya
- (i32.const 146)
- (local.get $7)
- )
- )
+ )
+ )
+ (call $oa
+ (i32.const 0)
+ )
+ )
+ (block
+ (i32.store
+ (local.get $7)
+ (i32.load offset=60
+ (local.get $0)
+ )
+ )
+ (i32.store offset=4
+ (local.get $7)
+ (local.get $1)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $4)
+ )
+ (local.set $3
+ (call $Pa
+ (call $ya
+ (i32.const 146)
+ (local.get $7)
)
)
)
)
+ )
+ (if
+ (i32.eq
+ (local.get $3)
+ (local.get $10)
+ )
(block
(local.set $1
(i32.const 6)
@@ -7755,123 +7515,125 @@
)
(if
(i32.lt_s
- (local.get $5)
+ (local.get $3)
(i32.const 0)
)
(block
- (local.set $14
+ (local.set $12
(local.get $1)
)
- (local.set $15
- (local.get $3)
+ (local.set $13
+ (local.get $4)
)
(local.set $1
(i32.const 8)
)
- (br $while-out)
- )
- )
- (local.set $6
- (i32.sub
- (local.get $4)
- (local.get $5)
- )
- )
- (if
- (i32.gt_u
- (local.get $5)
- (local.tee $4
- (i32.load offset=4
- (local.get $1)
- )
- )
)
(block
- (i32.store offset=28
- (local.get $0)
- (local.tee $9
- (i32.load offset=44
- (local.get $12)
+ (local.set $5
+ (if (result i32)
+ (i32.gt_u
+ (local.get $3)
+ (local.tee $5
+ (i32.load offset=4
+ (local.get $1)
+ )
+ )
+ )
+ (block (result i32)
+ (i32.store offset=28
+ (local.get $0)
+ (local.tee $6
+ (i32.load offset=44
+ (local.get $0)
+ )
+ )
+ )
+ (i32.store offset=20
+ (local.get $0)
+ (local.get $6)
+ )
+ (local.set $6
+ (i32.load offset=12
+ (local.get $1)
+ )
+ )
+ (local.set $1
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
+ )
+ (local.set $4
+ (i32.add
+ (local.get $4)
+ (i32.const -1)
+ )
+ )
+ (i32.sub
+ (local.get $3)
+ (local.get $5)
+ )
+ )
+ (block (result i32)
+ (if
+ (i32.eq
+ (local.get $4)
+ (i32.const 2)
+ )
+ (block
+ (i32.store offset=28
+ (local.get $0)
+ (i32.add
+ (local.get $3)
+ (i32.load offset=28
+ (local.get $0)
+ )
+ )
+ )
+ (local.set $6
+ (local.get $5)
+ )
+ (local.set $4
+ (i32.const 2)
+ )
+ )
+ (local.set $6
+ (local.get $5)
+ )
+ )
+ (local.get $3)
)
)
)
- (i32.store offset=20
- (local.get $0)
- (local.get $9)
- )
- (local.set $9
- (i32.load offset=12
- (local.get $1)
+ (i32.store
+ (local.get $1)
+ (i32.add
+ (local.get $5)
+ (i32.load
+ (local.get $1)
+ )
)
)
- (local.set $5
+ (i32.store offset=4
+ (local.get $1)
(i32.sub
+ (local.get $6)
(local.get $5)
- (local.get $4)
)
)
- (local.set $1
- (i32.add
- (local.get $1)
- (i32.const 8)
- )
- )
- (local.set $3
- (i32.add
- (local.get $3)
- (i32.const -1)
- )
- )
- )
- (block
- (if
- (i32.eq
+ (local.set $10
+ (i32.sub
+ (local.get $10)
(local.get $3)
- (i32.const 2)
- )
- (block
- (i32.store offset=28
- (local.get $0)
- (i32.add
- (local.get $5)
- (i32.load offset=28
- (local.get $0)
- )
- )
- )
- (local.set $3
- (i32.const 2)
- )
)
)
- (local.set $9
- (local.get $4)
- )
+ (br $while-in)
)
)
- (i32.store
- (local.get $1)
- (i32.add
- (local.get $5)
- (i32.load
- (local.get $1)
- )
- )
- )
- (i32.store offset=4
- (local.get $1)
- (i32.sub
- (local.get $9)
- (local.get $5)
- )
- )
- (local.set $4
- (local.get $6)
- )
- (br $while-in)
)
)
- (local.set $13
+ (local.set $11
(if (result i32)
(i32.eq
(local.get $1)
@@ -7881,9 +7643,9 @@
(i32.store offset=16
(local.get $0)
(i32.add
- (local.tee $4
+ (local.tee $1
(i32.load offset=44
- (local.get $12)
+ (local.get $0)
)
)
(i32.load offset=48
@@ -7893,11 +7655,11 @@
)
(i32.store offset=28
(local.get $0)
- (local.get $4)
+ (local.get $1)
)
(i32.store offset=20
(local.get $0)
- (local.get $4)
+ (local.get $1)
)
(local.get $2)
)
@@ -7930,26 +7692,26 @@
)
(if (result i32)
(i32.eq
- (local.get $15)
+ (local.get $13)
(i32.const 2)
)
(i32.const 0)
(i32.sub
(local.get $2)
(i32.load offset=4
- (local.get $14)
+ (local.get $12)
)
)
)
)
- (local.get $13)
+ (local.get $11)
)
)
)
(global.set $r
- (local.get $10)
+ (local.get $9)
)
- (local.get $13)
+ (local.get $11)
)
(func $Wa (; 16 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
@@ -7957,14 +7719,10 @@
(local $4 i32)
(local $5 i32)
(local $6 i32)
- (local $7 i32)
- (local.set $6
+ (local.set $5
(i32.const 1144)
)
(local.set $3
- (local.get $1)
- )
- (local.set $5
(if (result i32)
(local.tee $4
(i32.load offset=16
@@ -7972,7 +7730,7 @@
)
)
(block (result i32)
- (local.set $7
+ (local.set $6
(i32.const 5)
)
(local.get $4)
@@ -7981,13 +7739,13 @@
(call $Xa
(local.get $1)
)
- (local.get $5)
+ (local.get $3)
(block (result i32)
- (local.set $7
+ (local.set $6
(i32.const 5)
)
(i32.load offset=16
- (local.get $3)
+ (local.get $1)
)
)
)
@@ -7995,15 +7753,15 @@
)
(if
(i32.eq
- (local.get $7)
+ (local.get $6)
(i32.const 5)
)
(block $label$break$a
(if
(i32.lt_u
(i32.sub
- (local.get $5)
- (local.tee $2
+ (local.get $3)
+ (local.tee $3
(i32.load offset=20
(local.get $1)
)
@@ -8031,9 +7789,6 @@
(br $label$break$a)
)
)
- (local.set $4
- (local.get $2)
- )
(if
(i32.gt_s
(i32.load8_s offset=75
@@ -8061,7 +7816,7 @@
(i32.ne
(i32.load8_s
(i32.add
- (local.tee $5
+ (local.tee $4
(i32.add
(local.get $2)
(i32.const -1)
@@ -8074,7 +7829,7 @@
)
(block
(local.set $2
- (local.get $5)
+ (local.get $4)
)
(br $while-in)
)
@@ -8105,35 +7860,32 @@
(local.get $2)
)
)
- (local.set $6
+ (local.set $5
(i32.add
(local.get $2)
(i32.const 1144)
)
)
- (local.set $4
+ (local.set $3
(i32.load offset=20
- (local.get $3)
+ (local.get $1)
)
)
)
- (local.set $2
- (i32.const 0)
- )
)
(drop
(call $jb
- (local.get $4)
- (local.get $6)
+ (local.get $3)
+ (local.get $5)
(local.get $0)
)
)
(i32.store offset=20
- (local.get $3)
+ (local.get $1)
(i32.add
(local.get $0)
(i32.load offset=20
- (local.get $3)
+ (local.get $1)
)
)
)
@@ -8157,48 +7909,48 @@
(i32.const 1144)
)
(block
- (local.set $1
+ (local.set $4
(i32.const 1144)
)
- (local.set $2
+ (local.set $1
(i32.const 4)
)
)
(i32.sub
(if (result i32)
(i32.eq
- (local.get $2)
+ (local.get $1)
(i32.const 4)
)
(block (result i32)
- (local.set $2
- (local.get $1)
+ (local.set $1
+ (local.get $4)
)
(local.set $0
(loop $while-in1 (result i32)
(if (result i32)
(i32.and
(i32.add
- (local.tee $1
+ (local.tee $2
(i32.load
- (local.get $2)
+ (local.get $1)
)
)
(i32.const -16843009)
)
(i32.xor
(i32.and
- (local.get $1)
+ (local.get $2)
(i32.const -2139062144)
)
(i32.const -2139062144)
)
)
- (local.get $2)
+ (local.get $1)
(block
- (local.set $2
+ (local.set $1
(i32.add
- (local.get $2)
+ (local.get $1)
(i32.const 4)
)
)
@@ -8209,28 +7961,17 @@
)
(if
(i32.and
- (local.get $1)
+ (local.get $2)
(i32.const 255)
)
- (block
- (local.set $1
- (local.get $0)
- )
- (loop $while-in3
- (if
- (i32.load8_s
- (local.tee $0
- (i32.add
- (local.get $1)
- (i32.const 1)
- )
- )
- )
- (block
- (local.set $1
+ (loop $while-in3
+ (br_if $while-in3
+ (i32.load8_s
+ (local.tee $0
+ (i32.add
(local.get $0)
+ (i32.const 1)
)
- (br $while-in3)
)
)
)
@@ -8238,35 +7979,36 @@
)
(local.get $0)
)
- (local.get $4)
+ (local.get $2)
)
(i32.const 1144)
)
)
(func $_a (; 18 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
- (local $2 i32)
- (if (result i32)
+ (if
(local.get $0)
- (block $do-once (result i32)
- (if
- (i32.le_s
- (i32.load offset=76
- (local.get $0)
+ (local.set $0
+ (block $do-once (result i32)
+ (if
+ (i32.le_s
+ (i32.load offset=76
+ (local.get $0)
+ )
+ (i32.const -1)
)
- (i32.const -1)
- )
- (br $do-once
- (call $$a
- (local.get $0)
+ (br $do-once
+ (call $$a
+ (local.get $0)
+ )
)
)
- )
- (call $$a
- (local.get $0)
+ (call $$a
+ (local.get $0)
+ )
)
)
- (block (result i32)
+ (block
(local.set $0
(if (result i32)
(i32.load
@@ -8289,56 +8031,45 @@
(i32.const 1184)
)
)
- (block
- (local.set $2
- (local.get $1)
- )
- (local.set $1
- (local.get $0)
+ (loop $while-in
+ (drop
+ (i32.load offset=76
+ (local.get $1)
+ )
)
- (loop $while-in
- (drop
- (i32.load offset=76
- (local.get $2)
+ (if
+ (i32.gt_u
+ (i32.load offset=20
+ (local.get $1)
)
- )
- (if
- (i32.gt_u
- (i32.load offset=20
- (local.get $2)
- )
- (i32.load offset=28
- (local.get $2)
- )
+ (i32.load offset=28
+ (local.get $1)
)
- (local.set $1
- (i32.or
- (call $$a
- (local.get $2)
- )
+ )
+ (local.set $0
+ (i32.or
+ (call $$a
(local.get $1)
)
+ (local.get $0)
)
)
- (br_if $while-in
- (local.tee $2
- (i32.load offset=56
- (local.get $2)
- )
+ )
+ (br_if $while-in
+ (local.tee $1
+ (i32.load offset=56
+ (local.get $1)
)
)
)
)
- (local.set $1
- (local.get $0)
- )
)
(call $xa
(i32.const 1188)
)
- (local.get $1)
)
)
+ (local.get $0)
)
(func $ab (; 19 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
@@ -8347,7 +8078,6 @@
(local $4 i32)
(local $5 i32)
(local $6 i32)
- (local $7 i32)
(local.set $3
(global.get $r)
)
@@ -8363,18 +8093,15 @@
)
(i32.const 10)
)
- (local.set $7
- (local.get $0)
- )
(if
- (local.tee $2
+ (local.tee $1
(i32.load offset=16
(local.get $0)
)
)
(block
(local.set $5
- (local.get $2)
+ (local.get $1)
)
(local.set $6
(i32.const 4)
@@ -8384,13 +8111,13 @@
(call $Xa
(local.get $0)
)
- (local.set $1
+ (local.set $2
(i32.const -1)
)
(block
(local.set $5
(i32.load offset=16
- (local.get $7)
+ (local.get $0)
)
)
(local.set $6
@@ -8404,45 +8131,42 @@
(local.get $6)
(i32.const 4)
)
- (local.set $1
- (block $do-once (result i32)
- (local.set $1
- (local.get $0)
+ (block $do-once
+ (if
+ (i32.lt_u
+ (local.tee $1
+ (i32.load offset=20
+ (local.get $0)
+ )
+ )
+ (local.get $5)
)
(if
- (i32.lt_u
+ (i32.ne
(local.tee $2
- (i32.load offset=20
- (local.get $0)
- )
- )
- (local.get $5)
- )
- (if
- (i32.ne
- (i32.load8_s offset=75
- (local.get $0)
- )
(i32.const 10)
)
- (block
- (i32.store offset=20
+ (i32.load8_s offset=75
+ (local.get $0)
+ )
+ )
+ (block
+ (i32.store offset=20
+ (local.get $0)
+ (i32.add
(local.get $1)
- (i32.add
- (local.get $2)
- (i32.const 1)
- )
- )
- (i32.store8
- (local.get $2)
- (i32.const 10)
- )
- (br $do-once
- (i32.const 10)
+ (i32.const 1)
)
)
+ (i32.store8
+ (local.get $1)
+ (i32.const 10)
+ )
+ (br $do-once)
)
)
+ )
+ (local.set $2
(if (result i32)
(i32.eq
(call_indirect (type $FUNCSIG$iiii)
@@ -8472,12 +8196,11 @@
(global.set $r
(local.get $3)
)
- (local.get $1)
+ (local.get $2)
)
(func $$a (; 20 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
- (local $3 i32)
(if
(i32.gt_u
(i32.load offset=20
@@ -8526,17 +8249,14 @@
(i32.const 3)
)
(block (result i32)
- (local.set $1
- (local.get $0)
- )
(if
(i32.lt_u
- (local.tee $2
+ (local.tee $1
(i32.load offset=4
(local.get $0)
)
)
- (local.tee $3
+ (local.tee $2
(i32.load offset=8
(local.get $0)
)
@@ -8546,8 +8266,8 @@
(call_indirect (type $FUNCSIG$iiii)
(local.get $0)
(i32.sub
+ (local.get $1)
(local.get $2)
- (local.get $3)
)
(i32.const 1)
(i32.add
@@ -8579,7 +8299,7 @@
(i32.const 0)
)
(i32.store offset=4
- (local.get $1)
+ (local.get $0)
(i32.const 0)
)
(i32.const 0)
@@ -9168,7 +8888,7 @@
)
)
)
- (local.set $3
+ (local.set $0
(call $Ra
(local.get $0)
(local.get $1)
@@ -9178,7 +8898,7 @@
(global.set $r
(local.get $4)
)
- (local.get $3)
+ (local.get $0)
)
(func $Oa (; 29 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
diff --git a/test/memorygrowth.fromasm.imprecise b/test/memorygrowth.fromasm.imprecise
index 8d12816bb..bf7be5678 100644
--- a/test/memorygrowth.fromasm.imprecise
+++ b/test/memorygrowth.fromasm.imprecise
@@ -101,14 +101,7 @@
(local $45 i32)
(local $46 i32)
(local $47 i32)
- (local $48 i32)
- (local $49 i32)
- (local $50 i32)
- (local $51 i32)
- (local $52 i32)
- (local $53 i32)
- (local $54 i32)
- (local.set $25
+ (local.set $18
(global.get $r)
)
(global.set $r
@@ -117,1245 +110,1210 @@
(i32.const 16)
)
)
- (local.set $13
- (local.get $25)
- )
- (local.set $3
- (if (result i32)
- (i32.lt_u
- (local.get $0)
- (i32.const 245)
- )
- (block (result i32)
- (if
- (i32.and
- (local.tee $1
- (i32.shr_u
- (local.tee $4
- (i32.load
- (i32.const 1208)
- )
+ (if
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 245)
+ )
+ (block
+ (if
+ (i32.and
+ (local.tee $10
+ (i32.shr_u
+ (local.tee $12
+ (i32.load
+ (i32.const 1208)
)
- (local.tee $0
- (i32.shr_u
- (local.tee $2
- (select
- (i32.const 16)
- (i32.and
- (i32.add
- (local.get $0)
- (i32.const 11)
- )
- (i32.const -8)
- )
- (i32.lt_u
+ )
+ (local.tee $2
+ (i32.shr_u
+ (local.tee $4
+ (select
+ (i32.const 16)
+ (i32.and
+ (i32.add
(local.get $0)
(i32.const 11)
)
+ (i32.const -8)
+ )
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 11)
)
)
- (i32.const 3)
)
+ (i32.const 3)
)
)
)
- (i32.const 3)
)
- (block
- (local.set $1
- (local.tee $6
+ (i32.const 3)
+ )
+ (block
+ (local.set $0
+ (i32.load
+ (local.tee $2
(i32.add
- (i32.shl
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.xor
- (i32.and
- (local.get $1)
- (i32.const 1)
+ (local.tee $4
+ (i32.load offset=8
+ (local.tee $1
+ (i32.add
+ (i32.shl
+ (local.tee $3
+ (i32.add
+ (local.get $2)
+ (i32.xor
+ (i32.and
+ (local.get $10)
+ (i32.const 1)
+ )
+ (i32.const 1)
+ )
+ )
+ )
+ (i32.const 3)
)
- (i32.const 1)
+ (i32.const 1248)
)
)
)
- (i32.const 3)
)
- (i32.const 1248)
+ (i32.const 8)
)
)
)
- (if
- (i32.eq
- (local.get $6)
- (local.tee $8
- (i32.load
- (local.tee $2
- (i32.add
- (local.tee $14
- (i32.load offset=8
- (local.get $1)
- )
- )
- (i32.const 8)
- )
- )
+ )
+ (if
+ (i32.eq
+ (local.get $0)
+ (local.get $1)
+ )
+ (i32.store
+ (i32.const 1208)
+ (i32.and
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $3)
)
+ (i32.const -1)
)
+ (local.get $12)
)
- (i32.store
- (i32.const 1208)
- (i32.and
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $3)
- )
- (i32.const -1)
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $0)
+ (i32.load
+ (i32.const 1224)
)
- (local.get $4)
)
+ (call $qa)
)
- (block
- (if
- (i32.lt_u
- (local.get $8)
- (i32.load
- (i32.const 1224)
- )
+ (if
+ (i32.eq
+ (local.get $4)
+ (i32.load offset=12
+ (local.get $0)
)
- (call $qa)
)
- (local.set $0
- (local.get $8)
- )
- (if
- (i32.eq
- (local.get $14)
- (i32.load offset=12
- (local.get $0)
- )
+ (block
+ (i32.store offset=12
+ (local.get $0)
+ (local.get $1)
)
- (block
- (i32.store offset=12
- (local.get $0)
- (local.get $6)
- )
- (i32.store offset=8
- (local.get $1)
- (local.get $8)
- )
+ (i32.store offset=8
+ (local.get $1)
+ (local.get $0)
)
- (call $qa)
)
+ (call $qa)
)
)
- (i32.store offset=4
- (local.get $14)
- (i32.or
- (local.tee $8
- (i32.shl
- (local.get $3)
- (i32.const 3)
- )
+ )
+ (i32.store offset=4
+ (local.get $4)
+ (i32.or
+ (local.tee $0
+ (i32.shl
+ (local.get $3)
+ (i32.const 3)
)
- (i32.const 3)
)
+ (i32.const 3)
)
- (local.set $0
+ )
+ (i32.store offset=4
+ (local.tee $0
(i32.add
- (local.get $8)
- (local.get $14)
+ (local.get $0)
+ (local.get $4)
)
)
- (i32.store offset=4
- (local.get $0)
- (i32.or
- (i32.load offset=4
- (local.get $0)
- )
- (i32.const 1)
+ (i32.or
+ (i32.load offset=4
+ (local.get $0)
)
- )
- (global.set $r
- (local.get $25)
- )
- (return
- (local.get $2)
+ (i32.const 1)
)
)
- )
- (if (result i32)
- (i32.gt_u
+ (global.set $r
+ (local.get $18)
+ )
+ (return
(local.get $2)
- (local.tee $18
- (i32.load
- (i32.const 1216)
- )
+ )
+ )
+ )
+ (if
+ (i32.gt_u
+ (local.get $4)
+ (local.tee $0
+ (i32.load
+ (i32.const 1216)
)
)
- (block (result i32)
- (if
- (local.get $1)
- (block
- (local.set $6
- (i32.and
- (i32.shr_u
- (local.tee $8
- (i32.add
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $6
- (i32.and
- (i32.or
- (i32.sub
- (i32.const 0)
- (local.tee $8
- (i32.shl
- (i32.const 2)
- (local.get $0)
- )
+ )
+ (block
+ (if
+ (local.get $10)
+ (block
+ (local.set $1
+ (i32.and
+ (i32.shr_u
+ (local.tee $3
+ (i32.add
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.and
+ (i32.or
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.shl
+ (i32.const 2)
+ (local.get $2)
)
)
- (local.get $8)
- )
- (i32.shl
- (local.get $1)
- (local.get $0)
)
+ (local.get $1)
+ )
+ (i32.shl
+ (local.get $10)
+ (local.get $2)
)
)
)
- (local.get $6)
)
- (i32.const -1)
+ (local.get $1)
)
+ (i32.const -1)
)
- (i32.const 12)
)
- (i32.const 16)
+ (i32.const 12)
)
+ (i32.const 16)
)
- (local.set $8
- (i32.and
- (i32.shr_u
- (local.tee $7
- (i32.shr_u
- (local.get $8)
- (local.get $6)
- )
+ )
+ (local.set $3
+ (i32.and
+ (i32.shr_u
+ (local.tee $2
+ (i32.shr_u
+ (local.get $3)
+ (local.get $1)
)
- (i32.const 5)
)
- (i32.const 8)
+ (i32.const 5)
)
+ (i32.const 8)
)
- (local.set $7
- (i32.and
- (i32.shr_u
- (local.tee $10
- (i32.shr_u
- (local.get $7)
- (local.get $8)
- )
+ )
+ (local.set $2
+ (i32.and
+ (i32.shr_u
+ (local.tee $5
+ (i32.shr_u
+ (local.get $2)
+ (local.get $3)
)
- (i32.const 2)
)
- (i32.const 4)
+ (i32.const 2)
)
+ (i32.const 4)
)
- (local.set $10
- (i32.and
- (i32.shr_u
- (local.tee $3
- (i32.shr_u
- (local.get $10)
- (local.get $7)
- )
+ )
+ (local.set $5
+ (i32.and
+ (i32.shr_u
+ (local.tee $7
+ (i32.shr_u
+ (local.get $5)
+ (local.get $2)
)
- (i32.const 1)
)
- (i32.const 2)
+ (i32.const 1)
)
+ (i32.const 2)
)
- (local.set $8
- (local.tee $3
+ )
+ (local.set $1
+ (i32.load
+ (local.tee $6
(i32.add
- (i32.shl
- (local.tee $16
- (i32.add
- (i32.or
- (local.tee $3
- (i32.and
- (i32.shr_u
- (local.tee $14
- (i32.shr_u
- (local.get $3)
- (local.get $10)
+ (local.tee $2
+ (i32.load offset=8
+ (local.tee $3
+ (i32.add
+ (i32.shl
+ (local.tee $5
+ (i32.add
+ (i32.or
+ (local.tee $6
+ (i32.and
+ (i32.shr_u
+ (local.tee $7
+ (i32.shr_u
+ (local.get $7)
+ (local.get $5)
+ )
+ )
+ (i32.const 1)
+ )
+ (i32.const 1)
+ )
+ )
+ (i32.or
+ (local.get $5)
+ (i32.or
+ (local.get $2)
+ (i32.or
+ (local.get $1)
+ (local.get $3)
+ )
+ )
)
)
- (i32.const 1)
- )
- (i32.const 1)
- )
- )
- (i32.or
- (local.get $10)
- (i32.or
- (local.get $7)
- (i32.or
- (local.get $6)
- (local.get $8)
+ (i32.shr_u
+ (local.get $7)
+ (local.get $6)
+ )
)
)
+ (i32.const 3)
)
- )
- (i32.shr_u
- (local.get $14)
- (local.get $3)
+ (i32.const 1248)
)
)
)
- (i32.const 3)
)
- (i32.const 1248)
+ (i32.const 8)
)
)
)
- (if
- (i32.eq
- (local.tee $6
- (i32.load
- (local.tee $7
- (i32.add
- (local.tee $10
- (i32.load offset=8
- (local.get $8)
- )
- )
- (i32.const 8)
- )
+ )
+ (if
+ (i32.eq
+ (local.get $1)
+ (local.get $3)
+ )
+ (block
+ (i32.store
+ (i32.const 1208)
+ (i32.and
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $5)
)
+ (i32.const -1)
)
+ (local.get $12)
)
- (local.get $3)
)
- (block
- (i32.store
- (i32.const 1208)
- (i32.and
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $16)
- )
- (i32.const -1)
- )
- (local.get $4)
+ (local.set $13
+ (local.get $0)
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (i32.load
+ (i32.const 1224)
)
)
- (local.set $34
- (local.get $18)
- )
+ (call $qa)
)
- (block
- (if
- (i32.lt_u
- (local.get $6)
- (i32.load
- (i32.const 1224)
- )
+ (if
+ (i32.eq
+ (local.get $2)
+ (i32.load offset=12
+ (local.get $1)
)
- (call $qa)
- )
- (local.set $0
- (local.get $6)
)
- (if
- (i32.eq
- (local.get $10)
- (i32.load offset=12
- (local.get $0)
- )
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $3)
)
- (block
- (i32.store offset=12
- (local.get $0)
- (local.get $3)
- )
- (i32.store offset=8
- (local.get $8)
- (local.get $6)
- )
- (local.set $34
- (i32.load
- (i32.const 1216)
- )
+ (i32.store offset=8
+ (local.get $3)
+ (local.get $1)
+ )
+ (local.set $13
+ (i32.load
+ (i32.const 1216)
)
)
- (call $qa)
)
+ (call $qa)
)
)
- (i32.store offset=4
- (local.get $10)
- (i32.or
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $4)
+ (i32.const 3)
+ )
+ )
+ (i32.store offset=4
+ (local.tee $7
+ (i32.add
(local.get $2)
- (i32.const 3)
+ (local.get $4)
)
)
- (i32.store offset=4
- (local.tee $14
- (i32.add
- (local.get $2)
- (local.get $10)
- )
- )
- (i32.or
- (local.tee $6
- (i32.sub
- (i32.shl
- (local.get $16)
- (i32.const 3)
- )
- (local.get $2)
+ (i32.or
+ (local.tee $2
+ (i32.sub
+ (i32.shl
+ (local.get $5)
+ (i32.const 3)
)
+ (local.get $4)
)
- (i32.const 1)
)
+ (i32.const 1)
)
- (i32.store
- (i32.add
- (local.get $6)
- (local.get $14)
- )
- (local.get $6)
+ )
+ (i32.store
+ (i32.add
+ (local.get $2)
+ (local.get $7)
)
- (if
- (local.get $34)
- (block
- (local.set $3
- (i32.load
- (i32.const 1228)
- )
+ (local.get $2)
+ )
+ (if
+ (local.get $13)
+ (block
+ (local.set $3
+ (i32.load
+ (i32.const 1228)
)
- (local.set $4
- (i32.add
- (i32.shl
- (local.tee $18
- (i32.shr_u
- (local.get $34)
- (i32.const 3)
- )
+ )
+ (local.set $0
+ (i32.add
+ (i32.shl
+ (local.tee $1
+ (i32.shr_u
+ (local.get $13)
+ (i32.const 3)
)
- (i32.const 3)
)
- (i32.const 1248)
+ (i32.const 3)
)
+ (i32.const 1248)
)
- (if
- (i32.and
- (local.tee $0
- (i32.load
- (i32.const 1208)
- )
+ )
+ (if
+ (i32.and
+ (local.tee $4
+ (i32.load
+ (i32.const 1208)
)
- (local.tee $1
- (i32.shl
- (i32.const 1)
- (local.get $18)
- )
+ )
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
)
)
- (if
- (i32.lt_u
- (local.tee $0
- (i32.load
- (local.tee $1
- (i32.add
- (local.get $4)
- (i32.const 8)
- )
+ )
+ (if
+ (i32.lt_u
+ (local.tee $4
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
)
)
)
- (i32.load
- (i32.const 1224)
- )
)
- (call $qa)
- (block
- (local.set $40
- (local.get $1)
- )
- (local.set $35
- (local.get $0)
- )
+ (i32.load
+ (i32.const 1224)
)
)
+ (call $qa)
(block
- (i32.store
- (i32.const 1208)
- (i32.or
- (local.get $0)
- (local.get $1)
- )
- )
- (local.set $40
- (i32.add
- (local.get $4)
- (i32.const 8)
- )
+ (local.set $20
+ (local.get $1)
)
- (local.set $35
+ (local.set $8
(local.get $4)
)
)
)
- (i32.store
- (local.get $40)
- (local.get $3)
- )
- (i32.store offset=12
- (local.get $35)
- (local.get $3)
- )
- (i32.store offset=8
- (local.get $3)
- (local.get $35)
- )
- (i32.store offset=12
- (local.get $3)
- (local.get $4)
+ (block
+ (i32.store
+ (i32.const 1208)
+ (i32.or
+ (local.get $1)
+ (local.get $4)
+ )
+ )
+ (local.set $20
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
+ )
+ (local.set $8
+ (local.get $0)
+ )
)
)
+ (i32.store
+ (local.get $20)
+ (local.get $3)
+ )
+ (i32.store offset=12
+ (local.get $8)
+ (local.get $3)
+ )
+ (i32.store offset=8
+ (local.get $3)
+ (local.get $8)
+ )
+ (i32.store offset=12
+ (local.get $3)
+ (local.get $0)
+ )
)
- (i32.store
- (i32.const 1216)
- (local.get $6)
- )
- (i32.store
- (i32.const 1228)
- (local.get $14)
- )
- (global.set $r
- (local.get $25)
- )
- (return
- (local.get $7)
- )
+ )
+ (i32.store
+ (i32.const 1216)
+ (local.get $2)
+ )
+ (i32.store
+ (i32.const 1228)
+ (local.get $7)
+ )
+ (global.set $r
+ (local.get $18)
+ )
+ (return
+ (local.get $6)
)
)
- (if (result i32)
- (local.tee $14
- (i32.load
- (i32.const 1212)
- )
+ )
+ (if
+ (local.tee $0
+ (i32.load
+ (i32.const 1212)
)
- (block
- (local.set $14
- (i32.and
- (i32.shr_u
- (local.tee $6
- (i32.add
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.get $14)
- )
- (local.get $14)
+ )
+ (block
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (local.tee $1
+ (i32.add
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.get $0)
)
- (i32.const -1)
+ (local.get $0)
)
+ (i32.const -1)
)
- (i32.const 12)
)
- (i32.const 16)
+ (i32.const 12)
)
+ (i32.const 16)
)
- (local.set $6
- (i32.and
- (i32.shr_u
- (local.tee $4
- (i32.shr_u
- (local.get $6)
- (local.get $14)
- )
+ )
+ (local.set $1
+ (i32.and
+ (i32.shr_u
+ (local.tee $3
+ (i32.shr_u
+ (local.get $1)
+ (local.get $0)
)
- (i32.const 5)
)
- (i32.const 8)
+ (i32.const 5)
)
+ (i32.const 8)
)
- (local.set $4
- (i32.and
- (i32.shr_u
- (local.tee $3
- (i32.shr_u
- (local.get $4)
- (local.get $6)
- )
+ )
+ (local.set $3
+ (i32.and
+ (i32.shr_u
+ (local.tee $2
+ (i32.shr_u
+ (local.get $3)
+ (local.get $1)
)
- (i32.const 2)
)
- (i32.const 4)
+ (i32.const 2)
)
+ (i32.const 4)
)
- (local.set $3
- (i32.and
- (i32.shr_u
- (local.tee $0
- (i32.shr_u
- (local.get $3)
- (local.get $4)
- )
+ )
+ (local.set $2
+ (i32.and
+ (i32.shr_u
+ (local.tee $8
+ (i32.shr_u
+ (local.get $2)
+ (local.get $3)
)
- (i32.const 1)
)
- (i32.const 2)
+ (i32.const 1)
)
+ (i32.const 2)
)
- (local.set $0
- (i32.sub
- (i32.and
- (i32.load offset=4
- (local.tee $18
- (i32.load
- (i32.add
- (i32.shl
- (i32.add
- (i32.or
- (local.tee $0
- (i32.and
- (i32.shr_u
- (local.tee $1
- (i32.shr_u
- (local.get $0)
- (local.get $3)
- )
+ )
+ (local.set $7
+ (i32.sub
+ (i32.and
+ (i32.load offset=4
+ (local.tee $0
+ (i32.load
+ (i32.add
+ (i32.shl
+ (i32.add
+ (i32.or
+ (local.tee $7
+ (i32.and
+ (i32.shr_u
+ (local.tee $8
+ (i32.shr_u
+ (local.get $8)
+ (local.get $2)
)
- (i32.const 1)
)
(i32.const 1)
)
+ (i32.const 1)
)
+ )
+ (i32.or
+ (local.get $2)
(i32.or
(local.get $3)
(i32.or
- (local.get $4)
- (i32.or
- (local.get $6)
- (local.get $14)
- )
+ (local.get $0)
+ (local.get $1)
)
)
)
- (i32.shr_u
- (local.get $1)
- (local.get $0)
- )
)
- (i32.const 2)
+ (i32.shr_u
+ (local.get $8)
+ (local.get $7)
+ )
)
- (i32.const 1512)
+ (i32.const 2)
)
+ (i32.const 1512)
)
)
)
- (i32.const -8)
)
- (local.get $2)
- )
- )
- (local.set $3
- (local.tee $1
- (local.get $18)
+ (i32.const -8)
)
+ (local.get $4)
)
- (loop $while-in
- (block $while-out
- (local.set $4
- (i32.lt_u
- (local.tee $18
- (i32.sub
- (i32.and
- (i32.load offset=4
- (local.tee $1
- (if (result i32)
- (local.tee $18
- (i32.load offset=16
- (local.get $1)
- )
- )
- (local.get $18)
- (if (result i32)
- (local.tee $4
- (i32.load offset=20
- (local.get $1)
- )
- )
- (local.get $4)
- (block
- (local.set $6
- (local.get $0)
- )
- (local.set $9
- (local.get $3)
- )
- (br $while-out)
- )
- )
- )
- )
- )
- (i32.const -8)
- )
- (local.get $2)
- )
- )
+ )
+ (local.set $9
+ (local.get $0)
+ )
+ (loop $while-in
+ (block $while-out
+ (if
+ (local.tee $1
+ (i32.load offset=16
(local.get $0)
)
)
(local.set $0
- (select
- (local.get $18)
- (local.get $0)
- (local.get $4)
- )
+ (local.get $1)
)
- (local.set $3
- (select
- (local.get $1)
- (local.get $3)
- (local.get $4)
+ (if
+ (i32.eqz
+ (local.tee $0
+ (i32.load offset=20
+ (local.get $0)
+ )
+ )
+ )
+ (block
+ (local.set $8
+ (local.get $9)
+ )
+ (br $while-out)
)
)
- (br $while-in)
)
- )
- (if
- (i32.lt_u
- (local.get $9)
- (local.tee $3
- (i32.load
- (i32.const 1224)
+ (local.set $1
+ (i32.lt_u
+ (local.tee $3
+ (i32.sub
+ (i32.and
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const -8)
+ )
+ (local.get $4)
+ )
)
+ (local.get $7)
)
)
- (call $qa)
+ (local.set $7
+ (select
+ (local.get $3)
+ (local.get $7)
+ (local.get $1)
+ )
+ )
+ (local.set $9
+ (select
+ (local.get $0)
+ (local.get $9)
+ (local.get $1)
+ )
+ )
+ (br $while-in)
)
- (if
- (i32.ge_u
- (local.get $9)
- (local.tee $1
- (i32.add
- (local.get $2)
- (local.get $9)
- )
+ )
+ (if
+ (i32.lt_u
+ (local.get $8)
+ (local.tee $14
+ (i32.load
+ (i32.const 1224)
)
)
- (call $qa)
)
- (local.set $0
- (i32.load offset=24
- (local.get $9)
+ (call $qa)
+ )
+ (if
+ (i32.ge_u
+ (local.get $8)
+ (local.tee $12
+ (i32.add
+ (local.get $4)
+ (local.get $8)
+ )
)
)
- (if
- (i32.eq
- (local.tee $7
- (i32.load offset=12
- (local.get $9)
- )
+ (call $qa)
+ )
+ (local.set $10
+ (i32.load offset=24
+ (local.get $8)
+ )
+ )
+ (if
+ (i32.eq
+ (local.get $8)
+ (local.tee $0
+ (i32.load offset=12
+ (local.get $8)
)
- (local.get $9)
)
- (block $do-once4
- (if
- (local.tee $16
+ )
+ (block $do-once4
+ (if
+ (i32.eqz
+ (local.tee $0
(i32.load
- (local.tee $10
+ (local.tee $1
(i32.add
- (local.get $9)
+ (local.get $8)
(i32.const 20)
)
)
)
)
- (block
- (local.set $18
- (local.get $16)
- )
- (local.set $4
- (local.get $10)
- )
- )
- (br_if $do-once4
- (i32.eqz
- (local.tee $18
- (i32.load
- (local.tee $4
- (i32.add
- (local.get $9)
- (i32.const 16)
- )
- )
- )
- )
- )
- )
)
- (loop $while-in7
- (if
- (local.tee $16
+ (br_if $do-once4
+ (i32.eqz
+ (local.tee $0
(i32.load
- (local.tee $10
+ (local.tee $1
(i32.add
- (local.get $18)
- (i32.const 20)
+ (local.get $8)
+ (i32.const 16)
)
)
)
)
- (block
- (local.set $18
- (local.get $16)
- )
- (local.set $4
- (local.get $10)
- )
- (br $while-in7)
- )
)
- (if
- (local.tee $16
- (i32.load
- (local.tee $10
- (i32.add
- (local.get $18)
- (i32.const 16)
- )
+ )
+ )
+ (loop $while-in7
+ (if
+ (local.tee $2
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.get $0)
+ (i32.const 20)
)
)
)
- (block
- (local.set $18
- (local.get $16)
- )
- (local.set $4
- (local.get $10)
- )
- (br $while-in7)
+ )
+ (block
+ (local.set $0
+ (local.get $2)
)
+ (local.set $1
+ (local.get $3)
+ )
+ (br $while-in7)
)
)
(if
- (i32.lt_u
- (local.get $4)
- (local.get $3)
+ (local.tee $2
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ )
+ )
)
- (call $qa)
(block
- (i32.store
- (local.get $4)
- (i32.const 0)
+ (local.set $0
+ (local.get $2)
)
- (local.set $23
- (local.get $18)
+ (local.set $1
+ (local.get $3)
)
+ (br $while-in7)
)
)
)
- (block
- (if
- (i32.lt_u
- (local.tee $10
- (i32.load offset=8
- (local.get $9)
- )
- )
- (local.get $3)
- )
- (call $qa)
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (local.get $14)
)
- (local.set $8
- (local.get $10)
+ (call $qa)
+ (block
+ (i32.store
+ (local.get $1)
+ (i32.const 0)
+ )
+ (local.set $5
+ (local.get $0)
+ )
)
- (if
- (i32.ne
- (local.get $9)
- (i32.load offset=12
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.tee $1
+ (i32.load offset=8
(local.get $8)
)
)
- (call $qa)
+ (local.get $14)
)
- (local.set $4
- (local.get $7)
+ (call $qa)
+ )
+ (if
+ (i32.ne
+ (local.get $8)
+ (i32.load offset=12
+ (local.get $1)
+ )
)
- (if
- (i32.eq
- (local.get $9)
- (i32.load offset=8
- (local.get $4)
- )
+ (call $qa)
+ )
+ (if
+ (i32.eq
+ (local.get $8)
+ (i32.load offset=8
+ (local.get $0)
)
- (block
- (i32.store offset=12
- (local.get $8)
- (local.get $7)
- )
- (i32.store offset=8
- (local.get $4)
- (local.get $10)
- )
- (local.set $23
- (local.get $7)
- )
+ )
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $5
+ (local.get $0)
)
- (call $qa)
)
+ (call $qa)
)
)
- (if
- (local.get $0)
- (block $do-once8
- (if
- (i32.eq
- (i32.load
- (local.tee $3
- (i32.add
- (i32.shl
- (local.tee $7
- (i32.load offset=28
- (local.get $9)
- )
+ )
+ (if
+ (local.get $10)
+ (block $do-once8
+ (if
+ (i32.eq
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (i32.shl
+ (local.tee $0
+ (i32.load offset=28
+ (local.get $8)
)
- (i32.const 2)
)
- (i32.const 1512)
+ (i32.const 2)
)
+ (i32.const 1512)
)
)
- (local.get $9)
)
- (block
- (i32.store
- (local.get $3)
- (local.get $23)
+ (local.get $8)
+ )
+ (block
+ (i32.store
+ (local.get $1)
+ (local.get $5)
+ )
+ (if
+ (i32.eqz
+ (local.get $5)
)
- (if
- (i32.eqz
- (local.get $23)
- )
- (block
- (i32.store
- (i32.const 1212)
- (i32.and
- (i32.load
- (i32.const 1212)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $7)
- )
- (i32.const -1)
+ (block
+ (i32.store
+ (i32.const 1212)
+ (i32.and
+ (i32.load
+ (i32.const 1212)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
)
+ (i32.const -1)
)
)
- (br $do-once8)
)
+ (br $do-once8)
)
)
- (block
- (if
- (i32.lt_u
- (local.get $0)
- (i32.load
- (i32.const 1224)
- )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $10)
+ (i32.load
+ (i32.const 1224)
)
- (call $qa)
- )
- (local.set $4
- (local.get $0)
)
- (if
- (i32.eq
- (local.get $9)
- (i32.load offset=16
- (local.get $0)
- )
- )
- (i32.store offset=16
- (local.get $4)
- (local.get $23)
- )
- (i32.store offset=20
- (local.get $0)
- (local.get $23)
+ (call $qa)
+ )
+ (if
+ (i32.eq
+ (local.get $8)
+ (i32.load offset=16
+ (local.get $10)
)
)
- (br_if $do-once8
- (i32.eqz
- (local.get $23)
- )
+ (i32.store offset=16
+ (local.get $10)
+ (local.get $5)
+ )
+ (i32.store offset=20
+ (local.get $10)
+ (local.get $5)
+ )
+ )
+ (br_if $do-once8
+ (i32.eqz
+ (local.get $5)
)
)
)
- (if
- (i32.lt_u
- (local.get $23)
- (local.tee $7
- (i32.load
- (i32.const 1224)
- )
+ )
+ (if
+ (i32.lt_u
+ (local.get $5)
+ (local.tee $1
+ (i32.load
+ (i32.const 1224)
)
)
- (call $qa)
)
- (i32.store offset=24
- (local.get $23)
- (local.get $0)
+ (call $qa)
+ )
+ (i32.store offset=24
+ (local.get $5)
+ (local.get $10)
+ )
+ (if
+ (local.tee $0
+ (i32.load offset=16
+ (local.get $8)
+ )
)
(if
- (local.tee $3
- (i32.load offset=16
- (local.get $9)
- )
+ (i32.lt_u
+ (local.get $0)
+ (local.get $1)
)
- (if
- (i32.lt_u
- (local.get $3)
- (local.get $7)
+ (call $qa)
+ (block
+ (i32.store offset=16
+ (local.get $5)
+ (local.get $0)
)
- (call $qa)
- (block
- (i32.store offset=16
- (local.get $23)
- (local.get $3)
- )
- (i32.store offset=24
- (local.get $3)
- (local.get $23)
- )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $5)
)
)
)
+ )
+ (if
+ (local.tee $0
+ (i32.load offset=20
+ (local.get $8)
+ )
+ )
(if
- (local.tee $3
- (i32.load offset=20
- (local.get $9)
+ (i32.lt_u
+ (local.get $0)
+ (i32.load
+ (i32.const 1224)
)
)
- (if
- (i32.lt_u
- (local.get $3)
- (i32.load
- (i32.const 1224)
- )
+ (call $qa)
+ (block
+ (i32.store offset=20
+ (local.get $5)
+ (local.get $0)
)
- (call $qa)
- (block
- (i32.store offset=20
- (local.get $23)
- (local.get $3)
- )
- (i32.store offset=24
- (local.get $3)
- (local.get $23)
- )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $5)
)
)
)
)
)
- (if
- (i32.lt_u
- (local.get $6)
- (i32.const 16)
- )
- (block
- (i32.store offset=4
- (local.get $9)
- (i32.or
- (local.tee $0
- (i32.add
- (local.get $2)
- (local.get $6)
- )
+ )
+ (if
+ (i32.lt_u
+ (local.get $7)
+ (i32.const 16)
+ )
+ (block
+ (i32.store offset=4
+ (local.get $8)
+ (i32.or
+ (local.tee $0
+ (i32.add
+ (local.get $4)
+ (local.get $7)
)
- (i32.const 3)
)
+ (i32.const 3)
)
- (local.set $0
+ )
+ (i32.store offset=4
+ (local.tee $0
(i32.add
(local.get $0)
- (local.get $9)
+ (local.get $8)
)
)
- (i32.store offset=4
- (local.get $0)
- (i32.or
- (i32.load offset=4
- (local.get $0)
- )
- (i32.const 1)
+ (i32.or
+ (i32.load offset=4
+ (local.get $0)
)
+ (i32.const 1)
)
)
- (block
- (i32.store offset=4
- (local.get $9)
- (i32.or
- (local.get $2)
- (i32.const 3)
- )
+ )
+ (block
+ (i32.store offset=4
+ (local.get $8)
+ (i32.or
+ (local.get $4)
+ (i32.const 3)
)
- (i32.store offset=4
- (local.get $1)
- (i32.or
- (local.get $6)
- (i32.const 1)
- )
+ )
+ (i32.store offset=4
+ (local.get $12)
+ (i32.or
+ (local.get $7)
+ (i32.const 1)
)
- (i32.store
- (i32.add
- (local.get $1)
- (local.get $6)
+ )
+ (i32.store
+ (i32.add
+ (local.get $7)
+ (local.get $12)
+ )
+ (local.get $7)
+ )
+ (if
+ (local.tee $0
+ (i32.load
+ (i32.const 1216)
)
- (local.get $6)
)
- (if
- (local.tee $3
+ (block
+ (local.set $3
(i32.load
- (i32.const 1216)
+ (i32.const 1228)
)
)
- (block
- (local.set $0
- (i32.load
- (i32.const 1228)
+ (local.set $0
+ (i32.add
+ (i32.shl
+ (local.tee $1
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 3)
+ )
+ )
+ (i32.const 3)
)
+ (i32.const 1248)
)
- (local.set $3
- (i32.add
+ )
+ (if
+ (i32.and
+ (local.tee $4
+ (i32.load
+ (i32.const 1208)
+ )
+ )
+ (local.tee $1
(i32.shl
- (local.tee $7
- (i32.shr_u
- (local.get $3)
- (i32.const 3)
- )
- )
- (i32.const 3)
+ (i32.const 1)
+ (local.get $1)
)
- (i32.const 1248)
)
)
(if
- (i32.and
+ (i32.lt_u
(local.tee $4
- (i32.shl
- (i32.const 1)
- (local.get $7)
- )
- )
- (local.tee $10
(i32.load
- (i32.const 1208)
- )
- )
- )
- (if
- (i32.lt_u
- (local.tee $10
- (i32.load
- (local.tee $4
- (i32.add
- (local.get $3)
- (i32.const 8)
- )
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
)
)
)
- (i32.load
- (i32.const 1224)
- )
)
- (call $qa)
- (block
- (local.set $41
- (local.get $4)
- )
- (local.set $27
- (local.get $10)
- )
+ (i32.load
+ (i32.const 1224)
)
)
+ (call $qa)
(block
- (i32.store
- (i32.const 1208)
- (i32.or
- (local.get $4)
- (local.get $10)
- )
- )
- (local.set $41
- (i32.add
- (local.get $3)
- (i32.const 8)
- )
+ (local.set $21
+ (local.get $1)
)
- (local.set $27
- (local.get $3)
+ (local.set $6
+ (local.get $4)
)
)
)
- (i32.store
- (local.get $41)
- (local.get $0)
- )
- (i32.store offset=12
- (local.get $27)
- (local.get $0)
- )
- (i32.store offset=8
- (local.get $0)
- (local.get $27)
- )
- (i32.store offset=12
- (local.get $0)
- (local.get $3)
+ (block
+ (i32.store
+ (i32.const 1208)
+ (i32.or
+ (local.get $1)
+ (local.get $4)
+ )
+ )
+ (local.set $21
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
+ )
+ (local.set $6
+ (local.get $0)
+ )
)
)
- )
- (i32.store
- (i32.const 1216)
- (local.get $6)
- )
- (i32.store
- (i32.const 1228)
- (local.get $1)
+ (i32.store
+ (local.get $21)
+ (local.get $3)
+ )
+ (i32.store offset=12
+ (local.get $6)
+ (local.get $3)
+ )
+ (i32.store offset=8
+ (local.get $3)
+ (local.get $6)
+ )
+ (i32.store offset=12
+ (local.get $3)
+ (local.get $0)
+ )
)
)
- )
- (global.set $r
- (local.get $25)
- )
- (return
- (i32.add
- (local.get $9)
- (i32.const 8)
+ (i32.store
+ (i32.const 1216)
+ (local.get $7)
+ )
+ (i32.store
+ (i32.const 1228)
+ (local.get $12)
)
)
)
- (local.get $2)
+ (global.set $r
+ (local.get $18)
+ )
+ (return
+ (i32.add
+ (local.get $8)
+ (i32.const 8)
+ )
+ )
)
)
- (local.get $2)
)
)
+ )
+ (local.set $4
(if (result i32)
(i32.gt_u
(local.get $0)
@@ -1363,9 +1321,9 @@
)
(i32.const -1)
(block $do-once (result i32)
- (local.set $0
+ (local.set $8
(i32.and
- (local.tee $3
+ (local.tee $0
(i32.add
(local.get $0)
(i32.const 11)
@@ -1375,123 +1333,124 @@
)
)
(if (result i32)
- (local.tee $10
+ (local.tee $39
(i32.load
(i32.const 1212)
)
)
(block (result i32)
- (local.set $4
- (i32.sub
- (i32.const 0)
- (local.get $0)
- )
- )
- (if
- (local.tee $14
- (i32.load
- (i32.add
- (i32.shl
- (local.tee $27
- (if (result i32)
- (local.tee $7
- (i32.shr_u
- (local.get $3)
- (i32.const 8)
- )
- )
- (if (result i32)
- (i32.gt_u
- (local.get $0)
- (i32.const 16777215)
- )
- (i32.const 31)
- (block (result i32)
- (local.set $7
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $16
- (i32.shl
- (local.get $7)
- (local.tee $3
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $7)
- (i32.const 1048320)
- )
- (i32.const 16)
- )
- (i32.const 8)
- )
- )
- )
+ (local.set $21
+ (if (result i32)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 8)
+ )
+ )
+ (if (result i32)
+ (i32.gt_u
+ (local.get $8)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $6
+ (i32.shl
+ (local.get $0)
+ (local.tee $5
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $0)
+ (i32.const 1048320)
)
- (i32.const 520192)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 8)
)
- (i32.const 4)
)
)
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $0)
- (i32.add
- (local.tee $14
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
- (local.tee $16
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $18
- (i32.shl
- (local.get $16)
- (local.get $7)
- )
- )
- (i32.const 245760)
- )
- (i32.const 16)
- )
- (i32.const 2)
- )
- )
- (i32.or
- (local.get $3)
- (local.get $7)
+ )
+ (i32.const 520192)
+ )
+ (i32.const 16)
+ )
+ (i32.const 4)
+ )
+ )
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $8)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
+ (i32.or
+ (local.tee $13
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $6
+ (i32.shl
+ (local.get $6)
+ (local.get $0)
)
)
+ (i32.const 245760)
)
- (i32.shr_u
- (i32.shl
- (local.get $18)
- (local.get $16)
- )
- (i32.const 15)
- )
+ (i32.const 16)
)
+ (i32.const 2)
)
- (i32.const 7)
+ )
+ (i32.or
+ (local.get $0)
+ (local.get $5)
)
)
- (i32.const 1)
)
- (i32.shl
- (local.get $14)
- (i32.const 1)
+ (i32.shr_u
+ (i32.shl
+ (local.get $6)
+ (local.get $13)
+ )
+ (i32.const 15)
)
)
)
+ (i32.const 7)
)
- (i32.const 0)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
+ )
+ )
+ )
+ (i32.const 0)
+ )
+ )
+ (local.set $0
+ (i32.sub
+ (i32.const 0)
+ (local.get $8)
+ )
+ )
+ (if
+ (local.tee $6
+ (i32.load
+ (i32.add
+ (i32.shl
+ (local.get $21)
(i32.const 2)
)
(i32.const 1512)
@@ -1499,107 +1458,100 @@
)
)
(block $label$break$a
- (local.set $16
- (local.get $4)
- )
- (local.set $18
- (i32.const 0)
- )
- (local.set $3
+ (local.set $9
(i32.shl
- (local.get $0)
+ (local.get $8)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (local.get $27)
+ (local.get $21)
(i32.const 1)
)
)
(i32.eq
- (local.get $27)
+ (local.get $21)
(i32.const 31)
)
)
)
)
- (local.set $7
- (local.get $14)
+ (local.set $5
+ (i32.const 0)
)
- (local.set $1
+ (local.set $10
(loop $while-in14 (result i32)
(if
(i32.lt_u
- (local.tee $14
+ (local.tee $13
(i32.sub
- (local.tee $2
+ (local.tee $25
(i32.and
(i32.load offset=4
- (local.get $7)
+ (local.get $6)
)
(i32.const -8)
)
)
- (local.get $0)
+ (local.get $8)
)
)
- (local.get $16)
+ (local.get $0)
)
- (local.set $16
+ (local.set $0
(if (result i32)
(i32.eq
- (local.get $0)
- (local.get $2)
+ (local.get $8)
+ (local.get $25)
)
(block
- (local.set $30
- (local.get $14)
+ (local.set $4
+ (local.get $13)
)
- (local.set $28
- (local.get $7)
+ (local.set $12
+ (local.get $6)
)
- (local.set $31
- (local.get $7)
+ (local.set $2
+ (local.get $6)
)
- (local.set $7
+ (local.set $9
(i32.const 90)
)
(br $label$break$a)
)
(block (result i32)
- (local.set $6
- (local.get $7)
+ (local.set $5
+ (local.get $6)
)
- (local.get $14)
+ (local.get $13)
)
)
)
)
- (local.set $2
+ (local.set $13
(select
- (local.get $18)
- (local.tee $14
+ (local.get $20)
+ (local.tee $13
(i32.load offset=20
- (local.get $7)
+ (local.get $6)
)
)
(i32.or
(i32.eqz
- (local.get $14)
+ (local.get $13)
)
(i32.eq
- (local.get $14)
- (local.tee $7
+ (local.tee $6
(i32.load
(i32.add
(i32.add
- (local.get $7)
+ (local.get $6)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (local.get $3)
+ (local.get $9)
(i32.const 31)
)
(i32.const 2)
@@ -1607,40 +1559,38 @@
)
)
)
+ (local.get $13)
)
)
)
)
(if (result i32)
- (local.tee $14
+ (local.tee $25
(i32.eqz
- (local.get $7)
+ (local.get $6)
)
)
(block (result i32)
- (local.set $36
- (local.get $16)
+ (local.set $19
+ (local.get $13)
)
- (local.set $32
- (local.get $6)
+ (local.set $22
+ (local.get $5)
)
- (local.set $7
+ (local.set $9
(i32.const 86)
)
- (local.get $2)
+ (local.get $0)
)
(block
- (local.set $18
- (local.get $2)
+ (local.set $20
+ (local.get $13)
)
- (local.set $3
+ (local.set $9
(i32.shl
- (local.get $3)
+ (local.get $9)
(i32.xor
- (i32.and
- (local.get $14)
- (i32.const 1)
- )
+ (local.get $25)
(i32.const 1)
)
)
@@ -1652,126 +1602,127 @@
)
)
(block
- (local.set $36
- (local.get $4)
+ (local.set $10
+ (local.get $0)
)
- (local.set $7
+ (local.set $9
(i32.const 86)
)
)
)
(if
(i32.eq
- (local.get $7)
+ (local.get $9)
(i32.const 86)
)
- (if
- (local.tee $2
- (if (result i32)
+ (block
+ (if
+ (i32.eqz
(i32.or
- (local.get $1)
- (local.get $32)
+ (local.get $19)
+ (local.get $22)
)
- (local.get $1)
- (block (result i32)
- (drop
- (br_if $do-once
- (local.get $0)
- (i32.eqz
- (local.tee $4
- (i32.and
- (i32.or
- (i32.sub
- (i32.const 0)
- (local.tee $14
- (i32.shl
- (i32.const 2)
- (local.get $27)
- )
+ )
+ (block
+ (drop
+ (br_if $do-once
+ (local.get $8)
+ (i32.eqz
+ (local.tee $0
+ (i32.and
+ (i32.or
+ (i32.sub
+ (i32.const 0)
+ (local.tee $0
+ (i32.shl
+ (i32.const 2)
+ (local.get $21)
)
)
- (local.get $14)
)
- (local.get $10)
+ (local.get $0)
)
+ (local.get $39)
)
)
)
)
- (local.set $4
- (i32.and
- (i32.shr_u
- (local.tee $14
- (i32.add
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.get $4)
- )
- (local.get $4)
+ )
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (local.tee $5
+ (i32.add
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.get $0)
)
- (i32.const -1)
+ (local.get $0)
)
+ (i32.const -1)
)
- (i32.const 12)
)
- (i32.const 16)
+ (i32.const 12)
)
+ (i32.const 16)
)
- (local.set $14
- (i32.and
- (i32.shr_u
- (local.tee $2
- (i32.shr_u
- (local.get $14)
- (local.get $4)
- )
+ )
+ (local.set $5
+ (i32.and
+ (i32.shr_u
+ (local.tee $6
+ (i32.shr_u
+ (local.get $5)
+ (local.get $0)
)
- (i32.const 5)
)
- (i32.const 8)
+ (i32.const 5)
)
+ (i32.const 8)
)
- (local.set $2
- (i32.and
- (i32.shr_u
- (local.tee $1
- (i32.shr_u
- (local.get $2)
- (local.get $14)
- )
+ )
+ (local.set $6
+ (i32.and
+ (i32.shr_u
+ (local.tee $13
+ (i32.shr_u
+ (local.get $6)
+ (local.get $5)
)
- (i32.const 2)
)
- (i32.const 4)
+ (i32.const 2)
)
+ (i32.const 4)
)
- (local.set $1
- (i32.and
- (i32.shr_u
- (local.tee $6
- (i32.shr_u
- (local.get $1)
- (local.get $2)
- )
+ )
+ (local.set $13
+ (i32.and
+ (i32.shr_u
+ (local.tee $19
+ (i32.shr_u
+ (local.get $13)
+ (local.get $6)
)
- (i32.const 1)
)
- (i32.const 2)
+ (i32.const 1)
)
+ (i32.const 2)
)
+ )
+ (local.set $19
(i32.load
(i32.add
(i32.shl
(i32.add
(i32.or
- (local.tee $6
+ (local.tee $20
(i32.and
(i32.shr_u
- (local.tee $3
+ (local.tee $19
(i32.shr_u
- (local.get $6)
- (local.get $1)
+ (local.get $19)
+ (local.get $13)
)
)
(i32.const 1)
@@ -1780,19 +1731,19 @@
)
)
(i32.or
- (local.get $1)
+ (local.get $13)
(i32.or
- (local.get $2)
+ (local.get $6)
(i32.or
- (local.get $4)
- (local.get $14)
+ (local.get $0)
+ (local.get $5)
)
)
)
)
(i32.shr_u
- (local.get $3)
- (local.get $6)
+ (local.get $19)
+ (local.get $20)
)
)
(i32.const 2)
@@ -1803,131 +1754,119 @@
)
)
)
- (block
- (local.set $30
- (local.get $36)
- )
- (local.set $28
- (local.get $2)
- )
- (local.set $31
- (local.get $32)
- )
- (local.set $7
- (i32.const 90)
- )
- )
- (block
- (local.set $17
- (local.get $36)
+ (if
+ (local.get $19)
+ (block
+ (local.set $4
+ (local.get $10)
+ )
+ (local.set $12
+ (local.get $19)
+ )
+ (local.set $2
+ (local.get $22)
+ )
+ (local.set $9
+ (i32.const 90)
+ )
)
- (local.set $12
- (local.get $32)
+ (block
+ (local.set $15
+ (local.get $10)
+ )
+ (local.set $11
+ (local.get $22)
+ )
)
)
)
)
- (if
- (i32.eq
- (local.get $7)
- (i32.const 90)
- )
- (local.set $17
- (loop $while-in16 (result i32)
- (local.set $7
- (i32.const 0)
+ (if (result i32)
+ (block (result i32)
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 90)
)
- (local.set $3
- (i32.lt_u
- (local.tee $6
- (i32.sub
- (i32.and
- (i32.load offset=4
- (local.get $28)
+ (local.set $11
+ (loop $while-in16 (result i32)
+ (local.set $9
+ (i32.const 0)
+ )
+ (local.set $0
+ (i32.lt_u
+ (local.tee $5
+ (i32.sub
+ (i32.and
+ (i32.load offset=4
+ (local.get $12)
+ )
+ (i32.const -8)
+ )
+ (local.get $8)
)
- (i32.const -8)
)
- (local.get $0)
+ (local.get $4)
)
)
- (local.get $30)
- )
- )
- (local.set $1
- (select
- (local.get $6)
- (local.get $30)
- (local.get $3)
- )
- )
- (local.set $6
- (select
- (local.get $28)
- (local.get $31)
- (local.get $3)
- )
- )
- (if
- (local.tee $3
- (i32.load offset=16
- (local.get $28)
- )
- )
- (block
- (local.set $30
- (local.get $1)
- )
- (local.set $28
- (local.get $3)
- )
- (local.set $31
- (local.get $6)
+ (local.set $4
+ (select
+ (local.get $5)
+ (local.get $4)
+ (local.get $0)
+ )
)
- (br $while-in16)
- )
- )
- (if (result i32)
- (local.tee $28
- (i32.load offset=20
- (local.get $28)
+ (local.set $2
+ (select
+ (local.get $12)
+ (local.get $2)
+ (local.get $0)
+ )
)
- )
- (block
- (local.set $30
- (local.get $1)
+ (if
+ (local.tee $0
+ (i32.load offset=16
+ (local.get $12)
+ )
+ )
+ (block
+ (local.set $12
+ (local.get $0)
+ )
+ (br $while-in16)
+ )
)
- (local.set $31
- (local.get $6)
+ (br_if $while-in16
+ (local.tee $12
+ (i32.load offset=20
+ (local.get $12)
+ )
+ )
)
- (br $while-in16)
- )
- (block (result i32)
- (local.set $12
- (local.get $6)
+ (local.set $15
+ (local.get $4)
)
- (local.get $1)
+ (local.get $2)
)
)
)
+ (local.get $11)
)
- )
- (if (result i32)
- (local.get $12)
(if (result i32)
(i32.lt_u
- (local.get $17)
+ (local.get $15)
(i32.sub
(i32.load
(i32.const 1216)
)
- (local.get $0)
+ (local.get $8)
)
)
(block
(if
(i32.lt_u
- (local.get $12)
- (local.tee $10
+ (local.get $11)
+ (local.tee $7
(i32.load
(i32.const 1224)
)
@@ -1937,104 +1876,98 @@
)
(if
(i32.ge_u
- (local.get $12)
- (local.tee $6
+ (local.get $11)
+ (local.tee $2
(i32.add
- (local.get $0)
- (local.get $12)
+ (local.get $8)
+ (local.get $11)
)
)
)
(call $qa)
)
- (local.set $1
+ (local.set $5
(i32.load offset=24
- (local.get $12)
+ (local.get $11)
)
)
(if
(i32.eq
- (local.tee $3
+ (local.get $11)
+ (local.tee $0
(i32.load offset=12
- (local.get $12)
+ (local.get $11)
)
)
- (local.get $12)
)
(block $do-once17
- (local.set $3
- (if (result i32)
- (local.tee $4
+ (if
+ (i32.eqz
+ (local.tee $0
(i32.load
- (local.tee $2
+ (local.tee $1
(i32.add
- (local.get $12)
+ (local.get $11)
(i32.const 20)
)
)
)
)
- (block (result i32)
- (local.set $18
- (local.get $4)
- )
- (local.get $2)
- )
- (if (result i32)
- (local.tee $18
+ )
+ (br_if $do-once17
+ (i32.eqz
+ (local.tee $0
(i32.load
- (local.tee $14
+ (local.tee $1
(i32.add
- (local.get $12)
+ (local.get $11)
(i32.const 16)
)
)
)
)
- (local.get $14)
- (br $do-once17)
)
)
)
(loop $while-in20
(if
- (local.tee $4
+ (local.tee $3
(i32.load
- (local.tee $2
+ (local.tee $4
(i32.add
- (local.get $18)
+ (local.get $0)
(i32.const 20)
)
)
)
)
(block
- (local.set $18
- (local.get $4)
+ (local.set $0
+ (local.get $3)
)
- (local.set $3
- (local.get $2)
+ (local.set $1
+ (local.get $4)
)
(br $while-in20)
)
)
(if
- (local.tee $4
+ (local.tee $3
(i32.load
- (local.tee $2
+ (local.tee $4
(i32.add
- (local.get $18)
+ (local.get $0)
(i32.const 16)
)
)
)
)
(block
- (local.set $18
- (local.get $4)
+ (local.set $0
+ (local.get $3)
)
- (local.set $3
- (local.get $2)
+ (local.set $1
+ (local.get $4)
)
(br $while-in20)
)
@@ -2042,17 +1975,17 @@
)
(if
(i32.lt_u
- (local.get $3)
- (local.get $10)
+ (local.get $1)
+ (local.get $7)
)
(call $qa)
(block
(i32.store
- (local.get $3)
+ (local.get $1)
(i32.const 0)
)
- (local.set $21
- (local.get $18)
+ (local.set $16
+ (local.get $0)
)
)
)
@@ -2060,48 +1993,42 @@
(block
(if
(i32.lt_u
- (local.tee $2
+ (local.tee $1
(i32.load offset=8
- (local.get $12)
+ (local.get $11)
)
)
- (local.get $10)
+ (local.get $7)
)
(call $qa)
)
- (local.set $16
- (local.get $2)
- )
(if
(i32.ne
- (local.get $12)
+ (local.get $11)
(i32.load offset=12
- (local.get $2)
+ (local.get $1)
)
)
(call $qa)
)
- (local.set $4
- (local.get $3)
- )
(if
(i32.eq
- (local.get $12)
+ (local.get $11)
(i32.load offset=8
- (local.get $3)
+ (local.get $0)
)
)
(block
(i32.store offset=12
- (local.get $16)
- (local.get $3)
+ (local.get $1)
+ (local.get $0)
)
(i32.store offset=8
- (local.get $4)
- (local.get $2)
+ (local.get $0)
+ (local.get $1)
)
- (local.set $21
- (local.get $3)
+ (local.set $16
+ (local.get $0)
)
)
(call $qa)
@@ -2109,17 +2036,17 @@
)
)
(if
- (local.get $1)
+ (local.get $5)
(block $do-once21
(if
(i32.eq
(i32.load
- (local.tee $10
+ (local.tee $1
(i32.add
(i32.shl
- (local.tee $3
+ (local.tee $0
(i32.load offset=28
- (local.get $12)
+ (local.get $11)
)
)
(i32.const 2)
@@ -2128,16 +2055,16 @@
)
)
)
- (local.get $12)
+ (local.get $11)
)
(block
(i32.store
- (local.get $10)
- (local.get $21)
+ (local.get $1)
+ (local.get $16)
)
(if
(i32.eqz
- (local.get $21)
+ (local.get $16)
)
(block
(i32.store
@@ -2149,7 +2076,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $3)
+ (local.get $0)
)
(i32.const -1)
)
@@ -2162,43 +2089,40 @@
(block
(if
(i32.lt_u
- (local.get $1)
+ (local.get $5)
(i32.load
(i32.const 1224)
)
)
(call $qa)
)
- (local.set $2
- (local.get $1)
- )
(if
(i32.eq
- (local.get $12)
+ (local.get $11)
(i32.load offset=16
- (local.get $1)
+ (local.get $5)
)
)
(i32.store offset=16
- (local.get $2)
- (local.get $21)
+ (local.get $5)
+ (local.get $16)
)
(i32.store offset=20
- (local.get $1)
- (local.get $21)
+ (local.get $5)
+ (local.get $16)
)
)
(br_if $do-once21
(i32.eqz
- (local.get $21)
+ (local.get $16)
)
)
)
)
(if
(i32.lt_u
- (local.get $21)
- (local.tee $3
+ (local.get $16)
+ (local.tee $1
(i32.load
(i32.const 1224)
)
@@ -2207,42 +2131,42 @@
(call $qa)
)
(i32.store offset=24
- (local.get $21)
- (local.get $1)
+ (local.get $16)
+ (local.get $5)
)
(if
- (local.tee $10
+ (local.tee $0
(i32.load offset=16
- (local.get $12)
+ (local.get $11)
)
)
(if
(i32.lt_u
- (local.get $10)
- (local.get $3)
+ (local.get $0)
+ (local.get $1)
)
(call $qa)
(block
(i32.store offset=16
- (local.get $21)
- (local.get $10)
+ (local.get $16)
+ (local.get $0)
)
(i32.store offset=24
- (local.get $10)
- (local.get $21)
+ (local.get $0)
+ (local.get $16)
)
)
)
)
(if
- (local.tee $10
+ (local.tee $0
(i32.load offset=20
- (local.get $12)
+ (local.get $11)
)
)
(if
(i32.lt_u
- (local.get $10)
+ (local.get $0)
(i32.load
(i32.const 1224)
)
@@ -2250,12 +2174,12 @@
(call $qa)
(block
(i32.store offset=20
- (local.get $21)
- (local.get $10)
+ (local.get $16)
+ (local.get $0)
)
(i32.store offset=24
- (local.get $10)
- (local.get $21)
+ (local.get $0)
+ (local.get $16)
)
)
)
@@ -2264,30 +2188,29 @@
)
(if
(i32.lt_u
- (local.get $17)
+ (local.get $15)
(i32.const 16)
)
(block
(i32.store offset=4
- (local.get $12)
+ (local.get $11)
(i32.or
- (local.tee $1
+ (local.tee $0
(i32.add
- (local.get $0)
- (local.get $17)
+ (local.get $8)
+ (local.get $15)
)
)
(i32.const 3)
)
)
- (local.set $0
- (i32.add
- (local.get $1)
- (local.get $12)
- )
- )
(i32.store offset=4
- (local.get $0)
+ (local.tee $0
+ (i32.add
+ (local.get $0)
+ (local.get $11)
+ )
+ )
(i32.or
(i32.load offset=4
(local.get $0)
@@ -2298,42 +2221,42 @@
)
(block $do-once25
(i32.store offset=4
- (local.get $12)
+ (local.get $11)
(i32.or
- (local.get $0)
+ (local.get $8)
(i32.const 3)
)
)
(i32.store offset=4
- (local.get $6)
+ (local.get $2)
(i32.or
- (local.get $17)
+ (local.get $15)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $6)
- (local.get $17)
+ (local.get $2)
+ (local.get $15)
)
- (local.get $17)
+ (local.get $15)
)
- (local.set $10
+ (local.set $1
(i32.shr_u
- (local.get $17)
+ (local.get $15)
(i32.const 3)
)
)
(if
(i32.lt_u
- (local.get $17)
+ (local.get $15)
(i32.const 256)
)
(block
- (local.set $1
+ (local.set $0
(i32.add
(i32.shl
- (local.get $10)
+ (local.get $1)
(i32.const 3)
)
(i32.const 1248)
@@ -2341,25 +2264,25 @@
)
(if
(i32.and
- (local.tee $2
- (i32.shl
- (i32.const 1)
- (local.get $10)
- )
- )
- (local.tee $3
+ (local.tee $4
(i32.load
(i32.const 1208)
)
)
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ )
)
(if
(i32.lt_u
- (local.tee $3
+ (local.tee $4
(i32.load
- (local.tee $2
+ (local.tee $1
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
@@ -2371,11 +2294,11 @@
)
(call $qa)
(block
- (local.set $9
- (local.get $2)
+ (local.set $29
+ (local.get $1)
)
- (local.set $8
- (local.get $3)
+ (local.set $14
+ (local.get $4)
)
)
)
@@ -2383,70 +2306,70 @@
(i32.store
(i32.const 1208)
(i32.or
- (local.get $2)
- (local.get $3)
+ (local.get $1)
+ (local.get $4)
)
)
- (local.set $9
+ (local.set $29
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
- (local.set $8
- (local.get $1)
+ (local.set $14
+ (local.get $0)
)
)
)
(i32.store
- (local.get $9)
- (local.get $6)
+ (local.get $29)
+ (local.get $2)
)
(i32.store offset=12
- (local.get $8)
- (local.get $6)
+ (local.get $14)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $6)
- (local.get $8)
+ (local.get $2)
+ (local.get $14)
)
(i32.store offset=12
- (local.get $6)
- (local.get $1)
+ (local.get $2)
+ (local.get $0)
)
(br $do-once25)
)
)
- (local.set $14
+ (local.set $1
(i32.add
(i32.shl
- (local.tee $16
+ (local.tee $0
(if (result i32)
- (local.tee $1
+ (local.tee $0
(i32.shr_u
- (local.get $17)
+ (local.get $15)
(i32.const 8)
)
)
(if (result i32)
(i32.gt_u
- (local.get $17)
+ (local.get $15)
(i32.const 16777215)
)
(i32.const 31)
(block (result i32)
- (local.set $1
+ (local.set $0
(i32.and
(i32.shr_u
(i32.add
- (local.tee $2
+ (local.tee $4
(i32.shl
- (local.get $1)
- (local.tee $3
+ (local.get $0)
+ (local.tee $1
(i32.and
(i32.shr_u
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 1048320)
)
(i32.const 16)
@@ -2466,21 +2389,21 @@
(i32.or
(i32.and
(i32.shr_u
- (local.get $17)
+ (local.get $15)
(i32.add
- (local.tee $14
+ (local.tee $0
(i32.add
(i32.sub
(i32.const 14)
(i32.or
- (local.tee $2
+ (local.tee $3
(i32.and
(i32.shr_u
(i32.add
- (local.tee $10
+ (local.tee $4
(i32.shl
- (local.get $2)
- (local.get $1)
+ (local.get $4)
+ (local.get $0)
)
)
(i32.const 245760)
@@ -2491,15 +2414,15 @@
)
)
(i32.or
+ (local.get $0)
(local.get $1)
- (local.get $3)
)
)
)
(i32.shr_u
(i32.shl
- (local.get $10)
- (local.get $2)
+ (local.get $4)
+ (local.get $3)
)
(i32.const 15)
)
@@ -2511,7 +2434,7 @@
(i32.const 1)
)
(i32.shl
- (local.get $14)
+ (local.get $0)
(i32.const 1)
)
)
@@ -2526,29 +2449,29 @@
)
)
(i32.store offset=28
- (local.get $6)
- (local.get $16)
+ (local.get $2)
+ (local.get $0)
)
(i32.store offset=20
- (local.get $6)
+ (local.get $2)
(i32.const 0)
)
(i32.store offset=16
- (local.get $6)
+ (local.get $2)
(i32.const 0)
)
(if
(i32.eqz
(i32.and
- (local.tee $2
+ (local.tee $4
(i32.load
(i32.const 1212)
)
)
- (local.tee $10
+ (local.tee $3
(i32.shl
(i32.const 1)
- (local.get $16)
+ (local.get $0)
)
)
)
@@ -2557,71 +2480,71 @@
(i32.store
(i32.const 1212)
(i32.or
- (local.get $2)
- (local.get $10)
+ (local.get $3)
+ (local.get $4)
)
)
(i32.store
- (local.get $14)
- (local.get $6)
+ (local.get $1)
+ (local.get $2)
)
(i32.store offset=24
- (local.get $6)
- (local.get $14)
+ (local.get $2)
+ (local.get $1)
)
(i32.store offset=12
- (local.get $6)
- (local.get $6)
+ (local.get $2)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $6)
- (local.get $6)
+ (local.get $2)
+ (local.get $2)
)
(br $do-once25)
)
)
- (local.set $10
+ (local.set $3
(i32.shl
- (local.get $17)
+ (local.get $15)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (local.get $16)
+ (local.get $0)
(i32.const 1)
)
)
(i32.eq
- (local.get $16)
+ (local.get $0)
(i32.const 31)
)
)
)
)
- (local.set $2
+ (local.set $0
(i32.load
- (local.get $14)
+ (local.get $1)
)
)
(if
(i32.eq
- (local.tee $7
+ (local.tee $9
(loop $while-in28 (result i32)
(block $while-out27 (result i32)
(if
(i32.eq
- (local.get $17)
+ (local.get $15)
(i32.and
(i32.load offset=4
- (local.get $2)
+ (local.get $0)
)
(i32.const -8)
)
)
(block
- (local.set $19
- (local.get $2)
+ (local.set $30
+ (local.get $0)
)
(br $while-out27
(i32.const 148)
@@ -2629,17 +2552,17 @@
)
)
(if (result i32)
- (local.tee $3
+ (local.tee $1
(i32.load
- (local.tee $14
+ (local.tee $4
(i32.add
(i32.add
- (local.get $2)
+ (local.get $0)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (local.get $10)
+ (local.get $3)
(i32.const 31)
)
(i32.const 2)
@@ -2649,23 +2572,23 @@
)
)
(block
- (local.set $10
+ (local.set $3
(i32.shl
- (local.get $10)
+ (local.get $3)
(i32.const 1)
)
)
- (local.set $2
- (local.get $3)
+ (local.set $0
+ (local.get $1)
)
(br $while-in28)
)
(block (result i32)
- (local.set $22
- (local.get $14)
+ (local.set $31
+ (local.get $4)
)
- (local.set $15
- (local.get $2)
+ (local.set $40
+ (local.get $0)
)
(i32.const 145)
)
@@ -2677,7 +2600,7 @@
)
(if
(i32.lt_u
- (local.get $22)
+ (local.get $31)
(i32.load
(i32.const 1224)
)
@@ -2685,123 +2608,120 @@
(call $qa)
(block
(i32.store
- (local.get $22)
- (local.get $6)
+ (local.get $31)
+ (local.get $2)
)
(i32.store offset=24
- (local.get $6)
- (local.get $15)
+ (local.get $2)
+ (local.get $40)
)
(i32.store offset=12
- (local.get $6)
- (local.get $6)
+ (local.get $2)
+ (local.get $2)
)
(i32.store offset=8
- (local.get $6)
- (local.get $6)
+ (local.get $2)
+ (local.get $2)
)
)
)
(if
(i32.eq
- (local.get $7)
+ (local.get $9)
(i32.const 148)
)
- (block
- (local.set $0
- (local.get $19)
- )
- (if
- (i32.and
- (i32.ge_u
- (local.tee $10
- (i32.load offset=8
- (local.get $0)
- )
- )
- (local.tee $3
- (i32.load
- (i32.const 1224)
+ (if
+ (i32.and
+ (i32.ge_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.tee $0
+ (local.get $30)
)
)
)
- (i32.ge_u
- (local.get $0)
- (local.get $3)
+ (local.tee $4
+ (i32.load
+ (i32.const 1224)
+ )
)
)
- (block
- (i32.store offset=12
- (local.get $10)
- (local.get $6)
- )
- (i32.store offset=8
- (local.get $0)
- (local.get $6)
- )
- (i32.store offset=8
- (local.get $6)
- (local.get $10)
- )
- (i32.store offset=12
- (local.get $6)
- (local.get $19)
- )
- (i32.store offset=24
- (local.get $6)
- (i32.const 0)
- )
+ (i32.ge_u
+ (local.get $0)
+ (local.get $4)
+ )
+ )
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $2)
+ (local.get $1)
+ )
+ (i32.store offset=12
+ (local.get $2)
+ (local.get $30)
+ )
+ (i32.store offset=24
+ (local.get $2)
+ (i32.const 0)
)
- (call $qa)
)
+ (call $qa)
)
)
)
)
)
(global.set $r
- (local.get $25)
+ (local.get $18)
)
(return
(i32.add
- (local.get $12)
+ (local.get $11)
(i32.const 8)
)
)
)
- (local.get $0)
+ (local.get $8)
)
- (local.get $0)
+ (local.get $8)
)
)
- (local.get $0)
+ (local.get $8)
)
)
)
)
)
- (block $folding-inner0
+ (block $folding-inner1
(if
(i32.ge_u
- (local.tee $12
+ (local.tee $2
(i32.load
(i32.const 1216)
)
)
- (local.get $3)
+ (local.get $4)
)
(block
- (local.set $15
+ (local.set $0
(i32.load
(i32.const 1228)
)
)
(if
(i32.gt_u
- (local.tee $19
+ (local.tee $1
(i32.sub
- (local.get $12)
- (local.get $3)
+ (local.get $2)
+ (local.get $4)
)
)
(i32.const 15)
@@ -2809,35 +2729,35 @@
(block
(i32.store
(i32.const 1228)
- (local.tee $22
+ (local.tee $3
(i32.add
- (local.get $3)
- (local.get $15)
+ (local.get $0)
+ (local.get $4)
)
)
)
(i32.store
(i32.const 1216)
- (local.get $19)
+ (local.get $1)
)
(i32.store offset=4
- (local.get $22)
+ (local.get $3)
(i32.or
- (local.get $19)
+ (local.get $1)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $19)
- (local.get $22)
+ (local.get $1)
+ (local.get $3)
)
- (local.get $19)
+ (local.get $1)
)
(i32.store offset=4
- (local.get $15)
+ (local.get $0)
(i32.or
- (local.get $3)
+ (local.get $4)
(i32.const 3)
)
)
@@ -2852,1987 +2772,1914 @@
(i32.const 0)
)
(i32.store offset=4
- (local.get $15)
+ (local.get $0)
(i32.or
- (local.get $12)
+ (local.get $2)
(i32.const 3)
)
)
- (local.set $0
- (i32.add
- (local.get $12)
- (local.get $15)
- )
- )
(i32.store offset=4
- (local.get $0)
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (local.get $2)
+ )
+ )
(i32.or
(i32.load offset=4
- (local.get $0)
+ (local.get $1)
)
(i32.const 1)
)
)
)
)
- (br $folding-inner0)
+ (br $folding-inner1)
)
)
- (if
- (i32.gt_u
- (local.tee $15
- (i32.load
- (i32.const 1220)
+ (block $folding-inner0
+ (br_if $folding-inner0
+ (i32.gt_u
+ (local.tee $0
+ (i32.load
+ (i32.const 1220)
+ )
)
+ (local.get $4)
)
- (local.get $3)
)
- (block
- (i32.store
- (i32.const 1220)
- (local.tee $19
- (i32.sub
- (local.get $15)
- (local.get $3)
- )
+ (local.set $0
+ (local.get $18)
+ )
+ (if
+ (i32.eqz
+ (i32.load
+ (i32.const 1680)
)
)
- (i32.store
- (i32.const 1232)
- (local.tee $12
- (i32.add
- (local.get $3)
- (local.tee $15
- (i32.load
- (i32.const 1232)
- )
- )
- )
+ (block
+ (i32.store
+ (i32.const 1688)
+ (i32.const 4096)
)
- )
- (i32.store offset=4
- (local.get $12)
- (i32.or
- (local.get $19)
- (i32.const 1)
+ (i32.store
+ (i32.const 1684)
+ (i32.const 4096)
)
- )
- (i32.store offset=4
- (local.get $15)
- (i32.or
- (local.get $3)
- (i32.const 3)
+ (i32.store
+ (i32.const 1692)
+ (i32.const -1)
)
- )
- (br $folding-inner0)
- )
- )
- (if
- (i32.eqz
- (i32.load
- (i32.const 1680)
- )
- )
- (block
- (i32.store
- (i32.const 1688)
- (i32.const 4096)
- )
- (i32.store
- (i32.const 1684)
- (i32.const 4096)
- )
- (i32.store
- (i32.const 1692)
- (i32.const -1)
- )
- (i32.store
- (i32.const 1696)
- (i32.const -1)
- )
- (i32.store
- (i32.const 1700)
- (i32.const 0)
- )
- (i32.store
- (i32.const 1652)
- (i32.const 0)
- )
- (i32.store
- (local.get $13)
- (local.tee $15
- (i32.xor
- (i32.and
- (local.get $13)
- (i32.const -16)
+ (i32.store
+ (i32.const 1696)
+ (i32.const -1)
+ )
+ (i32.store
+ (i32.const 1700)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 1652)
+ (i32.const 0)
+ )
+ (i32.store
+ (local.get $0)
+ (local.tee $0
+ (i32.xor
+ (i32.and
+ (local.get $0)
+ (i32.const -16)
+ )
+ (i32.const 1431655768)
)
- (i32.const 1431655768)
)
)
- )
- (i32.store
- (i32.const 1680)
- (local.get $15)
+ (i32.store
+ (i32.const 1680)
+ (local.get $0)
+ )
)
)
- )
- (local.set $15
- (i32.add
- (local.get $3)
- (i32.const 48)
- )
- )
- (if
- (i32.le_u
- (local.tee $13
- (i32.and
- (local.tee $12
- (i32.add
- (local.tee $13
- (i32.load
- (i32.const 1688)
+ (if
+ (i32.le_u
+ (local.tee $5
+ (i32.and
+ (local.tee $10
+ (i32.add
+ (local.tee $0
+ (i32.load
+ (i32.const 1688)
+ )
)
- )
- (local.tee $19
- (i32.add
- (local.get $3)
- (i32.const 47)
+ (local.tee $6
+ (i32.add
+ (local.get $4)
+ (i32.const 47)
+ )
)
)
)
- )
- (local.tee $22
- (i32.sub
- (i32.const 0)
- (local.get $13)
+ (local.tee $12
+ (i32.sub
+ (i32.const 0)
+ (local.get $0)
+ )
)
)
)
+ (local.get $4)
)
- (local.get $3)
- )
- (block
- (global.set $r
- (local.get $25)
- )
- (return
- (i32.const 0)
- )
- )
- )
- (if
- (local.tee $17
- (i32.load
- (i32.const 1648)
+ (block
+ (global.set $r
+ (local.get $18)
+ )
+ (return
+ (i32.const 0)
+ )
)
)
(if
- (i32.or
- (i32.le_u
- (local.tee $8
- (i32.add
- (local.get $13)
- (local.tee $16
- (i32.load
- (i32.const 1640)
+ (local.tee $0
+ (i32.load
+ (i32.const 1648)
+ )
+ )
+ (if
+ (i32.or
+ (i32.le_u
+ (local.tee $8
+ (i32.add
+ (local.get $5)
+ (local.tee $2
+ (i32.load
+ (i32.const 1640)
+ )
)
)
)
+ (local.get $2)
+ )
+ (i32.gt_u
+ (local.get $8)
+ (local.get $0)
)
- (local.get $16)
)
- (i32.gt_u
- (local.get $8)
- (local.get $17)
+ (block
+ (global.set $r
+ (local.get $18)
+ )
+ (return
+ (i32.const 0)
+ )
)
)
- (block
- (global.set $r
- (local.get $25)
- )
- (return
- (i32.const 0)
- )
+ )
+ (local.set $22
+ (i32.add
+ (local.get $4)
+ (i32.const 48)
)
)
- )
- (if
- (block (result i32)
- (if
- (i32.eq
- (local.tee $7
- (if (result i32)
- (i32.and
- (i32.load
- (i32.const 1652)
- )
- (i32.const 4)
+ (if
+ (i32.eq
+ (local.tee $9
+ (if (result i32)
+ (i32.and
+ (i32.load
+ (i32.const 1652)
)
- (i32.const 188)
- (block $label$break$b (result i32)
- (if
- (local.tee $17
- (i32.load
- (i32.const 1232)
- )
+ (i32.const 4)
+ )
+ (i32.const 188)
+ (block $label$break$b (result i32)
+ (if
+ (local.tee $2
+ (i32.load
+ (i32.const 1232)
)
- (block $label$break$c
- (local.set $8
- (i32.const 1656)
- )
- (loop $while-in32
- (block $while-out31
- (if
- (i32.le_u
- (local.tee $16
- (i32.load
- (local.get $8)
- )
+ )
+ (block $label$break$c
+ (local.set $14
+ (i32.const 1656)
+ )
+ (loop $while-in32
+ (block $while-out31
+ (if
+ (i32.le_u
+ (local.tee $8
+ (i32.load
+ (local.get $14)
)
- (local.get $17)
)
- (if
- (i32.gt_u
- (i32.add
- (i32.load
- (local.tee $9
- (i32.add
- (local.get $8)
- (i32.const 4)
- )
+ (local.get $2)
+ )
+ (if
+ (i32.gt_u
+ (i32.add
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (local.get $14)
+ (i32.const 4)
)
)
- (local.get $16)
)
- (local.get $17)
- )
- (block
- (local.set $0
- (local.get $8)
- )
- (local.set $4
- (local.get $9)
- )
- (br $while-out31)
+ (local.get $8)
)
+ (local.get $2)
)
- )
- (br_if $while-in32
- (local.tee $8
- (i32.load offset=8
- (local.get $8)
+ (block
+ (local.set $8
+ (local.get $0)
)
+ (br $while-out31)
)
)
- (local.set $7
- (i32.const 171)
+ )
+ (br_if $while-in32
+ (local.tee $14
+ (i32.load offset=8
+ (local.get $14)
+ )
)
- (br $label$break$c)
)
+ (local.set $9
+ (i32.const 171)
+ )
+ (br $label$break$c)
)
- (if
- (i32.lt_u
- (local.tee $8
- (i32.and
- (local.get $22)
- (i32.sub
- (local.get $12)
- (i32.load
- (i32.const 1220)
- )
+ )
+ (if
+ (i32.lt_u
+ (local.tee $2
+ (i32.and
+ (local.get $12)
+ (i32.sub
+ (local.get $10)
+ (i32.load
+ (i32.const 1220)
)
)
)
- (i32.const 2147483647)
)
- (block
- (local.set $9
- (call $ta
- (local.get $8)
- )
+ (i32.const 2147483647)
+ )
+ (block
+ (local.set $0
+ (call $ta
+ (local.get $2)
)
- (if
- (i32.eq
- (i32.add
- (i32.load
- (local.get $0)
- )
- (i32.load
- (local.get $4)
- )
- )
- (local.get $9)
- )
- (if
- (i32.ne
- (local.get $9)
- (i32.const -1)
+ )
+ (if
+ (i32.eq
+ (i32.add
+ (i32.load
+ (local.get $14)
)
- (block
- (local.set $20
- (local.get $9)
- )
- (local.set $26
- (local.get $8)
- )
- (br $label$break$b
- (i32.const 191)
- )
+ (i32.load
+ (local.get $8)
)
)
+ (local.get $0)
+ )
+ (if
+ (i32.ne
+ (local.get $0)
+ (i32.const -1)
+ )
(block
- (local.set $11
- (local.get $9)
- )
- (local.set $5
- (local.get $8)
+ (local.set $3
+ (local.get $0)
)
(local.set $7
- (i32.const 181)
+ (local.get $2)
+ )
+ (br $label$break$b
+ (i32.const 191)
)
)
)
+ (block
+ (local.set $24
+ (local.get $0)
+ )
+ (local.set $1
+ (local.get $2)
+ )
+ (local.set $9
+ (i32.const 181)
+ )
+ )
)
)
)
- (local.set $7
- (i32.const 171)
- )
+ )
+ (local.set $9
+ (i32.const 171)
+ )
+ )
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 171)
)
(if
- (i32.eq
- (local.get $7)
- (i32.const 171)
- )
- (if
- (i32.ne
- (local.tee $17
- (call $ta
- (i32.const 0)
- )
+ (i32.ne
+ (local.tee $2
+ (call $ta
+ (i32.const 0)
)
- (i32.const -1)
)
- (block $do-once33
- (local.set $2
- (if (result i32)
- (i32.and
- (local.tee $0
- (local.get $17)
- )
- (local.tee $9
- (i32.add
- (local.tee $8
- (i32.load
- (i32.const 1684)
+ (i32.const -1)
+ )
+ (block $do-once33
+ (local.set $8
+ (i32.add
+ (local.tee $0
+ (if (result i32)
+ (i32.and
+ (local.tee $0
+ (local.get $2)
+ )
+ (local.tee $10
+ (i32.add
+ (local.tee $8
+ (i32.load
+ (i32.const 1684)
+ )
)
+ (i32.const -1)
)
- (i32.const -1)
)
)
- )
- (i32.add
- (i32.sub
- (local.get $13)
- (local.get $0)
- )
- (i32.and
- (i32.add
+ (i32.add
+ (i32.sub
+ (local.get $5)
(local.get $0)
- (local.get $9)
)
- (i32.sub
- (i32.const 0)
- (local.get $8)
+ (i32.and
+ (i32.add
+ (local.get $0)
+ (local.get $10)
+ )
+ (i32.sub
+ (i32.const 0)
+ (local.get $8)
+ )
)
)
+ (local.get $5)
)
- (local.get $13)
)
- )
- (local.set $0
- (i32.add
- (local.tee $8
- (i32.load
- (i32.const 1640)
- )
+ (local.tee $10
+ (i32.load
+ (i32.const 1640)
)
- (local.get $2)
)
)
- (if
- (i32.and
- (i32.lt_u
- (local.get $2)
- (i32.const 2147483647)
- )
- (i32.gt_u
- (local.get $2)
- (local.get $3)
- )
+ )
+ (if
+ (i32.and
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 2147483647)
)
- (block
- (if
- (local.tee $9
- (i32.load
- (i32.const 1648)
+ (i32.gt_u
+ (local.get $0)
+ (local.get $4)
+ )
+ )
+ (block
+ (if
+ (local.tee $12
+ (i32.load
+ (i32.const 1648)
+ )
+ )
+ (br_if $do-once33
+ (i32.or
+ (i32.le_u
+ (local.get $8)
+ (local.get $10)
+ )
+ (i32.gt_u
+ (local.get $8)
+ (local.get $12)
)
)
- (br_if $do-once33
- (i32.or
- (i32.le_u
- (local.get $0)
- (local.get $8)
- )
- (i32.gt_u
+ )
+ )
+ (local.set $1
+ (if (result i32)
+ (i32.eq
+ (local.get $2)
+ (local.tee $24
+ (call $ta
(local.get $0)
- (local.get $9)
)
)
)
- )
- (local.set $5
- (if (result i32)
- (i32.eq
- (local.get $17)
- (local.tee $9
- (call $ta
- (local.get $2)
- )
- )
+ (block
+ (local.set $3
+ (local.get $2)
)
- (block
- (local.set $20
- (local.get $17)
- )
- (local.set $26
- (local.get $2)
- )
- (br $label$break$b
- (i32.const 191)
- )
+ (local.set $7
+ (local.get $0)
)
- (block (result i32)
- (local.set $11
- (local.get $9)
- )
- (local.set $7
- (i32.const 181)
- )
- (local.get $2)
+ (br $label$break$b
+ (i32.const 191)
)
)
+ (block (result i32)
+ (local.set $9
+ (i32.const 181)
+ )
+ (local.get $0)
+ )
)
)
)
)
)
)
- (if
- (i32.eq
- (local.get $7)
- (i32.const 181)
+ )
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 181)
+ )
+ (block $label$break$d
+ (local.set $2
+ (i32.sub
+ (i32.const 0)
+ (local.get $1)
+ )
)
- (block $label$break$d
- (local.set $9
- (i32.sub
- (i32.const 0)
- (local.get $5)
+ (if
+ (i32.and
+ (i32.and
+ (i32.ne
+ (local.get $24)
+ (i32.const -1)
+ )
+ (i32.lt_u
+ (local.get $1)
+ (i32.const 2147483647)
+ )
+ )
+ (i32.gt_u
+ (local.get $22)
+ (local.get $1)
)
)
- (local.set $1
- (if (result i32)
- (i32.and
+ (if
+ (i32.lt_u
+ (local.tee $0
(i32.and
- (i32.ne
- (local.get $11)
- (i32.const -1)
+ (i32.add
+ (local.tee $0
+ (i32.load
+ (i32.const 1688)
+ )
+ )
+ (i32.sub
+ (local.get $6)
+ (local.get $1)
+ )
)
- (i32.lt_u
- (local.get $5)
- (i32.const 2147483647)
+ (i32.sub
+ (i32.const 0)
+ (local.get $0)
)
)
- (i32.gt_u
- (local.get $15)
- (local.get $5)
- )
)
+ (i32.const 2147483647)
+ )
+ (local.set $1
(if (result i32)
- (i32.lt_u
- (local.tee $0
- (i32.and
- (i32.add
- (local.tee $17
- (i32.load
- (i32.const 1688)
- )
- )
- (i32.sub
- (local.get $19)
- (local.get $5)
- )
- )
- (i32.sub
- (i32.const 0)
- (local.get $17)
- )
- )
+ (i32.eq
+ (call $ta
+ (local.get $0)
)
- (i32.const 2147483647)
+ (i32.const -1)
)
- (if (result i32)
- (i32.eq
+ (block
+ (drop
(call $ta
- (local.get $0)
- )
- (i32.const -1)
- )
- (block
- (drop
- (call $ta
- (local.get $9)
- )
+ (local.get $2)
)
- (br $label$break$d)
- )
- (i32.add
- (local.get $0)
- (local.get $5)
)
+ (br $label$break$d)
+ )
+ (i32.add
+ (local.get $0)
+ (local.get $1)
)
- (local.get $5)
)
- (local.get $5)
)
)
- (if
- (i32.ne
- (local.get $11)
- (i32.const -1)
+ )
+ (if
+ (i32.ne
+ (local.get $24)
+ (i32.const -1)
+ )
+ (block
+ (local.set $3
+ (local.get $24)
)
- (block
- (local.set $20
- (local.get $11)
- )
- (local.set $26
- (local.get $1)
- )
- (br $label$break$b
- (i32.const 191)
- )
+ (local.set $7
+ (local.get $1)
+ )
+ (br $label$break$b
+ (i32.const 191)
)
)
)
)
- (i32.store
- (i32.const 1652)
- (i32.or
- (i32.load
- (i32.const 1652)
- )
- (i32.const 4)
+ )
+ (i32.store
+ (i32.const 1652)
+ (i32.or
+ (i32.load
+ (i32.const 1652)
)
+ (i32.const 4)
)
- (i32.const 188)
)
+ (i32.const 188)
)
)
- (i32.const 188)
+ )
+ (i32.const 188)
+ )
+ (if
+ (i32.lt_u
+ (local.get $5)
+ (i32.const 2147483647)
)
(if
- (i32.lt_u
- (local.get $13)
- (i32.const 2147483647)
- )
- (if
+ (i32.and
(i32.and
- (i32.and
- (i32.ne
- (local.tee $1
- (call $ta
- (local.get $13)
- )
- )
- (i32.const -1)
- )
- (i32.ne
- (local.tee $13
- (call $ta
- (i32.const 0)
- )
+ (i32.ne
+ (local.tee $0
+ (call $ta
+ (local.get $5)
)
- (i32.const -1)
)
+ (i32.const -1)
)
- (i32.lt_u
- (local.get $1)
- (local.get $13)
- )
- )
- (if
- (i32.gt_u
- (local.tee $11
- (i32.sub
- (local.get $13)
- (local.get $1)
+ (i32.ne
+ (local.tee $1
+ (call $ta
+ (i32.const 0)
)
)
- (i32.add
- (local.get $3)
- (i32.const 40)
- )
+ (i32.const -1)
)
- (block
- (local.set $20
+ )
+ (i32.lt_u
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.gt_u
+ (local.tee $1
+ (i32.sub
(local.get $1)
- )
- (local.set $26
- (local.get $11)
- )
- (local.set $7
- (i32.const 191)
+ (local.get $0)
)
)
+ (i32.add
+ (local.get $4)
+ (i32.const 40)
+ )
+ )
+ (block
+ (local.set $7
+ (local.get $1)
+ )
+ (local.set $9
+ (i32.const 191)
+ )
+ (local.set $3
+ (local.get $0)
+ )
)
)
)
)
+ )
+ (if
(i32.eq
- (local.get $7)
+ (local.get $9)
(i32.const 191)
)
- )
- (block
- (i32.store
- (i32.const 1640)
- (local.tee $11
- (i32.add
- (local.get $26)
- (i32.load
- (i32.const 1640)
+ (block
+ (i32.store
+ (i32.const 1640)
+ (local.tee $0
+ (i32.add
+ (local.get $7)
+ (i32.load
+ (i32.const 1640)
+ )
)
)
)
- )
- (if
- (i32.gt_u
- (local.get $11)
- (i32.load
- (i32.const 1644)
+ (if
+ (i32.gt_u
+ (local.get $0)
+ (i32.load
+ (i32.const 1644)
+ )
)
- )
- (i32.store
- (i32.const 1644)
- (local.get $11)
- )
- )
- (if
- (local.tee $11
- (i32.load
- (i32.const 1232)
+ (i32.store
+ (i32.const 1644)
+ (local.get $0)
)
)
- (block $do-once38
- (local.set $5
- (i32.const 1656)
+ (if
+ (local.tee $6
+ (i32.load
+ (i32.const 1232)
+ )
)
- (loop $do-in41
- (block $do-out40
- (if
- (i32.eq
- (i32.add
- (local.tee $19
- (i32.load
- (local.tee $13
- (i32.add
- (local.get $5)
- (i32.const 4)
- )
+ (block $do-once38
+ (local.set $1
+ (i32.const 1656)
+ )
+ (loop $do-in41
+ (block $do-out40
+ (if
+ (i32.eq
+ (i32.add
+ (local.tee $0
+ (i32.load
+ (local.get $1)
)
)
- )
- (local.tee $1
- (i32.load
- (local.get $5)
+ (local.tee $5
+ (i32.load
+ (local.tee $2
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
+ )
+ )
+ )
)
)
+ (local.get $3)
)
- (local.get $20)
- )
- (block
- (local.set $48
- (local.get $1)
- )
- (local.set $49
- (local.get $13)
- )
- (local.set $50
- (local.get $19)
- )
- (local.set $51
- (local.get $5)
- )
- (local.set $7
- (i32.const 201)
+ (block
+ (local.set $41
+ (local.get $0)
+ )
+ (local.set $42
+ (local.get $2)
+ )
+ (local.set $43
+ (local.get $5)
+ )
+ (local.set $44
+ (local.get $1)
+ )
+ (local.set $9
+ (i32.const 201)
+ )
+ (br $do-out40)
)
- (br $do-out40)
)
- )
- (br_if $do-in41
- (local.tee $5
- (i32.load offset=8
- (local.get $5)
+ (br_if $do-in41
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $1)
+ )
)
)
)
)
- )
- (if
- (i32.eq
- (local.get $7)
- (i32.const 201)
- )
(if
- (i32.eqz
- (i32.and
- (i32.load offset=12
- (local.get $51)
- )
- (i32.const 8)
- )
+ (i32.eq
+ (local.get $9)
+ (i32.const 201)
)
(if
- (i32.and
- (i32.lt_u
- (local.get $11)
- (local.get $20)
- )
- (i32.ge_u
- (local.get $11)
- (local.get $48)
+ (i32.eqz
+ (i32.and
+ (i32.load offset=12
+ (local.get $44)
+ )
+ (i32.const 8)
)
)
- (block
- (i32.store
- (local.get $49)
- (i32.add
- (local.get $26)
- (local.get $50)
+ (if
+ (i32.and
+ (i32.lt_u
+ (local.get $6)
+ (local.get $3)
+ )
+ (i32.ge_u
+ (local.get $6)
+ (local.get $41)
)
)
- (local.set $5
- (i32.add
- (local.tee $19
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $5
- (i32.add
- (local.get $11)
- (i32.const 8)
+ (block
+ (i32.store
+ (local.get $42)
+ (i32.add
+ (local.get $7)
+ (local.get $43)
+ )
+ )
+ (local.set $0
+ (i32.add
+ (local.get $6)
+ (local.tee $1
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $0
+ (i32.add
+ (local.get $6)
+ (i32.const 8)
+ )
)
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $0)
+ (i32.const 7)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $5)
- (i32.const 7)
)
)
)
- (local.get $11)
)
- )
- (local.set $13
- (i32.add
- (i32.load
- (i32.const 1220)
- )
- (i32.sub
- (local.get $26)
- (local.get $19)
+ (local.set $1
+ (i32.add
+ (i32.load
+ (i32.const 1220)
+ )
+ (i32.sub
+ (local.get $7)
+ (local.get $1)
+ )
)
)
- )
- (i32.store
- (i32.const 1232)
- (local.get $5)
- )
- (i32.store
- (i32.const 1220)
- (local.get $13)
- )
- (i32.store offset=4
- (local.get $5)
- (i32.or
- (local.get $13)
- (i32.const 1)
+ (i32.store
+ (i32.const 1232)
+ (local.get $0)
)
- )
- (i32.store offset=4
- (i32.add
- (local.get $5)
- (local.get $13)
+ (i32.store
+ (i32.const 1220)
+ (local.get $1)
)
- (i32.const 40)
- )
- (i32.store
- (i32.const 1236)
- (i32.load
- (i32.const 1696)
+ (i32.store offset=4
+ (local.get $0)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ (i32.const 40)
+ )
+ (i32.store
+ (i32.const 1236)
+ (i32.load
+ (i32.const 1696)
+ )
)
+ (br $do-once38)
)
- (br $do-once38)
)
)
)
- )
- (local.set $6
- (if (result i32)
+ (if
(i32.lt_u
- (local.get $20)
- (local.tee $13
+ (local.get $3)
+ (local.tee $2
(i32.load
(i32.const 1224)
)
)
)
- (block (result i32)
+ (block
(i32.store
(i32.const 1224)
- (local.get $20)
+ (local.get $3)
+ )
+ (local.set $2
+ (local.get $3)
)
- (local.get $20)
)
- (local.get $13)
)
- )
- (local.set $13
- (i32.add
- (local.get $20)
- (local.get $26)
+ (local.set $0
+ (i32.add
+ (local.get $3)
+ (local.get $7)
+ )
)
- )
- (local.set $5
- (i32.const 1656)
- )
- (loop $while-in43
- (block $while-out42
- (if
- (i32.eq
- (local.get $13)
- (i32.load
- (local.get $5)
- )
- )
- (block
- (local.set $52
- (local.get $5)
- )
- (local.set $37
- (local.get $5)
+ (local.set $1
+ (i32.const 1656)
+ )
+ (loop $while-in43
+ (block $while-out42
+ (if
+ (i32.eq
+ (local.get $0)
+ (i32.load
+ (local.get $1)
+ )
)
- (local.set $7
- (i32.const 209)
+ (block
+ (local.set $45
+ (local.get $1)
+ )
+ (local.set $26
+ (local.get $1)
+ )
+ (local.set $9
+ (i32.const 209)
+ )
+ (br $while-out42)
)
- (br $while-out42)
)
- )
- (br_if $while-in43
- (local.tee $5
- (i32.load offset=8
- (local.get $5)
+ (br_if $while-in43
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $1)
+ )
)
)
+ (local.set $23
+ (i32.const 1656)
+ )
)
- (local.set $29
- (i32.const 1656)
- )
- )
- )
- (if
- (i32.eq
- (local.get $7)
- (i32.const 209)
)
- (local.set $29
- (if (result i32)
- (i32.and
- (i32.load offset=12
- (local.get $37)
- )
- (i32.const 8)
- )
- (i32.const 1656)
- (block
- (i32.store
- (local.get $52)
- (local.get $20)
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 209)
+ )
+ (local.set $23
+ (if (result i32)
+ (i32.and
+ (i32.load offset=12
+ (local.get $26)
+ )
+ (i32.const 8)
)
- (i32.store offset=4
- (local.get $37)
- (i32.add
+ (i32.const 1656)
+ (block
+ (i32.store
+ (local.get $45)
+ (local.get $3)
+ )
+ (i32.store offset=4
(local.get $26)
- (i32.load offset=4
- (local.get $37)
+ (i32.add
+ (local.get $7)
+ (i32.load offset=4
+ (local.get $26)
+ )
)
)
- )
- (local.set $19
- (i32.add
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $5
- (i32.add
- (local.get $20)
- (i32.const 8)
+ (local.set $7
+ (i32.add
+ (local.get $4)
+ (local.tee $10
+ (i32.add
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
)
)
+ (local.get $3)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $5)
- (i32.const 7)
)
)
- (local.get $20)
)
- )
- (local.set $1
- (i32.add
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $5
- (i32.add
- (local.get $13)
- (i32.const 8)
+ (local.set $8
+ (i32.sub
+ (i32.sub
+ (local.tee $5
+ (i32.add
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
+ )
)
+ (local.get $0)
)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $5)
- (i32.const 7)
+ (local.get $10)
)
+ (local.get $4)
)
- (local.get $13)
)
- )
- (local.set $5
- (i32.add
- (local.get $3)
- (local.get $19)
- )
- )
- (local.set $15
- (i32.sub
- (i32.sub
- (local.get $1)
- (local.get $19)
+ (i32.store offset=4
+ (local.get $10)
+ (i32.or
+ (local.get $4)
+ (i32.const 3)
)
- (local.get $3)
)
- )
- (i32.store offset=4
- (local.get $19)
- (i32.or
- (local.get $3)
- (i32.const 3)
- )
- )
- (if
- (i32.eq
- (local.get $1)
- (local.get $11)
- )
- (block
- (i32.store
- (i32.const 1220)
- (local.tee $2
- (i32.add
- (local.get $15)
- (i32.load
- (i32.const 1220)
+ (if
+ (i32.eq
+ (local.get $5)
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (i32.const 1220)
+ (local.tee $0
+ (i32.add
+ (local.get $8)
+ (i32.load
+ (i32.const 1220)
+ )
)
)
)
- )
- (i32.store
- (i32.const 1232)
- (local.get $5)
- )
- (i32.store offset=4
- (local.get $5)
- (i32.or
- (local.get $2)
- (i32.const 1)
+ (i32.store
+ (i32.const 1232)
+ (local.get $7)
)
- )
- )
- (block $do-once44
- (if
- (i32.eq
- (i32.load
- (i32.const 1228)
+ (i32.store offset=4
+ (local.get $7)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
)
- (local.get $1)
)
- (block
- (i32.store
- (i32.const 1216)
- (local.tee $2
- (i32.add
- (local.get $15)
- (i32.load
- (i32.const 1216)
- )
- )
+ )
+ (block $do-once44
+ (if
+ (i32.eq
+ (i32.load
+ (i32.const 1228)
)
- )
- (i32.store
- (i32.const 1228)
(local.get $5)
)
- (i32.store offset=4
- (local.get $5)
- (i32.or
- (local.get $2)
- (i32.const 1)
+ (block
+ (i32.store
+ (i32.const 1216)
+ (local.tee $0
+ (i32.add
+ (local.get $8)
+ (i32.load
+ (i32.const 1216)
+ )
+ )
+ )
)
- )
- (i32.store
- (i32.add
- (local.get $2)
- (local.get $5)
+ (i32.store
+ (i32.const 1228)
+ (local.get $7)
)
- (local.get $2)
- )
- (br $do-once44)
- )
- )
- (if
- (i32.eq
- (i32.and
- (local.tee $2
- (i32.load offset=4
- (local.get $1)
+ (i32.store offset=4
+ (local.get $7)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
)
)
- (i32.const 3)
- )
- (i32.const 1)
- )
- (block
- (local.set $4
- (i32.and
- (local.get $2)
- (i32.const -8)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (local.get $7)
+ )
+ (local.get $0)
)
+ (br $do-once44)
)
- (local.set $0
- (i32.shr_u
- (local.get $2)
- (i32.const 3)
+ )
+ (local.set $4
+ (if (result i32)
+ (i32.eq
+ (i32.and
+ (local.tee $0
+ (i32.load offset=4
+ (local.get $5)
+ )
+ )
+ (i32.const 3)
+ )
+ (i32.const 1)
)
- )
- (block $label$break$e
- (if
- (i32.lt_u
- (local.get $2)
- (i32.const 256)
+ (block (result i32)
+ (local.set $12
+ (i32.and
+ (local.get $0)
+ (i32.const -8)
+ )
)
- (block
- (local.set $12
- (i32.load offset=12
- (local.get $1)
- )
+ (local.set $3
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 3)
)
+ )
+ (block $label$break$e
(if
- (i32.ne
- (local.tee $9
- (i32.add
- (i32.shl
- (local.get $0)
- (i32.const 3)
- )
- (i32.const 1248)
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 256)
+ )
+ (block
+ (local.set $1
+ (i32.load offset=12
+ (local.get $5)
)
)
- (local.tee $22
- (i32.load offset=8
- (local.get $1)
+ (if
+ (i32.ne
+ (local.tee $4
+ (i32.load offset=8
+ (local.get $5)
+ )
+ )
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.get $3)
+ (i32.const 3)
+ )
+ (i32.const 1248)
+ )
+ )
+ )
+ (block $do-once47
+ (if
+ (i32.lt_u
+ (local.get $4)
+ (local.get $2)
+ )
+ (call $qa)
+ )
+ (br_if $do-once47
+ (i32.eq
+ (local.get $5)
+ (i32.load offset=12
+ (local.get $4)
+ )
+ )
+ )
+ (call $qa)
)
)
- )
- (block $do-once47
(if
- (i32.lt_u
- (local.get $22)
- (local.get $6)
+ (i32.eq
+ (local.get $1)
+ (local.get $4)
+ )
+ (block
+ (i32.store
+ (i32.const 1208)
+ (i32.and
+ (i32.load
+ (i32.const 1208)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $3)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (br $label$break$e)
)
- (call $qa)
)
- (br_if $do-once47
+ (if
(i32.eq
+ (local.get $0)
(local.get $1)
- (i32.load offset=12
- (local.get $22)
+ )
+ (local.set $32
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
)
)
- )
- (call $qa)
- )
- )
- (if
- (i32.eq
- (local.get $12)
- (local.get $22)
- )
- (block
- (i32.store
- (i32.const 1208)
- (i32.and
- (i32.load
- (i32.const 1208)
+ (block $do-once49
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (local.get $2)
+ )
+ (call $qa)
)
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $0)
+ (if
+ (i32.eq
+ (local.get $5)
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
+ )
+ )
+ )
+ (block
+ (local.set $32
+ (local.get $0)
+ )
+ (br $do-once49)
)
- (i32.const -1)
)
+ (call $qa)
)
)
- (br $label$break$e)
- )
- )
- (if
- (i32.eq
- (local.get $9)
- (local.get $12)
- )
- (local.set $42
- (i32.add
- (local.get $12)
- (i32.const 8)
+ (i32.store offset=12
+ (local.get $4)
+ (local.get $1)
+ )
+ (i32.store
+ (local.get $32)
+ (local.get $4)
)
)
- (block $do-once49
- (if
- (i32.lt_u
- (local.get $12)
- (local.get $6)
+ (block
+ (local.set $6
+ (i32.load offset=24
+ (local.get $5)
)
- (call $qa)
)
(if
(i32.eq
- (local.get $1)
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $12)
- (i32.const 8)
- )
+ (local.get $5)
+ (local.tee $0
+ (i32.load offset=12
+ (local.get $5)
)
)
)
- (block
- (local.set $42
- (local.get $0)
- )
- (br $do-once49)
- )
- )
- (call $qa)
- )
- )
- (i32.store offset=12
- (local.get $22)
- (local.get $12)
- )
- (i32.store
- (local.get $42)
- (local.get $22)
- )
- )
- (block
- (local.set $9
- (i32.load offset=24
- (local.get $1)
- )
- )
- (if
- (i32.eq
- (local.tee $0
- (i32.load offset=12
- (local.get $1)
- )
- )
- (local.get $1)
- )
- (block $do-once51
- (local.set $0
- (if (result i32)
- (local.tee $16
- (i32.load
- (local.tee $8
- (i32.add
- (local.tee $17
- (i32.add
- (local.get $1)
- (i32.const 16)
+ (block $do-once51
+ (if
+ (local.tee $0
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (local.tee $1
+ (i32.add
+ (local.get $5)
+ (i32.const 16)
+ )
)
+ (i32.const 4)
)
- (i32.const 4)
)
)
)
- )
- (block (result i32)
- (local.set $2
- (local.get $16)
+ (local.set $1
+ (local.get $4)
)
- (local.get $8)
- )
- (if (result i32)
- (local.tee $21
- (i32.load
- (local.get $17)
+ (br_if $do-once51
+ (i32.eqz
+ (local.tee $0
+ (i32.load
+ (local.get $1)
+ )
+ )
)
)
- (block (result i32)
- (local.set $2
- (local.get $21)
+ )
+ (loop $while-in54
+ (if
+ (local.tee $3
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (local.get $0)
+ (i32.const 20)
+ )
+ )
+ )
+ )
+ (block
+ (local.set $0
+ (local.get $3)
+ )
+ (local.set $1
+ (local.get $4)
+ )
+ (br $while-in54)
)
- (local.get $17)
)
- (br $do-once51)
- )
- )
- )
- (loop $while-in54
- (if
- (local.tee $16
- (i32.load
- (local.tee $8
- (i32.add
- (local.get $2)
- (i32.const 20)
+ (if
+ (local.tee $3
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ )
+ )
+ )
+ (block
+ (local.set $0
+ (local.get $3)
+ )
+ (local.set $1
+ (local.get $4)
)
+ (br $while-in54)
)
)
)
- (block
- (local.set $2
- (local.get $16)
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (local.get $2)
)
- (local.set $0
- (local.get $8)
+ (call $qa)
+ (block
+ (i32.store
+ (local.get $1)
+ (i32.const 0)
+ )
+ (local.set $17
+ (local.get $0)
+ )
)
- (br $while-in54)
)
)
- (if
- (local.tee $16
- (i32.load
- (local.tee $8
- (i32.add
- (local.get $2)
- (i32.const 16)
+ (block
+ (if
+ (i32.lt_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $5)
)
)
+ (local.get $2)
)
+ (call $qa)
)
- (block
- (local.set $2
- (local.get $16)
+ (if
+ (i32.ne
+ (local.get $5)
+ (i32.load offset=12
+ (local.get $1)
+ )
)
- (local.set $0
- (local.get $8)
+ (call $qa)
+ )
+ (if
+ (i32.eq
+ (local.get $5)
+ (i32.load offset=8
+ (local.get $0)
+ )
+ )
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $17
+ (local.get $0)
+ )
)
- (br $while-in54)
+ (call $qa)
)
)
)
- (if
- (i32.lt_u
- (local.get $0)
+ (br_if $label$break$e
+ (i32.eqz
(local.get $6)
)
- (call $qa)
- (block
+ )
+ (if
+ (i32.eq
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (i32.shl
+ (local.tee $0
+ (i32.load offset=28
+ (local.get $5)
+ )
+ )
+ (i32.const 2)
+ )
+ (i32.const 1512)
+ )
+ )
+ )
+ (local.get $5)
+ )
+ (block $do-once55
(i32.store
- (local.get $0)
- (i32.const 0)
+ (local.get $1)
+ (local.get $17)
)
- (local.set $24
- (local.get $2)
+ (br_if $do-once55
+ (local.get $17)
)
+ (i32.store
+ (i32.const 1212)
+ (i32.and
+ (i32.load
+ (i32.const 1212)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (br $label$break$e)
)
- )
- )
- (block
- (if
- (i32.lt_u
- (local.tee $8
- (i32.load offset=8
- (local.get $1)
+ (block
+ (if
+ (i32.lt_u
+ (local.get $6)
+ (i32.load
+ (i32.const 1224)
+ )
+ )
+ (call $qa)
+ )
+ (if
+ (i32.eq
+ (local.get $5)
+ (i32.load offset=16
+ (local.get $6)
+ )
+ )
+ (i32.store offset=16
+ (local.get $6)
+ (local.get $17)
+ )
+ (i32.store offset=20
+ (local.get $6)
+ (local.get $17)
+ )
+ )
+ (br_if $label$break$e
+ (i32.eqz
+ (local.get $17)
)
)
- (local.get $6)
)
- (call $qa)
- )
- (local.set $3
- (local.get $8)
)
(if
- (i32.ne
- (local.get $1)
- (i32.load offset=12
- (local.get $3)
+ (i32.lt_u
+ (local.get $17)
+ (local.tee $1
+ (i32.load
+ (i32.const 1224)
+ )
)
)
(call $qa)
)
- (local.set $2
- (local.get $0)
+ (i32.store offset=24
+ (local.get $17)
+ (local.get $6)
)
(if
- (i32.eq
- (local.get $1)
- (i32.load offset=8
- (local.get $0)
+ (local.tee $0
+ (i32.load offset=16
+ (local.get $5)
)
)
- (block
- (i32.store offset=12
- (local.get $3)
- (local.get $0)
- )
- (i32.store offset=8
- (local.get $2)
- (local.get $8)
- )
- (local.set $24
+ (if
+ (i32.lt_u
(local.get $0)
+ (local.get $1)
)
- )
- (call $qa)
- )
- )
- )
- (br_if $label$break$e
- (i32.eqz
- (local.get $9)
- )
- )
- (if
- (i32.eq
- (i32.load
- (local.tee $22
- (i32.add
- (i32.shl
- (local.tee $0
- (i32.load offset=28
- (local.get $1)
- )
- )
- (i32.const 2)
+ (call $qa)
+ (block
+ (i32.store offset=16
+ (local.get $17)
+ (local.get $0)
+ )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $17)
)
- (i32.const 1512)
)
)
)
- (local.get $1)
- )
- (block $do-once55
- (i32.store
- (local.get $22)
- (local.get $24)
- )
- (br_if $do-once55
- (local.get $24)
- )
- (i32.store
- (i32.const 1212)
- (i32.and
- (i32.load
- (i32.const 1212)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $0)
+ (br_if $label$break$e
+ (i32.eqz
+ (local.tee $0
+ (i32.load offset=20
+ (local.get $5)
)
- (i32.const -1)
)
)
)
- (br $label$break$e)
- )
- (block
(if
(i32.lt_u
- (local.get $9)
+ (local.get $0)
(i32.load
(i32.const 1224)
)
)
(call $qa)
- )
- (local.set $0
- (local.get $9)
- )
- (if
- (i32.eq
- (local.get $1)
- (i32.load offset=16
+ (block
+ (i32.store offset=20
+ (local.get $17)
(local.get $0)
)
- )
- (i32.store offset=16
- (local.get $0)
- (local.get $24)
- )
- (i32.store offset=20
- (local.get $9)
- (local.get $24)
- )
- )
- (br_if $label$break$e
- (i32.eqz
- (local.get $24)
- )
- )
- )
- )
- (if
- (i32.lt_u
- (local.get $24)
- (local.tee $0
- (i32.load
- (i32.const 1224)
- )
- )
- )
- (call $qa)
- )
- (i32.store offset=24
- (local.get $24)
- (local.get $9)
- )
- (local.set $2
- (local.get $1)
- )
- (if
- (local.tee $12
- (i32.load offset=16
- (local.get $1)
- )
- )
- (if
- (i32.lt_u
- (local.get $12)
- (local.get $0)
- )
- (call $qa)
- (block
- (i32.store offset=16
- (local.get $24)
- (local.get $12)
- )
- (i32.store offset=24
- (local.get $12)
- (local.get $24)
- )
- )
- )
- )
- (br_if $label$break$e
- (i32.eqz
- (local.tee $12
- (i32.load offset=20
- (local.get $2)
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $17)
+ )
)
)
)
)
- (if
- (i32.lt_u
- (local.get $12)
- (i32.load
- (i32.const 1224)
- )
- )
- (call $qa)
- (block
- (i32.store offset=20
- (local.get $24)
- (local.get $12)
- )
- (i32.store offset=24
- (local.get $12)
- (local.get $24)
- )
- )
+ )
+ (local.set $5
+ (i32.add
+ (local.get $5)
+ (local.get $12)
)
)
+ (i32.add
+ (local.get $8)
+ (local.get $12)
+ )
)
+ (local.get $8)
)
- (local.set $1
- (i32.add
- (local.get $1)
- (local.get $4)
- )
- )
- (local.set $15
- (i32.add
- (local.get $4)
- (local.get $15)
+ )
+ (i32.store offset=4
+ (local.get $5)
+ (i32.and
+ (i32.load offset=4
+ (local.get $5)
)
+ (i32.const -2)
)
)
- )
- (i32.store offset=4
- (local.get $1)
- (i32.and
- (i32.load offset=4
- (local.get $1)
+ (i32.store offset=4
+ (local.get $7)
+ (i32.or
+ (local.get $4)
+ (i32.const 1)
)
- (i32.const -2)
- )
- )
- (i32.store offset=4
- (local.get $5)
- (i32.or
- (local.get $15)
- (i32.const 1)
- )
- )
- (i32.store
- (i32.add
- (local.get $5)
- (local.get $15)
)
- (local.get $15)
- )
- (local.set $0
- (i32.shr_u
- (local.get $15)
- (i32.const 3)
+ (i32.store
+ (i32.add
+ (local.get $4)
+ (local.get $7)
+ )
+ (local.get $4)
)
- )
- (if
- (i32.lt_u
- (local.get $15)
- (i32.const 256)
+ (local.set $1
+ (i32.shr_u
+ (local.get $4)
+ (i32.const 3)
+ )
)
- (block
- (local.set $2
- (i32.add
- (i32.shl
- (local.get $0)
- (i32.const 3)
- )
- (i32.const 1248)
- )
+ (if
+ (i32.lt_u
+ (local.get $4)
+ (i32.const 256)
)
- (if
- (i32.and
- (local.tee $0
+ (block
+ (local.set $0
+ (i32.add
(i32.shl
- (i32.const 1)
- (local.get $0)
+ (local.get $1)
+ (i32.const 3)
)
+ (i32.const 1248)
)
- (local.tee $12
- (i32.load
- (i32.const 1208)
+ )
+ (if
+ (i32.and
+ (local.tee $4
+ (i32.load
+ (i32.const 1208)
+ )
+ )
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
)
)
- )
- (block $do-once59
- (if
- (i32.ge_u
- (local.tee $9
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $2)
- (i32.const 8)
+ (block $do-once59
+ (if
+ (i32.ge_u
+ (local.tee $4
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
)
)
)
+ (i32.load
+ (i32.const 1224)
+ )
)
- (i32.load
- (i32.const 1224)
+ (block
+ (local.set $33
+ (local.get $1)
+ )
+ (local.set $27
+ (local.get $4)
+ )
+ (br $do-once59)
)
)
- (block
- (local.set $43
- (local.get $0)
+ (call $qa)
+ )
+ (block
+ (i32.store
+ (i32.const 1208)
+ (i32.or
+ (local.get $1)
+ (local.get $4)
)
- (local.set $38
- (local.get $9)
+ )
+ (local.set $33
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
)
- (br $do-once59)
)
- )
- (call $qa)
- )
- (block
- (i32.store
- (i32.const 1208)
- (i32.or
+ (local.set $27
(local.get $0)
- (local.get $12)
)
)
- (local.set $43
- (i32.add
- (local.get $2)
- (i32.const 8)
- )
- )
- (local.set $38
- (local.get $2)
- )
)
+ (i32.store
+ (local.get $33)
+ (local.get $7)
+ )
+ (i32.store offset=12
+ (local.get $27)
+ (local.get $7)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $27)
+ )
+ (i32.store offset=12
+ (local.get $7)
+ (local.get $0)
+ )
+ (br $do-once44)
)
- (i32.store
- (local.get $43)
- (local.get $5)
- )
- (i32.store offset=12
- (local.get $38)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $38)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $2)
- )
- (br $do-once44)
)
- )
- (local.set $0
- (i32.add
- (i32.shl
- (local.tee $4
- (if (result i32)
- (local.tee $0
- (i32.shr_u
- (local.get $15)
- (i32.const 8)
- )
- )
+ (local.set $1
+ (i32.add
+ (i32.shl
+ (local.tee $0
(if (result i32)
- (i32.gt_u
- (local.get $15)
- (i32.const 16777215)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $4)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $9
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $4
- (i32.shl
- (local.get $0)
- (local.tee $12
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $0)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $4)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $0)
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $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 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $15)
- (i32.add
- (local.tee $8
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
- (local.tee $4
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $4)
- (local.get $9)
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $4)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
+ (i32.or
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $3)
+ (local.get $0)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
)
- )
- (i32.or
- (local.get $9)
- (local.get $12)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
+ )
)
)
- )
- (i32.shr_u
- (i32.shl
- (local.get $0)
- (local.get $4)
+ (i32.shr_u
+ (i32.shl
+ (local.get $3)
+ (local.get $2)
+ )
+ (i32.const 15)
)
- (i32.const 15)
)
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $8)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 1512)
)
- (i32.const 1512)
)
- )
- (i32.store offset=28
- (local.get $5)
- (local.get $4)
- )
- (i32.store offset=20
- (local.get $5)
- (i32.const 0)
- )
- (i32.store offset=16
- (local.get $5)
- (i32.const 0)
- )
- (if
- (i32.eqz
- (i32.and
- (local.tee $8
- (i32.shl
- (i32.const 1)
- (local.get $4)
+ (i32.store offset=28
+ (local.get $7)
+ (local.get $0)
+ )
+ (i32.store offset=20
+ (local.get $7)
+ (i32.const 0)
+ )
+ (i32.store offset=16
+ (local.get $7)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (local.tee $3
+ (i32.load
+ (i32.const 1212)
+ )
)
- )
- (local.tee $2
- (i32.load
- (i32.const 1212)
+ (local.tee $2
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
)
)
)
- )
- (block
- (i32.store
- (i32.const 1212)
- (i32.or
- (local.get $2)
- (local.get $8)
+ (block
+ (i32.store
+ (i32.const 1212)
+ (i32.or
+ (local.get $2)
+ (local.get $3)
+ )
)
+ (i32.store
+ (local.get $1)
+ (local.get $7)
+ )
+ (i32.store offset=24
+ (local.get $7)
+ (local.get $1)
+ )
+ (i32.store offset=12
+ (local.get $7)
+ (local.get $7)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $7)
+ )
+ (br $do-once44)
)
- (i32.store
- (local.get $0)
- (local.get $5)
- )
- (i32.store offset=24
- (local.get $5)
- (local.get $0)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $5)
- )
- (br $do-once44)
)
- )
- (local.set $8
- (i32.shl
- (local.get $15)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
- (local.get $4)
- (i32.const 1)
+ (local.set $14
+ (i32.shl
+ (local.get $4)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ (i32.eq
+ (local.get $0)
+ (i32.const 31)
)
- )
- (i32.eq
- (local.get $4)
- (i32.const 31)
)
)
)
- )
- (local.set $2
- (i32.load
- (local.get $0)
+ (local.set $0
+ (i32.load
+ (local.get $1)
+ )
)
- )
- (if
- (i32.eq
- (local.tee $7
- (loop $while-in64 (result i32)
- (block $while-out63 (result i32)
- (if
- (i32.eq
- (local.get $15)
- (i32.and
- (i32.load offset=4
- (local.get $2)
+ (if
+ (i32.eq
+ (local.tee $9
+ (loop $while-in64 (result i32)
+ (block $while-out63 (result i32)
+ (if
+ (i32.eq
+ (local.get $4)
+ (i32.and
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const -8)
)
- (i32.const -8)
)
- )
- (block
- (local.set $44
- (local.get $2)
- )
- (br $while-out63
- (i32.const 279)
+ (block
+ (local.set $34
+ (local.get $0)
+ )
+ (br $while-out63
+ (i32.const 279)
+ )
)
)
- )
- (if (result i32)
- (local.tee $4
- (i32.load
- (local.tee $0
- (i32.add
+ (if (result i32)
+ (local.tee $1
+ (i32.load
+ (local.tee $3
(i32.add
- (local.get $2)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $8)
- (i32.const 31)
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $14)
+ (i32.const 31)
+ )
+ (i32.const 2)
)
- (i32.const 2)
)
)
)
)
- )
- (block
- (local.set $8
- (i32.shl
- (local.get $8)
- (i32.const 1)
+ (block
+ (local.set $14
+ (i32.shl
+ (local.get $14)
+ (i32.const 1)
+ )
)
+ (local.set $0
+ (local.get $1)
+ )
+ (br $while-in64)
)
- (local.set $2
- (local.get $4)
- )
- (br $while-in64)
- )
- (block (result i32)
- (local.set $45
- (local.get $0)
- )
- (local.set $53
- (local.get $2)
+ (block (result i32)
+ (local.set $35
+ (local.get $3)
+ )
+ (local.set $46
+ (local.get $0)
+ )
+ (i32.const 276)
)
- (i32.const 276)
)
)
)
)
+ (i32.const 276)
)
- (i32.const 276)
- )
- (if
- (i32.lt_u
- (local.get $45)
- (i32.load
- (i32.const 1224)
- )
- )
- (call $qa)
- (block
- (i32.store
- (local.get $45)
- (local.get $5)
- )
- (i32.store offset=24
- (local.get $5)
- (local.get $53)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $5)
+ (if
+ (i32.lt_u
+ (local.get $35)
+ (i32.load
+ (i32.const 1224)
+ )
)
- (i32.store offset=8
- (local.get $5)
- (local.get $5)
+ (call $qa)
+ (block
+ (i32.store
+ (local.get $35)
+ (local.get $7)
+ )
+ (i32.store offset=24
+ (local.get $7)
+ (local.get $46)
+ )
+ (i32.store offset=12
+ (local.get $7)
+ (local.get $7)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $7)
+ )
)
)
- )
- (if
- (i32.eq
- (local.get $7)
- (i32.const 279)
- )
- (block
- (local.set $0
- (local.get $44)
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 279)
)
(if
(i32.and
(i32.ge_u
- (local.tee $8
+ (local.tee $1
(i32.load offset=8
- (local.get $0)
+ (local.tee $0
+ (local.get $34)
+ )
)
)
(local.tee $4
@@ -4848,23 +4695,23 @@
)
(block
(i32.store offset=12
- (local.get $8)
- (local.get $5)
+ (local.get $1)
+ (local.get $7)
)
(i32.store offset=8
(local.get $0)
- (local.get $5)
+ (local.get $7)
)
(i32.store offset=8
- (local.get $5)
- (local.get $8)
+ (local.get $7)
+ (local.get $1)
)
(i32.store offset=12
- (local.get $5)
- (local.get $44)
+ (local.get $7)
+ (local.get $34)
)
(i32.store offset=24
- (local.get $5)
+ (local.get $7)
(i32.const 0)
)
)
@@ -4874,676 +4721,659 @@
)
)
)
- )
- (global.set $r
- (local.get $25)
- )
- (return
- (i32.add
- (local.get $19)
- (i32.const 8)
+ (global.set $r
+ (local.get $18)
+ )
+ (return
+ (i32.add
+ (local.get $10)
+ (i32.const 8)
+ )
)
)
)
)
)
- )
- (loop $while-in66
- (block $while-out65
- (if
- (i32.le_u
- (local.tee $5
- (i32.load
- (local.get $29)
- )
- )
- (local.get $11)
- )
+ (loop $while-in66
+ (block $while-out65
(if
- (i32.gt_u
- (local.tee $15
- (i32.add
- (i32.load offset=4
- (local.get $29)
- )
- (local.get $5)
+ (i32.le_u
+ (local.tee $0
+ (i32.load
+ (local.get $23)
)
)
- (local.get $11)
+ (local.get $6)
)
- (block
- (local.set $2
- (local.get $15)
+ (br_if $while-out65
+ (i32.gt_u
+ (local.tee $0
+ (i32.add
+ (i32.load offset=4
+ (local.get $23)
+ )
+ (local.get $0)
+ )
+ )
+ (local.get $6)
)
- (br $while-out65)
)
)
- )
- (local.set $29
- (i32.load offset=8
- (local.get $29)
+ (local.set $23
+ (i32.load offset=8
+ (local.get $23)
+ )
)
+ (br $while-in66)
)
- (br $while-in66)
)
- )
- (local.set $5
- (i32.add
- (local.tee $4
- (local.tee $19
- (select
- (local.get $11)
- (local.tee $5
- (i32.add
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $15
- (i32.add
- (local.tee $19
- (i32.add
- (local.get $2)
- (i32.const -47)
- )
- )
- (i32.const 8)
- )
- )
- )
- (i32.const 7)
- )
+ (i32.store
+ (i32.const 1232)
+ (local.tee $1
+ (i32.add
+ (local.get $3)
+ (local.tee $2
+ (select
+ (i32.and
+ (i32.sub
(i32.const 0)
- (i32.and
- (local.get $15)
- (i32.const 7)
+ (local.tee $1
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
)
)
- (local.get $19)
+ (i32.const 7)
)
- )
- (i32.lt_u
- (local.get $5)
- (local.tee $15
- (i32.add
- (local.get $11)
- (i32.const 16)
- )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
)
)
)
)
)
- (i32.const 8)
)
- )
- (i32.store
- (i32.const 1232)
- (local.tee $1
+ (i32.store
+ (i32.const 1220)
+ (local.tee $2
+ (i32.sub
+ (i32.add
+ (local.get $7)
+ (i32.const -40)
+ )
+ (local.get $2)
+ )
+ )
+ )
+ (i32.store offset=4
+ (local.get $1)
+ (i32.or
+ (local.get $2)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4
(i32.add
- (local.tee $13
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $1
- (i32.add
- (local.get $20)
- (i32.const 8)
+ (local.get $1)
+ (local.get $2)
+ )
+ (i32.const 40)
+ )
+ (i32.store
+ (i32.const 1236)
+ (i32.load
+ (i32.const 1696)
+ )
+ )
+ (i32.store offset=4
+ (local.tee $2
+ (select
+ (local.get $6)
+ (local.tee $1
+ (i32.add
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $2
+ (i32.add
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const -47)
+ )
+ )
+ (i32.const 8)
+ )
+ )
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $2)
+ (i32.const 7)
)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
(local.get $1)
- (i32.const 7)
+ )
+ )
+ (i32.lt_u
+ (local.get $1)
+ (local.tee $8
+ (i32.add
+ (local.get $6)
+ (i32.const 16)
+ )
)
)
)
- (local.get $20)
)
+ (i32.const 27)
)
- )
- (i32.store
- (i32.const 1220)
- (local.tee $8
- (i32.sub
- (i32.add
- (local.get $26)
- (i32.const -40)
- )
- (local.get $13)
+ (i32.store offset=8
+ (local.get $2)
+ (i32.load
+ (i32.const 1656)
)
)
- )
- (i32.store offset=4
- (local.get $1)
- (i32.or
- (local.get $8)
- (i32.const 1)
+ (i32.store offset=12
+ (local.get $2)
+ (i32.load
+ (i32.const 1660)
+ )
)
- )
- (i32.store offset=4
- (i32.add
- (local.get $1)
- (local.get $8)
+ (i32.store offset=16
+ (local.get $2)
+ (i32.load
+ (i32.const 1664)
+ )
)
- (i32.const 40)
- )
- (i32.store
- (i32.const 1236)
- (i32.load
- (i32.const 1696)
+ (i32.store offset=20
+ (local.get $2)
+ (i32.load
+ (i32.const 1668)
+ )
)
- )
- (local.set $0
- (local.get $19)
- )
- (i32.store offset=4
- (local.get $0)
- (i32.const 27)
- )
- (i32.store offset=8
- (local.get $4)
- (i32.load
+ (i32.store
(i32.const 1656)
+ (local.get $3)
)
- )
- (i32.store offset=12
- (local.get $4)
- (i32.load
+ (i32.store
(i32.const 1660)
+ (local.get $7)
)
- )
- (i32.store offset=16
- (local.get $4)
- (i32.load
- (i32.const 1664)
- )
- )
- (i32.store offset=20
- (local.get $4)
- (i32.load
+ (i32.store
(i32.const 1668)
+ (i32.const 0)
)
- )
- (i32.store
- (i32.const 1656)
- (local.get $20)
- )
- (i32.store
- (i32.const 1660)
- (local.get $26)
- )
- (i32.store
- (i32.const 1668)
- (i32.const 0)
- )
- (i32.store
- (i32.const 1664)
- (local.get $5)
- )
- (local.set $5
- (i32.add
- (local.get $0)
- (i32.const 24)
- )
- )
- (loop $do-in68
(i32.store
- (local.tee $5
- (i32.add
- (local.get $5)
- (i32.const 4)
- )
+ (i32.const 1664)
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
)
- (i32.const 7)
)
- (br_if $do-in68
- (i32.lt_u
- (i32.add
- (local.get $5)
- (i32.const 4)
- )
+ (local.set $1
+ (i32.add
(local.get $2)
+ (i32.const 24)
)
)
- )
- (if
- (i32.ne
- (local.get $11)
- (local.get $19)
- )
- (block
- (i32.store offset=4
- (local.get $0)
- (i32.and
- (i32.load offset=4
- (local.get $0)
+ (loop $do-in68
+ (i32.store
+ (local.tee $1
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
)
- (i32.const -2)
)
+ (i32.const 7)
)
- (i32.store offset=4
- (local.get $11)
- (i32.or
- (local.tee $5
- (i32.sub
- (local.get $19)
- (local.get $11)
- )
+ (br_if $do-in68
+ (i32.lt_u
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
)
- (i32.const 1)
+ (local.get $0)
)
)
- (i32.store
- (local.get $19)
- (local.get $5)
- )
- (local.set $1
- (i32.shr_u
- (local.get $5)
- (i32.const 3)
- )
+ )
+ (if
+ (i32.ne
+ (local.get $2)
+ (local.get $6)
)
- (if
- (i32.lt_u
- (local.get $5)
- (i32.const 256)
+ (block
+ (i32.store offset=4
+ (local.get $2)
+ (i32.and
+ (i32.load offset=4
+ (local.get $2)
+ )
+ (i32.const -2)
+ )
)
- (block
- (local.set $13
- (i32.add
- (i32.shl
- (local.get $1)
- (i32.const 3)
+ (i32.store offset=4
+ (local.get $6)
+ (i32.or
+ (local.tee $5
+ (i32.sub
+ (local.get $2)
+ (local.get $6)
)
- (i32.const 1248)
)
+ (i32.const 1)
)
- (if
- (i32.and
- (local.tee $4
+ )
+ (i32.store
+ (local.get $2)
+ (local.get $5)
+ )
+ (local.set $1
+ (i32.shr_u
+ (local.get $5)
+ (i32.const 3)
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $5)
+ (i32.const 256)
+ )
+ (block
+ (local.set $0
+ (i32.add
(i32.shl
- (i32.const 1)
(local.get $1)
+ (i32.const 3)
)
- )
- (local.tee $2
- (i32.load
- (i32.const 1208)
- )
+ (i32.const 1248)
)
)
(if
- (i32.lt_u
- (local.tee $2
+ (i32.and
+ (local.tee $3
(i32.load
- (local.tee $4
- (i32.add
- (local.get $13)
- (i32.const 8)
+ (i32.const 1208)
+ )
+ )
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.tee $3
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
)
)
)
+ (i32.load
+ (i32.const 1224)
+ )
)
- (i32.load
- (i32.const 1224)
+ (call $qa)
+ (block
+ (local.set $36
+ (local.get $1)
+ )
+ (local.set $28
+ (local.get $3)
+ )
)
)
- (call $qa)
(block
- (local.set $46
- (local.get $4)
- )
- (local.set $39
- (local.get $2)
+ (i32.store
+ (i32.const 1208)
+ (i32.or
+ (local.get $1)
+ (local.get $3)
+ )
)
- )
- )
- (block
- (i32.store
- (i32.const 1208)
- (i32.or
- (local.get $2)
- (local.get $4)
+ (local.set $36
+ (i32.add
+ (local.get $0)
+ (i32.const 8)
+ )
)
- )
- (local.set $46
- (i32.add
- (local.get $13)
- (i32.const 8)
+ (local.set $28
+ (local.get $0)
)
)
- (local.set $39
- (local.get $13)
- )
)
+ (i32.store
+ (local.get $36)
+ (local.get $6)
+ )
+ (i32.store offset=12
+ (local.get $28)
+ (local.get $6)
+ )
+ (i32.store offset=8
+ (local.get $6)
+ (local.get $28)
+ )
+ (i32.store offset=12
+ (local.get $6)
+ (local.get $0)
+ )
+ (br $do-once38)
)
- (i32.store
- (local.get $46)
- (local.get $11)
- )
- (i32.store offset=12
- (local.get $39)
- (local.get $11)
- )
- (i32.store offset=8
- (local.get $11)
- (local.get $39)
- )
- (i32.store offset=12
- (local.get $11)
- (local.get $13)
- )
- (br $do-once38)
)
- )
- (local.set $0
- (i32.add
- (i32.shl
- (local.tee $2
- (if (result i32)
- (local.tee $13
- (i32.shr_u
- (local.get $5)
- (i32.const 8)
- )
- )
+ (local.set $3
+ (i32.add
+ (i32.shl
+ (local.tee $0
(if (result i32)
- (i32.gt_u
- (local.get $5)
- (i32.const 16777215)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $5)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $13
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $4
- (i32.shl
- (local.get $13)
- (local.tee $2
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $13)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $5)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $0
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $0)
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $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 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $5)
- (i32.add
- (local.tee $0
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
- (local.tee $4
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $1
- (i32.shl
- (local.get $4)
- (local.get $13)
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $5)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
+ (i32.or
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $3
+ (i32.shl
+ (local.get $3)
+ (local.get $0)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
+ )
+ (i32.or
+ (local.get $0)
+ (local.get $1)
)
)
- (i32.or
+ )
+ (i32.shr_u
+ (i32.shl
+ (local.get $3)
(local.get $2)
- (local.get $13)
)
+ (i32.const 15)
)
)
- (i32.shr_u
- (i32.shl
- (local.get $1)
- (local.get $4)
- )
- (i32.const 15)
- )
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $0)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 1512)
)
- (i32.const 1512)
)
- )
- (i32.store offset=28
- (local.get $11)
- (local.get $2)
- )
- (i32.store offset=20
- (local.get $11)
- (i32.const 0)
- )
- (i32.store
- (local.get $15)
- (i32.const 0)
- )
- (if
- (i32.eqz
- (i32.and
- (local.tee $4
- (i32.load
- (i32.const 1212)
+ (i32.store offset=28
+ (local.get $6)
+ (local.get $0)
+ )
+ (i32.store offset=20
+ (local.get $6)
+ (i32.const 0)
+ )
+ (i32.store
+ (local.get $8)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (local.tee $1
+ (i32.load
+ (i32.const 1212)
+ )
+ )
+ (local.tee $2
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
)
)
- (local.tee $1
- (i32.shl
- (i32.const 1)
+ )
+ (block
+ (i32.store
+ (i32.const 1212)
+ (i32.or
+ (local.get $1)
(local.get $2)
)
)
- )
- )
- (block
- (i32.store
- (i32.const 1212)
- (i32.or
- (local.get $1)
- (local.get $4)
+ (i32.store
+ (local.get $3)
+ (local.get $6)
)
+ (i32.store offset=24
+ (local.get $6)
+ (local.get $3)
+ )
+ (i32.store offset=12
+ (local.get $6)
+ (local.get $6)
+ )
+ (i32.store offset=8
+ (local.get $6)
+ (local.get $6)
+ )
+ (br $do-once38)
)
- (i32.store
- (local.get $0)
- (local.get $11)
- )
- (i32.store offset=24
- (local.get $11)
- (local.get $0)
- )
- (i32.store offset=12
- (local.get $11)
- (local.get $11)
- )
- (i32.store offset=8
- (local.get $11)
- (local.get $11)
- )
- (br $do-once38)
)
- )
- (local.set $1
- (i32.shl
- (local.get $5)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
- (local.get $2)
- (i32.const 1)
+ (local.set $1
+ (i32.shl
+ (local.get $5)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ (i32.eq
+ (local.get $0)
+ (i32.const 31)
)
- )
- (i32.eq
- (local.get $2)
- (i32.const 31)
)
)
)
- )
- (local.set $4
- (i32.load
- (local.get $0)
+ (local.set $0
+ (i32.load
+ (local.get $3)
+ )
)
- )
- (if
- (i32.eq
- (local.tee $7
- (loop $while-in70 (result i32)
- (block $while-out69 (result i32)
- (if
- (i32.eq
- (local.get $5)
- (i32.and
- (i32.load offset=4
- (local.get $4)
+ (if
+ (i32.eq
+ (local.tee $9
+ (loop $while-in70 (result i32)
+ (block $while-out69 (result i32)
+ (if
+ (i32.eq
+ (local.get $5)
+ (i32.and
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const -8)
)
- (i32.const -8)
- )
- )
- (block
- (local.set $33
- (local.get $4)
)
- (br $while-out69
- (i32.const 305)
+ (block
+ (local.set $37
+ (local.get $0)
+ )
+ (br $while-out69
+ (i32.const 305)
+ )
)
)
- )
- (if (result i32)
- (local.tee $2
- (i32.load
- (local.tee $0
- (i32.add
+ (if (result i32)
+ (local.tee $3
+ (i32.load
+ (local.tee $2
(i32.add
- (local.get $4)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $1)
- (i32.const 31)
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $1)
+ (i32.const 31)
+ )
+ (i32.const 2)
)
- (i32.const 2)
)
)
)
)
- )
- (block
- (local.set $1
- (i32.shl
- (local.get $1)
- (i32.const 1)
+ (block
+ (local.set $1
+ (i32.shl
+ (local.get $1)
+ (i32.const 1)
+ )
)
+ (local.set $0
+ (local.get $3)
+ )
+ (br $while-in70)
)
- (local.set $4
- (local.get $2)
- )
- (br $while-in70)
- )
- (block (result i32)
- (local.set $47
- (local.get $0)
- )
- (local.set $54
- (local.get $4)
+ (block (result i32)
+ (local.set $38
+ (local.get $2)
+ )
+ (local.set $47
+ (local.get $0)
+ )
+ (i32.const 302)
)
- (i32.const 302)
)
)
)
)
+ (i32.const 302)
)
- (i32.const 302)
- )
- (if
- (i32.lt_u
- (local.get $47)
- (i32.load
- (i32.const 1224)
- )
- )
- (call $qa)
- (block
- (i32.store
- (local.get $47)
- (local.get $11)
- )
- (i32.store offset=24
- (local.get $11)
- (local.get $54)
- )
- (i32.store offset=12
- (local.get $11)
- (local.get $11)
+ (if
+ (i32.lt_u
+ (local.get $38)
+ (i32.load
+ (i32.const 1224)
+ )
)
- (i32.store offset=8
- (local.get $11)
- (local.get $11)
+ (call $qa)
+ (block
+ (i32.store
+ (local.get $38)
+ (local.get $6)
+ )
+ (i32.store offset=24
+ (local.get $6)
+ (local.get $47)
+ )
+ (i32.store offset=12
+ (local.get $6)
+ (local.get $6)
+ )
+ (i32.store offset=8
+ (local.get $6)
+ (local.get $6)
+ )
)
)
- )
- (if
- (i32.eq
- (local.get $7)
- (i32.const 305)
- )
- (block
- (local.set $0
- (local.get $33)
+ (if
+ (i32.eq
+ (local.get $9)
+ (i32.const 305)
)
(if
(i32.and
(i32.ge_u
(local.tee $1
(i32.load offset=8
- (local.get $0)
+ (local.tee $0
+ (local.get $37)
+ )
)
)
- (local.tee $5
+ (local.tee $3
(i32.load
(i32.const 1224)
)
@@ -5551,28 +5381,28 @@
)
(i32.ge_u
(local.get $0)
- (local.get $5)
+ (local.get $3)
)
)
(block
(i32.store offset=12
(local.get $1)
- (local.get $11)
+ (local.get $6)
)
(i32.store offset=8
(local.get $0)
- (local.get $11)
+ (local.get $6)
)
(i32.store offset=8
- (local.get $11)
+ (local.get $6)
(local.get $1)
)
(i32.store offset=12
- (local.get $11)
- (local.get $33)
+ (local.get $6)
+ (local.get $37)
)
(i32.store offset=24
- (local.get $11)
+ (local.get $6)
(i32.const 0)
)
)
@@ -5583,219 +5413,208 @@
)
)
)
- )
- (block
- (if
- (i32.or
- (i32.eqz
- (local.tee $1
- (i32.load
- (i32.const 1224)
+ (block
+ (if
+ (i32.or
+ (i32.eqz
+ (local.tee $0
+ (i32.load
+ (i32.const 1224)
+ )
)
)
+ (i32.lt_u
+ (local.get $3)
+ (local.get $0)
+ )
)
- (i32.lt_u
- (local.get $20)
- (local.get $1)
+ (i32.store
+ (i32.const 1224)
+ (local.get $3)
)
)
(i32.store
- (i32.const 1224)
- (local.get $20)
+ (i32.const 1656)
+ (local.get $3)
)
- )
- (i32.store
- (i32.const 1656)
- (local.get $20)
- )
- (i32.store
- (i32.const 1660)
- (local.get $26)
- )
- (i32.store
- (i32.const 1668)
- (i32.const 0)
- )
- (i32.store
- (i32.const 1244)
- (i32.load
- (i32.const 1680)
+ (i32.store
+ (i32.const 1660)
+ (local.get $7)
)
- )
- (i32.store
- (i32.const 1240)
- (i32.const -1)
- )
- (local.set $1
- (i32.const 0)
- )
- (loop $do-in
- (i32.store offset=12
- (local.tee $13
- (i32.add
- (i32.shl
- (local.get $1)
- (i32.const 3)
- )
- (i32.const 1248)
- )
+ (i32.store
+ (i32.const 1668)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 1244)
+ (i32.load
+ (i32.const 1680)
)
- (local.get $13)
)
- (i32.store offset=8
- (local.get $13)
- (local.get $13)
+ (i32.store
+ (i32.const 1240)
+ (i32.const -1)
)
- (br_if $do-in
- (i32.ne
- (local.tee $1
+ (local.set $1
+ (i32.const 0)
+ )
+ (loop $do-in
+ (i32.store offset=12
+ (local.tee $0
(i32.add
- (local.get $1)
- (i32.const 1)
+ (i32.shl
+ (local.get $1)
+ (i32.const 3)
+ )
+ (i32.const 1248)
)
)
- (i32.const 32)
+ (local.get $0)
)
- )
- )
- (i32.store
- (i32.const 1232)
- (local.tee $1
- (i32.add
- (local.tee $13
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $1
- (i32.add
- (local.get $20)
- (i32.const 8)
- )
- )
- )
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $0)
+ )
+ (br_if $do-in
+ (i32.ne
+ (local.tee $1
+ (i32.add
(local.get $1)
- (i32.const 7)
+ (i32.const 1)
)
)
+ (i32.const 32)
)
- (local.get $20)
)
)
- )
- (i32.store
- (i32.const 1220)
- (local.tee $5
- (i32.sub
+ (i32.store
+ (i32.const 1232)
+ (local.tee $0
(i32.add
- (local.get $26)
- (i32.const -40)
+ (local.get $3)
+ (local.tee $1
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $0
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $0)
+ (i32.const 7)
+ )
+ )
+ )
)
- (local.get $13)
)
)
- )
- (i32.store offset=4
- (local.get $1)
- (i32.or
- (local.get $5)
- (i32.const 1)
- )
- )
- (i32.store offset=4
- (i32.add
- (local.get $1)
- (local.get $5)
- )
- (i32.const 40)
- )
- (i32.store
- (i32.const 1236)
- (i32.load
- (i32.const 1696)
- )
- )
- )
- )
- (if
- (i32.gt_u
- (local.tee $11
- (i32.load
+ (i32.store
(i32.const 1220)
+ (local.tee $1
+ (i32.sub
+ (i32.add
+ (local.get $7)
+ (i32.const -40)
+ )
+ (local.get $1)
+ )
+ )
)
- )
- (local.get $3)
- )
- (block
- (i32.store
- (i32.const 1220)
- (local.tee $33
- (i32.sub
- (local.get $11)
- (local.get $3)
+ (i32.store offset=4
+ (local.get $0)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
)
)
- )
- (i32.store
- (i32.const 1232)
- (local.tee $7
+ (i32.store offset=4
(i32.add
- (local.get $3)
- (local.tee $11
- (i32.load
- (i32.const 1232)
- )
- )
+ (local.get $0)
+ (local.get $1)
)
+ (i32.const 40)
)
- )
- (i32.store offset=4
- (local.get $7)
- (i32.or
- (local.get $33)
- (i32.const 1)
- )
- )
- (i32.store offset=4
- (local.get $11)
- (i32.or
- (local.get $3)
- (i32.const 3)
+ (i32.store
+ (i32.const 1236)
+ (i32.load
+ (i32.const 1696)
+ )
)
)
- (global.set $r
- (local.get $25)
- )
- (return
- (i32.add
- (local.get $11)
- (i32.const 8)
+ )
+ (br_if $folding-inner0
+ (i32.gt_u
+ (local.tee $0
+ (i32.load
+ (i32.const 1220)
+ )
)
+ (local.get $4)
)
)
)
)
+ (i32.store
+ (call $Qa)
+ (i32.const 12)
+ )
+ (global.set $r
+ (local.get $18)
+ )
+ (return
+ (i32.const 0)
+ )
)
(i32.store
- (call $Qa)
- (i32.const 12)
+ (i32.const 1220)
+ (local.tee $1
+ (i32.sub
+ (local.get $0)
+ (local.get $4)
+ )
+ )
)
- (global.set $r
- (local.get $25)
+ (i32.store
+ (i32.const 1232)
+ (local.tee $3
+ (i32.add
+ (local.get $4)
+ (local.tee $0
+ (i32.load
+ (i32.const 1232)
+ )
+ )
+ )
+ )
)
- (return
- (i32.const 0)
+ (i32.store offset=4
+ (local.get $3)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4
+ (local.get $0)
+ (i32.or
+ (local.get $4)
+ (i32.const 3)
+ )
)
)
(global.set $r
- (local.get $25)
+ (local.get $18)
)
(i32.add
- (local.get $15)
+ (local.get $0)
(i32.const 8)
)
)
@@ -5818,7 +5637,6 @@
(local $16 i32)
(local $17 i32)
(local $18 i32)
- (local $19 i32)
(if
(i32.eqz
(local.get $0)
@@ -5827,13 +5645,13 @@
)
(if
(i32.lt_u
- (local.tee $1
+ (local.tee $3
(i32.add
(local.get $0)
(i32.const -8)
)
)
- (local.tee $14
+ (local.tee $13
(i32.load
(i32.const 1224)
)
@@ -5843,9 +5661,9 @@
)
(if
(i32.eq
- (local.tee $0
+ (local.tee $9
(i32.and
- (local.tee $5
+ (local.tee $0
(i32.load
(i32.add
(local.get $0)
@@ -5860,12 +5678,12 @@
)
(call $qa)
)
- (local.set $8
+ (local.set $6
(i32.add
- (local.get $1)
- (local.tee $7
+ (local.get $3)
+ (local.tee $4
(i32.and
- (local.get $5)
+ (local.get $0)
(i32.const -8)
)
)
@@ -5873,64 +5691,60 @@
)
(if
(i32.and
- (local.get $5)
+ (local.get $0)
(i32.const 1)
)
(block
(local.set $2
- (local.get $1)
+ (local.get $3)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $4)
)
)
(block $do-once
- (local.set $9
- (i32.load
- (local.get $1)
- )
- )
(if
(i32.eqz
- (local.get $0)
- )
- (return)
- )
- (local.set $7
- (i32.add
- (local.get $7)
(local.get $9)
)
+ (return)
)
(if
(i32.lt_u
- (local.tee $1
+ (local.tee $0
(i32.sub
- (local.get $1)
- (local.get $9)
+ (local.get $3)
+ (local.tee $9
+ (i32.load
+ (local.get $3)
+ )
+ )
)
)
- (local.get $14)
+ (local.get $13)
)
(call $qa)
)
+ (local.set $3
+ (i32.add
+ (local.get $4)
+ (local.get $9)
+ )
+ )
(if
(i32.eq
(i32.load
(i32.const 1228)
)
- (local.get $1)
+ (local.get $0)
)
(block
- (local.set $0
- (local.get $8)
- )
(if
(i32.ne
(i32.and
- (local.tee $3
+ (local.tee $1
(i32.load offset=4
- (local.get $0)
+ (local.get $6)
)
)
(i32.const 3)
@@ -5939,43 +5753,43 @@
)
(block
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
)
(i32.store
(i32.const 1216)
- (local.get $7)
+ (local.get $3)
)
(i32.store offset=4
- (local.get $0)
+ (local.get $6)
(i32.and
- (local.get $3)
+ (local.get $1)
(i32.const -2)
)
)
(i32.store offset=4
- (local.get $1)
+ (local.get $0)
(i32.or
- (local.get $7)
+ (local.get $3)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $1)
- (local.get $7)
+ (local.get $0)
+ (local.get $3)
)
- (local.get $7)
+ (local.get $3)
)
(return)
)
)
- (local.set $3
+ (local.set $11
(i32.shr_u
(local.get $9)
(i32.const 3)
@@ -5987,22 +5801,22 @@
(i32.const 256)
)
(block
- (local.set $0
+ (local.set $2
(i32.load offset=12
- (local.get $1)
+ (local.get $0)
)
)
(if
(i32.ne
- (local.tee $9
+ (local.tee $4
(i32.load offset=8
- (local.get $1)
+ (local.get $0)
)
)
- (local.tee $5
+ (local.tee $1
(i32.add
(i32.shl
- (local.get $3)
+ (local.get $11)
(i32.const 3)
)
(i32.const 1248)
@@ -6012,16 +5826,16 @@
(block
(if
(i32.lt_u
- (local.get $9)
- (local.get $14)
+ (local.get $4)
+ (local.get $13)
)
(call $qa)
)
(if
(i32.ne
- (local.get $1)
+ (local.get $0)
(i32.load offset=12
- (local.get $9)
+ (local.get $4)
)
)
(call $qa)
@@ -6030,8 +5844,8 @@
)
(if
(i32.eq
- (local.get $0)
- (local.get $9)
+ (local.get $2)
+ (local.get $4)
)
(block
(i32.store
@@ -6043,99 +5857,99 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $3)
+ (local.get $11)
)
(i32.const -1)
)
)
)
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
)
(if
(i32.eq
- (local.get $0)
- (local.get $5)
+ (local.get $1)
+ (local.get $2)
)
- (local.set $10
+ (local.set $5
(i32.add
- (local.get $0)
+ (local.get $2)
(i32.const 8)
)
)
(block
(if
(i32.lt_u
- (local.get $0)
- (local.get $14)
+ (local.get $2)
+ (local.get $13)
)
(call $qa)
)
(if
(i32.eq
- (local.get $1)
+ (local.get $0)
(i32.load
- (local.tee $5
+ (local.tee $1
(i32.add
- (local.get $0)
+ (local.get $2)
(i32.const 8)
)
)
)
)
- (local.set $10
- (local.get $5)
+ (local.set $5
+ (local.get $1)
)
(call $qa)
)
)
)
(i32.store offset=12
- (local.get $9)
- (local.get $0)
+ (local.get $4)
+ (local.get $2)
)
(i32.store
- (local.get $10)
- (local.get $9)
+ (local.get $5)
+ (local.get $4)
)
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
)
- (local.set $9
+ (local.set $12
(i32.load offset=24
- (local.get $1)
+ (local.get $0)
)
)
(if
(i32.eq
- (local.get $1)
- (local.tee $0
+ (local.get $0)
+ (local.tee $4
(i32.load offset=12
- (local.get $1)
+ (local.get $0)
)
)
)
(block $do-once0
(if
- (local.tee $10
+ (local.tee $4
(i32.load
- (local.tee $3
+ (local.tee $9
(i32.add
(local.tee $5
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 16)
)
)
@@ -6144,17 +5958,12 @@
)
)
)
- (block
- (local.set $0
- (local.get $10)
- )
- (local.set $5
- (local.get $3)
- )
+ (local.set $5
+ (local.get $9)
)
(br_if $do-once0
(i32.eqz
- (local.tee $0
+ (local.tee $4
(i32.load
(local.get $5)
)
@@ -6162,70 +5971,63 @@
)
)
)
- (if
- (i32.lt_u
- (local.tee $3
- (loop $while-in (result i32)
- (if
- (local.tee $10
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
- )
- )
- (block
- (local.set $0
- (local.get $10)
- )
- (local.set $5
- (local.get $3)
- )
- (br $while-in)
+ (loop $while-in
+ (if
+ (local.tee $11
+ (i32.load
+ (local.tee $9
+ (i32.add
+ (local.get $4)
+ (i32.const 20)
)
)
- (if (result i32)
- (local.tee $10
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 16)
- )
- )
- )
- )
- (block
- (local.set $0
- (local.get $10)
- )
- (local.set $5
- (local.get $3)
- )
- (br $while-in)
- )
- (block (result i32)
- (local.set $12
- (local.get $0)
- )
- (local.get $5)
+ )
+ )
+ (block
+ (local.set $4
+ (local.get $11)
+ )
+ (local.set $5
+ (local.get $9)
+ )
+ (br $while-in)
+ )
+ )
+ (if
+ (local.tee $11
+ (i32.load
+ (local.tee $9
+ (i32.add
+ (local.get $4)
+ (i32.const 16)
)
)
)
)
- (local.get $14)
+ (block
+ (local.set $4
+ (local.get $11)
+ )
+ (local.set $5
+ (local.get $9)
+ )
+ (br $while-in)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $5)
+ (local.get $13)
)
(call $qa)
(block
(i32.store
- (local.get $3)
+ (local.get $5)
(i32.const 0)
)
- (local.set $4
- (local.get $12)
+ (local.set $7
+ (local.get $4)
)
)
)
@@ -6233,48 +6035,42 @@
(block
(if
(i32.lt_u
- (local.tee $3
+ (local.tee $5
(i32.load offset=8
- (local.get $1)
+ (local.get $0)
)
)
- (local.get $14)
+ (local.get $13)
)
(call $qa)
)
- (local.set $5
- (local.get $3)
- )
(if
(i32.ne
- (local.get $1)
+ (local.get $0)
(i32.load offset=12
- (local.get $3)
+ (local.get $5)
)
)
(call $qa)
)
- (local.set $10
- (local.get $0)
- )
(if
(i32.eq
- (local.get $1)
+ (local.get $0)
(i32.load offset=8
- (local.get $0)
+ (local.get $4)
)
)
(block
(i32.store offset=12
(local.get $5)
- (local.get $0)
+ (local.get $4)
)
(i32.store offset=8
- (local.get $10)
- (local.get $3)
+ (local.get $4)
+ (local.get $5)
)
- (local.set $4
- (local.get $0)
+ (local.set $7
+ (local.get $4)
)
)
(call $qa)
@@ -6282,17 +6078,17 @@
)
)
(if
- (local.get $9)
+ (local.get $12)
(block
(if
(i32.eq
(i32.load
- (local.tee $3
+ (local.tee $5
(i32.add
(i32.shl
- (local.tee $0
+ (local.tee $4
(i32.load offset=28
- (local.get $1)
+ (local.get $0)
)
)
(i32.const 2)
@@ -6301,16 +6097,16 @@
)
)
)
- (local.get $1)
+ (local.get $0)
)
(block
(i32.store
- (local.get $3)
- (local.get $4)
+ (local.get $5)
+ (local.get $7)
)
(if
(i32.eqz
- (local.get $4)
+ (local.get $7)
)
(block
(i32.store
@@ -6322,17 +6118,17 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $0)
+ (local.get $4)
)
(i32.const -1)
)
)
)
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
@@ -6341,42 +6137,39 @@
(block
(if
(i32.lt_u
- (local.get $9)
+ (local.get $12)
(i32.load
(i32.const 1224)
)
)
(call $qa)
)
- (local.set $0
- (local.get $9)
- )
(if
(i32.eq
- (local.get $1)
+ (local.get $0)
(i32.load offset=16
- (local.get $0)
+ (local.get $12)
)
)
(i32.store offset=16
- (local.get $0)
- (local.get $4)
+ (local.get $12)
+ (local.get $7)
)
(i32.store offset=20
- (local.get $9)
- (local.get $4)
+ (local.get $12)
+ (local.get $7)
)
)
(if
(i32.eqz
- (local.get $4)
+ (local.get $7)
)
(block
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
(br $do-once)
)
@@ -6385,8 +6178,8 @@
)
(if
(i32.lt_u
- (local.get $4)
- (local.tee $0
+ (local.get $7)
+ (local.tee $5
(i32.load
(i32.const 1224)
)
@@ -6395,45 +6188,42 @@
(call $qa)
)
(i32.store offset=24
- (local.get $4)
- (local.get $9)
- )
- (local.set $3
- (local.get $1)
+ (local.get $7)
+ (local.get $12)
)
(if
- (local.tee $5
+ (local.tee $4
(i32.load offset=16
- (local.get $1)
+ (local.get $0)
)
)
(if
(i32.lt_u
+ (local.get $4)
(local.get $5)
- (local.get $0)
)
(call $qa)
(block
(i32.store offset=16
+ (local.get $7)
(local.get $4)
- (local.get $5)
)
(i32.store offset=24
- (local.get $5)
(local.get $4)
+ (local.get $7)
)
)
)
)
(if
- (local.tee $5
+ (local.tee $4
(i32.load offset=20
- (local.get $3)
+ (local.get $0)
)
)
(if
(i32.lt_u
- (local.get $5)
+ (local.get $4)
(i32.load
(i32.const 1224)
)
@@ -6441,37 +6231,37 @@
(call $qa)
(block
(i32.store offset=20
+ (local.get $7)
(local.get $4)
- (local.get $5)
)
(i32.store offset=24
- (local.get $5)
(local.get $4)
+ (local.get $7)
)
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
)
)
(block
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
)
)
)
(block
(local.set $2
- (local.get $1)
+ (local.get $0)
)
- (local.set $6
- (local.get $7)
+ (local.set $1
+ (local.get $3)
)
)
)
@@ -6480,19 +6270,16 @@
(if
(i32.ge_u
(local.get $2)
- (local.get $8)
+ (local.get $6)
)
(call $qa)
)
- (local.set $0
- (local.get $8)
- )
(if
(i32.eqz
(i32.and
- (local.tee $1
+ (local.tee $0
(i32.load offset=4
- (local.get $0)
+ (local.get $6)
)
)
(i32.const 1)
@@ -6500,639 +6287,622 @@
)
(call $qa)
)
- (local.set $6
- (i32.shr_u
- (local.tee $0
- (if (result i32)
- (i32.and
- (local.get $1)
- (i32.const 2)
+ (if
+ (i32.and
+ (local.get $0)
+ (i32.const 2)
+ )
+ (block
+ (i32.store offset=4
+ (local.get $6)
+ (i32.and
+ (local.get $0)
+ (i32.const -2)
+ )
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (local.get $1)
+ (local.get $2)
+ )
+ (local.get $1)
+ )
+ )
+ (block
+ (if
+ (i32.eq
+ (i32.load
+ (i32.const 1232)
)
- (block (result i32)
- (i32.store offset=4
- (local.get $0)
- (i32.and
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (i32.const 1220)
+ (local.tee $0
+ (i32.add
(local.get $1)
- (i32.const -2)
+ (i32.load
+ (i32.const 1220)
+ )
)
)
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $6)
- (i32.const 1)
+ )
+ (i32.store
+ (i32.const 1232)
+ (local.get $2)
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ (if
+ (i32.ne
+ (i32.load
+ (i32.const 1228)
)
+ (local.get $2)
)
- (i32.store
+ (return)
+ )
+ (i32.store
+ (i32.const 1228)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 1216)
+ (i32.const 0)
+ )
+ (return)
+ )
+ )
+ (if
+ (i32.eq
+ (i32.load
+ (i32.const 1228)
+ )
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (i32.const 1216)
+ (local.tee $0
(i32.add
- (local.get $2)
- (local.get $6)
+ (local.get $1)
+ (i32.load
+ (i32.const 1216)
+ )
)
- (local.get $6)
)
- (local.get $6)
)
- (block (result i32)
+ (i32.store
+ (i32.const 1228)
+ (local.get $2)
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (local.get $2)
+ )
+ (local.get $0)
+ )
+ (return)
+ )
+ )
+ (local.set $5
+ (i32.add
+ (local.get $1)
+ (i32.and
+ (local.get $0)
+ (i32.const -8)
+ )
+ )
+ )
+ (local.set $4
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 3)
+ )
+ )
+ (block $do-once4
+ (if
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 256)
+ )
+ (block
+ (local.set $1
+ (i32.load offset=12
+ (local.get $6)
+ )
+ )
(if
- (i32.eq
- (i32.load
- (i32.const 1232)
+ (i32.ne
+ (local.tee $3
+ (i32.load offset=8
+ (local.get $6)
+ )
)
- (local.get $8)
- )
- (block
- (i32.store
- (i32.const 1220)
- (local.tee $4
- (i32.add
- (local.get $6)
- (i32.load
- (i32.const 1220)
- )
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.get $4)
+ (i32.const 3)
)
+ (i32.const 1248)
)
)
- (i32.store
- (i32.const 1232)
- (local.get $2)
- )
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $4)
- (i32.const 1)
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $3)
+ (i32.load
+ (i32.const 1224)
+ )
)
+ (call $qa)
)
(if
(i32.ne
- (i32.load
- (i32.const 1228)
+ (local.get $6)
+ (i32.load offset=12
+ (local.get $3)
)
- (local.get $2)
)
- (return)
- )
- (i32.store
- (i32.const 1228)
- (i32.const 0)
- )
- (i32.store
- (i32.const 1216)
- (i32.const 0)
+ (call $qa)
)
- (return)
)
)
(if
(i32.eq
- (i32.load
- (i32.const 1228)
- )
- (local.get $8)
+ (local.get $1)
+ (local.get $3)
)
(block
(i32.store
- (i32.const 1216)
- (local.tee $4
- (i32.add
- (local.get $6)
- (i32.load
- (i32.const 1216)
+ (i32.const 1208)
+ (i32.and
+ (i32.load
+ (i32.const 1208)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $4)
)
+ (i32.const -1)
)
)
)
- (i32.store
- (i32.const 1228)
- (local.get $2)
+ (br $do-once4)
+ )
+ )
+ (if
+ (i32.eq
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $14
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
)
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $4)
- (i32.const 1)
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (i32.load
+ (i32.const 1224)
+ )
)
+ (call $qa)
)
- (i32.store
- (i32.add
- (local.get $2)
- (local.get $4)
+ (if
+ (i32.eq
+ (local.get $6)
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
+ )
+ )
)
- (local.get $4)
+ (local.set $14
+ (local.get $0)
+ )
+ (call $qa)
)
- (return)
)
)
- (local.set $4
- (i32.add
- (local.get $6)
- (i32.and
- (local.get $1)
- (i32.const -8)
- )
- )
+ (i32.store offset=12
+ (local.get $3)
+ (local.get $1)
)
- (local.set $14
- (i32.shr_u
- (local.get $1)
- (i32.const 3)
+ (i32.store
+ (local.get $14)
+ (local.get $3)
+ )
+ )
+ (block
+ (local.set $7
+ (i32.load offset=24
+ (local.get $6)
)
)
- (block $do-once4
- (if
- (i32.lt_u
- (local.get $1)
- (i32.const 256)
- )
- (block
- (local.set $3
- (i32.load offset=12
- (local.get $8)
- )
+ (if
+ (i32.eq
+ (local.get $6)
+ (local.tee $0
+ (i32.load offset=12
+ (local.get $6)
)
- (if
- (i32.ne
- (local.tee $5
+ )
+ )
+ (block $do-once6
+ (if
+ (local.tee $0
+ (i32.load
+ (local.tee $3
(i32.add
- (i32.shl
- (local.get $14)
- (i32.const 3)
+ (local.tee $1
+ (i32.add
+ (local.get $6)
+ (i32.const 16)
+ )
)
- (i32.const 1248)
- )
- )
- (local.tee $12
- (i32.load offset=8
- (local.get $8)
+ (i32.const 4)
)
)
)
- (block
- (if
- (i32.lt_u
- (local.get $12)
- (i32.load
- (i32.const 1224)
- )
- )
- (call $qa)
- )
- (if
- (i32.ne
- (local.get $8)
- (i32.load offset=12
- (local.get $12)
- )
+ )
+ (local.set $1
+ (local.get $3)
+ )
+ (br_if $do-once6
+ (i32.eqz
+ (local.tee $0
+ (i32.load
+ (local.get $1)
)
- (call $qa)
)
)
)
+ )
+ (loop $while-in9
(if
- (i32.eq
- (local.get $3)
- (local.get $12)
- )
- (block
- (i32.store
- (i32.const 1208)
- (i32.and
- (i32.load
- (i32.const 1208)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $14)
- )
- (i32.const -1)
+ (local.tee $4
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.get $0)
+ (i32.const 20)
)
)
)
- (br $do-once4)
)
- )
- (if
- (i32.eq
- (local.get $3)
- (local.get $5)
- )
- (local.set $16
- (i32.add
+ (block
+ (local.set $0
+ (local.get $4)
+ )
+ (local.set $1
(local.get $3)
- (i32.const 8)
)
+ (br $while-in9)
)
- (block
- (if
- (i32.lt_u
- (local.get $3)
- (i32.load
- (i32.const 1224)
+ )
+ (if
+ (local.tee $4
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
)
)
- (call $qa)
)
- (if
- (i32.eq
- (local.get $8)
- (i32.load
- (local.tee $5
- (i32.add
- (local.get $3)
- (i32.const 8)
- )
- )
- )
- )
- (local.set $16
- (local.get $5)
- )
- (call $qa)
+ )
+ (block
+ (local.set $0
+ (local.get $4)
)
+ (local.set $1
+ (local.get $3)
+ )
+ (br $while-in9)
)
)
- (i32.store offset=12
- (local.get $12)
- (local.get $3)
+ )
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (i32.load
+ (i32.const 1224)
+ )
)
- (i32.store
- (local.get $16)
- (local.get $12)
+ (call $qa)
+ (block
+ (i32.store
+ (local.get $1)
+ (i32.const 0)
+ )
+ (local.set $8
+ (local.get $0)
+ )
)
)
- (block
- (local.set $12
- (i32.load offset=24
- (local.get $8)
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $6)
+ )
+ )
+ (i32.load
+ (i32.const 1224)
)
)
- (if
- (i32.eq
- (local.get $8)
- (local.tee $3
- (i32.load offset=12
- (local.get $8)
- )
- )
+ (call $qa)
+ )
+ (if
+ (i32.ne
+ (local.get $6)
+ (i32.load offset=12
+ (local.get $1)
)
- (block $do-once6
- (local.set $6
- (if (result i32)
- (local.tee $10
- (i32.load
- (local.tee $0
- (i32.add
- (local.tee $5
- (i32.add
- (local.get $8)
- (i32.const 16)
- )
- )
- (i32.const 4)
- )
- )
- )
- )
- (block (result i32)
- (local.set $5
- (local.get $0)
- )
- (local.get $10)
- )
- (if (result i32)
+ )
+ (call $qa)
+ )
+ (if
+ (i32.eq
+ (local.get $6)
+ (i32.load offset=8
+ (local.get $0)
+ )
+ )
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $8
+ (local.get $0)
+ )
+ )
+ (call $qa)
+ )
+ )
+ )
+ (if
+ (local.get $7)
+ (block
+ (if
+ (i32.eq
+ (i32.load
+ (local.tee $1
+ (i32.add
+ (i32.shl
(local.tee $0
- (i32.load
- (local.get $5)
+ (i32.load offset=28
+ (local.get $6)
)
)
- (local.get $0)
- (br $do-once6)
+ (i32.const 2)
)
+ (i32.const 1512)
)
)
- (loop $while-in9
- (if
- (local.tee $10
+ )
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (local.get $1)
+ (local.get $8)
+ )
+ (if
+ (i32.eqz
+ (local.get $8)
+ )
+ (block
+ (i32.store
+ (i32.const 1212)
+ (i32.and
(i32.load
- (local.tee $0
- (i32.add
- (local.get $6)
- (i32.const 20)
- )
- )
- )
- )
- (block
- (local.set $6
- (local.get $10)
- )
- (local.set $5
- (local.get $0)
+ (i32.const 1212)
)
- (br $while-in9)
- )
- )
- (if
- (local.tee $10
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $6)
- (i32.const 16)
- )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
)
+ (i32.const -1)
)
)
- (block
- (local.set $6
- (local.get $10)
- )
- (local.set $5
- (local.get $0)
- )
- (br $while-in9)
- )
)
+ (br $do-once4)
)
- (if
- (i32.lt_u
- (local.get $5)
- (i32.load
- (i32.const 1224)
- )
- )
- (call $qa)
- (block
- (i32.store
- (local.get $5)
- (i32.const 0)
- )
- (local.set $11
- (local.get $6)
- )
+ )
+ )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $7)
+ (i32.load
+ (i32.const 1224)
)
)
+ (call $qa)
)
- (block
- (if
- (i32.lt_u
- (local.tee $0
- (i32.load offset=8
- (local.get $8)
- )
- )
- (i32.load
- (i32.const 1224)
- )
+ (if
+ (i32.eq
+ (local.get $6)
+ (i32.load offset=16
+ (local.get $7)
)
- (call $qa)
)
- (local.set $6
- (local.get $0)
+ (i32.store offset=16
+ (local.get $7)
+ (local.get $8)
)
- (if
- (i32.ne
- (local.get $8)
- (i32.load offset=12
- (local.get $0)
- )
- )
- (call $qa)
+ (i32.store offset=20
+ (local.get $7)
+ (local.get $8)
)
- (local.set $1
- (local.get $3)
+ )
+ (br_if $do-once4
+ (i32.eqz
+ (local.get $8)
)
- (if
- (i32.eq
- (local.get $8)
- (i32.load offset=8
- (local.get $1)
- )
- )
- (block
- (i32.store offset=12
- (local.get $6)
- (local.get $3)
- )
- (i32.store offset=8
- (local.get $1)
- (local.get $0)
- )
- (local.set $11
- (local.get $3)
- )
- )
- (call $qa)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $8)
+ (local.tee $1
+ (i32.load
+ (i32.const 1224)
)
)
)
+ (call $qa)
+ )
+ (i32.store offset=24
+ (local.get $8)
+ (local.get $7)
+ )
+ (if
+ (local.tee $0
+ (i32.load offset=16
+ (local.get $6)
+ )
+ )
(if
- (local.get $12)
+ (i32.lt_u
+ (local.get $0)
+ (local.get $1)
+ )
+ (call $qa)
(block
- (if
- (i32.eq
- (i32.load
- (local.tee $7
- (i32.add
- (i32.shl
- (local.tee $3
- (i32.load offset=28
- (local.get $8)
- )
- )
- (i32.const 2)
- )
- (i32.const 1512)
- )
- )
- )
- (local.get $8)
- )
- (block
- (i32.store
- (local.get $7)
- (local.get $11)
- )
- (if
- (i32.eqz
- (local.get $11)
- )
- (block
- (i32.store
- (i32.const 1212)
- (i32.and
- (i32.load
- (i32.const 1212)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $3)
- )
- (i32.const -1)
- )
- )
- )
- (br $do-once4)
- )
- )
- )
- (block
- (if
- (i32.lt_u
- (local.get $12)
- (i32.load
- (i32.const 1224)
- )
- )
- (call $qa)
- )
- (local.set $0
- (local.get $12)
- )
- (if
- (i32.eq
- (local.get $8)
- (i32.load offset=16
- (local.get $0)
- )
- )
- (i32.store offset=16
- (local.get $0)
- (local.get $11)
- )
- (i32.store offset=20
- (local.get $12)
- (local.get $11)
- )
- )
- (br_if $do-once4
- (i32.eqz
- (local.get $11)
- )
- )
- )
- )
- (if
- (i32.lt_u
- (local.get $11)
- (local.tee $3
- (i32.load
- (i32.const 1224)
- )
- )
- )
- (call $qa)
+ (i32.store offset=16
+ (local.get $8)
+ (local.get $0)
)
(i32.store offset=24
- (local.get $11)
- (local.get $12)
- )
- (local.set $0
+ (local.get $0)
(local.get $8)
)
- (if
- (local.tee $1
- (i32.load offset=16
- (local.get $0)
- )
- )
- (if
- (i32.lt_u
- (local.get $1)
- (local.get $3)
- )
- (call $qa)
- (block
- (i32.store offset=16
- (local.get $11)
- (local.get $1)
- )
- (i32.store offset=24
- (local.get $1)
- (local.get $11)
- )
- )
- )
+ )
+ )
+ )
+ (if
+ (local.tee $0
+ (i32.load offset=20
+ (local.get $6)
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $0)
+ (i32.load
+ (i32.const 1224)
)
- (if
- (local.tee $1
- (i32.load offset=20
- (local.get $0)
- )
- )
- (if
- (i32.lt_u
- (local.get $1)
- (i32.load
- (i32.const 1224)
- )
- )
- (call $qa)
- (block
- (i32.store offset=20
- (local.get $11)
- (local.get $1)
- )
- (i32.store offset=24
- (local.get $1)
- (local.get $11)
- )
- )
- )
+ )
+ (call $qa)
+ (block
+ (i32.store offset=20
+ (local.get $8)
+ (local.get $0)
+ )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $8)
)
)
)
)
)
)
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $4)
- (i32.const 1)
- )
+ )
+ )
+ )
+ (i32.store offset=4
+ (local.get $2)
+ (i32.or
+ (local.get $5)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (local.get $2)
+ (local.get $5)
+ )
+ (local.get $5)
+ )
+ (local.set $1
+ (if (result i32)
+ (i32.eq
+ (i32.load
+ (i32.const 1228)
)
+ (local.get $2)
+ )
+ (block
(i32.store
- (i32.add
- (local.get $2)
- (local.get $4)
- )
- (local.get $4)
- )
- (if (result i32)
- (i32.eq
- (i32.load
- (i32.const 1228)
- )
- (local.get $2)
- )
- (block
- (i32.store
- (i32.const 1216)
- (local.get $4)
- )
- (return)
- )
- (local.get $4)
+ (i32.const 1216)
+ (local.get $5)
)
+ (return)
)
+ (local.get $5)
)
)
+ )
+ )
+ (local.set $3
+ (i32.shr_u
+ (local.get $1)
(i32.const 3)
)
)
(if
(i32.lt_u
- (local.get $0)
+ (local.get $1)
(i32.const 256)
)
(block
- (local.set $1
+ (local.set $0
(i32.add
(i32.shl
- (local.get $6)
+ (local.get $3)
(i32.const 3)
)
(i32.const 1248)
@@ -7140,25 +6910,25 @@
)
(if
(i32.and
- (local.tee $7
+ (local.tee $1
(i32.load
(i32.const 1208)
)
)
- (local.tee $4
+ (local.tee $3
(i32.shl
(i32.const 1)
- (local.get $6)
+ (local.get $3)
)
)
)
(if
(i32.lt_u
- (local.tee $7
+ (local.tee $3
(i32.load
- (local.tee $4
+ (local.tee $1
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
@@ -7171,10 +6941,10 @@
(call $qa)
(block
(local.set $15
- (local.get $4)
+ (local.get $1)
)
- (local.set $13
- (local.get $7)
+ (local.set $10
+ (local.get $3)
)
)
)
@@ -7182,18 +6952,18 @@
(i32.store
(i32.const 1208)
(i32.or
- (local.get $4)
- (local.get $7)
+ (local.get $1)
+ (local.get $3)
)
)
(local.set $15
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 8)
)
)
- (local.set $13
- (local.get $1)
+ (local.set $10
+ (local.get $0)
)
)
)
@@ -7202,50 +6972,50 @@
(local.get $2)
)
(i32.store offset=12
- (local.get $13)
+ (local.get $10)
(local.get $2)
)
(i32.store offset=8
(local.get $2)
- (local.get $13)
+ (local.get $10)
)
(i32.store offset=12
(local.get $2)
- (local.get $1)
+ (local.get $0)
)
(return)
)
)
- (local.set $4
+ (local.set $3
(i32.add
(i32.shl
- (local.tee $6
+ (local.tee $0
(if (result i32)
- (local.tee $1
+ (local.tee $0
(i32.shr_u
- (local.get $0)
+ (local.get $1)
(i32.const 8)
)
)
(if (result i32)
(i32.gt_u
- (local.get $0)
+ (local.get $1)
(i32.const 16777215)
)
(i32.const 31)
(block (result i32)
- (local.set $1
+ (local.set $0
(i32.and
(i32.shr_u
(i32.add
- (local.tee $15
+ (local.tee $4
(i32.shl
- (local.get $1)
- (local.tee $13
+ (local.get $0)
+ (local.tee $3
(i32.and
(i32.shr_u
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 1048320)
)
(i32.const 16)
@@ -7265,21 +7035,21 @@
(i32.or
(i32.and
(i32.shr_u
- (local.get $0)
+ (local.get $1)
(i32.add
- (local.tee $4
+ (local.tee $0
(i32.add
(i32.sub
(i32.const 14)
(i32.or
- (local.tee $15
+ (local.tee $5
(i32.and
(i32.shr_u
(i32.add
- (local.tee $7
+ (local.tee $4
(i32.shl
- (local.get $15)
- (local.get $1)
+ (local.get $4)
+ (local.get $0)
)
)
(i32.const 245760)
@@ -7290,15 +7060,15 @@
)
)
(i32.or
- (local.get $1)
- (local.get $13)
+ (local.get $0)
+ (local.get $3)
)
)
)
(i32.shr_u
(i32.shl
- (local.get $7)
- (local.get $15)
+ (local.get $4)
+ (local.get $5)
)
(i32.const 15)
)
@@ -7310,7 +7080,7 @@
(i32.const 1)
)
(i32.shl
- (local.get $4)
+ (local.get $0)
(i32.const 1)
)
)
@@ -7326,7 +7096,7 @@
)
(i32.store offset=28
(local.get $2)
- (local.get $6)
+ (local.get $0)
)
(i32.store offset=20
(local.get $2)
@@ -7338,41 +7108,41 @@
)
(if
(i32.and
- (local.tee $7
- (i32.shl
- (i32.const 1)
- (local.get $6)
- )
- )
- (local.tee $15
+ (local.tee $4
(i32.load
(i32.const 1212)
)
)
+ (local.tee $5
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
+ )
)
(block
- (local.set $13
+ (local.set $10
(i32.shl
- (local.get $0)
+ (local.get $1)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (local.get $6)
+ (local.get $0)
(i32.const 1)
)
)
(i32.eq
- (local.get $6)
+ (local.get $0)
(i32.const 31)
)
)
)
)
- (local.set $1
+ (local.set $0
(i32.load
- (local.get $4)
+ (local.get $3)
)
)
(if
@@ -7382,17 +7152,17 @@
(block $while-out14 (result i32)
(if
(i32.eq
- (local.get $0)
+ (local.get $1)
(i32.and
(i32.load offset=4
- (local.get $1)
+ (local.get $0)
)
(i32.const -8)
)
)
(block
- (local.set $17
- (local.get $1)
+ (local.set $16
+ (local.get $0)
)
(br $while-out14
(i32.const 130)
@@ -7400,17 +7170,17 @@
)
)
(if (result i32)
- (local.tee $11
+ (local.tee $3
(i32.load
- (local.tee $6
+ (local.tee $4
(i32.add
(i32.add
- (local.get $1)
+ (local.get $0)
(i32.const 16)
)
(i32.shl
(i32.shr_u
- (local.get $13)
+ (local.get $10)
(i32.const 31)
)
(i32.const 2)
@@ -7420,23 +7190,23 @@
)
)
(block
- (local.set $13
+ (local.set $10
(i32.shl
- (local.get $13)
+ (local.get $10)
(i32.const 1)
)
)
- (local.set $1
- (local.get $11)
+ (local.set $0
+ (local.get $3)
)
(br $while-in15)
)
(block (result i32)
- (local.set $18
- (local.get $6)
+ (local.set $17
+ (local.get $4)
)
- (local.set $19
- (local.get $1)
+ (local.set $18
+ (local.get $0)
)
(i32.const 127)
)
@@ -7448,7 +7218,7 @@
)
(if
(i32.lt_u
- (local.get $18)
+ (local.get $17)
(i32.load
(i32.const 1224)
)
@@ -7456,12 +7226,12 @@
(call $qa)
(block
(i32.store
- (local.get $18)
+ (local.get $17)
(local.get $2)
)
(i32.store offset=24
(local.get $2)
- (local.get $19)
+ (local.get $18)
)
(i32.store offset=12
(local.get $2)
@@ -7478,53 +7248,50 @@
(local.get $0)
(i32.const 130)
)
- (block
- (local.set $0
- (local.get $17)
- )
- (if
- (i32.and
- (i32.ge_u
- (local.tee $13
- (i32.load offset=8
- (local.get $0)
- )
- )
- (local.tee $7
- (i32.load
- (i32.const 1224)
+ (if
+ (i32.and
+ (i32.ge_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.tee $0
+ (local.get $16)
)
)
)
- (i32.ge_u
- (local.get $0)
- (local.get $7)
+ (local.tee $3
+ (i32.load
+ (i32.const 1224)
+ )
)
)
- (block
- (i32.store offset=12
- (local.get $13)
- (local.get $2)
- )
- (i32.store offset=8
- (local.get $0)
- (local.get $2)
- )
- (i32.store offset=8
- (local.get $2)
- (local.get $13)
- )
- (i32.store offset=12
- (local.get $2)
- (local.get $17)
- )
- (i32.store offset=24
- (local.get $2)
- (i32.const 0)
- )
+ (i32.ge_u
+ (local.get $0)
+ (local.get $3)
)
- (call $qa)
)
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.store offset=8
+ (local.get $2)
+ (local.get $1)
+ )
+ (i32.store offset=12
+ (local.get $2)
+ (local.get $16)
+ )
+ (i32.store offset=24
+ (local.get $2)
+ (i32.const 0)
+ )
+ )
+ (call $qa)
)
)
)
@@ -7533,17 +7300,17 @@
(i32.store
(i32.const 1212)
(i32.or
- (local.get $7)
- (local.get $15)
+ (local.get $4)
+ (local.get $5)
)
)
(i32.store
- (local.get $4)
+ (local.get $3)
(local.get $2)
)
(i32.store offset=24
(local.get $2)
- (local.get $4)
+ (local.get $3)
)
(i32.store offset=12
(local.get $2)
@@ -7557,7 +7324,7 @@
)
(i32.store
(i32.const 1240)
- (local.tee $2
+ (local.tee $0
(i32.add
(i32.load
(i32.const 1240)
@@ -7568,14 +7335,14 @@
)
(local.set $0
(if (result i32)
- (local.get $2)
+ (local.get $0)
(return)
(i32.const 1664)
)
)
(loop $while-in17
(if
- (local.tee $2
+ (local.tee $0
(i32.load
(local.get $0)
)
@@ -7583,7 +7350,7 @@
(block
(local.set $0
(i32.add
- (local.get $2)
+ (local.get $0)
(i32.const 8)
)
)
@@ -7608,9 +7375,7 @@
(local $11 i32)
(local $12 i32)
(local $13 i32)
- (local $14 i32)
- (local $15 i32)
- (local.set $10
+ (local.set $9
(global.get $r)
)
(global.set $r
@@ -7621,129 +7386,123 @@
)
(local.set $7
(i32.add
- (local.get $10)
+ (local.get $9)
(i32.const 16)
)
)
(i32.store
- (local.tee $3
+ (local.tee $4
(i32.add
(local.tee $8
- (local.get $10)
+ (local.get $9)
)
(i32.const 32)
)
)
- (local.tee $4
+ (local.tee $3
(i32.load offset=28
(local.get $0)
)
)
)
(i32.store offset=4
- (local.get $3)
- (local.tee $6
+ (local.get $4)
+ (local.tee $3
(i32.sub
(i32.load offset=20
(local.get $0)
)
- (local.get $4)
+ (local.get $3)
)
)
)
(i32.store offset=8
- (local.get $3)
+ (local.get $4)
(local.get $1)
)
(i32.store offset=12
- (local.get $3)
+ (local.get $4)
(local.get $2)
)
- (local.set $11
- (local.get $0)
- )
- (local.set $12
- (local.get $0)
- )
(local.set $1
- (local.get $3)
+ (local.get $4)
)
- (local.set $3
+ (local.set $4
(i32.const 2)
)
- (local.set $4
+ (local.set $10
(i32.add
(local.get $2)
- (local.get $6)
+ (local.get $3)
)
)
(loop $while-in
(block $while-out
(if
- (i32.eq
- (local.get $4)
- (local.tee $5
- (if (result i32)
- (i32.load
- (i32.const 1160)
- )
- (block (result i32)
- (call $ra
- (i32.const 1)
- (local.get $0)
- )
- (i32.store
- (local.get $8)
- (i32.load offset=60
- (local.get $11)
- )
- )
- (i32.store offset=4
- (local.get $8)
- (local.get $1)
- )
- (i32.store offset=8
- (local.get $8)
- (local.get $3)
- )
- (local.set $6
- (call $Pa
- (call $ya
- (i32.const 146)
- (local.get $8)
- )
- )
- )
- (call $oa
- (i32.const 0)
- )
- (local.get $6)
+ (i32.load
+ (i32.const 1160)
+ )
+ (block
+ (call $ra
+ (i32.const 1)
+ (local.get $0)
+ )
+ (i32.store
+ (local.get $8)
+ (i32.load offset=60
+ (local.get $0)
+ )
+ )
+ (i32.store offset=4
+ (local.get $8)
+ (local.get $1)
+ )
+ (i32.store offset=8
+ (local.get $8)
+ (local.get $4)
+ )
+ (local.set $3
+ (call $Pa
+ (call $ya
+ (i32.const 146)
+ (local.get $8)
)
- (block (result i32)
- (i32.store
- (local.get $7)
- (i32.load offset=60
- (local.get $11)
- )
- )
- (i32.store offset=4
- (local.get $7)
- (local.get $1)
- )
- (i32.store offset=8
- (local.get $7)
- (local.get $3)
- )
- (call $Pa
- (call $ya
- (i32.const 146)
- (local.get $7)
- )
- )
+ )
+ )
+ (call $oa
+ (i32.const 0)
+ )
+ )
+ (block
+ (i32.store
+ (local.get $7)
+ (i32.load offset=60
+ (local.get $0)
+ )
+ )
+ (i32.store offset=4
+ (local.get $7)
+ (local.get $1)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $4)
+ )
+ (local.set $3
+ (call $Pa
+ (call $ya
+ (i32.const 146)
+ (local.get $7)
)
)
)
)
+ )
+ (if
+ (i32.eq
+ (local.get $3)
+ (local.get $10)
+ )
(block
(local.set $1
(i32.const 6)
@@ -7753,124 +7512,126 @@
)
(if
(i32.lt_s
- (local.get $5)
+ (local.get $3)
(i32.const 0)
)
(block
- (local.set $13
+ (local.set $11
(local.get $1)
)
- (local.set $14
- (local.get $3)
+ (local.set $12
+ (local.get $4)
)
(local.set $1
(i32.const 8)
)
- (br $while-out)
- )
- )
- (local.set $6
- (i32.sub
- (local.get $4)
- (local.get $5)
- )
- )
- (if
- (i32.gt_u
- (local.get $5)
- (local.tee $4
- (i32.load offset=4
- (local.get $1)
- )
- )
)
(block
- (i32.store offset=28
- (local.get $0)
- (local.tee $9
- (i32.load offset=44
- (local.get $12)
+ (local.set $5
+ (if (result i32)
+ (i32.gt_u
+ (local.get $3)
+ (local.tee $5
+ (i32.load offset=4
+ (local.get $1)
+ )
+ )
+ )
+ (block (result i32)
+ (i32.store offset=28
+ (local.get $0)
+ (local.tee $6
+ (i32.load offset=44
+ (local.get $0)
+ )
+ )
+ )
+ (i32.store offset=20
+ (local.get $0)
+ (local.get $6)
+ )
+ (local.set $6
+ (i32.load offset=12
+ (local.get $1)
+ )
+ )
+ (local.set $1
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
+ )
+ (local.set $4
+ (i32.add
+ (local.get $4)
+ (i32.const -1)
+ )
+ )
+ (i32.sub
+ (local.get $3)
+ (local.get $5)
+ )
+ )
+ (block (result i32)
+ (if
+ (i32.eq
+ (local.get $4)
+ (i32.const 2)
+ )
+ (block
+ (i32.store offset=28
+ (local.get $0)
+ (i32.add
+ (local.get $3)
+ (i32.load offset=28
+ (local.get $0)
+ )
+ )
+ )
+ (local.set $6
+ (local.get $5)
+ )
+ (local.set $4
+ (i32.const 2)
+ )
+ )
+ (local.set $6
+ (local.get $5)
+ )
+ )
+ (local.get $3)
)
)
)
- (i32.store offset=20
- (local.get $0)
- (local.get $9)
- )
- (local.set $9
- (i32.load offset=12
- (local.get $1)
+ (i32.store
+ (local.get $1)
+ (i32.add
+ (local.get $5)
+ (i32.load
+ (local.get $1)
+ )
)
)
- (local.set $5
+ (i32.store offset=4
+ (local.get $1)
(i32.sub
+ (local.get $6)
(local.get $5)
- (local.get $4)
- )
- )
- (local.set $1
- (i32.add
- (local.get $1)
- (i32.const 8)
)
)
- (local.set $3
- (i32.add
- (local.get $3)
- (i32.const -1)
- )
- )
- )
- (block
- (if
- (i32.eq
+ (local.set $10
+ (i32.sub
+ (local.get $10)
(local.get $3)
- (i32.const 2)
- )
- (block
- (i32.store offset=28
- (local.get $0)
- (i32.add
- (local.get $5)
- (i32.load offset=28
- (local.get $0)
- )
- )
- )
- (local.set $3
- (i32.const 2)
- )
)
)
- (local.set $9
- (local.get $4)
- )
+ (br $while-in)
)
)
- (i32.store
- (local.get $1)
- (i32.add
- (local.get $5)
- (i32.load
- (local.get $1)
- )
- )
- )
- (i32.store offset=4
- (local.get $1)
- (i32.sub
- (local.get $9)
- (local.get $5)
- )
- )
- (local.set $4
- (local.get $6)
- )
- (br $while-in)
)
)
(global.set $r
- (local.get $10)
+ (local.get $9)
)
(if (result i32)
(i32.eq
@@ -7881,9 +7642,9 @@
(i32.store offset=16
(local.get $0)
(i32.add
- (local.tee $4
+ (local.tee $1
(i32.load offset=44
- (local.get $12)
+ (local.get $0)
)
)
(i32.load offset=48
@@ -7893,11 +7654,11 @@
)
(i32.store offset=28
(local.get $0)
- (local.get $4)
+ (local.get $1)
)
(i32.store offset=20
(local.get $0)
- (local.get $4)
+ (local.get $1)
)
(local.get $2)
)
@@ -7933,16 +7694,16 @@
(i32.sub
(local.get $2)
(i32.load offset=4
- (local.get $13)
+ (local.get $11)
)
)
(i32.eq
- (local.get $14)
+ (local.get $12)
(i32.const 2)
)
)
)
- (local.get $15)
+ (local.get $13)
)
)
)
@@ -7952,14 +7713,10 @@
(local $4 i32)
(local $5 i32)
(local $6 i32)
- (local $7 i32)
- (local.set $6
+ (local.set $5
(i32.const 1144)
)
(local.set $3
- (local.get $1)
- )
- (local.set $5
(if (result i32)
(local.tee $4
(i32.load offset=16
@@ -7967,7 +7724,7 @@
)
)
(block (result i32)
- (local.set $7
+ (local.set $6
(i32.const 5)
)
(local.get $4)
@@ -7976,13 +7733,13 @@
(call $Xa
(local.get $1)
)
- (local.get $5)
+ (local.get $3)
(block (result i32)
- (local.set $7
+ (local.set $6
(i32.const 5)
)
(i32.load offset=16
- (local.get $3)
+ (local.get $1)
)
)
)
@@ -7990,15 +7747,15 @@
)
(if
(i32.eq
- (local.get $7)
+ (local.get $6)
(i32.const 5)
)
(block $label$break$a
(if
(i32.lt_u
(i32.sub
- (local.get $5)
- (local.tee $2
+ (local.get $3)
+ (local.tee $3
(i32.load offset=20
(local.get $1)
)
@@ -8026,9 +7783,6 @@
(br $label$break$a)
)
)
- (local.set $4
- (local.get $2)
- )
(if
(i32.gt_s
(i32.load8_s offset=75
@@ -8056,7 +7810,7 @@
(i32.ne
(i32.load8_s
(i32.add
- (local.tee $5
+ (local.tee $4
(i32.add
(local.get $2)
(i32.const -1)
@@ -8069,7 +7823,7 @@
)
(block
(local.set $2
- (local.get $5)
+ (local.get $4)
)
(br $while-in)
)
@@ -8100,35 +7854,32 @@
(local.get $2)
)
)
- (local.set $6
+ (local.set $5
(i32.add
(local.get $2)
(i32.const 1144)
)
)
- (local.set $4
+ (local.set $3
(i32.load offset=20
- (local.get $3)
+ (local.get $1)
)
)
)
- (local.set $2
- (i32.const 0)
- )
)
(drop
(call $jb
- (local.get $4)
- (local.get $6)
+ (local.get $3)
+ (local.get $5)
(local.get $0)
)
)
(i32.store offset=20
- (local.get $3)
+ (local.get $1)
(i32.add
(local.get $0)
(i32.load offset=20
- (local.get $3)
+ (local.get $1)
)
)
)
@@ -8152,48 +7903,48 @@
(i32.const 1144)
)
(block
- (local.set $1
+ (local.set $4
(i32.const 1144)
)
- (local.set $2
+ (local.set $1
(i32.const 4)
)
)
(i32.sub
(if (result i32)
(i32.eq
- (local.get $2)
+ (local.get $1)
(i32.const 4)
)
(block (result i32)
- (local.set $2
- (local.get $1)
+ (local.set $1
+ (local.get $4)
)
(local.set $0
(loop $while-in1 (result i32)
(if (result i32)
(i32.and
(i32.add
- (local.tee $1
+ (local.tee $2
(i32.load
- (local.get $2)
+ (local.get $1)
)
)
(i32.const -16843009)
)
(i32.xor
(i32.and
- (local.get $1)
+ (local.get $2)
(i32.const -2139062144)
)
(i32.const -2139062144)
)
)
- (local.get $2)
+ (local.get $1)
(block
- (local.set $2
+ (local.set $1
(i32.add
- (local.get $2)
+ (local.get $1)
(i32.const 4)
)
)
@@ -8204,28 +7955,17 @@
)
(if
(i32.and
- (local.get $1)
+ (local.get $2)
(i32.const 255)
)
- (block
- (local.set $1
- (local.get $0)
- )
- (loop $while-in3
- (if
- (i32.load8_s
- (local.tee $0
- (i32.add
- (local.get $1)
- (i32.const 1)
- )
- )
- )
- (block
- (local.set $1
+ (loop $while-in3
+ (br_if $while-in3
+ (i32.load8_s
+ (local.tee $0
+ (i32.add
(local.get $0)
+ (i32.const 1)
)
- (br $while-in3)
)
)
)
@@ -8233,35 +7973,36 @@
)
(local.get $0)
)
- (local.get $4)
+ (local.get $2)
)
(i32.const 1144)
)
)
(func $_a (; 18 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
- (local $2 i32)
- (if (result i32)
+ (if
(local.get $0)
- (block $do-once (result i32)
- (if
- (i32.le_s
- (i32.load offset=76
- (local.get $0)
+ (local.set $0
+ (block $do-once (result i32)
+ (if
+ (i32.le_s
+ (i32.load offset=76
+ (local.get $0)
+ )
+ (i32.const -1)
)
- (i32.const -1)
- )
- (br $do-once
- (call $$a
- (local.get $0)
+ (br $do-once
+ (call $$a
+ (local.get $0)
+ )
)
)
- )
- (call $$a
- (local.get $0)
+ (call $$a
+ (local.get $0)
+ )
)
)
- (block (result i32)
+ (block
(local.set $0
(if (result i32)
(i32.load
@@ -8284,51 +8025,40 @@
(i32.const 1184)
)
)
- (block
- (local.set $2
- (local.get $1)
- )
- (local.set $1
- (local.get $0)
- )
- (loop $while-in
- (if
- (i32.gt_u
- (i32.load offset=20
- (local.get $2)
- )
- (i32.load offset=28
- (local.get $2)
- )
+ (loop $while-in
+ (if
+ (i32.gt_u
+ (i32.load offset=20
+ (local.get $1)
)
- (local.set $1
- (i32.or
- (call $$a
- (local.get $2)
- )
+ (i32.load offset=28
+ (local.get $1)
+ )
+ )
+ (local.set $0
+ (i32.or
+ (call $$a
(local.get $1)
)
+ (local.get $0)
)
)
- (br_if $while-in
- (local.tee $2
- (i32.load offset=56
- (local.get $2)
- )
+ )
+ (br_if $while-in
+ (local.tee $1
+ (i32.load offset=56
+ (local.get $1)
)
)
)
)
- (local.set $1
- (local.get $0)
- )
)
(call $xa
(i32.const 1188)
)
- (local.get $1)
)
)
+ (local.get $0)
)
(func $ab (; 19 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
@@ -8337,7 +8067,6 @@
(local $4 i32)
(local $5 i32)
(local $6 i32)
- (local $7 i32)
(local.set $3
(global.get $r)
)
@@ -8353,18 +8082,15 @@
)
(i32.const 10)
)
- (local.set $7
- (local.get $0)
- )
(if
- (local.tee $2
+ (local.tee $1
(i32.load offset=16
(local.get $0)
)
)
(block
(local.set $5
- (local.get $2)
+ (local.get $1)
)
(local.set $6
(i32.const 4)
@@ -8374,13 +8100,13 @@
(call $Xa
(local.get $0)
)
- (local.set $1
+ (local.set $2
(i32.const -1)
)
(block
(local.set $5
(i32.load offset=16
- (local.get $7)
+ (local.get $0)
)
)
(local.set $6
@@ -8394,45 +8120,42 @@
(local.get $6)
(i32.const 4)
)
- (local.set $1
- (block $do-once (result i32)
- (local.set $1
- (local.get $0)
+ (block $do-once
+ (if
+ (i32.lt_u
+ (local.tee $1
+ (i32.load offset=20
+ (local.get $0)
+ )
+ )
+ (local.get $5)
)
(if
- (i32.lt_u
+ (i32.ne
(local.tee $2
- (i32.load offset=20
- (local.get $0)
- )
- )
- (local.get $5)
- )
- (if
- (i32.ne
- (i32.load8_s offset=75
- (local.get $0)
- )
(i32.const 10)
)
- (block
- (i32.store offset=20
+ (i32.load8_s offset=75
+ (local.get $0)
+ )
+ )
+ (block
+ (i32.store offset=20
+ (local.get $0)
+ (i32.add
(local.get $1)
- (i32.add
- (local.get $2)
- (i32.const 1)
- )
- )
- (i32.store8
- (local.get $2)
- (i32.const 10)
- )
- (br $do-once
- (i32.const 10)
+ (i32.const 1)
)
)
+ (i32.store8
+ (local.get $1)
+ (i32.const 10)
+ )
+ (br $do-once)
)
)
+ )
+ (local.set $2
(if (result i32)
(i32.eq
(call_indirect (type $FUNCSIG$iiii)
@@ -8462,12 +8185,11 @@
(global.set $r
(local.get $3)
)
- (local.get $1)
+ (local.get $2)
)
(func $$a (; 20 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
- (local $3 i32)
(if
(i32.gt_u
(i32.load offset=20
@@ -8516,17 +8238,14 @@
(i32.const 3)
)
(block (result i32)
- (local.set $1
- (local.get $0)
- )
(if
(i32.lt_u
- (local.tee $2
+ (local.tee $1
(i32.load offset=4
(local.get $0)
)
)
- (local.tee $3
+ (local.tee $2
(i32.load offset=8
(local.get $0)
)
@@ -8536,8 +8255,8 @@
(call_indirect (type $FUNCSIG$iiii)
(local.get $0)
(i32.sub
+ (local.get $1)
(local.get $2)
- (local.get $3)
)
(i32.const 1)
(i32.add
@@ -8569,7 +8288,7 @@
(i32.const 0)
)
(i32.store offset=4
- (local.get $1)
+ (local.get $0)
(i32.const 0)
)
(i32.const 0)
@@ -8885,21 +8604,21 @@
(i32.add
(select
(i32.div_u
- (local.tee $1
+ (local.tee $3
(call $Wa
- (local.tee $3
- (local.tee $2
+ (local.tee $2
+ (local.tee $1
(call $Za)
)
)
(local.get $0)
)
)
- (local.get $2)
+ (local.get $1)
)
(i32.const 1)
(i32.ne
- (local.get $1)
+ (local.get $2)
(local.get $3)
)
)
@@ -9143,7 +8862,7 @@
)
)
)
- (local.set $3
+ (local.set $0
(call $Ra
(local.get $0)
(local.get $1)
@@ -9153,7 +8872,7 @@
(global.set $r
(local.get $4)
)
- (local.get $3)
+ (local.get $0)
)
(func $Oa (; 28 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
diff --git a/test/merge/basics.wast b/test/merge/basics.wast
deleted file mode 100644
index b5c40feab..000000000
--- a/test/merge/basics.wast
+++ /dev/null
@@ -1,40 +0,0 @@
-(module
- (type $ii (func (param i32 i32)))
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "memory" (memory $0 256))
- (import "env" "table" (table 0 funcref))
- (import "env" "some-func" (func $some-func))
- (import "env" "some-collide" (func $some-collide))
- (data (global.get $memoryBase) "hello, A!\n")
- (global $global-collide i32 (i32.const 0))
- (global $global-collide-mut (mut i32) (i32.const 0))
- (global $global-a i32 (i32.const 1))
- (global $global-a-mut (mut i32) (i32.const 1))
- (elem (global.get $tableBase) $only-a $willCollide $some-func $some-collide $only-a)
- (export "exp-a" (func $only-a))
- (export "exp-collide" (func $only-a))
- (export "exp-collide2" (func $willCollide))
- (func $only-a
- (drop (i32.const 100))
- (call $only-a)
- (call $some-func)
- (call $some-collide)
- (call_indirect (type $ii)
- (i32.const 123)
- (i32.const 456)
- (i32.const 789)
- )
- (drop (global.get $global-collide))
- (drop (global.get $global-a))
- (drop (global.get $global-a-mut))
- (drop (global.get $memoryBase))
- (drop (global.get $tableBase))
- (global.set $global-collide-mut (i32.const 1234))
- )
- (func $willCollide
- (drop (i32.const 200))
- (call $willCollide)
- )
-)
-
diff --git a/test/merge/basics.wast.combined b/test/merge/basics.wast.combined
deleted file mode 100644
index 4d603b410..000000000
--- a/test/merge/basics.wast.combined
+++ /dev/null
@@ -1,133 +0,0 @@
-(module
- (type $ii (func (param i32 i32)))
- (type $FUNCSIG$v (func))
- (type $ii$0 (func (param i32 i32)))
- (type $FUNCSIG$v$0 (func))
- (import "env" "memory" (memory $0 256))
- (data (global.get $memoryBase) "hello, A!\n\00\00\00\00\00\00hello, B!\n\00\00\00\00\00\00")
- (import "env" "table" (table $0 10 funcref))
- (elem (global.get $tableBase) $only-a $willCollide $some-func $some-collide $only-a $some-func $only-b $willCollide$0 $some-func-b $some-collide$0)
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (import "env" "memoryBase" (global $memoryBase$0 i32))
- (import "env" "tableBase" (global $tableBase$0 i32))
- (import "env" "__memory_base" (global $__memory_base$0 i32))
- (import "env" "__table_base" (global $__table_base$0 i32))
- (import "env" "some-func" (func $some-func))
- (import "env" "some-collide" (func $some-collide))
- (import "env" "some-func-b" (func $some-func-b))
- (import "env" "some-collide" (func $some-collide$0))
- (global $global-collide i32 (i32.const 0))
- (global $global-collide-mut (mut i32) (i32.const 0))
- (global $global-a i32 (i32.const 1))
- (global $global-a-mut (mut i32) (i32.const 1))
- (global $global-collide$0 i32 (i32.const 0))
- (global $global-collide-mut$0 (mut i32) (i32.const 0))
- (global $global-b i32 (i32.const 1))
- (global $global-b-mut (mut i32) (i32.const 1))
- (export "exp-a" (func $only-a))
- (export "exp-collide" (func $only-a))
- (export "exp-collide2" (func $willCollide))
- (export "exp-b" (func $only-b))
- (export "exp-b-nameCollided" (func $willCollide$0))
- (func $only-a (; 4 ;) (type $FUNCSIG$v)
- (drop
- (i32.const 100)
- )
- (call $only-a)
- (call $some-func)
- (call $some-collide)
- (call_indirect (type $ii)
- (i32.const 123)
- (i32.const 456)
- (i32.const 789)
- )
- (drop
- (global.get $global-collide)
- )
- (drop
- (global.get $global-a)
- )
- (drop
- (global.get $global-a-mut)
- )
- (drop
- (global.get $memoryBase)
- )
- (drop
- (global.get $tableBase)
- )
- (global.set $global-collide-mut
- (i32.const 1234)
- )
- )
- (func $willCollide (; 5 ;) (type $FUNCSIG$v)
- (drop
- (i32.const 200)
- )
- (call $willCollide)
- )
- (func $only-b (; 6 ;) (type $FUNCSIG$v$0)
- (drop
- (i32.const 111)
- )
- (call $only-b)
- (call $some-func-b)
- (call $some-collide$0)
- (call_indirect (type $ii$0)
- (i32.const 12)
- (i32.const 34)
- (i32.const 56)
- )
- (drop
- (global.get $global-collide$0)
- )
- (drop
- (global.get $global-b)
- )
- (drop
- (global.get $global-b-mut)
- )
- (drop
- (global.get $memoryBase$0)
- )
- (drop
- (global.get $tableBase$0)
- )
- (drop
- (i32.add
- (global.get $memoryBase$0)
- (i32.const 1000)
- )
- )
- (drop
- (i32.add
- (global.get $tableBase$0)
- (i32.const 1000)
- )
- )
- (drop
- (i32.add
- (global.get $tableBase$0)
- (unreachable)
- )
- )
- (drop
- (i32.sub
- (global.get $tableBase$0)
- (i32.const 1000)
- )
- )
- (global.set $global-collide-mut$0
- (i32.const 5678)
- )
- )
- (func $willCollide$0 (; 7 ;) (type $FUNCSIG$v$0)
- (drop
- (i32.const 222)
- )
- (call $willCollide$0)
- )
-)
diff --git a/test/merge/basics.wast.combined.finalized b/test/merge/basics.wast.combined.finalized
deleted file mode 100644
index 6dbdd2c35..000000000
--- a/test/merge/basics.wast.combined.finalized
+++ /dev/null
@@ -1,133 +0,0 @@
-(module
- (type $ii (func (param i32 i32)))
- (type $FUNCSIG$v (func))
- (type $ii$0 (func (param i32 i32)))
- (type $FUNCSIG$v$0 (func))
- (import "env" "memory" (memory $0 256))
- (data (global.get $memoryBase) "hello, A!\n\00\00\00\00\00\00hello, B!\n\00\00\00\00\00\00")
- (import "env" "table" (table $0 18 funcref))
- (elem (global.get $tableBase) $only-a $willCollide $some-func $some-collide $only-a $some-func $only-b $willCollide$0 $some-func-b $some-collide$0)
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (import "env" "memoryBase" (global $memoryBase$0 i32))
- (import "env" "tableBase" (global $tableBase$0 i32))
- (import "env" "__memory_base" (global $__memory_base$0 i32))
- (import "env" "__table_base" (global $__table_base$0 i32))
- (import "env" "some-func" (func $some-func))
- (import "env" "some-collide" (func $some-collide))
- (import "env" "some-func-b" (func $some-func-b))
- (import "env" "some-collide" (func $some-collide$0))
- (global $global-collide i32 (i32.const 0))
- (global $global-collide-mut (mut i32) (i32.const 0))
- (global $global-a i32 (i32.const 1))
- (global $global-a-mut (mut i32) (i32.const 1))
- (global $global-collide$0 i32 (i32.const 0))
- (global $global-collide-mut$0 (mut i32) (i32.const 0))
- (global $global-b i32 (i32.const 1))
- (global $global-b-mut (mut i32) (i32.const 1))
- (export "exp-a" (func $only-a))
- (export "exp-collide" (func $only-a))
- (export "exp-collide2" (func $willCollide))
- (export "exp-b" (func $only-b))
- (export "exp-b-nameCollided" (func $willCollide$0))
- (func $only-a (; 4 ;) (type $FUNCSIG$v)
- (drop
- (i32.const 100)
- )
- (call $only-a)
- (call $some-func)
- (call $some-collide)
- (call_indirect (type $ii)
- (i32.const 123)
- (i32.const 456)
- (i32.const 789)
- )
- (drop
- (global.get $global-collide)
- )
- (drop
- (global.get $global-a)
- )
- (drop
- (global.get $global-a-mut)
- )
- (drop
- (global.get $memoryBase)
- )
- (drop
- (global.get $tableBase)
- )
- (global.set $global-collide-mut
- (i32.const 1234)
- )
- )
- (func $willCollide (; 5 ;) (type $FUNCSIG$v)
- (drop
- (i32.const 200)
- )
- (call $willCollide)
- )
- (func $only-b (; 6 ;) (type $FUNCSIG$v$0)
- (drop
- (i32.const 111)
- )
- (call $only-b)
- (call $some-func-b)
- (call $some-collide$0)
- (call_indirect (type $ii$0)
- (i32.const 12)
- (i32.const 34)
- (i32.const 56)
- )
- (drop
- (global.get $global-collide$0)
- )
- (drop
- (global.get $global-b)
- )
- (drop
- (global.get $global-b-mut)
- )
- (drop
- (global.get $memoryBase$0)
- )
- (drop
- (global.get $tableBase$0)
- )
- (drop
- (i32.add
- (global.get $memoryBase$0)
- (i32.const 1000)
- )
- )
- (drop
- (i32.add
- (global.get $tableBase$0)
- (i32.const 1000)
- )
- )
- (drop
- (i32.add
- (global.get $tableBase$0)
- (unreachable)
- )
- )
- (drop
- (i32.sub
- (global.get $tableBase$0)
- (i32.const 1000)
- )
- )
- (global.set $global-collide-mut$0
- (i32.const 5678)
- )
- )
- (func $willCollide$0 (; 7 ;) (type $FUNCSIG$v$0)
- (drop
- (i32.const 222)
- )
- (call $willCollide$0)
- )
-)
diff --git a/test/merge/basics.wast.combined.finalized.opt b/test/merge/basics.wast.combined.finalized.opt
deleted file mode 100644
index 057459c84..000000000
--- a/test/merge/basics.wast.combined.finalized.opt
+++ /dev/null
@@ -1,107 +0,0 @@
-(module
- (type $ii (func (param i32 i32)))
- (type $FUNCSIG$v (func))
- (import "env" "memory" (memory $0 256))
- (data (global.get $memoryBase) "hello, A!\n\00\00\00\00\00\00hello, B!\n")
- (import "env" "table" (table $0 18 funcref))
- (elem (global.get $tableBase) $only-a $willCollide $some-func $some-collide $only-a $some-func $only-b $willCollide$0 $some-func-b $some-collide$0)
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "memoryBase" (global $memoryBase$0 i32))
- (import "env" "tableBase" (global $tableBase$0 i32))
- (import "env" "some-func" (func $some-func))
- (import "env" "some-collide" (func $some-collide))
- (import "env" "some-func-b" (func $some-func-b))
- (import "env" "some-collide" (func $some-collide$0))
- (global $global-collide-mut (mut i32) (i32.const 0))
- (global $global-a-mut (mut i32) (i32.const 1))
- (global $global-collide-mut$0 (mut i32) (i32.const 0))
- (global $global-b-mut (mut i32) (i32.const 1))
- (export "exp-a" (func $only-a))
- (export "exp-collide" (func $only-a))
- (export "exp-collide2" (func $willCollide))
- (export "exp-b" (func $only-b))
- (export "exp-b-nameCollided" (func $willCollide$0))
- (func $only-a (; 4 ;) (type $FUNCSIG$v)
- (nop)
- (call $only-a)
- (call $some-func)
- (call $some-collide)
- (call_indirect (type $ii)
- (i32.const 123)
- (i32.const 456)
- (i32.const 789)
- )
- (nop)
- (nop)
- (drop
- (global.get $global-a-mut)
- )
- (drop
- (global.get $memoryBase)
- )
- (drop
- (global.get $tableBase)
- )
- (global.set $global-collide-mut
- (i32.const 1234)
- )
- )
- (func $willCollide (; 5 ;) (type $FUNCSIG$v)
- (nop)
- (call $willCollide)
- )
- (func $only-b (; 6 ;) (type $FUNCSIG$v)
- (nop)
- (call $only-b)
- (call $some-func-b)
- (call $some-collide$0)
- (call_indirect (type $ii)
- (i32.const 12)
- (i32.const 34)
- (i32.const 56)
- )
- (nop)
- (nop)
- (drop
- (global.get $global-b-mut)
- )
- (drop
- (global.get $memoryBase$0)
- )
- (drop
- (global.get $tableBase$0)
- )
- (drop
- (i32.add
- (global.get $memoryBase$0)
- (i32.const 1000)
- )
- )
- (drop
- (i32.add
- (global.get $tableBase$0)
- (i32.const 1000)
- )
- )
- (drop
- (i32.add
- (global.get $tableBase$0)
- (unreachable)
- )
- )
- (drop
- (i32.sub
- (global.get $tableBase$0)
- (i32.const 1000)
- )
- )
- (global.set $global-collide-mut$0
- (i32.const 5678)
- )
- )
- (func $willCollide$0 (; 7 ;) (type $FUNCSIG$v)
- (nop)
- (call $willCollide$0)
- )
-)
diff --git a/test/merge/basics.wast.combined.finalized.opt.stdout b/test/merge/basics.wast.combined.finalized.opt.stdout
deleted file mode 100644
index 9795060ae..000000000
--- a/test/merge/basics.wast.combined.finalized.opt.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 32
-merged total table size: 10
-merged functions: 8
diff --git a/test/merge/basics.wast.combined.finalized.stdout b/test/merge/basics.wast.combined.finalized.stdout
deleted file mode 100644
index 9795060ae..000000000
--- a/test/merge/basics.wast.combined.finalized.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 32
-merged total table size: 10
-merged functions: 8
diff --git a/test/merge/basics.wast.combined.opt b/test/merge/basics.wast.combined.opt
deleted file mode 100644
index 1c1b020fb..000000000
--- a/test/merge/basics.wast.combined.opt
+++ /dev/null
@@ -1,107 +0,0 @@
-(module
- (type $ii (func (param i32 i32)))
- (type $FUNCSIG$v (func))
- (import "env" "memory" (memory $0 256))
- (data (global.get $memoryBase) "hello, A!\n\00\00\00\00\00\00hello, B!\n")
- (import "env" "table" (table $0 10 funcref))
- (elem (global.get $tableBase) $only-a $willCollide $some-func $some-collide $only-a $some-func $only-b $willCollide$0 $some-func-b $some-collide$0)
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "memoryBase" (global $memoryBase$0 i32))
- (import "env" "tableBase" (global $tableBase$0 i32))
- (import "env" "some-func" (func $some-func))
- (import "env" "some-collide" (func $some-collide))
- (import "env" "some-func-b" (func $some-func-b))
- (import "env" "some-collide" (func $some-collide$0))
- (global $global-collide-mut (mut i32) (i32.const 0))
- (global $global-a-mut (mut i32) (i32.const 1))
- (global $global-collide-mut$0 (mut i32) (i32.const 0))
- (global $global-b-mut (mut i32) (i32.const 1))
- (export "exp-a" (func $only-a))
- (export "exp-collide" (func $only-a))
- (export "exp-collide2" (func $willCollide))
- (export "exp-b" (func $only-b))
- (export "exp-b-nameCollided" (func $willCollide$0))
- (func $only-a (; 4 ;) (type $FUNCSIG$v)
- (nop)
- (call $only-a)
- (call $some-func)
- (call $some-collide)
- (call_indirect (type $ii)
- (i32.const 123)
- (i32.const 456)
- (i32.const 789)
- )
- (nop)
- (nop)
- (drop
- (global.get $global-a-mut)
- )
- (drop
- (global.get $memoryBase)
- )
- (drop
- (global.get $tableBase)
- )
- (global.set $global-collide-mut
- (i32.const 1234)
- )
- )
- (func $willCollide (; 5 ;) (type $FUNCSIG$v)
- (nop)
- (call $willCollide)
- )
- (func $only-b (; 6 ;) (type $FUNCSIG$v)
- (nop)
- (call $only-b)
- (call $some-func-b)
- (call $some-collide$0)
- (call_indirect (type $ii)
- (i32.const 12)
- (i32.const 34)
- (i32.const 56)
- )
- (nop)
- (nop)
- (drop
- (global.get $global-b-mut)
- )
- (drop
- (global.get $memoryBase$0)
- )
- (drop
- (global.get $tableBase$0)
- )
- (drop
- (i32.add
- (global.get $memoryBase$0)
- (i32.const 1000)
- )
- )
- (drop
- (i32.add
- (global.get $tableBase$0)
- (i32.const 1000)
- )
- )
- (drop
- (i32.add
- (global.get $tableBase$0)
- (unreachable)
- )
- )
- (drop
- (i32.sub
- (global.get $tableBase$0)
- (i32.const 1000)
- )
- )
- (global.set $global-collide-mut$0
- (i32.const 5678)
- )
- )
- (func $willCollide$0 (; 7 ;) (type $FUNCSIG$v)
- (nop)
- (call $willCollide$0)
- )
-)
diff --git a/test/merge/basics.wast.combined.opt.stdout b/test/merge/basics.wast.combined.opt.stdout
deleted file mode 100644
index 9795060ae..000000000
--- a/test/merge/basics.wast.combined.opt.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 32
-merged total table size: 10
-merged functions: 8
diff --git a/test/merge/basics.wast.combined.stdout b/test/merge/basics.wast.combined.stdout
deleted file mode 100644
index 9795060ae..000000000
--- a/test/merge/basics.wast.combined.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 32
-merged total table size: 10
-merged functions: 8
diff --git a/test/merge/basics.wast.toMerge b/test/merge/basics.wast.toMerge
deleted file mode 100644
index 7230332cb..000000000
--- a/test/merge/basics.wast.toMerge
+++ /dev/null
@@ -1,65 +0,0 @@
-(module
- (type $ii (func (param i32 i32)))
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "memory" (memory $0 256))
- (import "env" "table" (table 0 funcref))
- (import "env" "some-func-b" (func $some-func-b))
- (import "env" "some-collide" (func $some-collide))
- (data (global.get $memoryBase) "hello, B!\n")
- (global $global-collide i32 (i32.const 0))
- (global $global-collide-mut (mut i32) (i32.const 0))
- (global $global-b i32 (i32.const 1))
- (global $global-b-mut (mut i32) (i32.const 1))
- (elem (global.get $tableBase) $only-b $willCollide $some-func-b $some-collide)
- (export "exp-b" (func $only-b))
- (export "exp-collide" (func $only-b))
- (export "exp-collide2" (func $willCollide))
- (export "exp-b-nameCollided" (func $willCollide))
- (func $only-b
- (drop (i32.const 111))
- (call $only-b)
- (call $some-func-b)
- (call $some-collide)
- (call_indirect (type $ii)
- (i32.const 12)
- (i32.const 34)
- (i32.const 56)
- )
- (drop (global.get $global-collide))
- (drop (global.get $global-b))
- (drop (global.get $global-b-mut))
- (drop (global.get $memoryBase))
- (drop (global.get $tableBase))
- (drop
- (i32.add
- (global.get $memoryBase)
- (i32.const 1000)
- )
- )
- (drop
- (i32.add
- (global.get $tableBase)
- (i32.const 1000)
- )
- )
- (drop
- (i32.add
- (global.get $tableBase)
- (unreachable) ;; bad!
- )
- )
- (drop
- (i32.sub ;; bad!
- (global.get $tableBase)
- (i32.const 1000)
- )
- )
- (global.set $global-collide-mut (i32.const 5678))
- )
- (func $willCollide
- (drop (i32.const 222))
- (call $willCollide)
- )
-)
-
diff --git a/test/merge/dylib.wasm b/test/merge/dylib.wasm
deleted file mode 100644
index 8df894a74..000000000
--- a/test/merge/dylib.wasm
+++ /dev/null
Binary files differ
diff --git a/test/merge/dylib.wasm.combined b/test/merge/dylib.wasm.combined
deleted file mode 100644
index 1e0543a5c..000000000
--- a/test/merge/dylib.wasm.combined
+++ /dev/null
@@ -1,101 +0,0 @@
-(module
- (type $0 (func (param i32 i32)))
- (type $1 (func (param i32) (result i32)))
- (type $2 (func (result i32)))
- (type $3 (func))
- (type $0$0 (func (param i32 i32)))
- (type $1$0 (func (result i32)))
- (type $2$0 (func))
- (import "env" "memory" (memory $2 256))
- (data (global.get $gimport$0) "hello, world!\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00")
- (import "env" "table" (table $timport$3 0 funcref))
- (import "env" "memoryBase" (global $gimport$0 i32))
- (import "env" "tableBase" (global $gimport$4 i32))
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (import "env" "memoryBase" (global $gimport$0$0 i32))
- (import "env" "tableBase" (global $gimport$4$0 i32))
- (import "env" "__memory_base" (global $__memory_base$0 i32))
- (import "env" "__table_base" (global $__table_base$0 i32))
- (import "env" "_puts" (func $import$1 (param i32) (result i32)))
- (global $global$0 (mut i32) (i32.const 0))
- (global $global$1 (mut i32) (i32.const 0))
- (global $global$2 i32 (i32.const 0))
- (global $global$0$0 (mut i32) (i32.const 0))
- (global $global$1$0 (mut i32) (i32.const 0))
- (export "__post_instantiate" (func $__post_instantiate))
- (export "_main" (func $_main))
- (export "runPostSets" (func $runPostSets))
- (export "_str" (global $global$2))
- (export "_foo" (func $_foo))
- (func $_main (; 1 ;) (type $2) (result i32)
- (block $label$1 (result i32)
- (block $label$2 (result i32)
- (drop
- (call $import$1
- (global.get $gimport$0)
- )
- )
- (i32.const 0)
- )
- )
- )
- (func $runPostSets (; 2 ;) (type $3)
- (block $label$1
- (nop)
- )
- )
- (func $__post_instantiate (; 3 ;) (type $3)
- (call $__post_instantiate$0)
- (block $label$1
- (block $label$2
- (global.set $global$0
- (i32.add
- (global.get $gimport$0)
- (i32.const 16)
- )
- )
- (global.set $global$1
- (i32.add
- (global.get $global$0)
- (i32.const 32)
- )
- )
- (call $runPostSets)
- )
- )
- )
- (func $_foo (; 4 ;) (type $1$0) (result i32)
- (local $0 i32)
- (block $label$1 (result i32)
- (block $label$2 (result i32)
- (local.set $0
- (call $_main)
- )
- (local.get $0)
- )
- )
- )
- (func $runPostSets$0 (; 5 ;) (type $2$0)
- (block $label$1
- (nop)
- )
- )
- (func $__post_instantiate$0 (; 6 ;) (type $2$0)
- (block $label$1
- (block $label$2
- (global.set $global$0$0
- (global.get $gimport$0$0)
- )
- (global.set $global$1$0
- (i32.add
- (global.get $global$0$0)
- (i32.const 10)
- )
- )
- (call $runPostSets$0)
- )
- )
- )
- ;; custom section "dylink", size 2
-)
diff --git a/test/merge/dylib.wasm.combined.finalized b/test/merge/dylib.wasm.combined.finalized
deleted file mode 100644
index f5808e177..000000000
--- a/test/merge/dylib.wasm.combined.finalized
+++ /dev/null
@@ -1,101 +0,0 @@
-(module
- (type $0 (func (param i32 i32)))
- (type $1 (func (param i32) (result i32)))
- (type $2 (func (result i32)))
- (type $3 (func))
- (type $0$0 (func (param i32 i32)))
- (type $1$0 (func (result i32)))
- (type $2$0 (func))
- (import "env" "memory" (memory $2 256))
- (data (global.get $gimport$0) "hello, world!\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00")
- (import "env" "table" (table $timport$3 8 funcref))
- (import "env" "memoryBase" (global $gimport$0 i32))
- (import "env" "tableBase" (global $gimport$4 i32))
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (import "env" "memoryBase" (global $gimport$0$0 i32))
- (import "env" "tableBase" (global $gimport$4$0 i32))
- (import "env" "__memory_base" (global $__memory_base$0 i32))
- (import "env" "__table_base" (global $__table_base$0 i32))
- (import "env" "_puts" (func $import$1 (param i32) (result i32)))
- (global $global$0 (mut i32) (i32.const 0))
- (global $global$1 (mut i32) (i32.const 0))
- (global $global$2 i32 (i32.const 0))
- (global $global$0$0 (mut i32) (i32.const 0))
- (global $global$1$0 (mut i32) (i32.const 0))
- (export "__post_instantiate" (func $__post_instantiate))
- (export "_main" (func $_main))
- (export "runPostSets" (func $runPostSets))
- (export "_str" (global $global$2))
- (export "_foo" (func $_foo))
- (func $_main (; 1 ;) (type $2) (result i32)
- (block $label$1 (result i32)
- (block $label$2 (result i32)
- (drop
- (call $import$1
- (global.get $gimport$0)
- )
- )
- (i32.const 0)
- )
- )
- )
- (func $runPostSets (; 2 ;) (type $3)
- (block $label$1
- (nop)
- )
- )
- (func $__post_instantiate (; 3 ;) (type $3)
- (call $__post_instantiate$0)
- (block $label$1
- (block $label$2
- (global.set $global$0
- (i32.add
- (global.get $gimport$0)
- (i32.const 16)
- )
- )
- (global.set $global$1
- (i32.add
- (global.get $global$0)
- (i32.const 32)
- )
- )
- (call $runPostSets)
- )
- )
- )
- (func $_foo (; 4 ;) (type $1$0) (result i32)
- (local $0 i32)
- (block $label$1 (result i32)
- (block $label$2 (result i32)
- (local.set $0
- (call $_main)
- )
- (local.get $0)
- )
- )
- )
- (func $runPostSets$0 (; 5 ;) (type $2$0)
- (block $label$1
- (nop)
- )
- )
- (func $__post_instantiate$0 (; 6 ;) (type $2$0)
- (block $label$1
- (block $label$2
- (global.set $global$0$0
- (global.get $gimport$0$0)
- )
- (global.set $global$1$0
- (i32.add
- (global.get $global$0$0)
- (i32.const 10)
- )
- )
- (call $runPostSets$0)
- )
- )
- )
- ;; custom section "dylink", size 2
-)
diff --git a/test/merge/dylib.wasm.combined.finalized.opt b/test/merge/dylib.wasm.combined.finalized.opt
deleted file mode 100644
index 9f1571ef6..000000000
--- a/test/merge/dylib.wasm.combined.finalized.opt
+++ /dev/null
@@ -1,87 +0,0 @@
-(module
- (type $1 (func (param i32) (result i32)))
- (type $2 (func (result i32)))
- (type $3 (func))
- (import "env" "memory" (memory $2 256))
- (data (global.get $gimport$0) "hello, world!")
- (import "env" "table" (table $timport$3 8 funcref))
- (import "env" "memoryBase" (global $gimport$0 i32))
- (import "env" "memoryBase" (global $gimport$0$0 i32))
- (import "env" "_puts" (func $import$1 (param i32) (result i32)))
- (global $global$0 (mut i32) (i32.const 0))
- (global $global$1 (mut i32) (i32.const 0))
- (global $global$2 i32 (i32.const 0))
- (global $global$0$0 (mut i32) (i32.const 0))
- (global $global$1$0 (mut i32) (i32.const 0))
- (export "__post_instantiate" (func $__post_instantiate))
- (export "_main" (func $_main))
- (export "runPostSets" (func $runPostSets))
- (export "_str" (global $global$2))
- (export "_foo" (func $_foo))
- (func $_main (; 1 ;) (type $2) (result i32)
- (block $label$1 (result i32)
- (block $label$2 (result i32)
- (drop
- (call $import$1
- (global.get $gimport$0)
- )
- )
- (i32.const 0)
- )
- )
- )
- (func $runPostSets (; 2 ;) (type $3)
- (nop)
- )
- (func $__post_instantiate (; 3 ;) (type $3)
- (call $__post_instantiate$0)
- (block $label$1
- (block $label$2
- (global.set $global$0
- (i32.add
- (global.get $gimport$0)
- (i32.const 16)
- )
- )
- (global.set $global$1
- (i32.add
- (global.get $global$0)
- (i32.const 32)
- )
- )
- (call $runPostSets)
- )
- )
- )
- (func $_foo (; 4 ;) (type $2) (result i32)
- (local $0 i32)
- (block $label$1 (result i32)
- (block $label$2 (result i32)
- (local.set $0
- (call $_main)
- )
- (local.get $0)
- )
- )
- )
- (func $runPostSets$0 (; 5 ;) (type $3)
- (nop)
- )
- (func $__post_instantiate$0 (; 6 ;) (type $3)
- (block $label$1
- (block $label$2
- (global.set $global$0$0
- (global.get $gimport$0$0)
- )
- (global.set $global$1$0
- (i32.add
- (global.get $global$0$0)
- (i32.const 10)
- )
- )
- (call $runPostSets$0)
- )
- )
- )
- ;; custom section "dylink", size 2
-)
diff --git a/test/merge/dylib.wasm.combined.finalized.opt.stdout b/test/merge/dylib.wasm.combined.finalized.opt.stdout
deleted file mode 100644
index ce210156f..000000000
--- a/test/merge/dylib.wasm.combined.finalized.opt.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 64
-merged total table size: 0
-merged functions: 7
diff --git a/test/merge/dylib.wasm.combined.finalized.stdout b/test/merge/dylib.wasm.combined.finalized.stdout
deleted file mode 100644
index ce210156f..000000000
--- a/test/merge/dylib.wasm.combined.finalized.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 64
-merged total table size: 0
-merged functions: 7
diff --git a/test/merge/dylib.wasm.combined.opt b/test/merge/dylib.wasm.combined.opt
deleted file mode 100644
index 947257bd8..000000000
--- a/test/merge/dylib.wasm.combined.opt
+++ /dev/null
@@ -1,88 +0,0 @@
-(module
- (type $1 (func (param i32) (result i32)))
- (type $2 (func (result i32)))
- (type $3 (func))
- (import "env" "memory" (memory $2 256))
- (data (global.get $gimport$0) "hello, world!")
- (import "env" "table" (table $timport$3 0 funcref))
- (import "env" "memoryBase" (global $gimport$0 i32))
- (import "env" "__table_base" (global $__table_base i32))
- (import "env" "memoryBase" (global $gimport$0$0 i32))
- (import "env" "_puts" (func $import$1 (param i32) (result i32)))
- (global $global$0 (mut i32) (i32.const 0))
- (global $global$1 (mut i32) (i32.const 0))
- (global $global$2 i32 (i32.const 0))
- (global $global$0$0 (mut i32) (i32.const 0))
- (global $global$1$0 (mut i32) (i32.const 0))
- (export "__post_instantiate" (func $__post_instantiate))
- (export "_main" (func $_main))
- (export "runPostSets" (func $runPostSets))
- (export "_str" (global $global$2))
- (export "_foo" (func $_foo))
- (func $_main (; 1 ;) (type $2) (result i32)
- (block $label$1 (result i32)
- (block $label$2 (result i32)
- (drop
- (call $import$1
- (global.get $gimport$0)
- )
- )
- (i32.const 0)
- )
- )
- )
- (func $runPostSets (; 2 ;) (type $3)
- (nop)
- )
- (func $__post_instantiate (; 3 ;) (type $3)
- (call $__post_instantiate$0)
- (block $label$1
- (block $label$2
- (global.set $global$0
- (i32.add
- (global.get $gimport$0)
- (i32.const 16)
- )
- )
- (global.set $global$1
- (i32.add
- (global.get $global$0)
- (i32.const 32)
- )
- )
- (call $runPostSets)
- )
- )
- )
- (func $_foo (; 4 ;) (type $2) (result i32)
- (local $0 i32)
- (block $label$1 (result i32)
- (block $label$2 (result i32)
- (local.set $0
- (call $_main)
- )
- (local.get $0)
- )
- )
- )
- (func $runPostSets$0 (; 5 ;) (type $3)
- (nop)
- )
- (func $__post_instantiate$0 (; 6 ;) (type $3)
- (block $label$1
- (block $label$2
- (global.set $global$0$0
- (global.get $gimport$0$0)
- )
- (global.set $global$1$0
- (i32.add
- (global.get $global$0$0)
- (i32.const 10)
- )
- )
- (call $runPostSets$0)
- )
- )
- )
- ;; custom section "dylink", size 2
-)
diff --git a/test/merge/dylib.wasm.combined.opt.stdout b/test/merge/dylib.wasm.combined.opt.stdout
deleted file mode 100644
index ce210156f..000000000
--- a/test/merge/dylib.wasm.combined.opt.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 64
-merged total table size: 0
-merged functions: 7
diff --git a/test/merge/dylib.wasm.combined.stdout b/test/merge/dylib.wasm.combined.stdout
deleted file mode 100644
index ce210156f..000000000
--- a/test/merge/dylib.wasm.combined.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 64
-merged total table size: 0
-merged functions: 7
diff --git a/test/merge/dylib.wasm.toMerge b/test/merge/dylib.wasm.toMerge
deleted file mode 100644
index 63ff1fd0a..000000000
--- a/test/merge/dylib.wasm.toMerge
+++ /dev/null
Binary files differ
diff --git a/test/merge/fusing.wast b/test/merge/fusing.wast
deleted file mode 100644
index 39b0167e0..000000000
--- a/test/merge/fusing.wast
+++ /dev/null
@@ -1,18 +0,0 @@
-(module
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "memory" (memory $0 256))
- (import "env" "table" (table 0 funcref))
- (export "foo" (func $foo-func))
- (import "env" "bar" (func $bar-func))
- (global $a-global i32 (i32.const 0))
- (export "aglobal" (global $a-global))
- (import "env" "bglobal" (global $b-global f64))
- (func $foo-func
- (drop (i32.const 1337))
- (call $bar-func)
- (drop (global.get $a-global))
- (drop (global.get $b-global))
- )
-)
-
diff --git a/test/merge/fusing.wast.combined b/test/merge/fusing.wast.combined
deleted file mode 100644
index 57b9839d0..000000000
--- a/test/merge/fusing.wast.combined
+++ /dev/null
@@ -1,47 +0,0 @@
-(module
- (type $FUNCSIG$v (func))
- (type $FUNCSIG$v$0 (func))
- (import "env" "memory" (memory $0 256))
- (data (global.get $__memory_base) "")
- (import "env" "table" (table $0 0 funcref))
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (import "env" "memoryBase" (global $memoryBase$0 i32))
- (import "env" "tableBase" (global $tableBase$0 i32))
- (import "env" "__memory_base" (global $__memory_base$0 i32))
- (import "env" "__table_base" (global $__table_base$0 i32))
- (global $a-global i32 (i32.const 0))
- (global $b-global$0 f64 (f64.const 2.14281428))
- (export "foo" (func $foo-func))
- (export "aglobal" (global $a-global))
- (export "bar" (func $bar-func$0))
- (export "bglobal" (global $b-global$0))
- (func $foo-func (; 0 ;) (type $FUNCSIG$v)
- (drop
- (i32.const 1337)
- )
- (call $bar-func$0)
- (drop
- (global.get $a-global)
- )
- (drop
- (global.get $b-global$0)
- )
- )
- (func $b (; 1 ;) (type $FUNCSIG$v$0)
- (call $foo-func)
- )
- (func $bar-func$0 (; 2 ;) (type $FUNCSIG$v$0)
- (drop
- (f64.const 3.14159)
- )
- (drop
- (global.get $a-global)
- )
- (drop
- (global.get $b-global$0)
- )
- )
-)
diff --git a/test/merge/fusing.wast.combined.finalized b/test/merge/fusing.wast.combined.finalized
deleted file mode 100644
index 3e61b13f9..000000000
--- a/test/merge/fusing.wast.combined.finalized
+++ /dev/null
@@ -1,47 +0,0 @@
-(module
- (type $FUNCSIG$v (func))
- (type $FUNCSIG$v$0 (func))
- (import "env" "memory" (memory $0 256))
- (data (i32.const 1024) "")
- (import "env" "table" (table $0 8 funcref))
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (import "env" "memoryBase" (global $memoryBase$0 i32))
- (import "env" "tableBase" (global $tableBase$0 i32))
- (import "env" "__memory_base" (global $__memory_base$0 i32))
- (import "env" "__table_base" (global $__table_base$0 i32))
- (global $a-global i32 (i32.const 0))
- (global $b-global$0 f64 (f64.const 2.14281428))
- (export "foo" (func $foo-func))
- (export "aglobal" (global $a-global))
- (export "bar" (func $bar-func$0))
- (export "bglobal" (global $b-global$0))
- (func $foo-func (; 0 ;) (type $FUNCSIG$v)
- (drop
- (i32.const 1337)
- )
- (call $bar-func$0)
- (drop
- (global.get $a-global)
- )
- (drop
- (global.get $b-global$0)
- )
- )
- (func $b (; 1 ;) (type $FUNCSIG$v$0)
- (call $foo-func)
- )
- (func $bar-func$0 (; 2 ;) (type $FUNCSIG$v$0)
- (drop
- (f64.const 3.14159)
- )
- (drop
- (global.get $a-global)
- )
- (drop
- (global.get $b-global$0)
- )
- )
-)
diff --git a/test/merge/fusing.wast.combined.finalized.opt b/test/merge/fusing.wast.combined.finalized.opt
deleted file mode 100644
index 53a226ebf..000000000
--- a/test/merge/fusing.wast.combined.finalized.opt
+++ /dev/null
@@ -1,20 +0,0 @@
-(module
- (type $FUNCSIG$v (func))
- (import "env" "memory" (memory $0 256))
- (import "env" "table" (table $0 8 funcref))
- (global $a-global i32 (i32.const 0))
- (global $b-global$0 f64 (f64.const 2.14281428))
- (export "foo" (func $foo-func))
- (export "aglobal" (global $a-global))
- (export "bar" (func $bar-func$0))
- (export "bglobal" (global $b-global$0))
- (func $foo-func (; 0 ;) (type $FUNCSIG$v)
- (nop)
- (call $bar-func$0)
- (nop)
- (nop)
- )
- (func $bar-func$0 (; 1 ;) (type $FUNCSIG$v)
- (nop)
- )
-)
diff --git a/test/merge/fusing.wast.combined.finalized.opt.stdout b/test/merge/fusing.wast.combined.finalized.opt.stdout
deleted file mode 100644
index 80b514d22..000000000
--- a/test/merge/fusing.wast.combined.finalized.opt.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 0
-merged total table size: 0
-merged functions: 3
diff --git a/test/merge/fusing.wast.combined.finalized.stdout b/test/merge/fusing.wast.combined.finalized.stdout
deleted file mode 100644
index 80b514d22..000000000
--- a/test/merge/fusing.wast.combined.finalized.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 0
-merged total table size: 0
-merged functions: 3
diff --git a/test/merge/fusing.wast.combined.opt b/test/merge/fusing.wast.combined.opt
deleted file mode 100644
index a067bea4f..000000000
--- a/test/merge/fusing.wast.combined.opt
+++ /dev/null
@@ -1,23 +0,0 @@
-(module
- (type $FUNCSIG$v (func))
- (import "env" "memory" (memory $0 256))
- (data (global.get $__memory_base) "")
- (import "env" "table" (table $0 0 funcref))
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (global $a-global i32 (i32.const 0))
- (global $b-global$0 f64 (f64.const 2.14281428))
- (export "foo" (func $foo-func))
- (export "aglobal" (global $a-global))
- (export "bar" (func $bar-func$0))
- (export "bglobal" (global $b-global$0))
- (func $foo-func (; 0 ;) (type $FUNCSIG$v)
- (nop)
- (call $bar-func$0)
- (nop)
- (nop)
- )
- (func $bar-func$0 (; 1 ;) (type $FUNCSIG$v)
- (nop)
- )
-)
diff --git a/test/merge/fusing.wast.combined.opt.stdout b/test/merge/fusing.wast.combined.opt.stdout
deleted file mode 100644
index 80b514d22..000000000
--- a/test/merge/fusing.wast.combined.opt.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 0
-merged total table size: 0
-merged functions: 3
diff --git a/test/merge/fusing.wast.combined.stdout b/test/merge/fusing.wast.combined.stdout
deleted file mode 100644
index 80b514d22..000000000
--- a/test/merge/fusing.wast.combined.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 0
-merged total table size: 0
-merged functions: 3
diff --git a/test/merge/fusing.wast.toMerge b/test/merge/fusing.wast.toMerge
deleted file mode 100644
index 8d17795b1..000000000
--- a/test/merge/fusing.wast.toMerge
+++ /dev/null
@@ -1,20 +0,0 @@
-(module
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "memory" (memory $0 256))
- (import "env" "table" (table 0 funcref))
- (import "env" "foo" (func $b-foo))
- (export "bar" (func $bar-func))
- (global $b-global f64 (f64.const 2.14281428))
- (export "bglobal" (global $b-global))
- (import "env" "aglobal" (global $a-global i32))
- (func $b
- (call $b-foo)
- )
- (func $bar-func
- (drop (f64.const 3.14159))
- (drop (global.get $a-global))
- (drop (global.get $b-global))
- )
-)
-
diff --git a/test/merge/global-init.wast b/test/merge/global-init.wast
deleted file mode 100644
index 1f392d96c..000000000
--- a/test/merge/global-init.wast
+++ /dev/null
@@ -1,12 +0,0 @@
-(module
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "memory" (memory $0 256))
- (import "env" "table" (table 0 funcref))
- (import "env" "globally" (global $i-collide i32))
- (global $a i32 (global.get $i-collide))
- (global $a-mut (mut i32) (global.get $i-collide))
- (global $g-collide i32 (global.get $i-collide))
- (global $g-collide-mut (mut i32) (global.get $i-collide))
-)
-
diff --git a/test/merge/global-init.wast.combined b/test/merge/global-init.wast.combined
deleted file mode 100644
index deb4d2635..000000000
--- a/test/merge/global-init.wast.combined
+++ /dev/null
@@ -1,23 +0,0 @@
-(module
- (import "env" "memory" (memory $0 256))
- (data (global.get $__memory_base) "")
- (import "env" "table" (table $0 0 funcref))
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "globally" (global $i-collide i32))
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (import "env" "memoryBase" (global $memoryBase$0 i32))
- (import "env" "tableBase" (global $tableBase$0 i32))
- (import "env" "globally" (global $i-collide$0 f64))
- (import "env" "__memory_base" (global $__memory_base$0 i32))
- (import "env" "__table_base" (global $__table_base$0 i32))
- (global $a i32 (global.get $i-collide))
- (global $a-mut (mut i32) (global.get $i-collide))
- (global $g-collide i32 (global.get $i-collide))
- (global $g-collide-mut (mut i32) (global.get $i-collide))
- (global $b f64 (global.get $i-collide$0))
- (global $b-mut (mut f64) (global.get $i-collide$0))
- (global $g-collide$0 f64 (global.get $i-collide$0))
- (global $g-collide-mut$0 (mut f64) (global.get $i-collide$0))
-)
diff --git a/test/merge/global-init.wast.combined.finalized b/test/merge/global-init.wast.combined.finalized
deleted file mode 100644
index bbebd4dd5..000000000
--- a/test/merge/global-init.wast.combined.finalized
+++ /dev/null
@@ -1,23 +0,0 @@
-(module
- (import "env" "memory" (memory $0 256))
- (data (i32.const 1024) "")
- (import "env" "table" (table $0 8 funcref))
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "globally" (global $i-collide i32))
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (import "env" "memoryBase" (global $memoryBase$0 i32))
- (import "env" "tableBase" (global $tableBase$0 i32))
- (import "env" "globally" (global $i-collide$0 f64))
- (import "env" "__memory_base" (global $__memory_base$0 i32))
- (import "env" "__table_base" (global $__table_base$0 i32))
- (global $a i32 (global.get $i-collide))
- (global $a-mut (mut i32) (global.get $i-collide))
- (global $g-collide i32 (global.get $i-collide))
- (global $g-collide-mut (mut i32) (global.get $i-collide))
- (global $b f64 (global.get $i-collide$0))
- (global $b-mut (mut f64) (global.get $i-collide$0))
- (global $g-collide$0 f64 (global.get $i-collide$0))
- (global $g-collide-mut$0 (mut f64) (global.get $i-collide$0))
-)
diff --git a/test/merge/global-init.wast.combined.finalized.opt b/test/merge/global-init.wast.combined.finalized.opt
deleted file mode 100644
index ed7bcd6cb..000000000
--- a/test/merge/global-init.wast.combined.finalized.opt
+++ /dev/null
@@ -1,4 +0,0 @@
-(module
- (import "env" "memory" (memory $0 256))
- (import "env" "table" (table $0 8 funcref))
-)
diff --git a/test/merge/global-init.wast.combined.finalized.opt.stdout b/test/merge/global-init.wast.combined.finalized.opt.stdout
deleted file mode 100644
index 361590ef0..000000000
--- a/test/merge/global-init.wast.combined.finalized.opt.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 0
-merged total table size: 0
-merged functions: 0
diff --git a/test/merge/global-init.wast.combined.finalized.stdout b/test/merge/global-init.wast.combined.finalized.stdout
deleted file mode 100644
index 361590ef0..000000000
--- a/test/merge/global-init.wast.combined.finalized.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 0
-merged total table size: 0
-merged functions: 0
diff --git a/test/merge/global-init.wast.combined.opt b/test/merge/global-init.wast.combined.opt
deleted file mode 100644
index 797b1b82b..000000000
--- a/test/merge/global-init.wast.combined.opt
+++ /dev/null
@@ -1,7 +0,0 @@
-(module
- (import "env" "memory" (memory $0 256))
- (data (global.get $__memory_base) "")
- (import "env" "table" (table $0 0 funcref))
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
-)
diff --git a/test/merge/global-init.wast.combined.opt.stdout b/test/merge/global-init.wast.combined.opt.stdout
deleted file mode 100644
index 361590ef0..000000000
--- a/test/merge/global-init.wast.combined.opt.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 0
-merged total table size: 0
-merged functions: 0
diff --git a/test/merge/global-init.wast.combined.stdout b/test/merge/global-init.wast.combined.stdout
deleted file mode 100644
index 361590ef0..000000000
--- a/test/merge/global-init.wast.combined.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 0
-merged total table size: 0
-merged functions: 0
diff --git a/test/merge/global-init.wast.toMerge b/test/merge/global-init.wast.toMerge
deleted file mode 100644
index 80f450dae..000000000
--- a/test/merge/global-init.wast.toMerge
+++ /dev/null
@@ -1,12 +0,0 @@
-(module
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "memory" (memory $0 256))
- (import "env" "table" (table 0 funcref))
- (import "env" "globally" (global $i-collide f64))
- (global $b f64 (global.get $i-collide))
- (global $b-mut (mut f64) (global.get $i-collide))
- (global $g-collide f64 (global.get $i-collide))
- (global $g-collide-mut (mut f64) (global.get $i-collide))
-)
-
diff --git a/test/merge/main-lacks-segments.wast b/test/merge/main-lacks-segments.wast
deleted file mode 100644
index 7357e96e9..000000000
--- a/test/merge/main-lacks-segments.wast
+++ /dev/null
@@ -1,7 +0,0 @@
-(module
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "memory" (memory $0 256))
- (import "env" "table" (table 0 funcref))
-)
-
diff --git a/test/merge/main-lacks-segments.wast.combined b/test/merge/main-lacks-segments.wast.combined
deleted file mode 100644
index d48a8f812..000000000
--- a/test/merge/main-lacks-segments.wast.combined
+++ /dev/null
@@ -1,23 +0,0 @@
-(module
- (type $0 (func))
- (import "env" "memory" (memory $0 256))
- (data (global.get $__memory_base) "hello, this is some data!\00\00\00\00\00\00\00")
- (import "env" "table" (table $0 2 funcref))
- (elem (global.get $__table_base) $foo $foo)
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (import "env" "memoryBase" (global $memoryBase$0 i32))
- (import "env" "tableBase" (global $tableBase$0 i32))
- (import "env" "__memory_base" (global $__memory_base$0 i32))
- (import "env" "__table_base" (global $__table_base$0 i32))
- (func $foo (; 0 ;) (type $0)
- (drop
- (global.get $tableBase$0)
- )
- (drop
- (global.get $memoryBase$0)
- )
- )
-)
diff --git a/test/merge/main-lacks-segments.wast.combined.finalized b/test/merge/main-lacks-segments.wast.combined.finalized
deleted file mode 100644
index 48ed4f341..000000000
--- a/test/merge/main-lacks-segments.wast.combined.finalized
+++ /dev/null
@@ -1,23 +0,0 @@
-(module
- (type $0 (func))
- (import "env" "memory" (memory $0 256))
- (data (i32.const 1024) "hello, this is some data!\00\00\00\00\00\00\00")
- (import "env" "table" (table $0 10 funcref))
- (elem (i32.const 8) $foo $foo)
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (import "env" "memoryBase" (global $memoryBase$0 i32))
- (import "env" "tableBase" (global $tableBase$0 i32))
- (import "env" "__memory_base" (global $__memory_base$0 i32))
- (import "env" "__table_base" (global $__table_base$0 i32))
- (func $foo (; 0 ;) (type $0)
- (drop
- (global.get $tableBase$0)
- )
- (drop
- (global.get $memoryBase$0)
- )
- )
-)
diff --git a/test/merge/main-lacks-segments.wast.combined.finalized.opt b/test/merge/main-lacks-segments.wast.combined.finalized.opt
deleted file mode 100644
index fa8af7d41..000000000
--- a/test/merge/main-lacks-segments.wast.combined.finalized.opt
+++ /dev/null
@@ -1,17 +0,0 @@
-(module
- (type $0 (func))
- (import "env" "memory" (memory $0 256))
- (data (i32.const 1024) "hello, this is some data!")
- (import "env" "table" (table $0 10 funcref))
- (elem (i32.const 8) $foo $foo)
- (import "env" "memoryBase" (global $memoryBase$0 i32))
- (import "env" "tableBase" (global $tableBase$0 i32))
- (func $foo (; 0 ;) (type $0)
- (drop
- (global.get $tableBase$0)
- )
- (drop
- (global.get $memoryBase$0)
- )
- )
-)
diff --git a/test/merge/main-lacks-segments.wast.combined.finalized.opt.stdout b/test/merge/main-lacks-segments.wast.combined.finalized.opt.stdout
deleted file mode 100644
index 5e72852f9..000000000
--- a/test/merge/main-lacks-segments.wast.combined.finalized.opt.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 32
-merged total table size: 2
-merged functions: 1
diff --git a/test/merge/main-lacks-segments.wast.combined.finalized.stdout b/test/merge/main-lacks-segments.wast.combined.finalized.stdout
deleted file mode 100644
index 5e72852f9..000000000
--- a/test/merge/main-lacks-segments.wast.combined.finalized.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 32
-merged total table size: 2
-merged functions: 1
diff --git a/test/merge/main-lacks-segments.wast.combined.opt b/test/merge/main-lacks-segments.wast.combined.opt
deleted file mode 100644
index c203b092a..000000000
--- a/test/merge/main-lacks-segments.wast.combined.opt
+++ /dev/null
@@ -1,19 +0,0 @@
-(module
- (type $0 (func))
- (import "env" "memory" (memory $0 256))
- (data (global.get $__memory_base) "hello, this is some data!")
- (import "env" "table" (table $0 2 funcref))
- (elem (global.get $__table_base) $foo $foo)
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (import "env" "memoryBase" (global $memoryBase$0 i32))
- (import "env" "tableBase" (global $tableBase$0 i32))
- (func $foo (; 0 ;) (type $0)
- (drop
- (global.get $tableBase$0)
- )
- (drop
- (global.get $memoryBase$0)
- )
- )
-)
diff --git a/test/merge/main-lacks-segments.wast.combined.opt.stdout b/test/merge/main-lacks-segments.wast.combined.opt.stdout
deleted file mode 100644
index 5e72852f9..000000000
--- a/test/merge/main-lacks-segments.wast.combined.opt.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 32
-merged total table size: 2
-merged functions: 1
diff --git a/test/merge/main-lacks-segments.wast.combined.stdout b/test/merge/main-lacks-segments.wast.combined.stdout
deleted file mode 100644
index 5e72852f9..000000000
--- a/test/merge/main-lacks-segments.wast.combined.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 32
-merged total table size: 2
-merged functions: 1
diff --git a/test/merge/main-lacks-segments.wast.toMerge b/test/merge/main-lacks-segments.wast.toMerge
deleted file mode 100644
index a35c605db..000000000
--- a/test/merge/main-lacks-segments.wast.toMerge
+++ /dev/null
@@ -1,13 +0,0 @@
-(module
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "memory" (memory $0 256))
- (import "env" "table" (table 0 funcref))
- (elem (global.get $tableBase) $foo)
- (data (global.get $memoryBase) "hello, this is some data!")
- (func $foo
- (drop (global.get $tableBase))
- (drop (global.get $memoryBase))
- )
-)
-
diff --git a/test/merge/noBases.wast b/test/merge/noBases.wast
deleted file mode 100644
index 41d5694ef..000000000
--- a/test/merge/noBases.wast
+++ /dev/null
@@ -1,34 +0,0 @@
-(module
- (type $ii (func (param i32 i32)))
- (import "env" "memory" (memory $0 256))
- (import "env" "table" (table 1000 funcref))
- (import "env" "some-func" (func $some-func))
- (import "env" "some-collide" (func $some-collide))
- (data (i32.const 100) "hello, A!\n")
- (global $global-collide i32 (i32.const 0))
- (global $global-collide-mut (mut i32) (i32.const 0))
- (global $global-a i32 (i32.const 1))
- (elem (i32.const 10) $only-a $willCollide $some-func $some-collide $only-a)
- (export "exp-a" (func $only-a))
- (export "exp-collide" (func $only-a))
- (export "exp-collide2" (func $willCollide))
- (func $only-a
- (drop (i32.const 100))
- (call $only-a)
- (call $some-func)
- (call $some-collide)
- (call_indirect (type $ii)
- (i32.const 123)
- (i32.const 456)
- (i32.const 789)
- )
- (drop (global.get $global-collide))
- (drop (global.get $global-a))
- (global.set $global-collide-mut (i32.const 1234))
- )
- (func $willCollide
- (drop (i32.const 200))
- (call $willCollide)
- )
-)
-
diff --git a/test/merge/noBases.wast.combined b/test/merge/noBases.wast.combined
deleted file mode 100644
index db9b546ce..000000000
--- a/test/merge/noBases.wast.combined
+++ /dev/null
@@ -1,88 +0,0 @@
-(module
- (type $ii (func (param i32 i32)))
- (type $FUNCSIG$v (func))
- (type $ii$0 (func (param i32 i32)))
- (type $FUNCSIG$v$0 (func))
- (import "env" "memory" (memory $0 256))
- (data (i32.const 100) "hello, A!\n")
- (data (global.get $__memory_base) "")
- (data (i32.const 200) "hello, B!\n")
- (import "env" "table" (table $0 1000 funcref))
- (elem (i32.const 10) $only-a $willCollide $some-func $some-collide $only-a)
- (elem (i32.const 20) $only-b $willCollide $some-func-b $some-collide)
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (import "env" "__memory_base" (global $__memory_base$0 i32))
- (import "env" "__table_base" (global $__table_base$0 i32))
- (import "env" "some-func" (func $some-func))
- (import "env" "some-collide" (func $some-collide))
- (import "env" "some-func-b" (func $some-func-b))
- (import "env" "some-collide" (func $some-collide$0))
- (global $global-collide i32 (i32.const 0))
- (global $global-collide-mut (mut i32) (i32.const 0))
- (global $global-a i32 (i32.const 1))
- (global $global-collide$0 i32 (i32.const 0))
- (global $global-collide-mut$0 (mut i32) (i32.const 0))
- (global $global-b i32 (i32.const 1))
- (export "exp-a" (func $only-a))
- (export "exp-collide" (func $only-a))
- (export "exp-collide2" (func $willCollide))
- (export "exp-b" (func $only-b))
- (export "exp-b-nameCollided" (func $willCollide$0))
- (func $only-a (; 4 ;) (type $FUNCSIG$v)
- (drop
- (i32.const 100)
- )
- (call $only-a)
- (call $some-func)
- (call $some-collide)
- (call_indirect (type $ii)
- (i32.const 123)
- (i32.const 456)
- (i32.const 789)
- )
- (drop
- (global.get $global-collide)
- )
- (drop
- (global.get $global-a)
- )
- (global.set $global-collide-mut
- (i32.const 1234)
- )
- )
- (func $willCollide (; 5 ;) (type $FUNCSIG$v)
- (drop
- (i32.const 200)
- )
- (call $willCollide)
- )
- (func $only-b (; 6 ;) (type $FUNCSIG$v$0)
- (drop
- (i32.const 111)
- )
- (call $only-b)
- (call $some-func-b)
- (call $some-collide$0)
- (call_indirect (type $ii$0)
- (i32.const 12)
- (i32.const 34)
- (i32.const 56)
- )
- (drop
- (global.get $global-collide$0)
- )
- (drop
- (global.get $global-b)
- )
- (global.set $global-collide-mut$0
- (i32.const 5678)
- )
- )
- (func $willCollide$0 (; 7 ;) (type $FUNCSIG$v$0)
- (drop
- (i32.const 222)
- )
- (call $willCollide$0)
- )
-)
diff --git a/test/merge/noBases.wast.combined.finalized b/test/merge/noBases.wast.combined.finalized
deleted file mode 100644
index 62ca6dc06..000000000
--- a/test/merge/noBases.wast.combined.finalized
+++ /dev/null
@@ -1,88 +0,0 @@
-(module
- (type $ii (func (param i32 i32)))
- (type $FUNCSIG$v (func))
- (type $ii$0 (func (param i32 i32)))
- (type $FUNCSIG$v$0 (func))
- (import "env" "memory" (memory $0 256))
- (data (i32.const 100) "hello, A!\n")
- (data (i32.const 1024) "")
- (data (i32.const 200) "hello, B!\n")
- (import "env" "table" (table $0 1000 funcref))
- (elem (i32.const 10) $only-a $willCollide $some-func $some-collide $only-a)
- (elem (i32.const 20) $only-b $willCollide $some-func-b $some-collide)
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (import "env" "__memory_base" (global $__memory_base$0 i32))
- (import "env" "__table_base" (global $__table_base$0 i32))
- (import "env" "some-func" (func $some-func))
- (import "env" "some-collide" (func $some-collide))
- (import "env" "some-func-b" (func $some-func-b))
- (import "env" "some-collide" (func $some-collide$0))
- (global $global-collide i32 (i32.const 0))
- (global $global-collide-mut (mut i32) (i32.const 0))
- (global $global-a i32 (i32.const 1))
- (global $global-collide$0 i32 (i32.const 0))
- (global $global-collide-mut$0 (mut i32) (i32.const 0))
- (global $global-b i32 (i32.const 1))
- (export "exp-a" (func $only-a))
- (export "exp-collide" (func $only-a))
- (export "exp-collide2" (func $willCollide))
- (export "exp-b" (func $only-b))
- (export "exp-b-nameCollided" (func $willCollide$0))
- (func $only-a (; 4 ;) (type $FUNCSIG$v)
- (drop
- (i32.const 100)
- )
- (call $only-a)
- (call $some-func)
- (call $some-collide)
- (call_indirect (type $ii)
- (i32.const 123)
- (i32.const 456)
- (i32.const 789)
- )
- (drop
- (global.get $global-collide)
- )
- (drop
- (global.get $global-a)
- )
- (global.set $global-collide-mut
- (i32.const 1234)
- )
- )
- (func $willCollide (; 5 ;) (type $FUNCSIG$v)
- (drop
- (i32.const 200)
- )
- (call $willCollide)
- )
- (func $only-b (; 6 ;) (type $FUNCSIG$v$0)
- (drop
- (i32.const 111)
- )
- (call $only-b)
- (call $some-func-b)
- (call $some-collide$0)
- (call_indirect (type $ii$0)
- (i32.const 12)
- (i32.const 34)
- (i32.const 56)
- )
- (drop
- (global.get $global-collide$0)
- )
- (drop
- (global.get $global-b)
- )
- (global.set $global-collide-mut$0
- (i32.const 5678)
- )
- )
- (func $willCollide$0 (; 7 ;) (type $FUNCSIG$v$0)
- (drop
- (i32.const 222)
- )
- (call $willCollide$0)
- )
-)
diff --git a/test/merge/noBases.wast.combined.finalized.opt b/test/merge/noBases.wast.combined.finalized.opt
deleted file mode 100644
index b05e78310..000000000
--- a/test/merge/noBases.wast.combined.finalized.opt
+++ /dev/null
@@ -1,61 +0,0 @@
-(module
- (type $ii (func (param i32 i32)))
- (type $FUNCSIG$v (func))
- (import "env" "memory" (memory $0 256))
- (data (i32.const 100) "hello, A!\n")
- (data (i32.const 200) "hello, B!\n")
- (import "env" "table" (table $0 1000 funcref))
- (elem (i32.const 10) $only-a $willCollide $some-func $some-collide $only-a)
- (elem (i32.const 20) $only-b $willCollide $some-func-b $some-collide)
- (import "env" "some-func" (func $some-func))
- (import "env" "some-collide" (func $some-collide))
- (import "env" "some-func-b" (func $some-func-b))
- (import "env" "some-collide" (func $some-collide$0))
- (global $global-collide-mut (mut i32) (i32.const 0))
- (global $global-collide-mut$0 (mut i32) (i32.const 0))
- (export "exp-a" (func $only-a))
- (export "exp-collide" (func $only-a))
- (export "exp-collide2" (func $willCollide))
- (export "exp-b" (func $only-b))
- (export "exp-b-nameCollided" (func $willCollide$0))
- (func $only-a (; 4 ;) (type $FUNCSIG$v)
- (nop)
- (call $only-a)
- (call $some-func)
- (call $some-collide)
- (call_indirect (type $ii)
- (i32.const 123)
- (i32.const 456)
- (i32.const 789)
- )
- (nop)
- (nop)
- (global.set $global-collide-mut
- (i32.const 1234)
- )
- )
- (func $willCollide (; 5 ;) (type $FUNCSIG$v)
- (nop)
- (call $willCollide)
- )
- (func $only-b (; 6 ;) (type $FUNCSIG$v)
- (nop)
- (call $only-b)
- (call $some-func-b)
- (call $some-collide$0)
- (call_indirect (type $ii)
- (i32.const 12)
- (i32.const 34)
- (i32.const 56)
- )
- (nop)
- (nop)
- (global.set $global-collide-mut$0
- (i32.const 5678)
- )
- )
- (func $willCollide$0 (; 7 ;) (type $FUNCSIG$v)
- (nop)
- (call $willCollide$0)
- )
-)
diff --git a/test/merge/noBases.wast.combined.finalized.opt.stdout b/test/merge/noBases.wast.combined.finalized.opt.stdout
deleted file mode 100644
index 9227c4942..000000000
--- a/test/merge/noBases.wast.combined.finalized.opt.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 10
-merged total table size: 5
-merged functions: 8
diff --git a/test/merge/noBases.wast.combined.finalized.stdout b/test/merge/noBases.wast.combined.finalized.stdout
deleted file mode 100644
index 9227c4942..000000000
--- a/test/merge/noBases.wast.combined.finalized.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 10
-merged total table size: 5
-merged functions: 8
diff --git a/test/merge/noBases.wast.combined.opt b/test/merge/noBases.wast.combined.opt
deleted file mode 100644
index f20b16336..000000000
--- a/test/merge/noBases.wast.combined.opt
+++ /dev/null
@@ -1,64 +0,0 @@
-(module
- (type $ii (func (param i32 i32)))
- (type $FUNCSIG$v (func))
- (import "env" "memory" (memory $0 256))
- (data (i32.const 100) "hello, A!\n")
- (data (global.get $__memory_base) "")
- (data (i32.const 200) "hello, B!\n")
- (import "env" "table" (table $0 1000 funcref))
- (elem (i32.const 10) $only-a $willCollide $some-func $some-collide $only-a)
- (elem (i32.const 20) $only-b $willCollide $some-func-b $some-collide)
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (import "env" "some-func" (func $some-func))
- (import "env" "some-collide" (func $some-collide))
- (import "env" "some-func-b" (func $some-func-b))
- (import "env" "some-collide" (func $some-collide$0))
- (global $global-collide-mut (mut i32) (i32.const 0))
- (global $global-collide-mut$0 (mut i32) (i32.const 0))
- (export "exp-a" (func $only-a))
- (export "exp-collide" (func $only-a))
- (export "exp-collide2" (func $willCollide))
- (export "exp-b" (func $only-b))
- (export "exp-b-nameCollided" (func $willCollide$0))
- (func $only-a (; 4 ;) (type $FUNCSIG$v)
- (nop)
- (call $only-a)
- (call $some-func)
- (call $some-collide)
- (call_indirect (type $ii)
- (i32.const 123)
- (i32.const 456)
- (i32.const 789)
- )
- (nop)
- (nop)
- (global.set $global-collide-mut
- (i32.const 1234)
- )
- )
- (func $willCollide (; 5 ;) (type $FUNCSIG$v)
- (nop)
- (call $willCollide)
- )
- (func $only-b (; 6 ;) (type $FUNCSIG$v)
- (nop)
- (call $only-b)
- (call $some-func-b)
- (call $some-collide$0)
- (call_indirect (type $ii)
- (i32.const 12)
- (i32.const 34)
- (i32.const 56)
- )
- (nop)
- (nop)
- (global.set $global-collide-mut$0
- (i32.const 5678)
- )
- )
- (func $willCollide$0 (; 7 ;) (type $FUNCSIG$v)
- (nop)
- (call $willCollide$0)
- )
-)
diff --git a/test/merge/noBases.wast.combined.opt.stdout b/test/merge/noBases.wast.combined.opt.stdout
deleted file mode 100644
index 9227c4942..000000000
--- a/test/merge/noBases.wast.combined.opt.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 10
-merged total table size: 5
-merged functions: 8
diff --git a/test/merge/noBases.wast.combined.stdout b/test/merge/noBases.wast.combined.stdout
deleted file mode 100644
index 9227c4942..000000000
--- a/test/merge/noBases.wast.combined.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 10
-merged total table size: 5
-merged functions: 8
diff --git a/test/merge/noBases.wast.toMerge b/test/merge/noBases.wast.toMerge
deleted file mode 100644
index 6e6145a15..000000000
--- a/test/merge/noBases.wast.toMerge
+++ /dev/null
@@ -1,35 +0,0 @@
-(module
- (type $ii (func (param i32 i32)))
- (import "env" "memory" (memory $0 256))
- (import "env" "table" (table 1000 funcref))
- (import "env" "some-func-b" (func $some-func-b))
- (import "env" "some-collide" (func $some-collide))
- (data (i32.const 200) "hello, B!\n")
- (global $global-collide i32 (i32.const 0))
- (global $global-collide-mut (mut i32) (i32.const 0))
- (global $global-b i32 (i32.const 1))
- (elem (i32.const 20) $only-b $willCollide $some-func-b $some-collide)
- (export "exp-b" (func $only-b))
- (export "exp-collide" (func $only-b))
- (export "exp-collide2" (func $willCollide))
- (export "exp-b-nameCollided" (func $willCollide))
- (func $only-b
- (drop (i32.const 111))
- (call $only-b)
- (call $some-func-b)
- (call $some-collide)
- (call_indirect (type $ii)
- (i32.const 12)
- (i32.const 34)
- (i32.const 56)
- )
- (drop (global.get $global-collide))
- (drop (global.get $global-b))
- (global.set $global-collide-mut (i32.const 5678))
- )
- (func $willCollide
- (drop (i32.const 222))
- (call $willCollide)
- )
-)
-
diff --git a/test/merge/post-instantiate-a.wast b/test/merge/post-instantiate-a.wast
deleted file mode 100644
index 5099df574..000000000
--- a/test/merge/post-instantiate-a.wast
+++ /dev/null
@@ -1,9 +0,0 @@
-(module
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (export "__post_instantiate" (func $0))
- (func $0
- (drop (i32.const 1000))
- )
-)
-
diff --git a/test/merge/post-instantiate-a.wast.combined b/test/merge/post-instantiate-a.wast.combined
deleted file mode 100644
index 90a8a5d36..000000000
--- a/test/merge/post-instantiate-a.wast.combined
+++ /dev/null
@@ -1,21 +0,0 @@
-(module
- (type $0 (func))
- (type $0$0 (func))
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (import "env" "memoryBase" (global $memoryBase$0 i32))
- (import "env" "tableBase" (global $tableBase$0 i32))
- (import "env" "__memory_base" (global $__memory_base$0 i32))
- (import "env" "__table_base" (global $__table_base$0 i32))
- (export "__post_instantiate" (func $0))
- (func $0 (; 0 ;) (type $0)
- (drop
- (i32.const 1000)
- )
- )
- (func $0$0 (; 1 ;) (type $0$0)
- (nop)
- )
-)
diff --git a/test/merge/post-instantiate-a.wast.combined.finalized b/test/merge/post-instantiate-a.wast.combined.finalized
deleted file mode 100644
index 90a8a5d36..000000000
--- a/test/merge/post-instantiate-a.wast.combined.finalized
+++ /dev/null
@@ -1,21 +0,0 @@
-(module
- (type $0 (func))
- (type $0$0 (func))
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (import "env" "memoryBase" (global $memoryBase$0 i32))
- (import "env" "tableBase" (global $tableBase$0 i32))
- (import "env" "__memory_base" (global $__memory_base$0 i32))
- (import "env" "__table_base" (global $__table_base$0 i32))
- (export "__post_instantiate" (func $0))
- (func $0 (; 0 ;) (type $0)
- (drop
- (i32.const 1000)
- )
- )
- (func $0$0 (; 1 ;) (type $0$0)
- (nop)
- )
-)
diff --git a/test/merge/post-instantiate-a.wast.combined.finalized.opt b/test/merge/post-instantiate-a.wast.combined.finalized.opt
deleted file mode 100644
index 0fd96ee6e..000000000
--- a/test/merge/post-instantiate-a.wast.combined.finalized.opt
+++ /dev/null
@@ -1,7 +0,0 @@
-(module
- (type $0 (func))
- (export "__post_instantiate" (func $0))
- (func $0 (; 0 ;) (type $0)
- (nop)
- )
-)
diff --git a/test/merge/post-instantiate-a.wast.combined.finalized.opt.stdout b/test/merge/post-instantiate-a.wast.combined.finalized.opt.stdout
deleted file mode 100644
index 3816869a7..000000000
--- a/test/merge/post-instantiate-a.wast.combined.finalized.opt.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 0
-merged total table size: 0
-merged functions: 2
diff --git a/test/merge/post-instantiate-a.wast.combined.finalized.stdout b/test/merge/post-instantiate-a.wast.combined.finalized.stdout
deleted file mode 100644
index 3816869a7..000000000
--- a/test/merge/post-instantiate-a.wast.combined.finalized.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 0
-merged total table size: 0
-merged functions: 2
diff --git a/test/merge/post-instantiate-a.wast.combined.opt b/test/merge/post-instantiate-a.wast.combined.opt
deleted file mode 100644
index 8685b4066..000000000
--- a/test/merge/post-instantiate-a.wast.combined.opt
+++ /dev/null
@@ -1,9 +0,0 @@
-(module
- (type $0 (func))
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (export "__post_instantiate" (func $0))
- (func $0 (; 0 ;) (type $0)
- (nop)
- )
-)
diff --git a/test/merge/post-instantiate-a.wast.combined.opt.stdout b/test/merge/post-instantiate-a.wast.combined.opt.stdout
deleted file mode 100644
index 3816869a7..000000000
--- a/test/merge/post-instantiate-a.wast.combined.opt.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 0
-merged total table size: 0
-merged functions: 2
diff --git a/test/merge/post-instantiate-a.wast.combined.stdout b/test/merge/post-instantiate-a.wast.combined.stdout
deleted file mode 100644
index 3816869a7..000000000
--- a/test/merge/post-instantiate-a.wast.combined.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 0
-merged total table size: 0
-merged functions: 2
diff --git a/test/merge/post-instantiate-a.wast.toMerge b/test/merge/post-instantiate-a.wast.toMerge
deleted file mode 100644
index 3b62ceb9e..000000000
--- a/test/merge/post-instantiate-a.wast.toMerge
+++ /dev/null
@@ -1,6 +0,0 @@
-(module
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (func $0)
-)
-
diff --git a/test/merge/post-instantiate-b.wast b/test/merge/post-instantiate-b.wast
deleted file mode 100644
index 3b62ceb9e..000000000
--- a/test/merge/post-instantiate-b.wast
+++ /dev/null
@@ -1,6 +0,0 @@
-(module
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (func $0)
-)
-
diff --git a/test/merge/post-instantiate-b.wast.combined b/test/merge/post-instantiate-b.wast.combined
deleted file mode 100644
index 551f2da2b..000000000
--- a/test/merge/post-instantiate-b.wast.combined
+++ /dev/null
@@ -1,21 +0,0 @@
-(module
- (type $0 (func))
- (type $0$0 (func))
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (import "env" "memoryBase" (global $memoryBase$0 i32))
- (import "env" "tableBase" (global $tableBase$0 i32))
- (import "env" "__memory_base" (global $__memory_base$0 i32))
- (import "env" "__table_base" (global $__table_base$0 i32))
- (export "__post_instantiate" (func $0$0))
- (func $0 (; 0 ;) (type $0)
- (nop)
- )
- (func $0$0 (; 1 ;) (type $0$0)
- (drop
- (i32.const 2000)
- )
- )
-)
diff --git a/test/merge/post-instantiate-b.wast.combined.finalized b/test/merge/post-instantiate-b.wast.combined.finalized
deleted file mode 100644
index 551f2da2b..000000000
--- a/test/merge/post-instantiate-b.wast.combined.finalized
+++ /dev/null
@@ -1,21 +0,0 @@
-(module
- (type $0 (func))
- (type $0$0 (func))
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (import "env" "memoryBase" (global $memoryBase$0 i32))
- (import "env" "tableBase" (global $tableBase$0 i32))
- (import "env" "__memory_base" (global $__memory_base$0 i32))
- (import "env" "__table_base" (global $__table_base$0 i32))
- (export "__post_instantiate" (func $0$0))
- (func $0 (; 0 ;) (type $0)
- (nop)
- )
- (func $0$0 (; 1 ;) (type $0$0)
- (drop
- (i32.const 2000)
- )
- )
-)
diff --git a/test/merge/post-instantiate-b.wast.combined.finalized.opt b/test/merge/post-instantiate-b.wast.combined.finalized.opt
deleted file mode 100644
index 8c173a5b4..000000000
--- a/test/merge/post-instantiate-b.wast.combined.finalized.opt
+++ /dev/null
@@ -1,7 +0,0 @@
-(module
- (type $0$0 (func))
- (export "__post_instantiate" (func $0$0))
- (func $0$0 (; 0 ;) (type $0$0)
- (nop)
- )
-)
diff --git a/test/merge/post-instantiate-b.wast.combined.finalized.opt.stdout b/test/merge/post-instantiate-b.wast.combined.finalized.opt.stdout
deleted file mode 100644
index 3816869a7..000000000
--- a/test/merge/post-instantiate-b.wast.combined.finalized.opt.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 0
-merged total table size: 0
-merged functions: 2
diff --git a/test/merge/post-instantiate-b.wast.combined.finalized.stdout b/test/merge/post-instantiate-b.wast.combined.finalized.stdout
deleted file mode 100644
index 3816869a7..000000000
--- a/test/merge/post-instantiate-b.wast.combined.finalized.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 0
-merged total table size: 0
-merged functions: 2
diff --git a/test/merge/post-instantiate-b.wast.combined.opt b/test/merge/post-instantiate-b.wast.combined.opt
deleted file mode 100644
index 2fa79a98b..000000000
--- a/test/merge/post-instantiate-b.wast.combined.opt
+++ /dev/null
@@ -1,9 +0,0 @@
-(module
- (type $0$0 (func))
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (export "__post_instantiate" (func $0$0))
- (func $0$0 (; 0 ;) (type $0$0)
- (nop)
- )
-)
diff --git a/test/merge/post-instantiate-b.wast.combined.opt.stdout b/test/merge/post-instantiate-b.wast.combined.opt.stdout
deleted file mode 100644
index 3816869a7..000000000
--- a/test/merge/post-instantiate-b.wast.combined.opt.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 0
-merged total table size: 0
-merged functions: 2
diff --git a/test/merge/post-instantiate-b.wast.combined.stdout b/test/merge/post-instantiate-b.wast.combined.stdout
deleted file mode 100644
index 3816869a7..000000000
--- a/test/merge/post-instantiate-b.wast.combined.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 0
-merged total table size: 0
-merged functions: 2
diff --git a/test/merge/post-instantiate-b.wast.toMerge b/test/merge/post-instantiate-b.wast.toMerge
deleted file mode 100644
index 0b3678389..000000000
--- a/test/merge/post-instantiate-b.wast.toMerge
+++ /dev/null
@@ -1,9 +0,0 @@
-(module
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (export "__post_instantiate" (func $0))
- (func $0
- (drop (i32.const 2000))
- )
-)
-
diff --git a/test/merge/printf.wast b/test/merge/printf.wast
deleted file mode 100644
index c57eabe51..000000000
--- a/test/merge/printf.wast
+++ /dev/null
@@ -1,13 +0,0 @@
-(module
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "memory" (memory $0 256))
- (import "env" "table" (table 0 funcref))
- (import "env" "globally" (global $i-collide i32))
- (import "env" "foobar" (func $import$8 (param i32 i32) (result i32)))
- (export "_printf" (func $625))
- (func $625 (param $var$0 i32) (param $var$1 i32) (result i32)
- (i32.const 102030)
- )
-)
-
diff --git a/test/merge/printf.wast.combined b/test/merge/printf.wast.combined
deleted file mode 100644
index 0ae24b16c..000000000
--- a/test/merge/printf.wast.combined
+++ /dev/null
@@ -1,31 +0,0 @@
-(module
- (type $FUNCSIG$iii (func (param i32 i32) (result i32)))
- (type $FUNCSIG$iii$0 (func (param i32 i32) (result i32)))
- (type $1 (func))
- (import "env" "memory" (memory $0 256))
- (data (global.get $__memory_base) "")
- (import "env" "table" (table $0 0 funcref))
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "globally" (global $i-collide i32))
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (import "env" "memoryBase" (global $memoryBase$0 i32))
- (import "env" "tableBase" (global $tableBase$0 i32))
- (import "env" "globally" (global $i-collide$0 f64))
- (import "env" "__memory_base" (global $__memory_base$0 i32))
- (import "env" "__table_base" (global $__table_base$0 i32))
- (import "env" "foobar" (func $import$8 (param i32 i32) (result i32)))
- (export "_printf" (func $625))
- (func $625 (; 1 ;) (type $FUNCSIG$iii) (param $var$0 i32) (param $var$1 i32) (result i32)
- (i32.const 102030)
- )
- (func $b (; 2 ;) (type $1)
- (drop
- (call $625
- (i32.const 11)
- (i32.const 22)
- )
- )
- )
-)
diff --git a/test/merge/printf.wast.combined.finalized b/test/merge/printf.wast.combined.finalized
deleted file mode 100644
index d70fc9c99..000000000
--- a/test/merge/printf.wast.combined.finalized
+++ /dev/null
@@ -1,31 +0,0 @@
-(module
- (type $FUNCSIG$iii (func (param i32 i32) (result i32)))
- (type $FUNCSIG$iii$0 (func (param i32 i32) (result i32)))
- (type $1 (func))
- (import "env" "memory" (memory $0 256))
- (data (i32.const 1024) "")
- (import "env" "table" (table $0 8 funcref))
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "globally" (global $i-collide i32))
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (import "env" "memoryBase" (global $memoryBase$0 i32))
- (import "env" "tableBase" (global $tableBase$0 i32))
- (import "env" "globally" (global $i-collide$0 f64))
- (import "env" "__memory_base" (global $__memory_base$0 i32))
- (import "env" "__table_base" (global $__table_base$0 i32))
- (import "env" "foobar" (func $import$8 (param i32 i32) (result i32)))
- (export "_printf" (func $625))
- (func $625 (; 1 ;) (type $FUNCSIG$iii) (param $var$0 i32) (param $var$1 i32) (result i32)
- (i32.const 102030)
- )
- (func $b (; 2 ;) (type $1)
- (drop
- (call $625
- (i32.const 11)
- (i32.const 22)
- )
- )
- )
-)
diff --git a/test/merge/printf.wast.combined.finalized.opt b/test/merge/printf.wast.combined.finalized.opt
deleted file mode 100644
index 0a75c1ad9..000000000
--- a/test/merge/printf.wast.combined.finalized.opt
+++ /dev/null
@@ -1,9 +0,0 @@
-(module
- (type $FUNCSIG$iii (func (param i32 i32) (result i32)))
- (import "env" "memory" (memory $0 256))
- (import "env" "table" (table $0 8 funcref))
- (export "_printf" (func $625))
- (func $625 (; 0 ;) (type $FUNCSIG$iii) (param $var$0 i32) (param $var$1 i32) (result i32)
- (i32.const 102030)
- )
-)
diff --git a/test/merge/printf.wast.combined.finalized.opt.stdout b/test/merge/printf.wast.combined.finalized.opt.stdout
deleted file mode 100644
index 80b514d22..000000000
--- a/test/merge/printf.wast.combined.finalized.opt.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 0
-merged total table size: 0
-merged functions: 3
diff --git a/test/merge/printf.wast.combined.finalized.stdout b/test/merge/printf.wast.combined.finalized.stdout
deleted file mode 100644
index 80b514d22..000000000
--- a/test/merge/printf.wast.combined.finalized.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 0
-merged total table size: 0
-merged functions: 3
diff --git a/test/merge/printf.wast.combined.opt b/test/merge/printf.wast.combined.opt
deleted file mode 100644
index 1ba164fc0..000000000
--- a/test/merge/printf.wast.combined.opt
+++ /dev/null
@@ -1,12 +0,0 @@
-(module
- (type $FUNCSIG$iii (func (param i32 i32) (result i32)))
- (import "env" "memory" (memory $0 256))
- (data (global.get $__memory_base) "")
- (import "env" "table" (table $0 0 funcref))
- (import "env" "__memory_base" (global $__memory_base i32))
- (import "env" "__table_base" (global $__table_base i32))
- (export "_printf" (func $625))
- (func $625 (; 0 ;) (type $FUNCSIG$iii) (param $var$0 i32) (param $var$1 i32) (result i32)
- (i32.const 102030)
- )
-)
diff --git a/test/merge/printf.wast.combined.opt.stdout b/test/merge/printf.wast.combined.opt.stdout
deleted file mode 100644
index 80b514d22..000000000
--- a/test/merge/printf.wast.combined.opt.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 0
-merged total table size: 0
-merged functions: 3
diff --git a/test/merge/printf.wast.combined.stdout b/test/merge/printf.wast.combined.stdout
deleted file mode 100644
index 80b514d22..000000000
--- a/test/merge/printf.wast.combined.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-merged total memory size: 0
-merged total table size: 0
-merged functions: 3
diff --git a/test/merge/printf.wast.toMerge b/test/merge/printf.wast.toMerge
deleted file mode 100644
index c3e87eb73..000000000
--- a/test/merge/printf.wast.toMerge
+++ /dev/null
@@ -1,14 +0,0 @@
-(module
- (import "env" "memoryBase" (global $memoryBase i32))
- (import "env" "tableBase" (global $tableBase i32))
- (import "env" "memory" (memory $0 256))
- (import "env" "table" (table 0 funcref))
- (import "env" "globally" (global $i-collide f64))
- (import "env" "_printf" (func $import$8 (param i32 i32) (result i32)))
- (func $b
- (drop
- (call $import$8 (i32.const 11) (i32.const 22))
- )
- )
-)
-
diff --git a/test/passes/O1.txt b/test/passes/O1.txt
new file mode 100644
index 000000000..09dd3d056
--- /dev/null
+++ b/test/passes/O1.txt
@@ -0,0 +1,14 @@
+(module
+ (type $0 (func (result i32)))
+ (memory $0 1 1)
+ (global $global$0 (mut i32) (i32.const 10))
+ (export "foo" (func $0))
+ (func $0 (; 0 ;) (type $0) (result i32)
+ (global.set $global$0
+ (i32.const 0)
+ )
+ (i32.load align=1
+ (i32.const 4)
+ )
+ )
+)
diff --git a/test/passes/O1.wast b/test/passes/O1.wast
new file mode 100644
index 000000000..87b06b063
--- /dev/null
+++ b/test/passes/O1.wast
@@ -0,0 +1,19 @@
+(module
+ (memory $0 1 1)
+ (global $global$0 (mut i32) (i32.const 10))
+ (func "foo" (result i32)
+ (i32.load offset=4 align=1
+ (i32.and
+ (block $label$1 (result i32)
+ (global.set $global$0
+ (i32.const 0)
+ )
+ (i32.const -64)
+ )
+ (i32.const 15)
+ )
+ )
+ )
+)
+
+
diff --git a/test/passes/O3_low-memory-unused_metrics.txt b/test/passes/O3_low-memory-unused_metrics.txt
index 86a686570..756d8cc61 100644
--- a/test/passes/O3_low-memory-unused_metrics.txt
+++ b/test/passes/O3_low-memory-unused_metrics.txt
@@ -796,7 +796,7 @@ total
(br $label$16)
)
)
- (local.set $4
+ (local.set $5
(i32.add
(i32.shl
(i32.load offset=48
@@ -821,7 +821,7 @@ total
)
(br_if $label$24
(i32.lt_s
- (local.tee $5
+ (local.tee $4
(i32.load offset=132
(local.get $2)
)
@@ -834,7 +834,7 @@ total
)
(br_if $label$24
(i32.lt_s
- (local.get $5)
+ (local.get $4)
(i32.const 6)
)
)
@@ -843,7 +843,7 @@ total
(i32.const 128)
(i32.const 192)
(i32.eq
- (local.get $5)
+ (local.get $4)
(i32.const 6)
)
)
@@ -856,7 +856,7 @@ total
(i32.store offset=20
(local.get $2)
(i32.add
- (local.tee $5
+ (local.tee $4
(i32.load offset=20
(local.get $2)
)
@@ -866,7 +866,7 @@ total
)
(i32.store8
(i32.add
- (local.get $5)
+ (local.get $4)
(i32.load offset=8
(local.get $2)
)
@@ -878,7 +878,7 @@ total
(local.tee $3
(i32.or
(local.get $3)
- (local.get $4)
+ (local.get $5)
)
)
(i32.const 32)
@@ -1052,7 +1052,7 @@ total
(block $label$26
(if
(i32.load offset=16
- (local.tee $4
+ (local.tee $5
(i32.load offset=28
(local.get $2)
)
@@ -1066,17 +1066,17 @@ total
)
(br_if $label$26
(i32.ge_u
- (local.tee $5
+ (local.tee $6
(i32.load offset=32
(local.get $2)
)
)
(i32.load16_u offset=20
- (local.get $4)
+ (local.get $5)
)
)
)
- (local.set $6
+ (local.set $4
(local.get $3)
)
(loop $label$28
@@ -1092,13 +1092,13 @@ total
(br_if $label$30
(i32.le_u
(local.get $3)
- (local.get $6)
+ (local.get $4)
)
)
(br_if $label$30
(i32.eqz
(i32.load offset=44
- (local.get $4)
+ (local.get $5)
)
)
)
@@ -1112,11 +1112,11 @@ total
(i32.load offset=8
(local.get $2)
)
- (local.get $6)
+ (local.get $4)
)
(i32.sub
(local.get $3)
- (local.get $6)
+ (local.get $4)
)
)
)
@@ -1131,9 +1131,9 @@ total
(local.get $0)
)
)
- (local.tee $4
+ (local.tee $5
(i32.load offset=20
- (local.tee $5
+ (local.tee $4
(i32.load offset=28
(local.get $0)
)
@@ -1141,7 +1141,7 @@ total
)
)
(i32.gt_u
- (local.get $4)
+ (local.get $5)
(local.get $3)
)
)
@@ -1154,7 +1154,7 @@ total
(local.get $0)
)
(i32.load offset=16
- (local.get $5)
+ (local.get $4)
)
(local.get $3)
)
@@ -1220,7 +1220,7 @@ total
)
)
)
- (local.set $4
+ (local.set $5
(i32.load offset=28
(local.get $2)
)
@@ -1237,23 +1237,23 @@ total
)
)
)
- (local.set $5
+ (local.set $6
(i32.load offset=32
(local.get $2)
)
)
- (local.set $6
+ (local.set $4
(local.get $3)
)
)
)
- (local.set $4
+ (local.set $5
(i32.load8_u
(i32.add
(i32.load offset=16
- (local.get $4)
+ (local.get $5)
)
- (local.get $5)
+ (local.get $6)
)
)
)
@@ -1271,11 +1271,11 @@ total
)
(local.get $3)
)
- (local.get $4)
+ (local.get $5)
)
(i32.store offset=32
(local.get $2)
- (local.tee $5
+ (local.tee $6
(i32.add
(i32.load offset=32
(local.get $2)
@@ -1286,9 +1286,9 @@ total
)
(if
(i32.ge_u
- (local.get $5)
+ (local.get $6)
(i32.load16_u offset=20
- (local.tee $4
+ (local.tee $5
(i32.load offset=28
(local.get $2)
)
@@ -1297,7 +1297,7 @@ total
)
(block
(local.set $3
- (local.get $6)
+ (local.get $4)
)
(br $label$26)
)
@@ -1323,13 +1323,13 @@ total
(br_if $label$33
(i32.eqz
(i32.load offset=44
- (local.get $4)
+ (local.get $5)
)
)
)
(br_if $label$33
(i32.le_u
- (local.tee $5
+ (local.tee $4
(i32.load offset=20
(local.get $2)
)
@@ -1350,12 +1350,12 @@ total
(local.get $3)
)
(i32.sub
- (local.get $5)
+ (local.get $4)
(local.get $3)
)
)
)
- (local.set $4
+ (local.set $5
(i32.load offset=28
(local.get $2)
)
@@ -1367,7 +1367,7 @@ total
(local.get $2)
)
(i32.load offset=20
- (local.get $4)
+ (local.get $5)
)
)
(block
@@ -1394,7 +1394,7 @@ total
(i32.const 73)
)
)
- (local.set $4
+ (local.set $5
(i32.load offset=28
(local.get $2)
)
@@ -1403,18 +1403,18 @@ total
(br_if $label$11
(i32.eqz
(i32.load offset=28
- (local.get $4)
+ (local.get $5)
)
)
)
- (local.set $6
+ (local.set $4
(local.tee $3
(i32.load offset=20
(local.get $2)
)
)
)
- (local.set $4
+ (local.set $5
(block $label$35 (result i32)
(loop $label$37
(block $label$36
@@ -1430,7 +1430,7 @@ total
(br_if $label$39
(i32.le_u
(local.get $3)
- (local.get $6)
+ (local.get $4)
)
)
(br_if $label$39
@@ -1452,11 +1452,11 @@ total
(i32.load offset=8
(local.get $2)
)
- (local.get $6)
+ (local.get $4)
)
(i32.sub
(local.get $3)
- (local.get $6)
+ (local.get $4)
)
)
)
@@ -1471,9 +1471,9 @@ total
(local.get $0)
)
)
- (local.tee $4
+ (local.tee $5
(i32.load offset=20
- (local.tee $5
+ (local.tee $4
(i32.load offset=28
(local.get $0)
)
@@ -1481,7 +1481,7 @@ total
)
)
(i32.gt_u
- (local.get $4)
+ (local.get $5)
(local.get $3)
)
)
@@ -1494,7 +1494,7 @@ total
(local.get $0)
)
(i32.load offset=16
- (local.get $5)
+ (local.get $4)
)
(local.get $3)
)
@@ -1572,12 +1572,12 @@ total
)
)
)
- (local.set $6
+ (local.set $4
(local.get $3)
)
)
)
- (local.set $4
+ (local.set $5
(i32.load offset=28
(i32.load offset=28
(local.get $2)
@@ -1587,7 +1587,7 @@ total
(i32.store offset=32
(local.get $2)
(i32.add
- (local.tee $5
+ (local.tee $6
(i32.load offset=32
(local.get $2)
)
@@ -1595,11 +1595,11 @@ total
(i32.const 1)
)
)
- (local.set $4
+ (local.set $5
(i32.load8_u
(i32.add
- (local.get $4)
(local.get $5)
+ (local.get $6)
)
)
)
@@ -1617,10 +1617,10 @@ total
)
(local.get $3)
)
- (local.get $4)
+ (local.get $5)
)
(if
- (local.get $4)
+ (local.get $5)
(block
(local.set $3
(i32.load offset=20
@@ -1631,7 +1631,7 @@ total
)
(block
(local.set $3
- (local.get $6)
+ (local.get $4)
)
(br $label$35
(i32.const 0)
@@ -1655,7 +1655,7 @@ total
)
(br_if $label$42
(i32.le_u
- (local.tee $5
+ (local.tee $4
(i32.load offset=20
(local.get $2)
)
@@ -1676,7 +1676,7 @@ total
(local.get $3)
)
(i32.sub
- (local.get $5)
+ (local.get $4)
(local.get $3)
)
)
@@ -1684,7 +1684,7 @@ total
)
(br_if $label$12
(i32.eqz
- (local.get $4)
+ (local.get $5)
)
)
(local.set $3
@@ -1720,14 +1720,14 @@ total
)
)
)
- (local.set $6
+ (local.set $4
(local.tee $3
(i32.load offset=20
(local.get $2)
)
)
)
- (local.set $4
+ (local.set $5
(block $label$43 (result i32)
(loop $label$45
(block $label$44
@@ -1743,7 +1743,7 @@ total
(br_if $label$47
(i32.le_u
(local.get $3)
- (local.get $6)
+ (local.get $4)
)
)
(br_if $label$47
@@ -1765,11 +1765,11 @@ total
(i32.load offset=8
(local.get $2)
)
- (local.get $6)
+ (local.get $4)
)
(i32.sub
(local.get $3)
- (local.get $6)
+ (local.get $4)
)
)
)
@@ -1784,9 +1784,9 @@ total
(local.get $0)
)
)
- (local.tee $4
+ (local.tee $5
(i32.load offset=20
- (local.tee $5
+ (local.tee $4
(i32.load offset=28
(local.get $0)
)
@@ -1794,7 +1794,7 @@ total
)
)
(i32.gt_u
- (local.get $4)
+ (local.get $5)
(local.get $3)
)
)
@@ -1807,7 +1807,7 @@ total
(local.get $0)
)
(i32.load offset=16
- (local.get $5)
+ (local.get $4)
)
(local.get $3)
)
@@ -1885,12 +1885,12 @@ total
)
)
)
- (local.set $6
+ (local.set $4
(local.get $3)
)
)
)
- (local.set $4
+ (local.set $5
(i32.load offset=36
(i32.load offset=28
(local.get $2)
@@ -1900,7 +1900,7 @@ total
(i32.store offset=32
(local.get $2)
(i32.add
- (local.tee $5
+ (local.tee $6
(i32.load offset=32
(local.get $2)
)
@@ -1908,11 +1908,11 @@ total
(i32.const 1)
)
)
- (local.set $4
+ (local.set $5
(i32.load8_u
(i32.add
- (local.get $4)
(local.get $5)
+ (local.get $6)
)
)
)
@@ -1930,10 +1930,10 @@ total
)
(local.get $3)
)
- (local.get $4)
+ (local.get $5)
)
(if
- (local.get $4)
+ (local.get $5)
(block
(local.set $3
(i32.load offset=20
@@ -1944,7 +1944,7 @@ total
)
(block
(local.set $3
- (local.get $6)
+ (local.get $4)
)
(br $label$43
(i32.const 0)
@@ -1968,7 +1968,7 @@ total
)
(br_if $label$50
(i32.le_u
- (local.tee $5
+ (local.tee $4
(i32.load offset=20
(local.get $2)
)
@@ -1989,7 +1989,7 @@ total
(local.get $3)
)
(i32.sub
- (local.get $5)
+ (local.get $4)
(local.get $3)
)
)
@@ -1997,7 +1997,7 @@ total
)
(br_if $label$8
(i32.eqz
- (local.get $4)
+ (local.get $5)
)
)
(local.set $3
@@ -2049,9 +2049,9 @@ total
(local.get $0)
)
)
- (local.tee $4
+ (local.tee $5
(i32.load offset=20
- (local.tee $5
+ (local.tee $4
(i32.load offset=28
(local.get $0)
)
@@ -2059,7 +2059,7 @@ total
)
)
(i32.gt_u
- (local.get $4)
+ (local.get $5)
(local.get $3)
)
)
@@ -2072,7 +2072,7 @@ total
(local.get $0)
)
(i32.load offset=16
- (local.get $5)
+ (local.get $4)
)
(local.get $3)
)
@@ -2233,14 +2233,14 @@ total
(i32.eqz
(local.tee $3
(select
- (local.tee $4
+ (local.tee $5
(i32.load offset=16
(local.get $0)
)
)
(local.tee $3
(i32.load offset=20
- (local.tee $5
+ (local.tee $4
(i32.load offset=28
(local.get $0)
)
@@ -2249,7 +2249,7 @@ total
)
(i32.gt_u
(local.get $3)
- (local.get $4)
+ (local.get $5)
)
)
)
@@ -2261,7 +2261,7 @@ total
(local.get $0)
)
(i32.load offset=16
- (local.get $5)
+ (local.get $4)
)
(local.get $3)
)
@@ -2276,14 +2276,14 @@ total
)
)
(i32.store offset=16
- (local.tee $5
+ (local.tee $4
(i32.load offset=28
(local.get $0)
)
)
(i32.add
(i32.load offset=16
- (local.get $5)
+ (local.get $4)
)
(local.get $3)
)
@@ -2299,7 +2299,7 @@ total
)
(i32.store offset=16
(local.get $0)
- (local.tee $4
+ (local.tee $5
(i32.sub
(i32.load offset=16
(local.get $0)
@@ -2309,11 +2309,11 @@ total
)
)
(i32.store offset=20
- (local.get $5)
+ (local.get $4)
(local.tee $3
(i32.sub
(i32.load offset=20
- (local.get $5)
+ (local.get $4)
)
(local.get $3)
)
@@ -2323,14 +2323,14 @@ total
(local.get $3)
)
(i32.store offset=16
- (local.get $5)
+ (local.get $4)
(i32.load offset=8
- (local.get $5)
+ (local.get $4)
)
)
)
(br_if $label$53
- (local.get $4)
+ (local.get $5)
)
(br $folding-inner1)
)
@@ -2572,14 +2572,14 @@ total
(i32.eqz
(local.tee $3
(select
- (local.tee $4
+ (local.tee $5
(i32.load offset=16
(local.get $0)
)
)
(local.tee $3
(i32.load offset=20
- (local.tee $5
+ (local.tee $4
(i32.load offset=28
(local.get $0)
)
@@ -2588,7 +2588,7 @@ total
)
(i32.gt_u
(local.get $3)
- (local.get $4)
+ (local.get $5)
)
)
)
@@ -2600,7 +2600,7 @@ total
(local.get $0)
)
(i32.load offset=16
- (local.get $5)
+ (local.get $4)
)
(local.get $3)
)
@@ -2615,14 +2615,14 @@ total
)
)
(i32.store offset=16
- (local.tee $5
+ (local.tee $4
(i32.load offset=28
(local.get $0)
)
)
(i32.add
(i32.load offset=16
- (local.get $5)
+ (local.get $4)
)
(local.get $3)
)
@@ -2638,7 +2638,7 @@ total
)
(i32.store offset=16
(local.get $0)
- (local.tee $4
+ (local.tee $5
(i32.sub
(i32.load offset=16
(local.get $0)
@@ -2648,11 +2648,11 @@ total
)
)
(i32.store offset=20
- (local.get $5)
+ (local.get $4)
(local.tee $3
(i32.sub
(i32.load offset=20
- (local.get $5)
+ (local.get $4)
)
(local.get $3)
)
@@ -2662,14 +2662,14 @@ total
(local.get $3)
)
(i32.store offset=16
- (local.get $5)
+ (local.get $4)
(i32.load offset=8
- (local.get $5)
+ (local.get $4)
)
)
)
(br_if $label$56
- (local.get $4)
+ (local.get $5)
)
(br $folding-inner1)
)
@@ -2687,7 +2687,7 @@ total
)
(br_if $label$1
(i32.lt_s
- (local.tee $1
+ (local.tee $4
(i32.load offset=24
(local.get $2)
)
@@ -2695,7 +2695,7 @@ total
(i32.const 1)
)
)
- (local.set $3
+ (local.set $1
(i32.load offset=48
(local.get $0)
)
@@ -2704,14 +2704,14 @@ total
(block $label$68 (result i32)
(if
(i32.eq
- (local.get $1)
+ (local.get $4)
(i32.const 2)
)
(block
(i32.store offset=20
(local.get $2)
(i32.add
- (local.tee $1
+ (local.tee $3
(i32.load offset=20
(local.get $2)
)
@@ -2721,14 +2721,14 @@ total
)
(i32.store8
(i32.add
- (local.get $1)
+ (local.get $3)
(i32.load offset=8
(local.get $2)
)
)
- (local.get $3)
+ (local.get $1)
)
- (local.set $3
+ (local.set $1
(i32.load offset=48
(local.get $0)
)
@@ -2736,7 +2736,7 @@ total
(i32.store offset=20
(local.get $2)
(i32.add
- (local.tee $1
+ (local.tee $3
(i32.load offset=20
(local.get $2)
)
@@ -2746,17 +2746,17 @@ total
)
(i32.store8
(i32.add
- (local.get $1)
+ (local.get $3)
(i32.load offset=8
(local.get $2)
)
)
(i32.shr_u
- (local.get $3)
+ (local.get $1)
(i32.const 8)
)
)
- (local.set $3
+ (local.set $1
(i32.load16_u offset=50
(local.get $0)
)
@@ -2764,7 +2764,7 @@ total
(i32.store offset=20
(local.get $2)
(i32.add
- (local.tee $1
+ (local.tee $3
(i32.load offset=20
(local.get $2)
)
@@ -2774,14 +2774,14 @@ total
)
(i32.store8
(i32.add
- (local.get $1)
+ (local.get $3)
(i32.load offset=8
(local.get $2)
)
)
- (local.get $3)
+ (local.get $1)
)
- (local.set $3
+ (local.set $1
(i32.load8_u offset=51
(local.get $0)
)
@@ -2789,7 +2789,7 @@ total
(i32.store offset=20
(local.get $2)
(i32.add
- (local.tee $1
+ (local.tee $3
(i32.load offset=20
(local.get $2)
)
@@ -2799,14 +2799,14 @@ total
)
(i32.store8
(i32.add
- (local.get $1)
+ (local.get $3)
(i32.load offset=8
(local.get $2)
)
)
- (local.get $3)
+ (local.get $1)
)
- (local.set $3
+ (local.set $1
(i32.load offset=8
(local.get $0)
)
@@ -2814,7 +2814,7 @@ total
(i32.store offset=20
(local.get $2)
(i32.add
- (local.tee $1
+ (local.tee $3
(i32.load offset=20
(local.get $2)
)
@@ -2824,14 +2824,14 @@ total
)
(i32.store8
(i32.add
- (local.get $1)
+ (local.get $3)
(i32.load offset=8
(local.get $2)
)
)
- (local.get $3)
+ (local.get $1)
)
- (local.set $3
+ (local.set $1
(i32.load offset=8
(local.get $0)
)
@@ -2839,7 +2839,7 @@ total
(i32.store offset=20
(local.get $2)
(i32.add
- (local.tee $1
+ (local.tee $3
(i32.load offset=20
(local.get $2)
)
@@ -2849,17 +2849,17 @@ total
)
(i32.store8
(i32.add
- (local.get $1)
+ (local.get $3)
(i32.load offset=8
(local.get $2)
)
)
(i32.shr_u
- (local.get $3)
+ (local.get $1)
(i32.const 8)
)
)
- (local.set $3
+ (local.set $1
(i32.load16_u offset=10
(local.get $0)
)
@@ -2867,7 +2867,7 @@ total
(i32.store offset=20
(local.get $2)
(i32.add
- (local.tee $1
+ (local.tee $3
(i32.load offset=20
(local.get $2)
)
@@ -2877,12 +2877,12 @@ total
)
(i32.store8
(i32.add
- (local.get $1)
+ (local.get $3)
(i32.load offset=8
(local.get $2)
)
)
- (local.get $3)
+ (local.get $1)
)
(local.set $3
(i32.load8_u offset=11
@@ -2913,7 +2913,7 @@ total
(i32.store offset=20
(local.get $2)
(i32.add
- (local.tee $1
+ (local.tee $3
(i32.load offset=20
(local.get $2)
)
@@ -2923,20 +2923,20 @@ total
)
(i32.store8
(i32.add
- (local.get $1)
+ (local.get $3)
(i32.load offset=8
(local.get $2)
)
)
(i32.shr_u
- (local.get $3)
+ (local.get $1)
(i32.const 24)
)
)
(i32.store offset=20
(local.get $2)
(i32.add
- (local.tee $1
+ (local.tee $3
(i32.load offset=20
(local.get $2)
)
@@ -2946,13 +2946,13 @@ total
)
(i32.store8
(i32.add
- (local.get $1)
+ (local.get $3)
(i32.load offset=8
(local.get $2)
)
)
(i32.shr_u
- (local.get $3)
+ (local.get $1)
(i32.const 16)
)
)
@@ -3007,16 +3007,16 @@ total
(block $label$70
(br_if $label$70
(i32.eqz
- (local.tee $3
+ (local.tee $1
(select
- (local.tee $3
+ (local.tee $1
(i32.load offset=16
(local.get $0)
)
)
- (local.tee $1
+ (local.tee $4
(i32.load offset=20
- (local.tee $4
+ (local.tee $3
(i32.load offset=28
(local.get $0)
)
@@ -3024,8 +3024,8 @@ total
)
)
(i32.gt_u
+ (local.get $4)
(local.get $1)
- (local.get $3)
)
)
)
@@ -3037,9 +3037,9 @@ total
(local.get $0)
)
(i32.load offset=16
- (local.get $4)
+ (local.get $3)
)
- (local.get $3)
+ (local.get $1)
)
)
(i32.store offset=12
@@ -3048,20 +3048,20 @@ total
(i32.load offset=12
(local.get $0)
)
- (local.get $3)
+ (local.get $1)
)
)
(i32.store offset=16
- (local.tee $1
+ (local.tee $3
(i32.load offset=28
(local.get $0)
)
)
(i32.add
(i32.load offset=16
- (local.get $1)
+ (local.get $3)
)
- (local.get $3)
+ (local.get $1)
)
)
(i32.store offset=20
@@ -3070,7 +3070,7 @@ total
(i32.load offset=20
(local.get $0)
)
- (local.get $3)
+ (local.get $1)
)
)
(i32.store offset=16
@@ -3079,17 +3079,17 @@ total
(i32.load offset=16
(local.get $0)
)
- (local.get $3)
+ (local.get $1)
)
)
(i32.store offset=20
- (local.get $1)
+ (local.get $3)
(local.tee $0
(i32.sub
(i32.load offset=20
- (local.get $1)
+ (local.get $3)
)
- (local.get $3)
+ (local.get $1)
)
)
)
@@ -3097,9 +3097,9 @@ total
(local.get $0)
)
(i32.store offset=16
- (local.get $1)
+ (local.get $3)
(i32.load offset=8
- (local.get $1)
+ (local.get $3)
)
)
)
diff --git a/test/passes/O4.txt b/test/passes/O4.txt
index 2845d30d9..1b01f1c28 100644
--- a/test/passes/O4.txt
+++ b/test/passes/O4.txt
@@ -43,7 +43,7 @@
)
(if
(i32.gt_u
- (local.tee $2
+ (local.tee $0
(i32.and
(i32.add
(i32.add
@@ -65,7 +65,7 @@
)
)
(i32.shl
- (local.tee $3
+ (local.tee $2
(current_memory)
)
(i32.const 16)
@@ -75,13 +75,13 @@
(i32.lt_s
(grow_memory
(select
- (local.get $3)
- (local.tee $0
+ (local.get $2)
+ (local.tee $3
(i32.shr_u
(i32.and
(i32.add
(i32.sub
- (local.get $2)
+ (local.get $0)
(local.get $1)
)
(i32.const 65535)
@@ -92,8 +92,8 @@
)
)
(i32.gt_s
+ (local.get $2)
(local.get $3)
- (local.get $0)
)
)
)
@@ -102,7 +102,7 @@
(if
(i32.lt_s
(grow_memory
- (local.get $0)
+ (local.get $3)
)
(i32.const 0)
)
@@ -111,7 +111,7 @@
)
)
(global.set $global$1
- (local.get $2)
+ (local.get $0)
)
(local.get $1)
)
@@ -369,7 +369,7 @@
(i32.store
(i32.sub
(i32.add
- (local.tee $2
+ (local.tee $1
(i32.and
(i32.sub
(i32.const 20)
@@ -386,7 +386,7 @@
)
(if
(i32.le_u
- (local.get $2)
+ (local.get $1)
(i32.const 8)
)
(return)
@@ -407,10 +407,10 @@
)
(i32.store
(i32.sub
- (local.tee $1
+ (local.tee $2
(i32.add
(local.get $0)
- (local.get $2)
+ (local.get $1)
)
)
(i32.const 12)
@@ -419,14 +419,14 @@
)
(i32.store
(i32.sub
- (local.get $1)
+ (local.get $2)
(i32.const 8)
)
(i32.const 0)
)
(if
(i32.le_u
- (local.get $2)
+ (local.get $1)
(i32.const 24)
)
(return)
@@ -461,10 +461,10 @@
)
(i32.store
(i32.sub
- (local.tee $1
+ (local.tee $2
(i32.add
(local.get $0)
- (local.get $2)
+ (local.get $1)
)
)
(i32.const 28)
@@ -473,28 +473,28 @@
)
(i32.store
(i32.sub
- (local.get $1)
+ (local.get $2)
(i32.const 24)
)
(i32.const 0)
)
(i32.store
(i32.sub
- (local.get $1)
+ (local.get $2)
(i32.const 20)
)
(i32.const 0)
)
(i32.store
(i32.sub
- (local.get $1)
+ (local.get $2)
(i32.const 16)
)
(i32.const 0)
)
(local.set $0
(i32.add
- (local.tee $1
+ (local.tee $2
(i32.add
(i32.and
(local.get $0)
@@ -506,16 +506,16 @@
(local.get $0)
)
)
- (local.set $2
+ (local.set $1
(i32.sub
- (local.get $2)
(local.get $1)
+ (local.get $2)
)
)
(loop $label$8
(if
(i32.ge_u
- (local.get $2)
+ (local.get $1)
(i32.const 32)
)
(block
@@ -544,9 +544,9 @@
)
(i64.const 0)
)
- (local.set $2
+ (local.set $1
(i32.sub
- (local.get $2)
+ (local.get $1)
(i32.const 32)
)
)
@@ -727,7 +727,6 @@
(local $15 f64)
(local $16 f64)
(local $17 f64)
- (local $18 f64)
(local.set $13
(i32.load offset=4
(local.tee $12
@@ -811,20 +810,18 @@
(f64.add
(f64.mul
(local.tee $2
- (local.tee $18
- (f64.sub
- (local.get $14)
- (f64.load
- (local.tee $1
- (i32.load offset=8
- (i32.add
- (i32.load
- (local.get $12)
- )
- (i32.shl
- (local.get $7)
- (i32.const 2)
- )
+ (f64.sub
+ (local.get $14)
+ (f64.load
+ (local.tee $1
+ (i32.load offset=8
+ (i32.add
+ (i32.load
+ (local.get $12)
+ )
+ (i32.shl
+ (local.get $7)
+ (i32.const 2)
)
)
)
@@ -910,7 +907,7 @@
(local.get $1)
)
(f64.mul
- (local.get $18)
+ (local.get $2)
(local.tee $2
(f64.mul
(local.get $17)
@@ -1040,7 +1037,7 @@
(local.get $5)
)
(block
- (local.set $6
+ (local.set $7
(f64.load
(local.tee $0
(i32.load offset=8
@@ -1057,12 +1054,12 @@
)
)
)
- (local.set $7
+ (local.set $8
(f64.load offset=8
(local.get $0)
)
)
- (local.set $8
+ (local.set $9
(f64.load offset=16
(local.get $0)
)
@@ -1073,7 +1070,7 @@
(f64.mul
(f64.mul
(f64.const 0.5)
- (local.tee $9
+ (local.tee $10
(f64.load offset=48
(local.get $0)
)
@@ -1123,64 +1120,59 @@
(local.get $5)
)
(block
- (local.set $10
- (local.get $1)
- )
- (local.set $1
- (f64.add
- (f64.mul
- (local.tee $1
- (f64.sub
- (local.get $6)
- (f64.load
- (local.tee $3
- (i32.load offset=8
- (i32.add
- (i32.load
- (local.get $4)
- )
- (i32.shl
- (local.get $0)
- (i32.const 2)
- )
- )
- )
+ (local.set $6
+ (f64.sub
+ (local.get $7)
+ (f64.load
+ (local.tee $3
+ (i32.load offset=8
+ (i32.add
+ (i32.load
+ (local.get $4)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 2)
)
)
)
)
- (local.get $1)
- )
- (f64.mul
- (local.tee $1
- (f64.sub
- (local.get $7)
- (f64.load offset=8
- (local.get $3)
- )
- )
- )
- (local.get $1)
)
)
)
(local.set $1
(f64.sub
- (local.get $10)
+ (local.get $1)
(f64.div
(f64.mul
- (local.get $9)
+ (local.get $10)
(f64.load offset=48
(local.get $3)
)
)
(f64.sqrt
(f64.add
- (local.get $1)
+ (f64.add
+ (f64.mul
+ (local.get $6)
+ (local.get $6)
+ )
+ (f64.mul
+ (local.tee $1
+ (f64.sub
+ (local.get $8)
+ (f64.load offset=8
+ (local.get $3)
+ )
+ )
+ )
+ (local.get $1)
+ )
+ )
(f64.mul
(local.tee $1
(f64.sub
- (local.get $8)
+ (local.get $9)
(f64.load offset=16
(local.get $3)
)
diff --git a/test/passes/Oz.txt b/test/passes/Oz.txt
index b39d494b9..47be5654f 100644
--- a/test/passes/Oz.txt
+++ b/test/passes/Oz.txt
@@ -18,7 +18,7 @@
)
(func $8 (; 1 ;) (; has Stack IR ;) (type $1) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(i32.store
- (local.tee $2
+ (local.tee $0
(i32.add
(local.get $1)
(i32.const 4)
@@ -26,13 +26,13 @@
)
(i32.and
(i32.load
- (local.get $2)
+ (local.get $0)
)
(i32.const -75)
)
)
(i32.store
- (local.tee $1
+ (local.tee $0
(i32.add
(local.get $1)
(i32.const 4)
@@ -40,7 +40,7 @@
)
(i32.or
(i32.load
- (local.get $1)
+ (local.get $0)
)
(i32.const 8)
)
diff --git a/test/passes/directize.txt b/test/passes/directize.txt
new file mode 100644
index 000000000..6e0644c01
--- /dev/null
+++ b/test/passes/directize.txt
@@ -0,0 +1,159 @@
+(module
+ (type $ii (func (param i32 i32)))
+ (table $0 5 5 funcref)
+ (elem (i32.const 1) $foo)
+ (func $foo (; 0 ;) (type $ii) (param $0 i32) (param $1 i32)
+ (unreachable)
+ )
+ (func $bar (; 1 ;) (type $ii) (param $x i32) (param $y i32)
+ (call $foo
+ (local.get $x)
+ (local.get $y)
+ )
+ )
+)
+(module
+ (type $ii (func (param i32 i32)))
+ (table $0 5 5 funcref)
+ (elem (i32.const 4) $foo)
+ (func $foo (; 0 ;) (type $ii) (param $0 i32) (param $1 i32)
+ (unreachable)
+ )
+ (func $bar (; 1 ;) (type $ii) (param $x i32) (param $y i32)
+ (call $foo
+ (local.get $x)
+ (local.get $y)
+ )
+ )
+)
+(module
+ (type $ii (func (param i32 i32)))
+ (table $0 5 5 funcref)
+ (elem (i32.const 0) $foo)
+ (func $foo (; 0 ;) (type $ii) (param $0 i32) (param $1 i32)
+ (unreachable)
+ )
+ (func $bar (; 1 ;) (type $ii) (param $x i32) (param $y i32)
+ (call $foo
+ (local.get $x)
+ (local.get $y)
+ )
+ )
+)
+(module
+ (type $ii (func (param i32 i32)))
+ (table $0 5 5 funcref)
+ (elem (i32.const 0) $foo $foo $foo $foo $foo)
+ (func $foo (; 0 ;) (type $ii) (param $0 i32) (param $1 i32)
+ (unreachable)
+ )
+ (func $bar (; 1 ;) (type $ii) (param $x i32) (param $y i32)
+ (call $foo
+ (local.get $x)
+ (local.get $y)
+ )
+ )
+)
+(module
+ (type $ii (func (param i32 i32)))
+ (import "env" "table" (table $0 5 5 funcref))
+ (elem (i32.const 1) $foo)
+ (func $foo (; 0 ;) (type $ii) (param $0 i32) (param $1 i32)
+ (unreachable)
+ )
+ (func $bar (; 1 ;) (type $ii) (param $x i32) (param $y i32)
+ (call_indirect (type $ii)
+ (local.get $x)
+ (local.get $y)
+ (i32.const 1)
+ )
+ )
+)
+(module
+ (type $ii (func (param i32 i32)))
+ (table $0 5 5 funcref)
+ (elem (i32.const 1) $foo)
+ (export "tab" (table $0))
+ (func $foo (; 0 ;) (type $ii) (param $0 i32) (param $1 i32)
+ (unreachable)
+ )
+ (func $bar (; 1 ;) (type $ii) (param $x i32) (param $y i32)
+ (call_indirect (type $ii)
+ (local.get $x)
+ (local.get $y)
+ (i32.const 1)
+ )
+ )
+)
+(module
+ (type $ii (func (param i32 i32)))
+ (table $0 5 5 funcref)
+ (elem (global.get $g) $foo)
+ (global $g (mut i32) (i32.const 1))
+ (func $foo (; 0 ;) (type $ii) (param $0 i32) (param $1 i32)
+ (unreachable)
+ )
+ (func $bar (; 1 ;) (type $ii) (param $x i32) (param $y i32)
+ (call_indirect (type $ii)
+ (local.get $x)
+ (local.get $y)
+ (i32.const 1)
+ )
+ )
+)
+(module
+ (type $ii (func (param i32 i32)))
+ (type $1 (func (param i32 i32 i32)))
+ (table $0 5 5 funcref)
+ (elem (i32.const 1) $foo)
+ (func $foo (; 0 ;) (type $ii) (param $0 i32) (param $1 i32)
+ (unreachable)
+ )
+ (func $bar (; 1 ;) (type $1) (param $x i32) (param $y i32) (param $z i32)
+ (call_indirect (type $ii)
+ (local.get $x)
+ (local.get $y)
+ (local.get $z)
+ )
+ )
+)
+(module
+ (type $ii (func (param i32 i32)))
+ (table $0 5 5 funcref)
+ (elem (i32.const 1) $foo)
+ (func $foo (; 0 ;) (type $ii) (param $0 i32) (param $1 i32)
+ (unreachable)
+ )
+ (func $bar (; 1 ;) (type $ii) (param $x i32) (param $y i32)
+ (unreachable)
+ )
+)
+(module
+ (type $ii (func (param i32 i32)))
+ (table $0 5 5 funcref)
+ (elem (i32.const 1) $foo)
+ (func $foo (; 0 ;) (type $ii) (param $0 i32) (param $1 i32)
+ (unreachable)
+ )
+ (func $bar (; 1 ;) (type $ii) (param $x i32) (param $y i32)
+ (unreachable)
+ )
+)
+(module
+ (type $ii (func (param i32 i32)))
+ (type $1 (func (param i32)))
+ (table $0 5 5 funcref)
+ (elem (i32.const 1) $foo)
+ (func $foo (; 0 ;) (type $1) (param $0 i32)
+ (unreachable)
+ )
+ (func $bar (; 1 ;) (type $ii) (param $x i32) (param $y i32)
+ (unreachable)
+ )
+)
+(module
+ (type $0 (func (param i32)))
+ (func $foo (; 0 ;) (type $0) (param $0 i32)
+ (unreachable)
+ )
+)
diff --git a/test/passes/directize.wast b/test/passes/directize.wast
new file mode 100644
index 000000000..8e6839457
--- /dev/null
+++ b/test/passes/directize.wast
@@ -0,0 +1,182 @@
+(module
+ (type $ii (func (param i32 i32)))
+ (table $0 5 5 funcref)
+ (elem (i32.const 1) $foo)
+ (func $foo (param i32) (param i32)
+ (unreachable)
+ )
+ (func $bar (param $x i32) (param $y i32)
+ (call_indirect (type $ii)
+ (local.get $x)
+ (local.get $y)
+ (i32.const 1)
+ )
+ )
+)
+;; at table edges
+(module
+ (type $ii (func (param i32 i32)))
+ (table $0 5 5 funcref)
+ (elem (i32.const 4) $foo)
+ (func $foo (param i32) (param i32)
+ (unreachable)
+ )
+ (func $bar (param $x i32) (param $y i32)
+ (call_indirect (type $ii)
+ (local.get $x)
+ (local.get $y)
+ (i32.const 4)
+ )
+ )
+)
+(module
+ (type $ii (func (param i32 i32)))
+ (table $0 5 5 funcref)
+ (elem (i32.const 0) $foo)
+ (func $foo (param i32) (param i32)
+ (unreachable)
+ )
+ (func $bar (param $x i32) (param $y i32)
+ (call_indirect (type $ii)
+ (local.get $x)
+ (local.get $y)
+ (i32.const 0)
+ )
+ )
+)
+(module
+ (type $ii (func (param i32 i32)))
+ (table $0 5 5 funcref)
+ (elem (i32.const 0) $foo $foo $foo $foo $foo)
+ (func $foo (param i32) (param i32)
+ (unreachable)
+ )
+ (func $bar (param $x i32) (param $y i32)
+ (call_indirect (type $ii)
+ (local.get $x)
+ (local.get $y)
+ (i32.const 2)
+ )
+ )
+)
+;; imported table
+(module
+ (type $ii (func (param i32 i32)))
+ (import "env" "table" (table $table 5 5 funcref))
+ (elem (i32.const 1) $foo)
+ (func $foo (param i32) (param i32)
+ (unreachable)
+ )
+ (func $bar (param $x i32) (param $y i32)
+ (call_indirect (type $ii)
+ (local.get $x)
+ (local.get $y)
+ (i32.const 1)
+ )
+ )
+)
+;; exported table
+(module
+ (type $ii (func (param i32 i32)))
+ (table $0 5 5 funcref)
+ (export "tab" (table $0))
+ (elem (i32.const 1) $foo)
+ (func $foo (param i32) (param i32)
+ (unreachable)
+ )
+ (func $bar (param $x i32) (param $y i32)
+ (call_indirect (type $ii)
+ (local.get $x)
+ (local.get $y)
+ (i32.const 1)
+ )
+ )
+)
+;; non-constant table offset
+(module
+ (type $ii (func (param i32 i32)))
+ (table $0 5 5 funcref)
+ (global $g (mut i32) (i32.const 1))
+ (elem (global.get $g) $foo)
+ (func $foo (param i32) (param i32)
+ (unreachable)
+ )
+ (func $bar (param $x i32) (param $y i32)
+ (call_indirect (type $ii)
+ (local.get $x)
+ (local.get $y)
+ (i32.const 1)
+ )
+ )
+)
+;; non-constant call index
+(module
+ (type $ii (func (param i32 i32)))
+ (table $0 5 5 funcref)
+ (elem (i32.const 1) $foo)
+ (func $foo (param i32) (param i32)
+ (unreachable)
+ )
+ (func $bar (param $x i32) (param $y i32) (param $z i32)
+ (call_indirect (type $ii)
+ (local.get $x)
+ (local.get $y)
+ (local.get $z)
+ )
+ )
+)
+;; bad index
+(module
+ (type $ii (func (param i32 i32)))
+ (table $0 5 5 funcref)
+ (elem (i32.const 1) $foo)
+ (func $foo (param i32) (param i32)
+ (unreachable)
+ )
+ (func $bar (param $x i32) (param $y i32)
+ (call_indirect (type $ii)
+ (local.get $x)
+ (local.get $y)
+ (i32.const 5)
+ )
+ )
+)
+;; missing index
+(module
+ (type $ii (func (param i32 i32)))
+ (table $0 5 5 funcref)
+ (elem (i32.const 1) $foo)
+ (func $foo (param i32) (param i32)
+ (unreachable)
+ )
+ (func $bar (param $x i32) (param $y i32)
+ (call_indirect (type $ii)
+ (local.get $x)
+ (local.get $y)
+ (i32.const 2)
+ )
+ )
+)
+;; bad type
+(module
+ (type $ii (func (param i32 i32)))
+ (table $0 5 5 funcref)
+ (elem (i32.const 1) $foo)
+ (func $foo (param i32)
+ (unreachable)
+ )
+ (func $bar (param $x i32) (param $y i32)
+ (call_indirect (type $ii)
+ (local.get $x)
+ (local.get $y)
+ (i32.const 1)
+ )
+ )
+)
+;; no table
+(module
+ (func $foo (param i32)
+ (unreachable)
+ )
+)
+
diff --git a/test/passes/inlining-optimizing_optimize-level=3.txt b/test/passes/inlining-optimizing_optimize-level=3.txt
index 29755b055..131f438c2 100644
--- a/test/passes/inlining-optimizing_optimize-level=3.txt
+++ b/test/passes/inlining-optimizing_optimize-level=3.txt
@@ -570,12 +570,11 @@
)
)
)
- (local.set $1
+ (local.tee $0
(call $___fflush_unlocked
(local.get $0)
)
)
- (local.get $1)
)
)
(block
@@ -1120,7 +1119,7 @@
(local.get $0)
)
)
- (local.set $9
+ (local.set $4
(i32.load
(local.get $0)
)
@@ -1135,14 +1134,14 @@
(i32.store
(local.get $0)
(i32.and
- (local.get $9)
+ (local.get $4)
(i32.const -33)
)
)
)
(if
(i32.load
- (local.tee $10
+ (local.tee $9
(i32.add
(local.get $0)
(i32.const 48)
@@ -1159,9 +1158,9 @@
)
)
(block
- (local.set $12
+ (local.set $11
(i32.load
- (local.tee $11
+ (local.tee $10
(i32.add
(local.get $0)
(i32.const 44)
@@ -1170,7 +1169,7 @@
)
)
(i32.store
- (local.get $11)
+ (local.get $10)
(local.get $6)
)
(i32.store
@@ -1183,7 +1182,7 @@
(local.get $6)
)
(i32.store
- (local.tee $4
+ (local.tee $12
(i32.add
(local.get $0)
(i32.const 20)
@@ -1192,7 +1191,7 @@
(local.get $6)
)
(i32.store
- (local.get $10)
+ (local.get $9)
(i32.const 80)
)
(i32.store
@@ -1217,7 +1216,7 @@
)
)
(if
- (local.get $12)
+ (local.get $11)
(block
(drop
(call_indirect (type $FUNCSIG$iiii)
@@ -1240,16 +1239,16 @@
(local.get $1)
(i32.const -1)
(i32.load
- (local.get $4)
+ (local.get $12)
)
)
)
(i32.store
+ (local.get $10)
(local.get $11)
- (local.get $12)
)
(i32.store
- (local.get $10)
+ (local.get $9)
(i32.const 0)
)
(i32.store
@@ -1261,7 +1260,7 @@
(i32.const 0)
)
(i32.store
- (local.get $4)
+ (local.get $12)
(i32.const 0)
)
)
@@ -1271,13 +1270,13 @@
(i32.store
(local.get $0)
(i32.or
- (local.tee $2
+ (local.tee $0
(i32.load
(local.get $0)
)
)
(i32.and
- (local.get $9)
+ (local.get $4)
(i32.const 32)
)
)
@@ -1286,7 +1285,7 @@
(i32.const -1)
(local.get $1)
(i32.and
- (local.get $2)
+ (local.get $0)
(i32.const 32)
)
)
@@ -2136,8 +2135,8 @@
(local $11 i32)
(local $12 i32)
(local $13 i32)
- (local $14 i32)
- (local $15 f64)
+ (local $14 f64)
+ (local $15 i32)
(local $16 i32)
(local $17 i32)
(local $18 i32)
@@ -2145,8 +2144,8 @@
(local $20 i32)
(local $21 i32)
(local $22 i32)
- (local $23 f64)
- (local $24 i32)
+ (local $23 i32)
+ (local $24 f64)
(local $25 i32)
(local $26 i32)
(local $27 i32)
@@ -2171,9 +2170,7 @@
(local $46 i32)
(local $47 i32)
(local $48 i32)
- (local $49 i32)
- (local $50 i32)
- (local.set $34
+ (local.set $13
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -2191,15 +2188,13 @@
)
(local.set $21
(i32.add
- (local.get $34)
+ (local.get $13)
(i32.const 16)
)
)
- (local.set $35
+ (local.set $33
(i32.add
- (local.tee $14
- (local.get $34)
- )
+ (local.get $13)
(i32.const 528)
)
)
@@ -2209,12 +2204,12 @@
(i32.const 0)
)
)
- (local.set $39
+ (local.set $37
(local.tee $25
(i32.add
(local.tee $5
(i32.add
- (local.get $14)
+ (local.get $13)
(i32.const 536)
)
)
@@ -2222,89 +2217,87 @@
)
)
)
- (local.set $40
+ (local.set $38
(i32.add
(local.get $5)
(i32.const 39)
)
)
- (local.set $44
+ (local.set $42
(i32.add
- (local.tee $41
+ (local.tee $39
(i32.add
- (local.get $14)
+ (local.get $13)
(i32.const 8)
)
)
(i32.const 4)
)
)
- (local.set $7
+ (local.set $22
(i32.add
(local.tee $5
(i32.add
- (local.get $14)
+ (local.get $13)
(i32.const 576)
)
)
(i32.const 12)
)
)
- (local.set $42
+ (local.set $40
(i32.add
(local.get $5)
(i32.const 11)
)
)
- (local.set $45
+ (local.set $43
(i32.sub
- (local.tee $26
- (local.get $7)
- )
- (local.tee $36
- (local.tee $22
+ (local.get $22)
+ (local.tee $34
+ (local.tee $23
(i32.add
- (local.get $14)
+ (local.get $13)
(i32.const 588)
)
)
)
)
)
- (local.set $46
+ (local.set $44
(i32.sub
(i32.const -2)
- (local.get $36)
+ (local.get $34)
)
)
- (local.set $47
+ (local.set $45
(i32.add
- (local.get $7)
+ (local.get $22)
(i32.const 2)
)
)
- (local.set $49
+ (local.set $47
(i32.add
- (local.tee $48
+ (local.tee $46
(i32.add
- (local.get $14)
+ (local.get $13)
(i32.const 24)
)
)
(i32.const 288)
)
)
- (local.set $43
+ (local.set $41
(local.tee $29
(i32.add
- (local.get $22)
+ (local.get $23)
(i32.const 9)
)
)
)
- (local.set $33
+ (local.set $32
(i32.add
- (local.get $22)
+ (local.get $23)
(i32.const 8)
)
)
@@ -2320,16 +2313,16 @@
(block $label$break$L1
(if
(i32.gt_s
- (local.get $17)
+ (local.get $18)
(i32.const -1)
)
- (local.set $17
+ (local.set $18
(if (result i32)
(i32.gt_s
(local.get $10)
(i32.sub
(i32.const 2147483647)
- (local.get $17)
+ (local.get $18)
)
)
(block (result i32)
@@ -2341,7 +2334,7 @@
)
(i32.add
(local.get $10)
- (local.get $17)
+ (local.get $18)
)
)
)
@@ -2513,7 +2506,7 @@
)
)
)
- (local.set $18
+ (local.set $19
(select
(local.get $8)
(i32.const -1)
@@ -2530,7 +2523,7 @@
(local.set $6
(local.get $12)
)
- (local.set $18
+ (local.set $19
(i32.const -1)
)
(local.get $1)
@@ -2704,7 +2697,7 @@
(local.set $8
(i32.const 1)
)
- (local.set $16
+ (local.set $17
(i32.load
(local.get $6)
)
@@ -2719,7 +2712,7 @@
(if
(local.get $8)
(block
- (local.set $17
+ (local.set $18
(i32.const -1)
)
(br $label$break$L1)
@@ -2736,7 +2729,7 @@
(local.set $10
(local.get $6)
)
- (local.set $16
+ (local.set $17
(i32.const 0)
)
(br $do-once5
@@ -2744,7 +2737,7 @@
)
)
)
- (local.set $16
+ (local.set $17
(i32.load
(local.tee $10
(i32.and
@@ -2775,14 +2768,14 @@
(local.set $12
(if (result i32)
(i32.lt_s
- (local.get $16)
+ (local.get $17)
(i32.const 0)
)
(block (result i32)
- (local.set $16
+ (local.set $17
(i32.sub
(i32.const 0)
- (local.get $16)
+ (local.get $17)
)
)
(i32.or
@@ -2859,7 +2852,7 @@
(i32.const 0)
)
(block
- (local.set $17
+ (local.set $18
(i32.const -1)
)
(br $label$break$L1)
@@ -2868,7 +2861,7 @@
(local.set $12
(local.get $1)
)
- (local.set $16
+ (local.set $17
(local.get $6)
)
(local.get $8)
@@ -2879,7 +2872,7 @@
(local.set $12
(local.get $1)
)
- (local.set $16
+ (local.set $17
(i32.const 0)
)
(local.get $8)
@@ -2944,7 +2937,7 @@
(loop $while-in11
(drop
(br_if $label$break$L46
- (local.tee $6
+ (local.tee $8
(i32.add
(i32.mul
(local.get $8)
@@ -2954,7 +2947,7 @@
)
)
(i32.ge_u
- (local.tee $9
+ (local.tee $6
(i32.add
(i32.load8_s
(local.tee $10
@@ -2971,12 +2964,6 @@
)
)
)
- (local.set $8
- (local.get $6)
- )
- (local.set $6
- (local.get $9)
- )
(br $while-in11)
)
)
@@ -3051,7 +3038,7 @@
(if
(local.get $1)
(block
- (local.set $17
+ (local.set $18
(i32.const -1)
)
(br $label$break$L1)
@@ -3104,7 +3091,7 @@
(local.set $9
(i32.const 0)
)
- (local.set $19
+ (local.set $16
(loop $while-in13 (result i32)
(if
(i32.gt_u
@@ -3119,7 +3106,7 @@
(i32.const 57)
)
(block
- (local.set $17
+ (local.set $18
(i32.const -1)
)
(br $label$break$L1)
@@ -3136,7 +3123,7 @@
(i32.add
(local.tee $11
(i32.and
- (local.tee $13
+ (local.tee $15
(i32.load8_s
(i32.add
(i32.add
@@ -3173,12 +3160,12 @@
(if
(i32.eqz
(i32.and
- (local.get $13)
+ (local.get $15)
(i32.const 255)
)
)
(block
- (local.set $17
+ (local.set $18
(i32.const -1)
)
(br $label$break$L1)
@@ -3186,7 +3173,7 @@
)
(local.set $8
(i32.gt_s
- (local.get $18)
+ (local.get $19)
(i32.const -1)
)
)
@@ -3195,7 +3182,7 @@
(if
(i32.eq
(i32.and
- (local.get $13)
+ (local.get $15)
(i32.const 255)
)
(i32.const 19)
@@ -3203,7 +3190,7 @@
(if
(local.get $8)
(block
- (local.set $17
+ (local.set $18
(i32.const -1)
)
(br $label$break$L1)
@@ -3218,19 +3205,19 @@
(i32.add
(local.get $4)
(i32.shl
- (local.get $18)
+ (local.get $19)
(i32.const 2)
)
)
(local.get $11)
)
- (local.set $13
+ (local.set $11
(i32.load offset=4
- (local.tee $11
+ (local.tee $8
(i32.add
(local.get $3)
(i32.shl
- (local.get $18)
+ (local.get $19)
(i32.const 3)
)
)
@@ -3238,14 +3225,14 @@
)
)
(i32.store
- (local.get $14)
+ (local.get $13)
(i32.load
- (local.get $11)
+ (local.get $8)
)
)
(i32.store offset=4
- (local.get $14)
(local.get $13)
+ (local.get $11)
)
(br $__rjti$2)
)
@@ -3255,14 +3242,14 @@
(local.get $28)
)
(block
- (local.set $17
+ (local.set $18
(i32.const 0)
)
(br $label$break$L1)
)
)
(call $_pop_arg_336
- (local.get $14)
+ (local.get $13)
(local.get $11)
(local.get $2)
)
@@ -3309,14 +3296,14 @@
(i32.add
(local.tee $11
(select
- (local.tee $13
+ (local.tee $16
(i32.sub
(block $__rjto$8 (result i32)
(block $__rjti$8
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $16)
+ (local.get $17)
(local.tee $7
(block $__rjti$7 (result i32)
(block $__rjti$6
@@ -3338,12 +3325,12 @@
(block $switch-case27
(br_table $switch-case42 $switch-default120 $switch-case40 $switch-default120 $switch-case42 $switch-case42 $switch-case42 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case41 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case29 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case42 $switch-default120 $switch-case37 $switch-case34 $switch-case42 $switch-case42 $switch-case42 $switch-default120 $switch-case34 $switch-default120 $switch-default120 $switch-default120 $switch-case38 $switch-case27 $switch-case33 $switch-case28 $switch-default120 $switch-default120 $switch-case39 $switch-default120 $switch-case36 $switch-default120 $switch-default120 $switch-case29 $switch-default120
(i32.sub
- (local.tee $19
+ (local.tee $16
(select
(i32.and
(local.tee $11
(i32.load8_s
- (local.get $19)
+ (local.get $16)
)
)
(i32.const -33)
@@ -3382,9 +3369,9 @@
)
(i32.store
(i32.load
- (local.get $14)
+ (local.get $13)
)
- (local.get $17)
+ (local.get $18)
)
(local.set $5
(local.get $10)
@@ -3396,9 +3383,9 @@
)
(i32.store
(i32.load
- (local.get $14)
+ (local.get $13)
)
- (local.get $17)
+ (local.get $18)
)
(local.set $5
(local.get $10)
@@ -3411,17 +3398,17 @@
(i32.store
(local.tee $5
(i32.load
- (local.get $14)
+ (local.get $13)
)
)
- (local.get $17)
+ (local.get $18)
)
(i32.store offset=4
(local.get $5)
(i32.shr_s
(i32.shl
(i32.lt_s
- (local.get $17)
+ (local.get $18)
(i32.const 0)
)
(i32.const 31)
@@ -3439,9 +3426,9 @@
)
(i32.store16
(i32.load
- (local.get $14)
+ (local.get $13)
)
- (local.get $17)
+ (local.get $18)
)
(local.set $5
(local.get $10)
@@ -3453,9 +3440,9 @@
)
(i32.store8
(i32.load
- (local.get $14)
+ (local.get $13)
)
- (local.get $17)
+ (local.get $18)
)
(local.set $5
(local.get $10)
@@ -3467,9 +3454,9 @@
)
(i32.store
(i32.load
- (local.get $14)
+ (local.get $13)
)
- (local.get $17)
+ (local.get $18)
)
(local.set $5
(local.get $10)
@@ -3482,17 +3469,17 @@
(i32.store
(local.tee $5
(i32.load
- (local.get $14)
+ (local.get $13)
)
)
- (local.get $17)
+ (local.get $18)
)
(i32.store offset=4
(local.get $5)
(i32.shr_s
(i32.shl
(i32.lt_s
- (local.get $17)
+ (local.get $18)
(i32.const 0)
)
(i32.const 31)
@@ -3532,7 +3519,7 @@
)
)
)
- (local.set $19
+ (local.set $16
(i32.const 120)
)
(br $__rjti$3)
@@ -3544,24 +3531,18 @@
)
(if
(i32.or
- (local.tee $7
+ (local.tee $5
(i32.load
- (local.get $14)
+ (local.get $13)
)
)
- (local.tee $8
+ (local.tee $7
(i32.load offset=4
- (local.get $14)
+ (local.get $13)
)
)
)
(block
- (local.set $5
- (local.get $7)
- )
- (local.set $7
- (local.get $8)
- )
(local.set $8
(local.get $25)
)
@@ -3612,10 +3593,10 @@
)
(local.set $6
(select
- (local.tee $12
+ (local.tee $5
(i32.add
(i32.sub
- (local.get $39)
+ (local.get $37)
(local.get $8)
)
(i32.const 1)
@@ -3624,7 +3605,7 @@
(local.get $6)
(i32.lt_s
(local.get $6)
- (local.get $12)
+ (local.get $5)
)
)
)
@@ -3646,14 +3627,14 @@
)
(local.set $5
(i32.load
- (local.get $14)
+ (local.get $13)
)
)
(if
(i32.lt_s
(local.tee $7
(i32.load offset=4
- (local.get $14)
+ (local.get $13)
)
)
(i32.const 0)
@@ -3672,7 +3653,7 @@
)
)
(i32.store
- (local.get $14)
+ (local.get $13)
(local.tee $5
(i32.sub
(i32.const 0)
@@ -3681,7 +3662,7 @@
)
)
(i32.store offset=4
- (local.get $14)
+ (local.get $13)
(local.tee $7
(global.get $tempRet0)
)
@@ -3728,12 +3709,12 @@
)
(local.set $5
(i32.load
- (local.get $14)
+ (local.get $13)
)
)
(local.set $7
(i32.load offset=4
- (local.get $14)
+ (local.get $13)
)
)
(local.set $8
@@ -3746,17 +3727,17 @@
)
(drop
(i32.load offset=4
- (local.get $14)
+ (local.get $13)
)
)
(i32.store8
- (local.get $40)
+ (local.get $38)
(i32.load
- (local.get $14)
+ (local.get $13)
)
)
(local.set $7
- (local.get $40)
+ (local.get $38)
)
(local.set $12
(local.get $8)
@@ -3787,7 +3768,7 @@
(select
(local.tee $5
(i32.load
- (local.get $14)
+ (local.get $13)
)
)
(i32.const 4101)
@@ -3798,22 +3779,22 @@
)
(drop
(i32.load offset=4
- (local.get $14)
+ (local.get $13)
)
)
(i32.store
- (local.get $41)
+ (local.get $39)
(i32.load
- (local.get $14)
+ (local.get $13)
)
)
(i32.store
- (local.get $44)
+ (local.get $42)
(i32.const 0)
)
(i32.store
- (local.get $14)
- (local.get $41)
+ (local.get $13)
+ (local.get $39)
)
(local.set $8
(i32.const -1)
@@ -3832,7 +3813,7 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $16)
+ (local.get $17)
(i32.const 0)
(local.get $12)
)
@@ -3842,9 +3823,9 @@
)
)
)
- (local.set $15
+ (local.set $14
(f64.load
- (local.get $14)
+ (local.get $13)
)
)
(i32.store
@@ -3853,7 +3834,7 @@
)
(f64.store
(global.get $tempDoublePtr)
- (local.get $15)
+ (local.get $14)
)
(drop
(i32.load
@@ -3872,9 +3853,9 @@
(local.set $27
(i32.const 1)
)
- (local.set $15
+ (local.set $14
(f64.neg
- (local.get $15)
+ (local.get $14)
)
)
(i32.const 4108)
@@ -3910,7 +3891,7 @@
)
(f64.store
(global.get $tempDoublePtr)
- (local.get $15)
+ (local.get $14)
)
(drop
(i32.load
@@ -3932,10 +3913,10 @@
(if
(local.tee $5
(f64.ne
- (local.tee $23
+ (local.tee $24
(f64.mul
(call $_frexp
- (local.get $15)
+ (local.get $14)
(local.get $21)
)
(f64.const 2)
@@ -3956,9 +3937,9 @@
)
(if
(i32.eq
- (local.tee $24
+ (local.tee $26
(i32.or
- (local.get $19)
+ (local.get $16)
(i32.const 32)
)
)
@@ -3972,15 +3953,15 @@
(i32.const 9)
)
(local.get $30)
- (local.tee $13
+ (local.tee $15
(i32.and
- (local.get $19)
+ (local.get $16)
(i32.const 32)
)
)
)
)
- (local.set $15
+ (local.set $14
(if (result f64)
(i32.or
(i32.eqz
@@ -3996,15 +3977,15 @@
(i32.const 11)
)
)
- (local.get $23)
+ (local.get $24)
(block (result f64)
- (local.set $15
+ (local.set $14
(f64.const 8)
)
(loop $while-in54
- (local.set $15
+ (local.set $14
(f64.mul
- (local.get $15)
+ (local.get $14)
(f64.const 16)
)
)
@@ -4026,21 +4007,21 @@
)
(f64.neg
(f64.add
- (local.get $15)
+ (local.get $14)
(f64.sub
(f64.neg
- (local.get $23)
+ (local.get $24)
)
- (local.get $15)
+ (local.get $14)
)
)
)
(f64.sub
(f64.add
- (local.get $23)
- (local.get $15)
+ (local.get $24)
+ (local.get $14)
)
- (local.get $15)
+ (local.get $14)
)
)
)
@@ -4083,18 +4064,18 @@
)
(i32.const 31)
)
- (local.get $26)
+ (local.get $22)
)
)
- (local.get $26)
+ (local.get $22)
)
(block
(i32.store8
- (local.get $42)
+ (local.get $40)
(i32.const 48)
)
(local.set $5
- (local.get $42)
+ (local.get $40)
)
)
)
@@ -4122,17 +4103,17 @@
)
)
(i32.add
- (local.get $19)
+ (local.get $16)
(i32.const 15)
)
)
- (local.set $19
+ (local.set $16
(i32.lt_s
(local.get $6)
(i32.const 1)
)
)
- (local.set $18
+ (local.set $20
(i32.eqz
(i32.and
(local.get $12)
@@ -4141,7 +4122,7 @@
)
)
(local.set $5
- (local.get $22)
+ (local.get $23)
)
(loop $while-in56
(i32.store8
@@ -4152,24 +4133,24 @@
(local.tee $7
(if (result i32)
(f64.ne
- (local.get $15)
- (local.get $15)
+ (local.get $14)
+ (local.get $14)
)
(i32.const -2147483648)
(if (result i32)
(f64.ge
- (local.get $15)
+ (local.get $14)
(f64.const 2147483648)
)
(i32.const -2147483648)
(if (result i32)
(f64.le
- (local.get $15)
+ (local.get $14)
(f64.const -2147483649)
)
(i32.const -2147483648)
(i32.trunc_f64_s
- (local.get $15)
+ (local.get $14)
)
)
)
@@ -4178,13 +4159,13 @@
(i32.const 4075)
)
)
- (local.get $13)
+ (local.get $15)
)
)
- (local.set $15
+ (local.set $14
(f64.mul
(f64.sub
- (local.get $15)
+ (local.get $14)
(f64.convert_i32_s
(local.get $7)
)
@@ -4202,17 +4183,17 @@
(i32.const 1)
)
)
- (local.get $36)
+ (local.get $34)
)
(i32.const 1)
)
(if (result i32)
(i32.and
- (local.get $18)
+ (local.get $20)
(i32.and
- (local.get $19)
+ (local.get $16)
(f64.eq
- (local.get $15)
+ (local.get $14)
(f64.const 0)
)
)
@@ -4234,7 +4215,7 @@
)
(br_if $while-in56
(f64.ne
- (local.get $15)
+ (local.get $14)
(f64.const 0)
)
)
@@ -4242,7 +4223,7 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $16)
+ (local.get $17)
(local.tee $7
(i32.add
(local.tee $6
@@ -4250,13 +4231,13 @@
(i32.sub
(i32.add
(local.get $6)
- (local.get $47)
+ (local.get $45)
)
(local.get $8)
)
(i32.add
(i32.sub
- (local.get $45)
+ (local.get $43)
(local.get $8)
)
(local.get $5)
@@ -4269,7 +4250,7 @@
(i32.lt_s
(i32.add
(local.get $5)
- (local.get $46)
+ (local.get $44)
)
(local.get $6)
)
@@ -4301,7 +4282,7 @@
(call $_pad
(local.get $0)
(i32.const 48)
- (local.get $16)
+ (local.get $17)
(local.get $7)
(i32.xor
(local.get $12)
@@ -4311,7 +4292,7 @@
(local.set $5
(i32.sub
(local.get $5)
- (local.get $36)
+ (local.get $34)
)
)
(if
@@ -4325,7 +4306,7 @@
)
(drop
(call $___fwritex
- (local.get $22)
+ (local.get $23)
(local.get $5)
(local.get $0)
)
@@ -4338,9 +4319,9 @@
(local.get $6)
(i32.add
(local.get $5)
- (local.tee $5
+ (local.tee $6
(i32.sub
- (local.get $26)
+ (local.get $22)
(local.get $8)
)
)
@@ -4361,7 +4342,7 @@
(drop
(call $___fwritex
(local.get $8)
- (local.get $5)
+ (local.get $6)
(local.get $0)
)
)
@@ -4369,7 +4350,7 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $16)
+ (local.get $17)
(local.get $7)
(i32.xor
(local.get $12)
@@ -4378,17 +4359,17 @@
)
(br $do-once49
(select
- (local.get $16)
+ (local.get $17)
(local.get $7)
(i32.lt_s
(local.get $7)
- (local.get $16)
+ (local.get $17)
)
)
)
)
)
- (local.set $15
+ (local.set $14
(if (result f64)
(local.get $5)
(block (result f64)
@@ -4404,7 +4385,7 @@
)
)
(f64.mul
- (local.get $23)
+ (local.get $24)
(f64.const 268435456)
)
)
@@ -4414,15 +4395,15 @@
(local.get $21)
)
)
- (local.get $23)
+ (local.get $24)
)
)
)
(local.set $7
(local.tee $8
(select
- (local.get $48)
- (local.get $49)
+ (local.get $46)
+ (local.get $47)
(i32.lt_s
(local.get $5)
(i32.const 0)
@@ -4436,24 +4417,24 @@
(local.tee $5
(if (result i32)
(f64.ne
- (local.get $15)
- (local.get $15)
+ (local.get $14)
+ (local.get $14)
)
(i32.const -2147483648)
(if (result i32)
(f64.ge
- (local.get $15)
+ (local.get $14)
(f64.const 2147483648)
)
(i32.const -2147483648)
(if (result i32)
(f64.le
- (local.get $15)
+ (local.get $14)
(f64.const -2147483649)
)
(i32.const -2147483648)
(i32.trunc_f64_s
- (local.get $15)
+ (local.get $14)
)
)
)
@@ -4468,10 +4449,10 @@
)
(br_if $while-in60
(f64.ne
- (local.tee $15
+ (local.tee $14
(f64.mul
(f64.sub
- (local.get $15)
+ (local.get $14)
(f64.convert_i32_u
(local.get $5)
)
@@ -4497,7 +4478,7 @@
(local.get $8)
)
(loop $while-in62
- (local.set $13
+ (local.set $15
(select
(i32.const 29)
(local.get $9)
@@ -4538,7 +4519,7 @@
(local.get $9)
)
(i32.const 0)
- (local.get $13)
+ (local.get $15)
)
)
)
@@ -4550,7 +4531,7 @@
)
(local.get $11)
)
- (local.tee $18
+ (local.tee $20
(global.get $tempRet0)
)
(i32.const 1000000000)
@@ -4560,7 +4541,7 @@
(local.set $11
(call $___udivdi3
(local.get $11)
- (local.get $18)
+ (local.get $20)
(i32.const 1000000000)
(i32.const 0)
)
@@ -4626,7 +4607,7 @@
(i32.load
(local.get $21)
)
- (local.get $13)
+ (local.get $15)
)
)
)
@@ -4642,7 +4623,7 @@
(local.get $8)
)
)
- (local.set $18
+ (local.set $19
(select
(i32.const 6)
(local.get $6)
@@ -4662,7 +4643,7 @@
(i32.add
(i32.div_s
(i32.add
- (local.get $18)
+ (local.get $19)
(i32.const 25)
)
(i32.const 9)
@@ -4672,7 +4653,7 @@
)
(local.set $31
(i32.eq
- (local.get $24)
+ (local.get $26)
(i32.const 102)
)
)
@@ -4684,7 +4665,7 @@
)
(local.set $5
(loop $while-in70 (result i32)
- (local.set $13
+ (local.set $15
(select
(i32.const 9)
(local.tee $7
@@ -4709,15 +4690,15 @@
(i32.add
(i32.shl
(i32.const 1)
- (local.get $13)
+ (local.get $15)
)
(i32.const -1)
)
)
- (local.set $37
+ (local.set $35
(i32.shr_u
(i32.const 1000000000)
- (local.get $13)
+ (local.get $15)
)
)
(local.set $9
@@ -4730,24 +4711,24 @@
(i32.store
(local.get $7)
(i32.add
+ (local.get $9)
(i32.shr_u
- (local.tee $32
+ (local.tee $9
(i32.load
(local.get $7)
)
)
- (local.get $13)
+ (local.get $15)
)
- (local.get $9)
)
)
(local.set $9
(i32.mul
(i32.and
+ (local.get $9)
(local.get $11)
- (local.get $32)
)
- (local.get $37)
+ (local.get $35)
)
)
(br_if $while-in74
@@ -4838,7 +4819,7 @@
(i32.load
(local.get $21)
)
- (local.get $13)
+ (local.get $15)
)
)
)
@@ -4893,7 +4874,7 @@
)
(br_if $do-once75
(i32.lt_u
- (local.tee $11
+ (local.tee $8
(i32.load
(local.get $5)
)
@@ -4913,7 +4894,7 @@
)
(br_if $while-in78
(i32.ge_u
- (local.get $11)
+ (local.get $8)
(local.tee $6
(i32.mul
(local.get $6)
@@ -4934,12 +4915,12 @@
(local.tee $6
(i32.add
(i32.sub
- (local.get $18)
+ (local.get $19)
(select
(local.get $7)
(i32.const 0)
(i32.ne
- (local.get $24)
+ (local.get $26)
(i32.const 102)
)
)
@@ -4949,13 +4930,13 @@
(i32.and
(local.tee $31
(i32.ne
- (local.get $18)
+ (local.get $19)
(i32.const 0)
)
)
- (local.tee $37
+ (local.tee $35
(i32.eq
- (local.get $24)
+ (local.get $26)
(i32.const 103)
)
)
@@ -4981,7 +4962,7 @@
)
)
(block (result i32)
- (local.set $13
+ (local.set $8
(i32.div_s
(local.tee $6
(i32.add
@@ -5033,15 +5014,15 @@
(i32.const 10)
)
)
- (local.set $13
- (local.tee $24
+ (local.set $15
+ (local.tee $8
(i32.load
(local.tee $6
(i32.add
(i32.add
- (local.get $8)
+ (local.get $20)
(i32.shl
- (local.get $13)
+ (local.get $8)
(i32.const 2)
)
)
@@ -5051,11 +5032,11 @@
)
)
)
- (local.set $13
+ (local.set $15
(if (result i32)
(local.get $11)
(i32.rem_u
- (local.get $13)
+ (local.get $15)
(local.get $11)
)
(i32.const 0)
@@ -5064,7 +5045,7 @@
(if
(i32.eqz
(i32.and
- (local.tee $32
+ (local.tee $26
(i32.eq
(i32.add
(local.get $6)
@@ -5074,26 +5055,26 @@
)
)
(i32.eqz
- (local.get $13)
+ (local.get $15)
)
)
)
(block $do-once81
- (local.set $50
+ (local.set $36
(if (result i32)
(local.get $11)
(i32.div_u
- (local.get $24)
+ (local.get $8)
(local.get $11)
)
(i32.const 0)
)
)
- (local.set $15
+ (local.set $14
(if (result f64)
(i32.lt_u
- (local.get $13)
- (local.tee $38
+ (local.get $15)
+ (local.tee $48
(i32.div_s
(local.get $11)
(i32.const 2)
@@ -5105,21 +5086,21 @@
(f64.const 1)
(f64.const 1.5)
(i32.and
- (local.get $32)
+ (local.get $26)
(i32.eq
- (local.get $13)
- (local.get $38)
+ (local.get $15)
+ (local.get $48)
)
)
)
)
)
- (local.set $23
+ (local.set $24
(select
(f64.const 9007199254740994)
(f64.const 9007199254740992)
(i32.and
- (local.get $50)
+ (local.get $36)
(i32.const 1)
)
)
@@ -5134,14 +5115,14 @@
(i32.const 45)
)
(block
- (local.set $23
+ (local.set $24
(f64.neg
- (local.get $23)
+ (local.get $24)
)
)
- (local.set $15
+ (local.set $14
(f64.neg
- (local.get $15)
+ (local.get $14)
)
)
)
@@ -5149,28 +5130,28 @@
)
(i32.store
(local.get $6)
- (local.tee $13
+ (local.tee $8
(i32.sub
- (local.get $24)
- (local.get $13)
+ (local.get $8)
+ (local.get $15)
)
)
)
(br_if $do-once81
(f64.eq
(f64.add
- (local.get $23)
- (local.get $15)
+ (local.get $24)
+ (local.get $14)
)
- (local.get $23)
+ (local.get $24)
)
)
(i32.store
(local.get $6)
(local.tee $7
(i32.add
+ (local.get $8)
(local.get $11)
- (local.get $13)
)
)
)
@@ -5237,7 +5218,7 @@
)
(br_if $do-once81
(i32.lt_u
- (local.tee $13
+ (local.tee $8
(i32.load
(local.get $5)
)
@@ -5257,7 +5238,7 @@
)
(br_if $while-in88
(i32.ge_u
- (local.get $13)
+ (local.get $8)
(local.tee $11
(i32.mul
(local.get $11)
@@ -5272,7 +5253,7 @@
(local.set $11
(local.get $5)
)
- (local.set $13
+ (local.set $8
(local.get $7)
)
(select
@@ -5293,17 +5274,17 @@
(local.set $11
(local.get $5)
)
- (local.set $13
+ (local.set $8
(local.get $7)
)
(local.get $9)
)
)
)
- (local.set $32
+ (local.set $36
(i32.sub
(i32.const 0)
- (local.get $13)
+ (local.get $8)
)
)
(local.set $9
@@ -5315,7 +5296,7 @@
(local.get $11)
)
(block
- (local.set $24
+ (local.set $26
(i32.const 0)
)
(br $while-out89
@@ -5333,7 +5314,7 @@
)
)
(block (result i32)
- (local.set $24
+ (local.set $26
(i32.const 1)
)
(local.get $5)
@@ -5351,14 +5332,14 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $16)
- (local.tee $13
+ (local.get $17)
+ (local.tee $8
(i32.add
(i32.add
(i32.add
(local.tee $5
(if (result i32)
- (local.get $37)
+ (local.get $35)
(block $do-once91 (result i32)
(local.set $7
(if (result i32)
@@ -5370,67 +5351,62 @@
(local.get $31)
(i32.const 1)
)
- (local.get $18)
+ (local.get $19)
)
)
- (local.get $13)
+ (local.get $8)
)
(i32.gt_s
- (local.get $13)
+ (local.get $8)
(i32.const -5)
)
)
(block (result i32)
- (local.set $18
+ (local.set $19
(i32.sub
(i32.add
(local.get $5)
(i32.const -1)
)
- (local.get $13)
+ (local.get $8)
)
)
(i32.add
- (local.get $19)
+ (local.get $16)
(i32.const -1)
)
)
(block (result i32)
- (local.set $18
+ (local.set $19
(i32.add
(local.get $5)
(i32.const -1)
)
)
(i32.add
- (local.get $19)
+ (local.get $16)
(i32.const -2)
)
)
)
)
- (if
- (local.tee $5
- (i32.and
- (local.get $12)
- (i32.const 8)
- )
- )
- (block
- (local.set $20
- (local.get $5)
- )
- (br $do-once91
- (local.get $18)
+ (drop
+ (br_if $do-once91
+ (local.get $19)
+ (local.tee $15
+ (i32.and
+ (local.get $12)
+ (i32.const 8)
+ )
)
)
)
(if
- (local.get $24)
+ (local.get $26)
(block $do-once93
(if
(i32.eqz
- (local.tee $19
+ (local.tee $16
(i32.load
(i32.add
(local.get $9)
@@ -5449,7 +5425,7 @@
(local.set $5
(if (result i32)
(i32.rem_u
- (local.get $19)
+ (local.get $16)
(i32.const 10)
)
(block
@@ -5476,7 +5452,7 @@
(br_if $while-in96
(i32.eqz
(if (result i32)
- (local.tee $38
+ (local.tee $15
(local.tee $6
(i32.mul
(local.get $6)
@@ -5485,8 +5461,8 @@
)
)
(i32.rem_u
- (local.get $19)
- (local.get $38)
+ (local.get $16)
+ (local.get $15)
)
(i32.const 0)
)
@@ -5522,11 +5498,11 @@
(i32.const 102)
)
(block (result i32)
- (local.set $20
+ (local.set $15
(i32.const 0)
)
(select
- (local.get $18)
+ (local.get $19)
(local.tee $5
(select
(i32.const 0)
@@ -5543,17 +5519,17 @@
)
)
(i32.lt_s
- (local.get $18)
+ (local.get $19)
(local.get $5)
)
)
)
(block (result i32)
- (local.set $20
+ (local.set $15
(i32.const 0)
)
(select
- (local.get $18)
+ (local.get $19)
(local.tee $5
(select
(i32.const 0)
@@ -5561,7 +5537,7 @@
(i32.sub
(i32.add
(local.get $6)
- (local.get $13)
+ (local.get $8)
)
(local.get $5)
)
@@ -5573,7 +5549,7 @@
)
)
(i32.lt_s
- (local.get $18)
+ (local.get $19)
(local.get $5)
)
)
@@ -5581,16 +5557,16 @@
)
)
(block (result i32)
- (local.set $20
+ (local.set $15
(i32.and
(local.get $12)
(i32.const 8)
)
)
(local.set $7
- (local.get $19)
+ (local.get $16)
)
- (local.get $18)
+ (local.get $19)
)
)
)
@@ -5600,17 +5576,17 @@
)
)
(i32.ne
- (local.tee $31
+ (local.tee $19
(i32.or
(local.get $5)
- (local.get $20)
+ (local.get $15)
)
)
(i32.const 0)
)
)
(if (result i32)
- (local.tee $18
+ (local.tee $31
(i32.eq
(i32.or
(local.get $7)
@@ -5620,14 +5596,14 @@
)
)
(block (result i32)
- (local.set $19
+ (local.set $16
(i32.const 0)
)
(select
- (local.get $13)
+ (local.get $8)
(i32.const 0)
(i32.gt_s
- (local.get $13)
+ (local.get $8)
(i32.const 0)
)
)
@@ -5636,15 +5612,15 @@
(if
(i32.lt_s
(i32.sub
- (local.get $26)
+ (local.get $22)
(local.tee $6
(call $_fmt_u
(local.tee $6
(select
- (local.get $32)
- (local.get $13)
+ (local.get $36)
+ (local.get $8)
(i32.lt_s
- (local.get $13)
+ (local.get $8)
(i32.const 0)
)
)
@@ -5659,7 +5635,7 @@
)
(i32.const 31)
)
- (local.get $26)
+ (local.get $22)
)
)
)
@@ -5678,7 +5654,7 @@
(br_if $while-in98
(i32.lt_s
(i32.sub
- (local.get $26)
+ (local.get $22)
(local.get $6)
)
(i32.const 2)
@@ -5694,7 +5670,7 @@
(i32.add
(i32.and
(i32.shr_s
- (local.get $13)
+ (local.get $8)
(i32.const 31)
)
(i32.const 2)
@@ -5703,7 +5679,7 @@
)
)
(i32.store8
- (local.tee $6
+ (local.tee $16
(i32.add
(local.get $6)
(i32.const -2)
@@ -5712,10 +5688,8 @@
(local.get $7)
)
(i32.sub
- (local.get $26)
- (local.tee $19
- (local.get $6)
- )
+ (local.get $22)
+ (local.get $16)
)
)
)
@@ -5743,24 +5717,24 @@
(call $_pad
(local.get $0)
(i32.const 48)
- (local.get $16)
- (local.get $13)
+ (local.get $17)
+ (local.get $8)
(i32.xor
(local.get $12)
(i32.const 65536)
)
)
(if
- (local.get $18)
+ (local.get $31)
(block
(local.set $6
(local.tee $11
(select
- (local.get $8)
+ (local.get $20)
(local.get $11)
(i32.gt_u
(local.get $11)
- (local.get $8)
+ (local.get $20)
)
)
)
@@ -5789,18 +5763,18 @@
)
)
(i32.store8
- (local.get $33)
+ (local.get $32)
(i32.const 48)
)
(local.set $7
- (local.get $33)
+ (local.get $32)
)
)
(block
(br_if $do-once103
(i32.le_u
(local.get $7)
- (local.get $22)
+ (local.get $23)
)
)
(loop $while-in106
@@ -5816,7 +5790,7 @@
(br_if $while-in106
(i32.gt_u
(local.get $7)
- (local.get $22)
+ (local.get $23)
)
)
)
@@ -5836,7 +5810,7 @@
(call $___fwritex
(local.get $7)
(i32.sub
- (local.get $43)
+ (local.get $41)
(local.get $7)
)
(local.get $0)
@@ -5851,7 +5825,7 @@
(i32.const 4)
)
)
- (local.get $8)
+ (local.get $20)
)
(block
(local.set $6
@@ -5862,7 +5836,7 @@
)
)
(if
- (local.get $31)
+ (local.get $19)
(if
(i32.eqz
(i32.and
@@ -5908,7 +5882,7 @@
(local.get $29)
)
)
- (local.get $22)
+ (local.get $23)
)
(loop $while-in112
(i32.store8
@@ -5923,7 +5897,7 @@
(br_if $while-in112
(i32.gt_u
(local.get $6)
- (local.get $22)
+ (local.get $23)
)
)
)
@@ -5992,14 +5966,14 @@
)
)
(block $do-once99
- (local.set $9
+ (local.set $20
(select
(local.get $9)
(i32.add
(local.get $11)
(i32.const 4)
)
- (local.get $24)
+ (local.get $26)
)
)
(call $_pad
@@ -6012,9 +5986,9 @@
(i32.const -1)
)
(block (result i32)
- (local.set $18
+ (local.set $15
(i32.eqz
- (local.get $20)
+ (local.get $15)
)
)
(local.set $6
@@ -6039,11 +6013,11 @@
)
(block
(i32.store8
- (local.get $33)
+ (local.get $32)
(i32.const 48)
)
(local.set $5
- (local.get $33)
+ (local.get $32)
)
)
)
@@ -6079,7 +6053,7 @@
)
(br_if $do-once115
(i32.and
- (local.get $18)
+ (local.get $15)
(i32.lt_s
(local.get $7)
(i32.const 1)
@@ -6106,7 +6080,7 @@
(br_if $do-once115
(i32.le_u
(local.get $5)
- (local.get $22)
+ (local.get $23)
)
)
(loop $while-in118
@@ -6122,16 +6096,16 @@
(br_if $while-in118
(i32.gt_u
(local.get $5)
- (local.get $22)
+ (local.get $23)
)
)
)
)
)
)
- (local.set $8
+ (local.set $9
(i32.sub
- (local.get $43)
+ (local.get $41)
(local.get $5)
)
)
@@ -6148,11 +6122,11 @@
(call $___fwritex
(local.get $5)
(select
- (local.get $8)
+ (local.get $9)
(local.get $7)
(i32.gt_s
(local.get $7)
- (local.get $8)
+ (local.get $9)
)
)
(local.get $0)
@@ -6168,13 +6142,13 @@
(i32.const 4)
)
)
- (local.get $9)
+ (local.get $20)
)
(i32.gt_s
(local.tee $7
(i32.sub
(local.get $7)
- (local.get $8)
+ (local.get $9)
)
)
(i32.const -1)
@@ -6201,10 +6175,10 @@
)
(drop
(call $___fwritex
- (local.get $19)
+ (local.get $16)
(i32.sub
- (local.get $26)
- (local.get $19)
+ (local.get $22)
+ (local.get $16)
)
(local.get $0)
)
@@ -6214,19 +6188,19 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $16)
- (local.get $13)
+ (local.get $17)
+ (local.get $8)
(i32.xor
(local.get $12)
(i32.const 8192)
)
)
(select
- (local.get $16)
- (local.get $13)
+ (local.get $17)
+ (local.get $8)
(i32.lt_s
- (local.get $13)
- (local.get $16)
+ (local.get $8)
+ (local.get $17)
)
)
)
@@ -6234,7 +6208,7 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $16)
+ (local.get $17)
(local.tee $7
(i32.add
(local.tee $9
@@ -6243,8 +6217,8 @@
(local.get $27)
(local.tee $6
(f64.ne
- (local.get $15)
- (local.get $15)
+ (local.get $14)
+ (local.get $14)
)
)
)
@@ -6262,7 +6236,7 @@
(local.tee $8
(i32.ne
(i32.and
- (local.get $19)
+ (local.get $16)
(i32.const 32)
)
(i32.const 0)
@@ -6317,7 +6291,7 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $16)
+ (local.get $17)
(local.get $7)
(i32.xor
(local.get $12)
@@ -6325,11 +6299,11 @@
)
)
(select
- (local.get $16)
+ (local.get $17)
(local.get $7)
(i32.lt_s
(local.get $7)
- (local.get $16)
+ (local.get $17)
)
)
)
@@ -6361,27 +6335,24 @@
)
(local.set $9
(i32.and
- (local.get $19)
+ (local.get $16)
(i32.const 32)
)
)
(if
(i32.or
- (local.tee $8
+ (local.tee $5
(i32.load
- (local.get $14)
+ (local.get $13)
)
)
(local.tee $12
(i32.load offset=4
- (local.get $14)
+ (local.get $13)
)
)
)
(block
- (local.set $5
- (local.get $8)
- )
(local.set $8
(local.get $25)
)
@@ -6436,10 +6407,10 @@
(i32.eqz
(i32.or
(i32.load
- (local.get $14)
+ (local.get $13)
)
(i32.load offset=4
- (local.get $14)
+ (local.get $13)
)
)
)
@@ -6454,7 +6425,7 @@
(local.set $9
(i32.add
(i32.shr_s
- (local.get $19)
+ (local.get $16)
(i32.const 4)
)
(i32.const 4091)
@@ -6491,9 +6462,9 @@
)
(br $__rjti$8)
)
- (local.set $19
+ (local.set $15
(i32.eqz
- (local.tee $13
+ (local.tee $16
(call $_memchr
(local.get $5)
(i32.const 0)
@@ -6509,12 +6480,12 @@
(select
(local.get $6)
(i32.sub
- (local.get $13)
+ (local.get $16)
(local.tee $7
(local.get $5)
)
)
- (local.get $19)
+ (local.get $15)
)
)
(local.set $8
@@ -6529,8 +6500,8 @@
(local.get $5)
(local.get $6)
)
- (local.get $13)
- (local.get $19)
+ (local.get $16)
+ (local.get $15)
)
)
)
@@ -6542,7 +6513,7 @@
)
(local.set $6
(i32.load
- (local.get $14)
+ (local.get $13)
)
)
(loop $while-in125
@@ -6561,7 +6532,7 @@
(i32.lt_s
(local.tee $7
(call $_wctomb
- (local.get $35)
+ (local.get $33)
(local.get $9)
)
)
@@ -6601,7 +6572,7 @@
(i32.const 0)
)
(block
- (local.set $17
+ (local.set $18
(i32.const -1)
)
(br $label$break$L1)
@@ -6610,7 +6581,7 @@
(call $_pad
(local.get $0)
(i32.const 32)
- (local.get $16)
+ (local.get $17)
(local.get $5)
(local.get $12)
)
@@ -6622,7 +6593,7 @@
)
(local.set $7
(i32.load
- (local.get $14)
+ (local.get $13)
)
)
(loop $while-in127 (result i32)
@@ -6646,7 +6617,7 @@
(i32.add
(local.tee $8
(call $_wctomb
- (local.get $35)
+ (local.get $33)
(local.get $8)
)
)
@@ -6668,7 +6639,7 @@
)
(drop
(call $___fwritex
- (local.get $35)
+ (local.get $33)
(local.get $8)
(local.get $0)
)
@@ -6703,10 +6674,10 @@
)
(local.set $10
(select
- (local.get $16)
+ (local.get $17)
(local.get $7)
(i32.gt_s
- (local.get $16)
+ (local.get $17)
(local.get $7)
)
)
@@ -6734,13 +6705,13 @@
(i32.or
(i32.ne
(i32.load
- (local.get $14)
+ (local.get $13)
)
(i32.const 0)
)
(i32.ne
(i32.load offset=4
- (local.get $14)
+ (local.get $13)
)
(i32.const 0)
)
@@ -6752,16 +6723,13 @@
(local.tee $5
(i32.add
(i32.sub
- (local.get $39)
+ (local.get $37)
(local.tee $7
(local.get $5)
)
)
(i32.xor
- (i32.and
- (local.get $11)
- (i32.const 1)
- )
+ (local.get $11)
(i32.const 1)
)
)
@@ -6787,16 +6755,16 @@
(local.get $11)
(i32.lt_s
(local.get $11)
- (local.get $13)
+ (local.get $16)
)
)
)
(local.get $8)
)
)
- (local.get $16)
+ (local.get $17)
(i32.lt_s
- (local.get $16)
+ (local.get $17)
(local.get $5)
)
)
@@ -6835,7 +6803,7 @@
(local.get $0)
(i32.const 48)
(local.get $11)
- (local.get $13)
+ (local.get $16)
(i32.const 0)
)
(if
@@ -6850,7 +6818,7 @@
(drop
(call $___fwritex
(local.get $7)
- (local.get $13)
+ (local.get $16)
(local.get $0)
)
)
@@ -6880,7 +6848,7 @@
(i32.eqz
(local.get $0)
)
- (local.set $17
+ (local.set $18
(if (result i32)
(local.get $1)
(block (result i32)
@@ -6923,7 +6891,7 @@
(i32.const 10)
)
)
- (local.set $17
+ (local.set $18
(i32.const 1)
)
(br $label$break$L343)
@@ -6947,7 +6915,7 @@
)
)
(block
- (local.set $17
+ (local.set $18
(i32.const -1)
)
(br $label$break$L343)
@@ -6975,9 +6943,9 @@
)
)
(global.set $STACKTOP
- (local.get $34)
+ (local.get $13)
)
- (local.get $17)
+ (local.get $18)
)
(func $_pop_arg_336 (; 45 ;) (type $10) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
@@ -7479,23 +7447,19 @@
(i32.const 48)
)
)
- (local.set $1
+ (local.set $0
(i32.div_u
- (local.get $0)
+ (local.tee $1
+ (local.get $0)
+ )
(i32.const 10)
)
)
- (if
+ (br_if $while-in1
(i32.ge_u
- (local.get $0)
+ (local.get $1)
(i32.const 10)
)
- (block
- (local.set $0
- (local.get $1)
- )
- (br $while-in1)
- )
)
)
)
diff --git a/test/passes/remove-unused-module-elements.txt b/test/passes/remove-unused-module-elements.txt
index 059a45cce..c2471e743 100644
--- a/test/passes/remove-unused-module-elements.txt
+++ b/test/passes/remove-unused-module-elements.txt
@@ -157,7 +157,7 @@
(local $0 i32)
(local $1 i64)
(drop
- (i32.wait
+ (i32.atomic.wait
(local.get $0)
(local.get $0)
(local.get $1)
@@ -170,7 +170,7 @@
(memory $0 (shared 23 256))
(export "user" (func $user))
(func $user (; 0 ;) (type $0) (result i32)
- (wake
+ (atomic.notify
(i32.const 0)
(i32.const 0)
)
diff --git a/test/passes/remove-unused-module-elements.wast b/test/passes/remove-unused-module-elements.wast
index aa824bded..4bd5ccf10 100644
--- a/test/passes/remove-unused-module-elements.wast
+++ b/test/passes/remove-unused-module-elements.wast
@@ -128,7 +128,7 @@
(local $0 i32)
(local $1 i64)
(drop
- (i32.wait
+ (i32.atomic.wait
(local.get $0)
(local.get $0)
(local.get $1)
@@ -140,7 +140,7 @@
(memory $0 (shared 23 256))
(export "user" $user)
(func $user (result i32)
- (wake (i32.const 0) (i32.const 0))
+ (atomic.notify (i32.const 0) (i32.const 0))
)
)
(module ;; more use checks
diff --git a/test/passes/remove-unused-nonfunction-module-elements.txt b/test/passes/remove-unused-nonfunction-module-elements.txt
index 556351afb..2d9609efa 100644
--- a/test/passes/remove-unused-nonfunction-module-elements.txt
+++ b/test/passes/remove-unused-nonfunction-module-elements.txt
@@ -172,7 +172,7 @@
(local $0 i32)
(local $1 i64)
(drop
- (i32.wait
+ (i32.atomic.wait
(local.get $0)
(local.get $0)
(local.get $1)
@@ -185,7 +185,7 @@
(memory $0 (shared 23 256))
(export "user" (func $user))
(func $user (; 0 ;) (type $0) (result i32)
- (wake
+ (atomic.notify
(i32.const 0)
(i32.const 0)
)
diff --git a/test/passes/remove-unused-nonfunction-module-elements.wast b/test/passes/remove-unused-nonfunction-module-elements.wast
index 910b99431..4370328ce 100644
--- a/test/passes/remove-unused-nonfunction-module-elements.wast
+++ b/test/passes/remove-unused-nonfunction-module-elements.wast
@@ -128,7 +128,7 @@
(local $0 i32)
(local $1 i64)
(drop
- (i32.wait
+ (i32.atomic.wait
(local.get $0)
(local.get $0)
(local.get $1)
@@ -140,7 +140,7 @@
(memory $0 (shared 23 256))
(export "user" $user)
(func $user (result i32)
- (wake (i32.const 0) (i32.const 0))
+ (atomic.notify (i32.const 0) (i32.const 0))
)
)
(module ;; more use checks
diff --git a/test/passes/ssa-nomerge.txt b/test/passes/ssa-nomerge.txt
new file mode 100644
index 000000000..fbe9b0c76
--- /dev/null
+++ b/test/passes/ssa-nomerge.txt
@@ -0,0 +1,202 @@
+(module
+ (type $0 (func (param i32)))
+ (type $1 (func (param i32 i32)))
+ (global $global$0 (mut i32) (i32.const 1))
+ (func $basics (; 0 ;) (type $0) (param $x i32)
+ (local $y i32)
+ (local $z f32)
+ (local $w i64)
+ (local $t f64)
+ (local $5 i32)
+ (local $6 f64)
+ (local $7 f64)
+ (drop
+ (local.get $x)
+ )
+ (drop
+ (i32.const 0)
+ )
+ (drop
+ (f32.const 0)
+ )
+ (drop
+ (i64.const 0)
+ )
+ (drop
+ (f64.const 0)
+ )
+ (local.set $5
+ (i32.const 100)
+ )
+ (drop
+ (local.get $5)
+ )
+ (local.set $6
+ (f64.const 2)
+ )
+ (drop
+ (local.get $6)
+ )
+ (local.set $7
+ (f64.const 33)
+ )
+ (drop
+ (local.get $7)
+ )
+ (drop
+ (local.get $7)
+ )
+ )
+ (func $if (; 1 ;) (type $0) (param $p i32)
+ (local $x i32)
+ (local $y i32)
+ (local $3 i32)
+ (drop
+ (if (result i32)
+ (i32.const 1)
+ (i32.const 0)
+ (i32.const 0)
+ )
+ )
+ (if
+ (i32.const 1)
+ (local.set $x
+ (i32.const 1)
+ )
+ )
+ (drop
+ (local.get $x)
+ )
+ (if
+ (i32.const 1)
+ (local.set $p
+ (i32.const 1)
+ )
+ )
+ (drop
+ (local.get $p)
+ )
+ (if
+ (i32.const 1)
+ (local.set $x
+ (i32.const 2)
+ )
+ (nop)
+ )
+ (drop
+ (local.get $x)
+ )
+ (if
+ (i32.const 1)
+ (nop)
+ (local.set $x
+ (i32.const 3)
+ )
+ )
+ (drop
+ (local.get $x)
+ )
+ (if
+ (i32.const 1)
+ (local.set $x
+ (i32.const 4)
+ )
+ (local.set $x
+ (i32.const 5)
+ )
+ )
+ (drop
+ (local.get $x)
+ )
+ (if
+ (i32.const 1)
+ (local.set $x
+ (i32.const 6)
+ )
+ (block $block
+ (local.set $3
+ (i32.const 7)
+ )
+ (local.set $x
+ (i32.const 8)
+ )
+ )
+ )
+ (drop
+ (local.get $x)
+ )
+ )
+ (func $if2 (; 2 ;) (type $0) (param $x i32)
+ (if
+ (i32.const 1)
+ (block $block
+ (local.set $x
+ (i32.const 1)
+ )
+ (drop
+ (local.get $x)
+ )
+ )
+ )
+ (drop
+ (local.get $x)
+ )
+ )
+ (func $nomerge (; 3 ;) (type $1) (param $p i32) (param $q i32)
+ (local $x i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local.set $3
+ (i32.const 1)
+ )
+ (call $nomerge
+ (local.get $3)
+ (local.get $3)
+ )
+ (local.set $4
+ (i32.const 2)
+ )
+ (call $nomerge
+ (local.get $4)
+ (local.get $4)
+ )
+ (local.set $x
+ (i32.const 3)
+ )
+ (call $nomerge
+ (local.get $x)
+ (local.get $x)
+ )
+ (if
+ (i32.const 1)
+ (local.set $x
+ (i32.const 4)
+ )
+ )
+ (call $nomerge
+ (local.get $x)
+ (local.get $x)
+ )
+ (local.set $5
+ (i32.const 5)
+ )
+ (call $nomerge
+ (local.get $5)
+ (local.get $5)
+ )
+ (if
+ (i32.const 1)
+ (local.set $x
+ (i32.const 6)
+ )
+ (local.set $x
+ (i32.const 7)
+ )
+ )
+ (call $nomerge
+ (local.get $x)
+ (local.get $x)
+ )
+ )
+)
diff --git a/test/passes/ssa-nomerge.wast b/test/passes/ssa-nomerge.wast
new file mode 100644
index 000000000..dec7c89e5
--- /dev/null
+++ b/test/passes/ssa-nomerge.wast
@@ -0,0 +1,102 @@
+(module
+ (global $global$0 (mut i32) (i32.const 1))
+ (func $basics (param $x i32)
+ (local $y i32)
+ (local $z f32)
+ (local $w i64)
+ (local $t f64)
+ (drop (local.get $x)) ;; keep as param get
+ (drop (local.get $y)) ;; turn into get of 0-init
+ (drop (local.get $z))
+ (drop (local.get $w))
+ (drop (local.get $t))
+ (local.set $x (i32.const 100)) ;; overwrite param
+ (drop (local.get $x)) ;; no longer a param!
+ (local.set $t (f64.const 2)) ;; overwrite local
+ (drop (local.get $t))
+ (local.set $t (f64.const 33)) ;; overwrite local AGAIN
+ (drop (local.get $t))
+ (drop (local.get $t)) ;; use twice
+ )
+ (func $if (param $p i32)
+ (local $x i32)
+ (local $y i32)
+ (drop
+ (if i32
+ (i32.const 1)
+ (local.get $x)
+ (local.get $y)
+ )
+ )
+ (if
+ (i32.const 1)
+ (local.set $x (i32.const 1))
+ )
+ (drop (local.get $x))
+ ;; same but with param
+ (if
+ (i32.const 1)
+ (local.set $p (i32.const 1))
+ )
+ (drop (local.get $p))
+ ;; if-else
+ (if
+ (i32.const 1)
+ (local.set $x (i32.const 2))
+ (nop)
+ )
+ (drop (local.get $x))
+ (if
+ (i32.const 1)
+ (nop)
+ (local.set $x (i32.const 3))
+ )
+ (drop (local.get $x))
+ (if
+ (i32.const 1)
+ (local.set $x (i32.const 4))
+ (local.set $x (i32.const 5))
+ )
+ (drop (local.get $x))
+ (if
+ (i32.const 1)
+ (local.set $x (i32.const 6))
+ (block
+ (local.set $x (i32.const 7))
+ (local.set $x (i32.const 8))
+ )
+ )
+ (drop (local.get $x))
+ )
+ (func $if2 (param $x i32)
+ (if
+ (i32.const 1)
+ (block
+ (local.set $x (i32.const 1))
+ (drop (local.get $x)) ;; use between phi set and use
+ )
+ )
+ (drop (local.get $x))
+ )
+ (func $nomerge (param $p i32) (param $q i32)
+ (local $x i32)
+ (local.set $x (i32.const 1)) ;; untangle this
+ (call $nomerge (local.get $x) (local.get $x))
+ (local.set $x (i32.const 2)) ;; and this
+ (call $nomerge (local.get $x) (local.get $x))
+ (local.set $x (i32.const 3)) ;; but this reaches a merge later
+ (call $nomerge (local.get $x) (local.get $x))
+ (if (i32.const 1)
+ (local.set $x (i32.const 4))
+ )
+ (call $nomerge (local.get $x) (local.get $x))
+ (local.set $x (i32.const 5)) ;; this is good again
+ (call $nomerge (local.get $x) (local.get $x))
+ (if (i32.const 1)
+ (local.set $x (i32.const 6)) ;; these merge,
+ (local.set $x (i32.const 7)) ;; so no
+ )
+ (call $nomerge (local.get $x) (local.get $x))
+ )
+)
+
diff --git a/test/passes/ssa.txt b/test/passes/ssa.txt
index b4e874108..54a5cd757 100644
--- a/test/passes/ssa.txt
+++ b/test/passes/ssa.txt
@@ -442,10 +442,9 @@
(local $4 i32)
(local $5 i32)
(local $6 i32)
- (local $7 i32)
(local.set $3
- (local.tee $7
- (local.tee $6
+ (local.tee $6
+ (local.tee $5
(local.get $param)
)
)
@@ -456,16 +455,16 @@
(i32.const 1)
(br $stop)
)
- (local.set $4
+ (local.set $inc
(i32.add
- (local.get $6)
+ (local.get $5)
(i32.const 1)
)
)
- (local.set $5
- (local.tee $7
- (local.tee $6
- (local.get $4)
+ (local.set $4
+ (local.tee $6
+ (local.tee $5
+ (local.get $inc)
)
)
)
@@ -473,7 +472,7 @@
)
)
(drop
- (local.get $7)
+ (local.get $6)
)
)
(func $real-loop-outblock (; 9 ;) (type $0) (param $param i32)
@@ -483,10 +482,9 @@
(local $4 i32)
(local $5 i32)
(local $6 i32)
- (local $7 i32)
(local.set $3
- (local.tee $7
- (local.tee $6
+ (local.tee $6
+ (local.tee $5
(local.get $param)
)
)
@@ -497,16 +495,16 @@
(i32.const 1)
(br $stop)
)
- (local.set $4
+ (local.set $inc
(i32.add
- (local.get $6)
+ (local.get $5)
(i32.const 1)
)
)
- (local.set $5
- (local.tee $7
- (local.tee $6
- (local.get $4)
+ (local.set $4
+ (local.tee $6
+ (local.tee $5
+ (local.get $inc)
)
)
)
@@ -514,7 +512,7 @@
)
)
(drop
- (local.get $7)
+ (local.get $6)
)
)
(func $loop-loop-param (; 10 ;) (type $0) (param $param i32)
diff --git a/test/passes/ssa_fuzz-exec.txt b/test/passes/ssa_fuzz-exec.txt
index b15ae5775..35499266e 100644
--- a/test/passes/ssa_fuzz-exec.txt
+++ b/test/passes/ssa_fuzz-exec.txt
@@ -16,11 +16,9 @@
(local $6 i32)
(local $7 i32)
(local $8 i32)
- (local $9 i32)
+ (local $9 f64)
(local $10 i32)
- (local $11 f64)
- (local $12 i32)
- (local $13 i32)
+ (local $11 i32)
(block $label$1 (result i32)
(if (result i32)
(i32.const 0)
@@ -29,9 +27,9 @@
(loop $label$5
(block $label$6
(block $label$7
- (local.set $10
+ (local.set $8
(if (result i32)
- (local.get $12)
+ (local.get $10)
(select
(loop $label$9 (result i32)
(if (result i32)
@@ -44,7 +42,7 @@
)
(br_if $label$4
(i32.const 0)
- (local.tee $6
+ (local.tee $var$1
(local.tee $5
(block $label$12 (result i32)
(br_if $label$5
@@ -62,13 +60,13 @@
(if
(i32.const 0)
(return
- (local.get $13)
+ (local.get $11)
)
)
(if
- (local.tee $8
- (local.tee $7
- (local.tee $13
+ (local.tee $var$1
+ (local.tee $6
+ (local.tee $11
(i32.const 0)
)
)
@@ -81,9 +79,9 @@
)
(br_if $label$15
(i32.eqz
- (local.tee $9
- (local.tee $13
- (local.tee $12
+ (local.tee $7
+ (local.tee $11
+ (local.tee $10
(i32.const 129)
)
)
@@ -98,10 +96,10 @@
)
(br_if $label$6
(if (result i32)
- (local.get $8)
+ (local.get $var$1)
(unreachable)
(block $label$25 (result i32)
- (local.set $11
+ (local.set $9
(block $label$26 (result f64)
(drop
(br_if $label$4
diff --git a/test/reduce/memory_table.wast.txt b/test/reduce/memory_table.wast.txt
index 3c3b80ca8..1665c7a4e 100644
--- a/test/reduce/memory_table.wast.txt
+++ b/test/reduce/memory_table.wast.txt
@@ -2,18 +2,13 @@
(type $0 (func (result i32)))
(type $1 (func))
(memory $0 256 256)
- (table $0 481 481 funcref)
- (elem (i32.const 0) $0 $0 $0 $2)
- (export "f1" (func $1))
- (export "f2" (func $2))
- (export "f4" (func $3))
- (func $0 (; 0 ;) (type $0) (result i32)
- (i32.const 1234)
- )
- (func $1 (; 1 ;) (type $1)
+ (export "f1" (func $0))
+ (export "f2" (func $1))
+ (export "f4" (func $2))
+ (func $0 (; 0 ;) (type $1)
(nop)
)
- (func $2 (; 2 ;) (type $0) (result i32)
+ (func $1 (; 1 ;) (type $0) (result i32)
(i32.store
(i32.const 0)
(i32.const 65530)
@@ -22,14 +17,10 @@
(i32.const 0)
)
)
- (func $3 (; 3 ;) (type $0) (result i32)
+ (func $2 (; 2 ;) (type $0) (result i32)
(i32.add
- (call_indirect (type $0)
- (i32.const 3)
- )
- (call_indirect (type $0)
- (i32.const 0)
- )
+ (call $1)
+ (i32.const 1234)
)
)
)
diff --git a/test/threads.wasm-only.fromasm b/test/threads.wasm-only.fromasm
index 87e3cd806..abe8312a7 100644
--- a/test/threads.wasm-only.fromasm
+++ b/test/threads.wasm-only.fromasm
@@ -8,7 +8,6 @@
(func $test64 (; 1 ;) (; has Stack IR ;) (result i64)
(local $0 i64)
(local $1 i64)
- (local $2 i32)
(i64.atomic.store
(i32.const 4656)
(i64.const 92)
@@ -34,7 +33,7 @@
(i64.atomic.rmw.sub
(i32.const 1024)
(i64.atomic.rmw.add
- (local.get $2)
+ (i32.const 0)
(i64.const 26)
)
)
diff --git a/test/threads.wasm-only.fromasm.clamp b/test/threads.wasm-only.fromasm.clamp
index 87e3cd806..abe8312a7 100644
--- a/test/threads.wasm-only.fromasm.clamp
+++ b/test/threads.wasm-only.fromasm.clamp
@@ -8,7 +8,6 @@
(func $test64 (; 1 ;) (; has Stack IR ;) (result i64)
(local $0 i64)
(local $1 i64)
- (local $2 i32)
(i64.atomic.store
(i32.const 4656)
(i64.const 92)
@@ -34,7 +33,7 @@
(i64.atomic.rmw.sub
(i32.const 1024)
(i64.atomic.rmw.add
- (local.get $2)
+ (i32.const 0)
(i64.const 26)
)
)
diff --git a/test/threads.wasm-only.fromasm.imprecise b/test/threads.wasm-only.fromasm.imprecise
index 4952b5021..9426be3eb 100644
--- a/test/threads.wasm-only.fromasm.imprecise
+++ b/test/threads.wasm-only.fromasm.imprecise
@@ -6,7 +6,6 @@
(func $test64 (; 1 ;) (; has Stack IR ;) (result i64)
(local $0 i64)
(local $1 i64)
- (local $2 i32)
(i64.atomic.store
(i32.const 4656)
(i64.const 92)
@@ -32,7 +31,7 @@
(i64.atomic.rmw.sub
(i32.const 1024)
(i64.atomic.rmw.add
- (local.get $2)
+ (i32.const 0)
(i64.const 26)
)
)
diff --git a/test/unit.fromasm b/test/unit.fromasm
index 575013dbb..1c0954564 100644
--- a/test/unit.fromasm
+++ b/test/unit.fromasm
@@ -219,11 +219,8 @@
(f64.const -0)
)
(func $neg (; 17 ;) (; has Stack IR ;)
- (local $0 f32)
(call_indirect (type $FUNCSIG$vf)
- (f32.neg
- (local.get $0)
- )
+ (f32.const -0)
(i32.const 9)
)
)
diff --git a/test/unit.fromasm.clamp b/test/unit.fromasm.clamp
index 73fe3f4a1..654171c6a 100644
--- a/test/unit.fromasm.clamp
+++ b/test/unit.fromasm.clamp
@@ -271,11 +271,8 @@
(f64.const -0)
)
(func $neg (; 18 ;) (; has Stack IR ;)
- (local $0 f32)
(call_indirect (type $FUNCSIG$vf)
- (f32.neg
- (local.get $0)
- )
+ (f32.const -0)
(i32.const 9)
)
)
diff --git a/test/unit.fromasm.imprecise b/test/unit.fromasm.imprecise
index bf5a9ae22..fb55716e8 100644
--- a/test/unit.fromasm.imprecise
+++ b/test/unit.fromasm.imprecise
@@ -218,11 +218,8 @@
(f64.const -0)
)
(func $neg (; 16 ;) (; has Stack IR ;)
- (local $0 f32)
(call_indirect (type $FUNCSIG$vf)
- (f32.neg
- (local.get $0)
- )
+ (f32.const -0)
(i32.const 9)
)
)
diff --git a/test/crash/__init__.py b/test/unit/__init__.py
index e69de29bb..e69de29bb 100644
--- a/test/crash/__init__.py
+++ b/test/unit/__init__.py
diff --git a/test/unit/test_features.py b/test/unit/test_features.py
new file mode 100644
index 000000000..9f9f618b0
--- /dev/null
+++ b/test/unit/test_features.py
@@ -0,0 +1,88 @@
+import unittest
+from scripts.test.shared import WASM_OPT, run_process
+
+
+class FeatureValidationTest(unittest.TestCase):
+ def check_feature(self, module, error, flag):
+ p = run_process(WASM_OPT + ['--mvp-features', '--print'],
+ input=module, check=False, capture_output=True)
+ self.assertIn(error, p.stderr)
+ self.assertIn("Fatal: error in validating input", p.stderr)
+ self.assertNotEqual(p.returncode, 0)
+ p = run_process(WASM_OPT + ['--mvp-features', flag, '--print'],
+ input=module, check=False, capture_output=True)
+ self.assertEqual(p.returncode, 0)
+
+ def check_simd(self, module, error):
+ self.check_feature(module, error, '--enable-simd')
+
+ def check_sign_ext(self, module, error):
+ self.check_feature(module, error, '--enable-sign-ext')
+
+ def test_v128_signature(self):
+ module = """
+ (module
+ (func $foo (param $0 v128) (result v128)
+ (local.get $0)
+ )
+ )
+ """
+ self.check_simd(module, "all used types should be allowed")
+
+ def test_v128_global(self):
+ module = """
+ (module
+ (global $foo (mut v128) (v128.const i32x4 0 0 0 0))
+ )
+ """
+ self.check_simd(module, "all used types should be allowed")
+
+ def test_v128_local(self):
+ module = """
+ (module
+ (func $foo
+ (local v128)
+ )
+ )
+ """
+ self.check_simd(module, "all used types should be allowed")
+
+ def test_simd_const(self):
+ module = """
+ (module
+ (func $foo
+ (drop (v128.const i32x4 0 0 0 0))
+ )
+ )
+ """
+ self.check_simd(module, "all used features should be allowed")
+
+ def test_simd_load(self):
+ module = """
+ (module
+ (func $foo
+ (drop (v128.load (i32.const 0)))
+ )
+ )
+ """
+ self.check_simd(module, "SIMD operation (SIMD is disabled)")
+
+ def test_simd_splat(self):
+ module = """
+ (module
+ (func $foo
+ (drop (i32x4.splat (i32.const 0)))
+ )
+ )
+ """
+ self.check_simd(module, "all used features should be allowed")
+
+ def test_sign_ext(self):
+ module = """
+ (module
+ (func $foo
+ (drop (i32.extend8_s (i32.const 7)))
+ )
+ )
+ """
+ self.check_sign_ext(module, "all used features should be allowed")
diff --git a/test/wasm-only.fromasm b/test/wasm-only.fromasm
index 36611ca94..6eedc642a 100644
--- a/test/wasm-only.fromasm
+++ b/test/wasm-only.fromasm
@@ -132,96 +132,93 @@
)
)
(func $stores (; 7 ;) (; has Stack IR ;)
- (local $0 i32)
- (local $1 f64)
- (local $2 f32)
(i32.store8
(i32.const 100)
- (local.get $0)
+ (i32.const 0)
)
(i32.store8
(i32.const 101)
- (local.get $0)
+ (i32.const 0)
)
(i32.store16
(i32.const 102)
- (local.get $0)
+ (i32.const 0)
)
(i32.store16
(i32.const 103)
- (local.get $0)
+ (i32.const 0)
)
(i32.store16 align=1
(i32.const 104)
- (local.get $0)
+ (i32.const 0)
)
(i32.store16
(i32.const 105)
- (local.get $0)
+ (i32.const 0)
)
(i32.store
(i32.const 106)
- (local.get $0)
+ (i32.const 0)
)
(i32.store
(i32.const 107)
- (local.get $0)
+ (i32.const 0)
)
(i32.store align=1
(i32.const 108)
- (local.get $0)
+ (i32.const 0)
)
(i32.store align=2
(i32.const 109)
- (local.get $0)
+ (i32.const 0)
)
(i32.store
(i32.const 110)
- (local.get $0)
+ (i32.const 0)
)
(f32.store
(i32.const 111)
- (local.get $2)
+ (f32.const 0)
)
(f32.store
(i32.const 112)
- (local.get $2)
+ (f32.const 0)
)
(f32.store align=1
(i32.const 113)
- (local.get $2)
+ (f32.const 0)
)
(f32.store align=2
(i32.const 114)
- (local.get $2)
+ (f32.const 0)
)
(f32.store
(i32.const 115)
- (local.get $2)
+ (f32.const 0)
)
(f64.store
(i32.const 116)
- (local.get $1)
+ (f64.const 0)
)
(f64.store
(i32.const 117)
- (local.get $1)
+ (f64.const 0)
)
(f64.store align=1
(i32.const 118)
- (local.get $1)
+ (f64.const 0)
)
(f64.store align=2
(i32.const 119)
- (local.get $1)
+ (f64.const 0)
)
(f64.store align=4
(i32.const 120)
- (local.get $1)
+ (f64.const 0)
)
(f64.store
(i32.const 121)
- (local.get $1)
+ (f64.const 0)
)
)
(func $i64s-div (; 8 ;) (; has Stack IR ;) (param $0 i64) (param $1 i64) (result i64)
diff --git a/test/wasm-only.fromasm.clamp b/test/wasm-only.fromasm.clamp
index 36611ca94..6eedc642a 100644
--- a/test/wasm-only.fromasm.clamp
+++ b/test/wasm-only.fromasm.clamp
@@ -132,96 +132,93 @@
)
)
(func $stores (; 7 ;) (; has Stack IR ;)
- (local $0 i32)
- (local $1 f64)
- (local $2 f32)
(i32.store8
(i32.const 100)
- (local.get $0)
+ (i32.const 0)
)
(i32.store8
(i32.const 101)
- (local.get $0)
+ (i32.const 0)
)
(i32.store16
(i32.const 102)
- (local.get $0)
+ (i32.const 0)
)
(i32.store16
(i32.const 103)
- (local.get $0)
+ (i32.const 0)
)
(i32.store16 align=1
(i32.const 104)
- (local.get $0)
+ (i32.const 0)
)
(i32.store16
(i32.const 105)
- (local.get $0)
+ (i32.const 0)
)
(i32.store
(i32.const 106)
- (local.get $0)
+ (i32.const 0)
)
(i32.store
(i32.const 107)
- (local.get $0)
+ (i32.const 0)
)
(i32.store align=1
(i32.const 108)
- (local.get $0)
+ (i32.const 0)
)
(i32.store align=2
(i32.const 109)
- (local.get $0)
+ (i32.const 0)
)
(i32.store
(i32.const 110)
- (local.get $0)
+ (i32.const 0)
)
(f32.store
(i32.const 111)
- (local.get $2)
+ (f32.const 0)
)
(f32.store
(i32.const 112)
- (local.get $2)
+ (f32.const 0)
)
(f32.store align=1
(i32.const 113)
- (local.get $2)
+ (f32.const 0)
)
(f32.store align=2
(i32.const 114)
- (local.get $2)
+ (f32.const 0)
)
(f32.store
(i32.const 115)
- (local.get $2)
+ (f32.const 0)
)
(f64.store
(i32.const 116)
- (local.get $1)
+ (f64.const 0)
)
(f64.store
(i32.const 117)
- (local.get $1)
+ (f64.const 0)
)
(f64.store align=1
(i32.const 118)
- (local.get $1)
+ (f64.const 0)
)
(f64.store align=2
(i32.const 119)
- (local.get $1)
+ (f64.const 0)
)
(f64.store align=4
(i32.const 120)
- (local.get $1)
+ (f64.const 0)
)
(f64.store
(i32.const 121)
- (local.get $1)
+ (f64.const 0)
)
)
(func $i64s-div (; 8 ;) (; has Stack IR ;) (param $0 i64) (param $1 i64) (result i64)
diff --git a/test/wasm-only.fromasm.imprecise b/test/wasm-only.fromasm.imprecise
index 87e328ab1..38206b1bc 100644
--- a/test/wasm-only.fromasm.imprecise
+++ b/test/wasm-only.fromasm.imprecise
@@ -18,101 +18,97 @@
(export "illegalResult" (func $legalstub$illegalResult))
(export "keepAlive" (func $keepAlive))
(func $stores (; 6 ;) (; has Stack IR ;)
- (local $0 i32)
- (local $1 f64)
- (local $2 f32)
(i32.store8
(i32.const 100)
- (local.get $0)
+ (i32.const 0)
)
(i32.store8
(i32.const 101)
- (local.get $0)
+ (i32.const 0)
)
(i32.store16
(i32.const 102)
- (local.get $0)
+ (i32.const 0)
)
(i32.store16
(i32.const 103)
- (local.get $0)
+ (i32.const 0)
)
(i32.store16 align=1
(i32.const 104)
- (local.get $0)
+ (i32.const 0)
)
(i32.store16
(i32.const 105)
- (local.get $0)
+ (i32.const 0)
)
(i32.store
(i32.const 106)
- (local.get $0)
+ (i32.const 0)
)
(i32.store
(i32.const 107)
- (local.get $0)
+ (i32.const 0)
)
(i32.store align=1
(i32.const 108)
- (local.get $0)
+ (i32.const 0)
)
(i32.store align=2
(i32.const 109)
- (local.get $0)
+ (i32.const 0)
)
(i32.store
(i32.const 110)
- (local.get $0)
+ (i32.const 0)
)
(f32.store
(i32.const 111)
- (local.get $2)
+ (f32.const 0)
)
(f32.store
(i32.const 112)
- (local.get $2)
+ (f32.const 0)
)
(f32.store align=1
(i32.const 113)
- (local.get $2)
+ (f32.const 0)
)
(f32.store align=2
(i32.const 114)
- (local.get $2)
+ (f32.const 0)
)
(f32.store
(i32.const 115)
- (local.get $2)
+ (f32.const 0)
)
(f64.store
(i32.const 116)
- (local.get $1)
+ (f64.const 0)
)
(f64.store
(i32.const 117)
- (local.get $1)
+ (f64.const 0)
)
(f64.store align=1
(i32.const 118)
- (local.get $1)
+ (f64.const 0)
)
(f64.store align=2
(i32.const 119)
- (local.get $1)
+ (f64.const 0)
)
(f64.store align=4
(i32.const 120)
- (local.get $1)
+ (f64.const 0)
)
(f64.store
(i32.const 121)
- (local.get $1)
+ (f64.const 0)
)
)
(func $test64 (; 7 ;) (; has Stack IR ;)
(local $0 i64)
- (local $1 i32)
(i64.store
(i32.const 120)
(local.tee $0
@@ -137,11 +133,6 @@
(i32.const 120)
(local.get $0)
)
- (local.set $1
- (i32.wrap_i64
- (local.get $0)
- )
- )
)
(func $imports (; 8 ;) (; has Stack IR ;)
(call $legalfunc$illegalImport