diff options
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 ) @@ -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" @@ -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 Binary files differdeleted file mode 100644 index 8df894a74..000000000 --- a/test/merge/dylib.wasm +++ /dev/null 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 Binary files differdeleted file mode 100644 index 63ff1fd0a..000000000 --- a/test/merge/dylib.wasm.toMerge +++ /dev/null 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 |