diff options
-rwxr-xr-x | emcc | 15 | ||||
-rwxr-xr-x | emscripten.py | 15 | ||||
-rw-r--r-- | src/analyzer.js | 5 | ||||
-rw-r--r-- | src/fastLong.js | 12 | ||||
-rw-r--r-- | src/intertyper.js | 43 | ||||
-rw-r--r-- | src/jsifier.js | 216 | ||||
-rw-r--r-- | src/library.js | 138 | ||||
-rw-r--r-- | src/library_fs.js | 14 | ||||
-rw-r--r-- | src/modules.js | 18 | ||||
-rw-r--r-- | src/parseTools.js | 124 | ||||
-rw-r--r-- | src/preamble.js | 20 | ||||
-rw-r--r-- | src/runtime.js | 19 | ||||
-rw-r--r-- | src/settings.js | 13 | ||||
-rw-r--r-- | system/include/emscripten/emscripten.h | 10 | ||||
-rw-r--r-- | tests/cases/fp80_ta2.ll | 21 | ||||
-rw-r--r-- | tests/test_core.py | 41 | ||||
-rw-r--r-- | tests/test_other.py | 2 | ||||
-rw-r--r-- | tools/eliminator/asm-eliminator-test-output.js | 4835 | ||||
-rw-r--r-- | tools/eliminator/asm-eliminator-test.js | 6495 | ||||
-rw-r--r-- | tools/js-optimizer.js | 35 | ||||
-rw-r--r-- | tools/shared.py | 1 | ||||
-rw-r--r-- | tools/test-js-optimizer-asm-pre-output.js | 20 | ||||
-rw-r--r-- | tools/test-js-optimizer-asm-pre.js | 21 | ||||
-rw-r--r-- | tools/test-js-optimizer-asm-regs.js | 4 |
24 files changed, 454 insertions, 11683 deletions
@@ -933,7 +933,7 @@ try: if default_cxx_std: newargs = newargs + [default_cxx_std] - if js_opts is None: js_opts = True + if js_opts is None: js_opts = opt_level >= 1 if llvm_opts is None: llvm_opts = LLVM_OPT_LEVEL[opt_level] if llvm_lto is None and opt_level >= 3: llvm_lto = 3 if opt_level == 0: debug_level = 4 @@ -1136,6 +1136,7 @@ try: if shared.Settings.MAIN_MODULE or shared.Settings.SIDE_MODULE: assert not memory_init_file, 'memory init file is not supported with module linking' + assert shared.Settings.ASM_JS, 'module linking requires asm.js output (-s ASM_JS=1)' shared.Settings.LINKABLE = 1 # TODO: add FORCE_DCE option for the brave people that do want to dce here and in side modules debug_level = max(debug_level, 2) @@ -1160,6 +1161,9 @@ try: if proxy_to_worker: shared.Settings.PROXY_TO_WORKER = 1 + if js_opts: + shared.Settings.RUNNING_JS_OPTS = 1 + ## Compile source code to bitcode logging.debug('compiling to bitcode') @@ -1239,7 +1243,7 @@ try: extra_files_to_link = [] - if not LEAVE_INPUTS_RAW and not AUTODEBUG and \ + if not LEAVE_INPUTS_RAW and \ not shared.Settings.BUILD_AS_SHARED_LIB == 2 and \ not shared.Settings.SIDE_MODULE: # shared libraries/side modules link no C libraries, need them in parent @@ -1703,7 +1707,7 @@ try: global final, js_optimizer_queue, js_optimizer_extra_info if len(js_optimizer_extra_info) == 0: js_optimizer_extra_info = None - if len(js_optimizer_queue) > 0 and not(len(js_optimizer_queue) == 1 and js_optimizer_queue[0] == 'last'): + if len(js_optimizer_queue) > 0 and not(not shared.Settings.ASM_JS and len(js_optimizer_queue) == 1 and js_optimizer_queue[0] == 'last'): if DEBUG != '2': if shared.Settings.ASM_JS: js_optimizer_queue = ['asm'] + js_optimizer_queue @@ -1738,7 +1742,10 @@ try: else: return 'eliminate' - js_optimizer_queue += [get_eliminate(), 'simplifyExpressions'] + js_optimizer_queue += [get_eliminate()] + + if opt_level >= 2: + js_optimizer_queue += ['simplifyExpressions'] if closure and not shared.Settings.ASM_JS: flush_js_optimizer_queue() diff --git a/emscripten.py b/emscripten.py index a6ff7390..2e90fa48 100755 --- a/emscripten.py +++ b/emscripten.py @@ -329,8 +329,9 @@ def emscript(infile, settings, outfile, libraries=[], compiler_engine=None, # calculations on merged forwarded data forwarded_json['Functions']['indexedFunctions'] = {} - i = 2 # universal counter - if settings['ASM_JS']: i += 2*settings['RESERVED_FUNCTION_POINTERS'] + i = settings['FUNCTION_POINTER_ALIGNMENT'] # universal counter + if settings['ASM_JS']: i += settings['RESERVED_FUNCTION_POINTERS']*settings['FUNCTION_POINTER_ALIGNMENT'] + base_fp = i table_counters = {} # table-specific counters alias = settings['ASM_JS'] and settings['ALIASING_FUNCTION_POINTERS'] sig = None @@ -339,12 +340,12 @@ def emscript(infile, settings, outfile, libraries=[], compiler_engine=None, sig = forwarded_json['Functions']['implementedFunctions'].get(indexed) or forwarded_json['Functions']['unimplementedFunctions'].get(indexed) assert sig, indexed if sig not in table_counters: - table_counters[sig] = 2 + 2*settings['RESERVED_FUNCTION_POINTERS'] + table_counters[sig] = base_fp curr = table_counters[sig] - table_counters[sig] += 2 + table_counters[sig] += settings['FUNCTION_POINTER_ALIGNMENT'] else: curr = i - i += 2 + i += settings['FUNCTION_POINTER_ALIGNMENT'] #logging.debug('function indexing', indexed, curr, sig) forwarded_json['Functions']['indexedFunctions'][indexed] = curr # make sure not to modify this python object later - we use it in indexize @@ -426,7 +427,7 @@ def emscript(infile, settings, outfile, libraries=[], compiler_engine=None, end = raw.rindex(']') body = raw[start+1:end].split(',') for j in range(settings['RESERVED_FUNCTION_POINTERS']): - body[2 + 2*j] = 'jsCall_%s_%s' % (sig, j) + body[settings['FUNCTION_POINTER_ALIGNMENT'] * (1 + j)] = 'jsCall_%s_%s' % (sig, j) Counter.j = 0 def fix_item(item): Counter.j += 1 @@ -587,7 +588,7 @@ function stackAlloc(size) { var ret = 0; ret = STACKTOP; STACKTOP = (STACKTOP + size)|0; -''' + ('STACKTOP = ((STACKTOP + 3)>>2)<<2;' if settings['TARGET_X86'] else 'STACKTOP = ((STACKTOP + 7)>>3)<<3;') + ''' +''' + ('STACKTOP = (STACKTOP + 3)&-4;' if settings['TARGET_X86'] else 'STACKTOP = (STACKTOP + 7)&-8;') + ''' return ret|0; } function stackSave() { diff --git a/src/analyzer.js b/src/analyzer.js index 3fb20253..17ad26ad 100644 --- a/src/analyzer.js +++ b/src/analyzer.js @@ -783,13 +783,14 @@ function analyzer(data, sidePass) { assert(PRECISE_I64_MATH, 'Must have precise i64 math for non-constant 64-bit shifts'); Types.preciseI64MathUsed = 1; value.intertype = 'value'; - value.ident = 'var ' + value.assignTo + '$0 = ' + + value.ident = makeVarDef(value.assignTo) + '$0=' + asmCoercion('_bitshift64' + value.op[0].toUpperCase() + value.op.substr(1) + '(' + asmCoercion(sourceElements[0].ident, 'i32') + ',' + asmCoercion(sourceElements[1].ident, 'i32') + ',' + asmCoercion(value.params[1].ident + '$0', 'i32') + ')', 'i32' ) + ';' + - 'var ' + value.assignTo + '$1 = tempRet0;'; + makeVarDef(value.assignTo) + '$1=tempRet0;'; + value.vars = [[value.assignTo + '$0', 'i32'], [value.assignTo + '$1', 'i32']]; value.assignTo = null; i++; continue; diff --git a/src/fastLong.js b/src/fastLong.js index 4f6efd9f..2b70b2fb 100644 --- a/src/fastLong.js +++ b/src/fastLong.js @@ -5,12 +5,12 @@ function ___muldsi3($a, $b) { var $1 = 0, $2 = 0, $3 = 0, $6 = 0, $8 = 0, $11 = 0, $12 = 0; $1 = $a & 65535; $2 = $b & 65535; - $3 = Math.imul($2, $1) | 0; + $3 = Math_imul($2, $1) | 0; $6 = $a >>> 16; - $8 = ($3 >>> 16) + (Math.imul($2, $6) | 0) | 0; + $8 = ($3 >>> 16) + (Math_imul($2, $6) | 0) | 0; $11 = $b >>> 16; - $12 = Math.imul($11, $1) | 0; - return (tempRet0 = (($8 >>> 16) + (Math.imul($11, $6) | 0) | 0) + ((($8 & 65535) + $12 | 0) >>> 16) | 0, 0 | ($8 + $12 << 16 | $3 & 65535)) | 0; + $12 = Math_imul($11, $1) | 0; + return (tempRet0 = (($8 >>> 16) + (Math_imul($11, $6) | 0) | 0) + ((($8 & 65535) + $12 | 0) >>> 16) | 0, 0 | ($8 + $12 << 16 | $3 & 65535)) | 0; } function ___divdi3($a$0, $a$1, $b$0, $b$1) { $a$0 = $a$0 | 0; @@ -63,8 +63,8 @@ function ___muldi3($a$0, $a$1, $b$0, $b$1) { $y_sroa_0_0_extract_trunc = $b$0; $1$0 = ___muldsi3($x_sroa_0_0_extract_trunc, $y_sroa_0_0_extract_trunc) | 0; $1$1 = tempRet0; - $2 = Math.imul($a$1, $y_sroa_0_0_extract_trunc) | 0; - return (tempRet0 = ((Math.imul($b$1, $x_sroa_0_0_extract_trunc) | 0) + $2 | 0) + $1$1 | $1$1 & 0, 0 | $1$0 & -1) | 0; + $2 = Math_imul($a$1, $y_sroa_0_0_extract_trunc) | 0; + return (tempRet0 = ((Math_imul($b$1, $x_sroa_0_0_extract_trunc) | 0) + $2 | 0) + $1$1 | $1$1 & 0, 0 | $1$0 & -1) | 0; } function ___udivdi3($a$0, $a$1, $b$0, $b$1) { $a$0 = $a$0 | 0; diff --git a/src/intertyper.js b/src/intertyper.js index 07f2020c..09bdaa33 100644 --- a/src/intertyper.js +++ b/src/intertyper.js @@ -850,6 +850,7 @@ function intertyper(lines, sidePass, baseLineNums) { // TODO: also remove 2nd param? } else if (item.op in LLVM.COMPS) { item.type = 'i1'; + if (item.params[1].intertype === 'type') item.params[1].intertype = 'value'; // parsed as type, but comparisons have just values there } if (USE_TYPED_ARRAYS == 2) { // Some specific corrections, since 'i64' is special @@ -1013,7 +1014,8 @@ function intertyper(lines, sidePass, baseLineNums) { noteGlobalVariable(ret); } } else if (phase === 'funcs') { - if (m = /^ (%[\w\d\._]+) = (getelementptr|load) ([%\w\d\._ ,\*\-@]+)$/.exec(line.lineText)) { + // TODO: (void)call, store + if (m = /^ (%[\w\d\._]+) = (getelementptr|load|icmp) ([%\w\d\._ ,\*\-@]+)$/.exec(line.lineText)) { var assignTo = m[1]; var intertype = m[2]; var args = m[3]; @@ -1067,14 +1069,36 @@ function intertyper(lines, sidePass, baseLineNums) { } break; } + case 'icmp': { + var parts = args.split(' '); + assert(parts.length === 4); + ret = { + intertype: 'mathop', + op: 'icmp', + variant: parts[0], + lineNum: line.lineNum, + assignTo: toNiceIdent(assignTo), + params: [{ + intertype: 'value', + ident: toNiceIdent(parts[2].substr(0, parts[2].length-1)), + type: parts[1] + }, { + intertype: 'value', + ident: toNiceIdent(parts[3]), + type: parts[1] + }], + type: 'i1', + }; + break; + } default: throw 'unexpected fast path type ' + intertype; } - //else if (line.lineText.indexOf(' = load ') > 0) printErr('close: ' + JSON.stringify(line.lineText)); } + //else if (line.lineText.indexOf(' = icmp ') > 0) printErr('close: ' + JSON.stringify(line.lineText)); } if (ret) { if (COMPILER_ASSERTIONS) { - //printErr(['\n', JSON.stringify(ret), '\n', JSON.stringify(triager(tokenizer(line)))]); + //printErr(['\n', dump(ret), '\n', dump(triager(tokenizer(line)))]); var normal = triager(tokenizer(line)); delete normal.tokens; delete normal.indent; @@ -1087,11 +1111,14 @@ function intertyper(lines, sidePass, baseLineNums) { // Input lineSplitter().forEach(function(line) { - var item = tryFastPaths(line); - if (item) { - finalResults.push(item); - fastPaths++; - return; + var item; + if (COMPILER_FASTPATHS) { + item = tryFastPaths(line); + if (item) { + finalResults.push(item); + fastPaths++; + return; + } } slowPaths++; diff --git a/src/jsifier.js b/src/jsifier.js index 96cb8d9a..0e5f8ef3 100644 --- a/src/jsifier.js +++ b/src/jsifier.js @@ -347,7 +347,7 @@ function JSify(data, functionsOnly, givenFunctions) { js += 'if (globalScope) { assert(!globalScope["' + item.ident + '"]); globalScope["' + item.ident + '"] = ' + item.ident + ' }'; } if (item.external && !NAMED_GLOBALS) { - js = 'var ' + item.ident + ' = ' + js; // force an explicit naming, even if unnamed globals, for asm forwarding + js = 'var ' + item.ident + '=' + js; // force an explicit naming, even if unnamed globals, for asm forwarding } itemsDict.GlobalVariableStub.push({ intertype: 'GlobalVariable', @@ -418,7 +418,7 @@ function JSify(data, functionsOnly, givenFunctions) { } // In asm, we need to know about library functions. If there is a target, though, then no // need to consider this a library function - we will call directly to it anyhow - if (ASM_JS && !redirectedIdent && (typeof target == 'function' || /Math\.\w+/.exec(snippet))) { + if (ASM_JS && !redirectedIdent && (typeof target == 'function' || /Math_\w+/.exec(snippet))) { Functions.libraryFunctions[ident] = 1; } } else if (typeof snippet === 'object') { @@ -537,6 +537,7 @@ function JSify(data, functionsOnly, givenFunctions) { default: throw 'what is this line? ' + dump(line); } assert(line.JS); + //if (ASM_JS) assert(line.JS.indexOf('var ') < 0, dump(line)); if (line.assignTo) makeAssign(line); Framework.currItem = null; }); @@ -584,7 +585,7 @@ function JSify(data, functionsOnly, givenFunctions) { if (DLOPEN_SUPPORT) Functions.getIndex(func.ident); - func.JS += 'function ' + func.ident + '(' + paramIdents.join(', ') + ') {\n'; + func.JS += 'function ' + func.ident + '(' + paramIdents.join(',') + '){\n'; if (PGO) { func.JS += INDENTATION + 'PGOMonitor.called["' + func.ident + '"] = 1;\n'; @@ -593,13 +594,23 @@ function JSify(data, functionsOnly, givenFunctions) { if (ASM_JS) { // spell out argument types func.params.forEach(function(param) { - func.JS += INDENTATION + param.ident + ' = ' + asmCoercion(param.ident, param.type) + ';\n'; + func.JS += INDENTATION + param.ident + '=' + deParen(asmCoercion(param.ident, param.type)) + ';\n'; }); + addVariable('label', 'i32', func); + + if (func.setjmpTable) { + addVariable('setjmpLabel', 'i32', func); + addVariable('setjmpTable', 'i32', func); + } + // spell out local variables - var vars = values(func.variables).filter(function(v) { return v.origin != 'funcparam' }); + var vars = values(func.variables).filter(function(v) { + return v.origin !== 'funcparam' && + (!isIllegalType(getImplementationType(v)) || v.ident.indexOf('$', 1) > 0); // not illegal, or a broken up illegal (we have illegal chunks explicitly anyhow) + }); if (vars.length > 0) { - var chunkSize = 8; + var chunkSize = 20; var chunks = []; var i = 0; while (i < vars.length) { @@ -608,22 +619,15 @@ function JSify(data, functionsOnly, givenFunctions) { } for (i = 0; i < chunks.length; i++) { func.JS += INDENTATION + 'var ' + chunks[i].map(function(v) { - var type = getImplementationType(v); - if (!isIllegalType(type) || v.ident.indexOf('$', 1) > 0) { // not illegal, or a broken up illegal - return v.ident + ' = ' + asmInitializer(type); //, func.variables[v.ident].impl); - } else { - return range(Math.ceil(getBits(type)/32)).map(function(i) { - return v.ident + '$' + i + '= 0'; - }).join(','); - } - }).join(', ') + ';\n'; + return v.ident + '=' + asmInitializer(getImplementationType(v)); //, func.variables[v.ident].impl); + }).join(',') + ';\n'; } } } - if (true) { // TODO: optimize away when not needed - if (CLOSURE_ANNOTATIONS) func.JS += '/** @type {number} */'; - func.JS += INDENTATION + 'var label = 0;\n'; + if (CLOSURE_ANNOTATIONS) func.JS += '/** @type {number} */'; + if (!ASM_JS) { + func.JS += INDENTATION + 'var label=0;\n'; } if (ASM_JS) { @@ -632,12 +636,12 @@ function JSify(data, functionsOnly, givenFunctions) { hasByVal = hasByVal || param.byVal; }); if (hasByVal) { - func.JS += INDENTATION + 'var tempParam = 0;\n'; + func.JS += INDENTATION + 'var tempParam=0;\n'; } } if (func.hasVarArgsCall) { - func.JS += INDENTATION + 'var tempVarArgs = 0;\n'; + func.JS += INDENTATION + 'var tempVarArgs=0;\n'; } // Prepare the stack, if we need one. If we have other stack allocations, force the stack to be set up. @@ -654,7 +658,7 @@ function JSify(data, functionsOnly, givenFunctions) { if (param.byVal) { var type = removePointing(param.type); var typeInfo = Types.types[type]; - func.JS += INDENTATION + (ASM_JS ? '' : 'var ') + 'tempParam = ' + param.ident + '; ' + param.ident + ' = ' + RuntimeGenerator.stackAlloc(typeInfo.flatSize) + ';' + + func.JS += INDENTATION + (ASM_JS ? '' : 'var ') + 'tempParam = ' + param.ident + '; ' + param.ident + '=' + RuntimeGenerator.stackAlloc(typeInfo.flatSize) + ';' + makeCopyValues(param.ident, 'tempParam', typeInfo.flatSize, 'null', null, param.byVal) + ';\n'; } }); @@ -665,14 +669,14 @@ function JSify(data, functionsOnly, givenFunctions) { function walkBlock(block, indent) { if (!block) return ''; dprint('relooping', 'walking block: ' + block.type + ',' + block.entries + ' : ' + block.labels.length); - function getLabelLines(label, indent, relooping) { + function getLabelLines(label, relooping) { if (!label) return ''; var ret = ''; if ((LABEL_DEBUG >= 2) && functionNameFilterTest(func.ident)) { - ret += indent + "Module.print(INDENT + '" + func.ident + ":" + label.ident + "');\n"; + ret += INDENTATION + "Module.print(INDENT + '" + func.ident + ":" + label.ident + "');\n"; } if (EXECUTION_TIMEOUT > 0) { - ret += indent + 'if (Date.now() - START_TIME >= ' + (EXECUTION_TIMEOUT*1000) + ') throw "Timed out!" + (new Error().stack);\n'; + ret += INDENTATION + 'if (Date.now() - START_TIME >= ' + (EXECUTION_TIMEOUT*1000) + ') throw "Timed out!" + (new Error().stack);\n'; } if (PRINT_SPLIT_FILE_MARKER && Debugging.on && Debugging.getAssociatedSourceFile(label.lines[label.lines.length-1].lineNum)) { @@ -685,6 +689,7 @@ function JSify(data, functionsOnly, givenFunctions) { var i = 0; return ret + label.lines.map(function(line) { var JS = line.JS; + if (!relooping) JS = INDENTATION + JS; if (relooping && i == label.lines.length-1) { if (line.intertype == 'branch' || line.intertype == 'switch') { JS = ''; // just branching operations - done in the relooper, so nothing need be done here @@ -695,12 +700,10 @@ function JSify(data, functionsOnly, givenFunctions) { i++; // invoke instructions span two lines, and the debug info is located // on the second line, hence the +1 - return JS + (Debugging.on ? Debugging.getComment(line.lineNum + (line.intertype === 'invoke' ? 1 : 0)) : ''); - }) - .join('\n') - .split('\n') // some lines include line breaks - .map(function(line) { return indent + line }) - .join('\n'); + if (Debugging.on) JS += Debugging.getComment(line.lineNum + (line.intertype === 'invoke' ? 1 : 0)); + //assert(JS.indexOf('\n') < 0, JS); + return JS; + }).join('\n'); } var ret = ''; if (!RELOOP || func.forceEmulated) { // TODO: also if just 1 label? @@ -719,19 +722,19 @@ function JSify(data, functionsOnly, givenFunctions) { ret += 'dummy: 0'; ret += '};\n'; } else { - ret += 'var setjmpLabel = 0;\n'; - ret += 'var setjmpTable = ' + RuntimeGenerator.stackAlloc(4 * (MAX_SETJMPS + 1) * 2) + ';\n'; + ret += makeVarDef('setjmpLabel') + '=0;\n'; + ret += makeVarDef('setjmpTable') + '=' + RuntimeGenerator.stackAlloc(4 * (MAX_SETJMPS + 1) * 2) + ';\n'; ret += makeSetValue('setjmpTable', '0', '0', 'i32') + ';'; // initialize first entry to 0 } } - ret += indent + 'while(1) '; + ret += indent + 'while(1)'; if (func.setjmpTable && !ASM_JS) { ret += 'try { '; } - ret += 'switch(' + asmCoercion('label', 'i32') + ') {\n'; + ret += 'switch(' + asmCoercion('label', 'i32') + '){\n'; ret += block.labels.map(function(label) { - return indent + INDENTATION + 'case ' + getLabelId(label.ident) + ': ' + (SHOW_LABELS ? '// ' + getOriginalLabelId(label.ident) : '') + '\n' - + getLabelLines(label, indent + INDENTATION + INDENTATION); + return INDENTATION + 'case ' + getLabelId(label.ident) + ': ' + (SHOW_LABELS ? '// ' + getOriginalLabelId(label.ident) : '') + '\n' + + getLabelLines(label); }).join('\n') + '\n'; if (func.setjmpTable && ASM_JS) { // emit a label in which we write to the proper local variable, before jumping to the actual label @@ -748,8 +751,16 @@ function JSify(data, functionsOnly, givenFunctions) { if (func.setjmpTable && !ASM_JS) { ret += ' } catch(e) { if (!e.longjmp || !(e.id in mySetjmpIds)) throw(e); setjmpTable[setjmpLabels[e.id]](e.value) }'; } + if (ASM_JS && func.returnType !== 'void') { + // Add a return + if (func.returnType in Runtime.FLOAT_TYPES) { + ret += ' return +0;\n'; + } else { + ret += ' return 0;\n'; + } + } } else { - ret += (SHOW_LABELS ? indent + '/* ' + block.entries[0] + ' */' : '') + '\n' + getLabelLines(block.labels[0], indent); + ret += (SHOW_LABELS ? indent + '/* ' + block.entries[0] + ' */' : '') + '\n' + getLabelLines(block.labels[0]); } ret += '\n'; } else { @@ -764,7 +775,7 @@ function JSify(data, functionsOnly, givenFunctions) { // add blocks for (var i = 0; i < block.labels.length; i++) { var label = block.labels[i]; - var content = getLabelLines(label, '', true); + var content = getLabelLines(label, true); //printErr(func.ident + ' : ' + label.ident + ' : ' + content + '\n'); var last = label.lines[label.lines.length-1]; if (!last.signedIdent) { @@ -810,9 +821,17 @@ function JSify(data, functionsOnly, givenFunctions) { // Finalize function if (LABEL_DEBUG && functionNameFilterTest(func.ident)) func.JS += " INDENT = INDENT.substr(0, INDENT.length-2);\n"; // Ensure a return in a function with a type that returns, even if it lacks a return (e.g., if it aborts()) - if (RELOOP && func.lines.length > 0 && func.returnType != 'void') { - var returns = func.labels.filter(function(label) { return label.lines[label.lines.length-1].intertype == 'return' }).length; - if (returns == 0) func.JS += INDENTATION + 'return ' + asmCoercion('0', func.returnType); + if (RELOOP && ASM_JS && func.lines.length > 0 && func.returnType != 'void') { + var lastCurly = func.JS.lastIndexOf('}'); + var lastReturn = func.JS.lastIndexOf('return '); + if ((lastCurly < 0 && lastReturn < 0) || // no control flow, no return + (lastCurly >= 0 && lastReturn < lastCurly)) { // control flow, no return past last join + if (func.returnType in Runtime.FLOAT_TYPES) { + func.JS += ' return +0;\n'; + } else { + func.JS += ' return 0;\n'; + } + } } func.JS += '}\n'; @@ -898,6 +917,11 @@ function JSify(data, functionsOnly, givenFunctions) { // Function lines function valueHandler(item) { + if (item.vars) { + item.vars.forEach(function(v) { + addVariable(v[0], v[1]); + }); + } return item.ident; } function noopHandler(item) { @@ -959,7 +983,7 @@ function JSify(data, functionsOnly, givenFunctions) { var parts = label.split('|'); var trueLabel = parts[1] || ''; var oldLabel = parts[2] || ''; - var labelSetting = oldLabel ? 'label = ' + getLabelId(oldLabel) + ';' + + var labelSetting = oldLabel ? 'label=' + getLabelId(oldLabel) + ';' + (SHOW_LABELS ? ' /* to: ' + getOriginalLabelId(cleanLabel(oldLabel)) + ' */' : '') : ''; // TODO: optimize away the setting if (label[1] == 'R') { if (label[2] == 'N') { // BRNOL: break, no label setting @@ -980,7 +1004,7 @@ function JSify(data, functionsOnly, givenFunctions) { } } else { if (!labelIsVariable) label = getLabelId(label); - return pre + 'label = ' + label + ';' + (SHOW_LABELS ? ' /* to: ' + getOriginalLabelId(cleanLabel(label)) + ' */' : '') + ' break;'; + return pre + 'label=' + label + ';' + (SHOW_LABELS ? ' /* to: ' + getOriginalLabelId(cleanLabel(label)) + ' */' : '') + 'break;'; } } @@ -1002,14 +1026,14 @@ function JSify(data, functionsOnly, givenFunctions) { var labelSets = phiSets[label]; // FIXME: Many of the |var |s here are not needed, but without them we get slowdowns with closure compiler. TODO: remove this workaround. if (labelSets.length == 1) { - return (ASM_JS ? '' : 'var ') + labelSets[0].ident + ' = ' + labelSets[0].valueJS + ';'; + return (ASM_JS ? '' : 'var ') + labelSets[0].ident + '=' + labelSets[0].valueJS + ';'; } // TODO: eliminate unneeded sets (to undefined etc.) var deps = {}; // for each ident we will set, which others it depends on - var valueJSes = {}; + var map = {}; labelSets.forEach(function(labelSet) { deps[labelSet.ident] = {}; - valueJSes[labelSet.ident] = labelSet.valueJS; + map[labelSet.ident] = labelSet; }); labelSets.forEach(function(labelSet) { walkInterdata(labelSet.value, function mark(item) { @@ -1028,14 +1052,18 @@ function JSify(data, functionsOnly, givenFunctions) { } for (var i = 0; i < idents.length; i++) { if (keys(deps[idents[i]]).length == 0) { - post = 'var ' + idents[i] + ' = ' + valueJSes[idents[i]] + ';' + post; + post = idents[i] + '=' + map[idents[i]].valueJS + ';' + post; + if (!ASM_JS) post = 'var ' + post; + else addVariable(idents[i], map[idents[i]].value.type); remove(idents[i]); continue mainLoop; } } // If we got here, we have circular dependencies, and must break at least one. - pre += 'var ' + idents[0] + '$phi = ' + valueJSes[idents[0]] + ';'; - post += 'var ' + idents[0] + ' = ' + idents[0] + '$phi;'; + pre += makeVarDef(idents[0]) + '$phi=' + map[idents[0]].valueJS + ';'; + post += makeVarDef(idents[0]) + '=' + idents[0] + '$phi;'; + addVariable(idents[0] + '$phi', map[idents[0]].value.type); + addVariable(idents[0], map[idents[0]].value.type); remove(idents[0]); } return pre + post; @@ -1062,10 +1090,10 @@ function JSify(data, functionsOnly, givenFunctions) { var labelTrue = (item.labelTrueJS = getPhiSetsForLabel(phiSets, item.labelTrue)) + makeBranch(item.labelTrue, item.currLabelId); var labelFalse = (item.labelFalseJS = getPhiSetsForLabel(phiSets, item.labelFalse)) + makeBranch(item.labelFalse, item.currLabelId); if (labelTrue == ';' && labelFalse == ';') return ';'; - var head = 'if (' + condition + ') { '; - var head2 = 'if (!(' + condition + ')) { '; - var else_ = ' } else { '; - var tail = ' }'; + var head = 'if(' + condition + '){'; + var head2 = 'if(!(' + condition + ')){'; + var else_ = '}else{'; + var tail = '}'; if (labelTrue == ';') { return head2 + labelFalse + tail; } else if (labelFalse == ';') { @@ -1112,7 +1140,7 @@ function JSify(data, functionsOnly, givenFunctions) { item.groupedLabels = []; } if (!useIfs) { - ret += 'switch(' + signedIdent + ') {\n'; + ret += 'switch(' + signedIdent + '){'; } // process target labels, sorting them so output is consistently ordered keys(targetLabels).sort().forEach(function(targetLabel) { @@ -1125,17 +1153,17 @@ function JSify(data, functionsOnly, givenFunctions) { if (useIfs) { value = targetLabels[targetLabel].map(function(value) { return makeComparison(signedIdent, '==', makeSignOp(value, item.type, 're'), item.type) - }).join(' | '); - ret += 'if (' + value + ') {\n'; + }).join('|'); + ret += 'if(' + value + '){'; } else { value = targetLabels[targetLabel].map(function(value) { return 'case ' + makeSignOp(value, item.type, 're') + ':'; - }).join(' '); - ret += value + '{\n'; + }).join(''); + ret += value + '{'; } var phiSet = getPhiSetsForLabel(phiSets, targetLabel); - ret += INDENTATION + '' + phiSet + makeBranch(targetLabel, item.currLabelId || null) + '\n'; - ret += '}\n'; + ret += INDENTATION + '' + phiSet + makeBranch(targetLabel, item.currLabelId || null); + ret += '}'; if (RELOOP) { item.groupedLabels.push({ label: targetLabel, @@ -1146,15 +1174,15 @@ function JSify(data, functionsOnly, givenFunctions) { }); var phiSet = item.defaultLabelJS = getPhiSetsForLabel(phiSets, item.defaultLabel); if (useIfs) { - if (item.switchLabels.length > 0) ret += 'else {\n'; - ret += phiSet + makeBranch(item.defaultLabel, item.currLabelId) + '\n'; - if (item.switchLabels.length > 0) ret += '}\n'; + if (item.switchLabels.length > 0) ret += 'else{'; + ret += phiSet + makeBranch(item.defaultLabel, item.currLabelId) + ''; + if (item.switchLabels.length > 0) ret += '}'; } else { - ret += 'default: {\n'; - ret += phiSet + makeBranch(item.defaultLabel, item.currLabelId) + '\n'; - ret += '}\n'; + ret += 'default:{'; + ret += phiSet + makeBranch(item.defaultLabel, item.currLabelId) + ''; + ret += '}'; - ret += '} break; \n'; // finish switch and break, to move control flow properly (breaks from makeBranch just broke out of the switch) + ret += '}break;'; // finish switch and break, to move control flow properly (breaks from makeBranch just broke out of the switch) } if (item.value) { ret += ' ' + toNiceIdent(item.value); @@ -1162,10 +1190,11 @@ function JSify(data, functionsOnly, givenFunctions) { return ret; } function returnHandler(item) { - var ret = RuntimeGenerator.stackExit(item.funcData.initialStack, item.funcData.otherStackAllocations) + ';\n'; + var ret = RuntimeGenerator.stackExit(item.funcData.initialStack, item.funcData.otherStackAllocations); + if (ret.length > 0) ret += ';'; if (LABEL_DEBUG && functionNameFilterTest(item.funcData.ident)) { - ret += "Module.print(INDENT + 'Exiting: " + item.funcData.ident + "');\n" - + "INDENT = INDENT.substr(0, INDENT.length-2);\n"; + ret += "Module.print(INDENT + 'Exiting: " + item.funcData.ident + "');" + + "INDENT = INDENT.substr(0, INDENT.length-2);"; } ret += 'return'; var value = item.value ? finalizeLLVMParameter(item.value) : null; @@ -1191,7 +1220,7 @@ function JSify(data, functionsOnly, givenFunctions) { // in an assignment var disabled = DISABLE_EXCEPTION_CATCHING == 2 && !(item.funcData.ident in EXCEPTION_CATCHING_WHITELIST); var phiSets = calcPhiSets(item); - var call_ = makeFunctionCall(item.ident, item.params, item.funcData, item.type, ASM_JS && !disabled, !!item.assignTo || !item.standalone, true); + var call_ = makeFunctionCall(item, item.params, item.funcData, item.type, ASM_JS && !disabled, !!item.assignTo || !item.standalone, true); var ret; @@ -1217,11 +1246,16 @@ function JSify(data, functionsOnly, givenFunctions) { ret = makeVarArgsCleanup(ret); if (item.assignTo) { - ret = 'var ' + item.assignTo + ' = ' + ret; - if (USE_TYPED_ARRAYS == 2 && isIllegalType(item.type)) { + var illegal = USE_TYPED_ARRAYS == 2 && isIllegalType(item.type); + var assignTo = illegal ? item.assignTo + '$r' : item.assignTo; + ret = makeVarDef(assignTo) + '=' + ret; + if (ASM_JS) addVariable(assignTo, item.type); + if (illegal) { var bits = getBits(item.type); for (var i = 0; i < bits/32; i++) { - ret += 'var ' + item.assignTo + '$' + i + ' = ' + (i == 0 ? item.assignTo : 'tempRet' + (i-1)) + ';' + var v = item.assignTo + '$' + i; + ret += makeVarDef(v) + '=' + (i == 0 ? assignTo : 'tempRet' + (i-1)) + ';' + if (ASM_JS) addVariable(v, 'i32'); } } item.assignTo = null; @@ -1252,8 +1286,12 @@ function JSify(data, functionsOnly, givenFunctions) { } } function landingpadHandler(item) { + if (ASM_JS) { + addVariable(item.assignTo + '$0', 'i32'); + addVariable(item.assignTo + '$1', 'i32'); + } if (DISABLE_EXCEPTION_CATCHING && !(item.funcData.ident in EXCEPTION_CATCHING_WHITELIST) && USE_TYPED_ARRAYS == 2) { - ret = makeVarDef(item.assignTo) + '$0 = 0; ' + item.assignTo + '$1 = 0;'; + ret = makeVarDef(item.assignTo) + '$0 = 0; ' + makeVarDef(item.assignTo) + '$1 = 0;'; item.assignTo = null; if (VERBOSE) warnOnce('landingpad, but exceptions are disabled!'); return ret; @@ -1261,7 +1299,7 @@ function JSify(data, functionsOnly, givenFunctions) { var catchTypeArray = item.catchables.map(finalizeLLVMParameter).map(function(element) { return asmCoercion(element, 'i32') }).join(','); var ret = asmCoercion('___cxa_find_matching_catch(-1, -1' + (catchTypeArray.length > 0 ? ',' + catchTypeArray : '') +')', 'i32'); if (USE_TYPED_ARRAYS == 2) { - ret = makeVarDef(item.assignTo) + '$0 = ' + ret + '; ' + item.assignTo + '$1 = tempRet0;'; + ret = makeVarDef(item.assignTo) + '$0 = ' + ret + '; ' + makeVarDef(item.assignTo) + '$1 = tempRet0;'; item.assignTo = null; } return ret; @@ -1307,13 +1345,14 @@ function JSify(data, functionsOnly, givenFunctions) { item.ident = 'tempValue'; ret += item.ident + ' = [' + makeEmptyStruct(item.type) + '], '; } - return ret + item.ident + '.f' + item.indexes[0][0].text + ' = ' + finalizeLLVMParameter(item.value) + ', ' + item.ident + ')'; + return ret + item.ident + '.f' + item.indexes[0][0].text + '=' + finalizeLLVMParameter(item.value) + ', ' + item.ident + ')'; } function indirectbrHandler(item) { var phiSets = calcPhiSets(item); - var js = 'var ibr = ' + finalizeLLVMParameter(item.value) + ';\n'; + var js = makeVarDef('ibr') + '=' + finalizeLLVMParameter(item.value) + ';'; + if (ASM_JS) addVariable('ibr', 'i32'); for (var targetLabel in phiSets) { - js += 'if (' + makeComparison('ibr', '==', targetLabel, 'i32') + ') { ' + getPhiSetsForLabel(phiSets, targetLabel) + ' }\n'; + js += 'if(' + makeComparison('ibr', '==', targetLabel, 'i32') + '){' + getPhiSetsForLabel(phiSets, targetLabel) + '}'; } return js + makeBranch('ibr', item.currLabelId, true); } @@ -1349,7 +1388,9 @@ function JSify(data, functionsOnly, givenFunctions) { return ret; } - function makeFunctionCall(ident, params, funcData, type, forceByPointer, hasReturn, invoke) { + function makeFunctionCall(item, params, funcData, type, forceByPointer, hasReturn, invoke) { + var ident = item.ident; + // We cannot compile assembly. See comment in intertyper.js:'Call' assert(ident != 'asm', 'Inline assembly cannot be compiled to JavaScript!'); @@ -1368,7 +1409,7 @@ function JSify(data, functionsOnly, givenFunctions) { var callIdent = LibraryManager.getRootIdent(simpleIdent); if (callIdent) { simpleIdent = callIdent; // ident may not be in library, if all there is is ident__inline, but in this case it is - if (callIdent.indexOf('.') < 0) { + if (callIdent.indexOf('Math_') !== 0) { callIdent = '_' + callIdent; // Not Math.*, so add the normal prefix } } else { @@ -1499,6 +1540,9 @@ function JSify(data, functionsOnly, givenFunctions) { if (trueType !== returnType && !isIdenticallyImplemented(trueType, returnType)) { if (VERBOSE) warnOnce('Fixing function call based on return type from signature, on ' + [callIdent, returnType, trueType]); returnType = trueType; + if (trueType === 'void') { + item.assignTo = null; + } } } } @@ -1526,7 +1570,7 @@ function JSify(data, functionsOnly, givenFunctions) { if (!ASM_JS || functionTableCall) callIdent = Functions.getTable(sig) + '[' + callIdent + ']'; } - var ret = callIdent + '(' + args.join(', ') + ')'; + var ret = callIdent + '(' + args.join(',') + ')'; if (ASM_JS) { // TODO: do only when needed (library functions and Math.*?) XXX && simpleIdent in Functions.libraryFunctions) { ret = asmCoercion(ret, returnType); if (simpleIdent == 'abort' && funcData.returnType != 'void') { @@ -1537,7 +1581,7 @@ function JSify(data, functionsOnly, givenFunctions) { if (ASM_JS && funcData.setjmpTable) { // check if a longjmp was done. If a setjmp happened, check if ours. If ours, go to a special label to handle it. // otherwise, just return - the call to us must also have been an invoke, so the setjmp propagates that way - ret += '; if (((__THREW__|0) != 0) & ((threwValue|0) != 0)) { setjmpLabel = ' + asmCoercion('_testSetjmp(' + makeGetValue('__THREW__', 0, 'i32') + ', setjmpTable)', 'i32') + '; if ((setjmpLabel|0) > 0) { label = ' + SETJMP_LABEL + '; break } else return ' + (funcData.returnType != 'void' ? asmCoercion('0', funcData.returnType) : '') + ' } __THREW__ = threwValue = 0;\n'; + ret += '; if (((__THREW__|0) != 0) & ((threwValue|0) != 0)) { setjmpLabel = ' + asmCoercion('_testSetjmp(' + makeGetValue('__THREW__', 0, 'i32') + ', setjmpTable)', 'i32') + '; if ((setjmpLabel|0) > 0) { label = ' + SETJMP_LABEL + '; break } else return ' + (funcData.returnType != 'void' ? asmCoercion('0', funcData.returnType) : '') + ' } __THREW__ = threwValue = 0;'; } return ret; @@ -1558,7 +1602,7 @@ function JSify(data, functionsOnly, givenFunctions) { function getelementptrHandler(item) { return finalizeLLVMFunctionCall(item) } function callHandler(item) { if (item.standalone && LibraryManager.isStubFunction(item.ident)) return ';'; - var ret = makeFunctionCall(item.ident, item.params, item.funcData, item.type, false, !!item.assignTo || !item.standalone) + (item.standalone ? ';' : ''); + var ret = makeFunctionCall(item, item.params, item.funcData, item.type, false, !!item.assignTo || !item.standalone) + (item.standalone ? ';' : ''); return makeVarArgsCleanup(ret); } @@ -1805,14 +1849,14 @@ function JSify(data, functionsOnly, givenFunctions) { var shellParts = read(shellFile).split('{{BODY}}'); print(processMacros(preprocess(shellParts[1]))); // Print out some useful metadata - if (EMIT_GENERATED_FUNCTIONS || PGO) { + if (RUNNING_JS_OPTS || PGO) { var generatedFunctions = JSON.stringify(keys(Functions.implementedFunctions).filter(function(func) { return IGNORED_FUNCTIONS.indexOf(func.ident) < 0; })); if (PGO) { print('PGOMonitor.allGenerated = ' + generatedFunctions + ';\nremoveRunDependency("pgo");\n'); } - if (EMIT_GENERATED_FUNCTIONS) { + if (RUNNING_JS_OPTS) { print('// EMSCRIPTEN_GENERATED_FUNCTIONS: ' + generatedFunctions + '\n'); } } diff --git a/src/library.js b/src/library.js index 02981a80..5e71b087 100644 --- a/src/library.js +++ b/src/library.js @@ -459,14 +459,17 @@ LibraryManager.library = { // http://pubs.opengroup.org/onlinepubs/009695399/functions/creat.html return _open(path, {{{ cDefine('O_WRONLY') }}} | {{{ cDefine('O_CREAT') }}} | {{{ cDefine('O_TRUNC') }}}, allocate([mode, 0, 0, 0], 'i32', ALLOC_STACK)); }, - mkstemp__deps: ['creat'], - mkstemp: function(template) { - if (!_mkstemp.counter) _mkstemp.counter = 0; - var c = (_mkstemp.counter++).toString(); + mktemp: function(template) { + if (!_mktemp.counter) _mktemp.counter = 0; + var c = (_mktemp.counter++).toString(); var rep = 'XXXXXX'; while (c.length < rep.length) c = '0' + c; writeArrayToMemory(intArrayFromString(c), template + Pointer_stringify(template).indexOf(rep)); - return _creat(template, 0600); + return template; + }, + mkstemp__deps: ['creat', 'mktemp'], + mkstemp: function(template) { + return _creat(_mktemp(template), 0600); }, fcntl__deps: ['$FS', '__setErrNo', '$ERRNO_CODES'], fcntl: function(fildes, cmd, varargs, dup2) { @@ -3005,8 +3008,8 @@ LibraryManager.library = { return ret; }, - abs: 'Math.abs', - labs: 'Math.abs', + abs: 'Math_abs', + labs: 'Math_abs', #if USE_TYPED_ARRAYS == 2 llabs__deps: [function() { Types.preciseI64MathUsed = 1 }], llabs: function(lo, hi) { @@ -3799,8 +3802,8 @@ LibraryManager.library = { p1 = p1|0; p2 = p2|0; num = num|0; var i = 0, v1 = 0, v2 = 0; while ((i|0) < (num|0)) { - var v1 = {{{ makeGetValueAsm('p1', 'i', 'i8', true) }}}; - var v2 = {{{ makeGetValueAsm('p2', 'i', 'i8', true) }}}; + v1 = {{{ makeGetValueAsm('p1', 'i', 'i8', true) }}}; + v2 = {{{ makeGetValueAsm('p2', 'i', 'i8', true) }}}; if ((v1|0) != (v2|0)) return ((v1|0) > (v2|0) ? 1 : -1)|0; i = (i+1)|0; } @@ -4224,9 +4227,9 @@ LibraryManager.library = { var ret = 0; ret = {{{ makeGetValueAsm('ctlz_i8', 'x >>> 24', 'i8') }}}; if ((ret|0) < 8) return ret|0; - var ret = {{{ makeGetValueAsm('ctlz_i8', '(x >> 16)&0xff', 'i8') }}}; + ret = {{{ makeGetValueAsm('ctlz_i8', '(x >> 16)&0xff', 'i8') }}}; if ((ret|0) < 8) return (ret + 8)|0; - var ret = {{{ makeGetValueAsm('ctlz_i8', '(x >> 8)&0xff', 'i8') }}}; + ret = {{{ makeGetValueAsm('ctlz_i8', '(x >> 8)&0xff', 'i8') }}}; if ((ret|0) < 8) return (ret + 16)|0; return ({{{ makeGetValueAsm('ctlz_i8', 'x&0xff', 'i8') }}} + 24)|0; }, @@ -4260,9 +4263,9 @@ LibraryManager.library = { var ret = 0; ret = {{{ makeGetValueAsm('cttz_i8', 'x & 0xff', 'i8') }}}; if ((ret|0) < 8) return ret|0; - var ret = {{{ makeGetValueAsm('cttz_i8', '(x >> 8)&0xff', 'i8') }}}; + ret = {{{ makeGetValueAsm('cttz_i8', '(x >> 8)&0xff', 'i8') }}}; if ((ret|0) < 8) return (ret + 8)|0; - var ret = {{{ makeGetValueAsm('cttz_i8', '(x >> 16)&0xff', 'i8') }}}; + ret = {{{ makeGetValueAsm('cttz_i8', '(x >> 16)&0xff', 'i8') }}}; if ((ret|0) < 8) return (ret + 16)|0; return ({{{ makeGetValueAsm('cttz_i8', 'x >>> 24', 'i8') }}} + 24)|0; }, @@ -4699,30 +4702,30 @@ LibraryManager.library = { // math.h // ========================================================================== - cos: 'Math.cos', - cosf: 'Math.cos', - cosl: 'Math.cos', - sin: 'Math.sin', - sinf: 'Math.sin', - sinl: 'Math.sin', - tan: 'Math.tan', - tanf: 'Math.tan', - tanl: 'Math.tan', - acos: 'Math.acos', - acosf: 'Math.acos', - acosl: 'Math.acos', - asin: 'Math.asin', - asinf: 'Math.asin', - asinl: 'Math.asin', - atan: 'Math.atan', - atanf: 'Math.atan', - atanl: 'Math.atan', - atan2: 'Math.atan2', - atan2f: 'Math.atan2', - atan2l: 'Math.atan2', - exp: 'Math.exp', - expf: 'Math.exp', - expl: 'Math.exp', + cos: 'Math_cos', + cosf: 'Math_cos', + cosl: 'Math_cos', + sin: 'Math_sin', + sinf: 'Math_sin', + sinl: 'Math_sin', + tan: 'Math_tan', + tanf: 'Math_tan', + tanl: 'Math_tan', + acos: 'Math_acos', + acosf: 'Math_acos', + acosl: 'Math_acos', + asin: 'Math_asin', + asinf: 'Math_asin', + asinl: 'Math_asin', + atan: 'Math_atan', + atanf: 'Math_atan', + atanl: 'Math_atan', + atan2: 'Math_atan2', + atan2f: 'Math_atan2', + atan2l: 'Math_atan2', + exp: 'Math_exp', + expf: 'Math_exp', + expl: 'Math_exp', // The erf and erfc functions are inspired from // http://www.digitalmars.com/archives/cplusplus/3634.html @@ -4784,32 +4787,32 @@ LibraryManager.library = { }, erff: 'erf', erfl: 'erf', - log: 'Math.log', - logf: 'Math.log', - logl: 'Math.log', - sqrt: 'Math.sqrt', - sqrtf: 'Math.sqrt', - sqrtl: 'Math.sqrt', - fabs: 'Math.abs', - fabsf: 'Math.abs', - fabsl: 'Math.abs', - ceil: 'Math.ceil', - ceilf: 'Math.ceil', - ceill: 'Math.ceil', - floor: 'Math.floor', - floorf: 'Math.floor', - floorl: 'Math.floor', - pow: 'Math.pow', - powf: 'Math.pow', - powl: 'Math.pow', - llvm_sqrt_f32: 'Math.sqrt', - llvm_sqrt_f64: 'Math.sqrt', - llvm_pow_f32: 'Math.pow', - llvm_pow_f64: 'Math.pow', - llvm_log_f32: 'Math.log', - llvm_log_f64: 'Math.log', - llvm_exp_f32: 'Math.exp', - llvm_exp_f64: 'Math.exp', + log: 'Math_log', + logf: 'Math_log', + logl: 'Math_log', + sqrt: 'Math_sqrt', + sqrtf: 'Math_sqrt', + sqrtl: 'Math_sqrt', + fabs: 'Math_abs', + fabsf: 'Math_abs', + fabsl: 'Math_abs', + ceil: 'Math_ceil', + ceilf: 'Math_ceil', + ceill: 'Math_ceil', + floor: 'Math_floor', + floorf: 'Math_floor', + floorl: 'Math_floor', + pow: 'Math_pow', + powf: 'Math_pow', + powl: 'Math_pow', + llvm_sqrt_f32: 'Math_sqrt', + llvm_sqrt_f64: 'Math_sqrt', + llvm_pow_f32: 'Math_pow', + llvm_pow_f64: 'Math_pow', + llvm_log_f32: 'Math_log', + llvm_log_f64: 'Math_log', + llvm_exp_f32: 'Math_exp', + llvm_exp_f64: 'Math_exp', ldexp: function(x, exp_) { return x * Math.pow(2, exp_); }, @@ -8610,6 +8613,15 @@ LibraryManager.library = { Runtime.stackAlloc(-4*i); // free up the stack space we know is ok to free }, + emscripten_asm_const: function(code) { + // code is a constant string on the heap, so we can cache these + if (!Runtime.asmConstCache) Runtime.asmConstCache = {}; + var func = Runtime.asmConstCache[code]; + if (func) return func(); + func = Runtime.asmConstCache[code] = eval('(function(){ ' + Pointer_stringify(code) + ' })'); // new Function does not allow upvars in node + return func(); + }, + //============================ // i64 math //============================ diff --git a/src/library_fs.js b/src/library_fs.js index c4b29227..dc5c20f8 100644 --- a/src/library_fs.js +++ b/src/library_fs.js @@ -120,6 +120,11 @@ mergeInto(LibraryManager.library, { // hashName: function(parentid, name) { var hash = 0; + +#if CASE_INSENSITIVE_FS + name = name.toLowerCase(); +#endif + for (var i = 0; i < name.length; i++) { hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; } @@ -151,8 +156,15 @@ mergeInto(LibraryManager.library, { throw new FS.ErrnoError(err); } var hash = FS.hashName(parent.id, name); +#if CASE_INSENSITIVE_FS + name = name.toLowerCase(); +#endif for (var node = FS.nameTable[hash]; node; node = node.name_next) { - if (node.parent.id === parent.id && node.name === name) { + var nodeName = node.name; +#if CASE_INSENSITIVE_FS + nodeName = nodeName.toLowerCase(); +#endif + if (node.parent.id === parent.id && nodeName === name) { return node; } } diff --git a/src/modules.js b/src/modules.js index 9662200c..cc9ca549 100644 --- a/src/modules.js +++ b/src/modules.js @@ -234,7 +234,7 @@ var Types = { preciseI64MathUsed: (PRECISE_I64_MATH == 2) }; -var firstTableIndex = (ASM_JS ? 2*RESERVED_FUNCTION_POINTERS : 0) + 2; +var firstTableIndex = FUNCTION_POINTER_ALIGNMENT * ((ASM_JS ? RESERVED_FUNCTION_POINTERS : 0) + 1); var Functions = { // All functions that will be implemented in this file. Maps id to signature @@ -287,7 +287,7 @@ var Functions = { ret = this.indexedFunctions[ident]; if (!ret) { ret = this.nextIndex; - this.nextIndex += 2; // Need to have indexes be even numbers, see |polymorph| test + this.nextIndex += FUNCTION_POINTER_ALIGNMENT; this.indexedFunctions[ident] = ret; } ret = ret.toString(); @@ -340,7 +340,7 @@ var Functions = { if (table[i]) { var libName = LibraryManager.getRootIdent(table[i].substr(1)); if (libName && typeof libName == 'string') { - table[i] = (libName.indexOf('.') < 0 ? '_' : '') + libName; + table[i] = (libName.indexOf('Math_') < 0 ? '_' : '') + libName; } } if (ASM_JS) { @@ -379,13 +379,11 @@ var Functions = { for (var t in tables) { if (t == 'pre') continue; var table = tables[t]; - if (ASM_JS) { - // asm function table mask must be power of two - // if nonaliasing, then standardize function table size, to avoid aliasing pointers through the &M mask (in a small table using a big index) - var fullSize = ALIASING_FUNCTION_POINTERS ? ceilPowerOfTwo(table.length) : maxTable; - for (var i = table.length; i < fullSize; i++) { - table[i] = 0; - } + // asm function table mask must be power of two, and non-asm must be aligned + // if nonaliasing, then standardize function table size, to avoid aliasing pointers through the &M mask (in a small table using a big index) + var fullSize = ASM_JS ? (ALIASING_FUNCTION_POINTERS ? ceilPowerOfTwo(table.length) : maxTable) : ((table.length+FUNCTION_POINTER_ALIGNMENT-1)&-FUNCTION_POINTER_ALIGNMENT); + for (var i = table.length; i < fullSize; i++) { + table[i] = 0; } // finalize table var indices = table.toString().replace('"', ''); diff --git a/src/parseTools.js b/src/parseTools.js index 7ebc0de2..addf0f21 100644 --- a/src/parseTools.js +++ b/src/parseTools.js @@ -763,10 +763,10 @@ function splitI64(value, floatConversion) { if (floatConversion && ASM_JS) lowInput = asmFloatToInt(lowInput); var low = lowInput + '>>>0'; var high = makeInlineCalculation( - asmCoercion('Math.abs(VALUE)', 'double') + ' >= ' + asmEnsureFloat('1', 'double') + ' ? ' + + asmCoercion('Math_abs(VALUE)', 'double') + ' >= ' + asmEnsureFloat('1', 'double') + ' ? ' + '(VALUE > ' + asmEnsureFloat('0', 'double') + ' ? ' + - asmCoercion('Math.min(' + asmCoercion('Math.floor((VALUE)/' + asmEnsureFloat(4294967296, 'float') + ')', 'double') + ', ' + asmEnsureFloat(4294967295, 'float') + ')', 'i32') + '>>>0' + - ' : ' + asmFloatToInt(asmCoercion('Math.ceil((VALUE - +((' + asmFloatToInt('VALUE') + ')>>>0))/' + asmEnsureFloat(4294967296, 'float') + ')', 'double')) + '>>>0' + + asmCoercion('Math_min(' + asmCoercion('Math_floor((VALUE)/' + asmEnsureFloat(4294967296, 'float') + ')', 'double') + ', ' + asmEnsureFloat(4294967295, 'float') + ')', 'i32') + '>>>0' + + ' : ' + asmFloatToInt(asmCoercion('Math_ceil((VALUE - +((' + asmFloatToInt('VALUE') + ')>>>0))/' + asmEnsureFloat(4294967296, 'float') + ')', 'double')) + '>>>0' + ')' + ' : 0', value, @@ -930,7 +930,10 @@ function parseNumerical(value, type) { } if (isNumber(value)) { var ret = parseFloat(value); // will change e.g. 5.000000e+01 to 50 - if (type in Runtime.FLOAT_TYPES && value[0] == '-' && ret === 0) return '-0'; // fix negative 0, toString makes it 0 + if (type in Runtime.FLOAT_TYPES) { + if (value[0] === '-' && ret === 0) return '-.0'; // fix negative 0, toString makes it 0 + if (!RUNNING_JS_OPTS) ret = asmEnsureFloat(ret, type); + } return ret.toString(); } else { return value; @@ -1136,7 +1139,16 @@ function asmEnsureFloat(value, type) { // ensures that a float type has either 5 if (!ASM_JS) return value; // coerce if missing a '.', or if smaller than 1, so could be 1e-5 which has no . if (type in Runtime.FLOAT_TYPES && isNumber(value) && (value.toString().indexOf('.') < 0 || Math.abs(value) < 1)) { - return '(+(' + value + '))'; + if (RUNNING_JS_OPTS) { + return '(+' + value + ')'; // JS optimizer will run, we must do +x, and it will be corrected later + } else { + // ensure a . + value = value.toString(); + if (value.indexOf('.') >= 0 || /[IN]/.test(value)) return value; // if already dotted, or Infinity or NaN, nothing to do here + var e = value.indexOf('e'); + if (e < 0) return value + '.0'; + return value.substr(0, e) + '.0' + value.substr(e); + } } else { return value; } @@ -1144,7 +1156,11 @@ function asmEnsureFloat(value, type) { // ensures that a float type has either 5 function asmInitializer(type, impl) { if (type in Runtime.FLOAT_TYPES) { - return '+0'; + if (RUNNING_JS_OPTS) { + return '+0'; + } else { + return '.0'; + } } else { return '0'; } @@ -1519,7 +1535,7 @@ function getFastValue(a, op, b, type) { if (a === '2' && isIntImplemented(type)) { return '(1 << (' + b + '))'; } - return 'Math.pow(' + a + ', ' + b + ')'; + return 'Math_pow(' + a + ', ' + b + ')'; } if ((op === '+' || op === '*') && aNumber !== null) { // if one of them is a number, keep it last var c = b; @@ -1551,7 +1567,7 @@ function getFastValue(a, op, b, type) { if ((aNumber !== null && Math.abs(a) < TWO_TWENTY) || (bNumber !== null && Math.abs(b) < TWO_TWENTY) || (bits < 32 && !ASM_JS)) { return '(((' + a + ')*(' + b + '))&' + ((Math.pow(2, bits)-1)|0) + ')'; // keep a non-eliminatable coercion directly on this } - return '(Math.imul(' + a + ',' + b + ')|0)'; + return '(Math_imul(' + a + ',' + b + ')|0)'; } } else if (op === '/') { if (a === '0' && !(type in Runtime.FLOAT_TYPES)) { // careful on floats, since 0*NaN is not 0 @@ -1888,8 +1904,10 @@ function handleOverflow(text, bits) { if (CHECK_OVERFLOWS) return 'CHECK_OVERFLOW(' + text + ', ' + bits + ', ' + Math.floor(correctSpecificOverflow()) + ')'; if (!correct) return text; if (bits == 32) { + if (isNumber(text)) return text | 0; return '((' + text + ')|0)'; } else if (bits < 32) { + if (isNumber(text)) return text & (Math.pow(2, bits) - 1); return '((' + text + ')&' + (Math.pow(2, bits) - 1) + ')'; } else { return text; // We warned about this earlier @@ -1979,7 +1997,7 @@ function makeComparison(a, op, b, type) { return asmCoercion(a, type) + op + asmCoercion(b, type); } else { assert(type == 'i64'); - return asmCoercion(a + '$0', 'i32') + op + asmCoercion(b + '$0', 'i32') + ' & ' + + return asmCoercion(a + '$0', 'i32') + op + asmCoercion(b + '$0', 'i32') + '&' + asmCoercion(a + '$1', 'i32') + op + asmCoercion(b + '$1', 'i32'); } } @@ -2047,12 +2065,12 @@ function makeRounding(value, bits, signed, floatConversion) { // as |0, but &-1 hints to the js optimizer that this is a rounding correction // Do Math.floor, which is reasonably fast, if we either don't care, or if we can be sure // the value is non-negative - if (!correctRoundings() || (!signed && !floatConversion)) return 'Math.floor(' + value + ')'; + if (!correctRoundings() || (!signed && !floatConversion)) return 'Math_floor(' + value + ')'; // We are left with >32 bits signed, or a float conversion. Check and correct inline // Note that if converting a float, we may have the wrong sign at this point! But, we have // been rounded properly regardless, and we will be sign-corrected later when actually used, if // necessary. - return makeInlineCalculation(makeComparison('VALUE', '>=', '0', 'float') + ' ? Math.floor(VALUE) : Math.ceil(VALUE)', value, 'tempBigIntR'); + return makeInlineCalculation(makeComparison('VALUE', '>=', '0', 'float') + ' ? Math_floor(VALUE) : Math_ceil(VALUE)', value, 'tempBigIntR'); } else { // asm.js mode, cleaner refactoring of this function as well. TODO: use in non-asm case, most of this if (floatConversion && bits <= 32) { @@ -2067,9 +2085,9 @@ function makeRounding(value, bits, signed, floatConversion) { } } // Math.floor is reasonably fast if we don't care about corrections (and even correct if unsigned) - if (!correctRoundings() || !signed) return 'Math.floor(' + value + ')'; + if (!correctRoundings() || !signed) return 'Math_floor(' + value + ')'; // We are left with >32 bits - return makeInlineCalculation(makeComparison('VALUE', '>=', '0', 'float') + ' ? Math.floor(VALUE) : Math.ceil(VALUE)', value, 'tempBigIntR'); + return makeInlineCalculation(makeComparison('VALUE', '>=', '0', 'float') + ' ? Math_floor(VALUE) : Math_ceil(VALUE)', value, 'tempBigIntR'); } } @@ -2080,7 +2098,7 @@ function makeIsNaN(value) { function makeFloat(value, type) { if (TO_FLOAT32 && type == 'float') { - return 'Math.toFloat32(' + value + ')'; + return 'Math_toFloat32(' + value + ')'; } return value; } @@ -2156,7 +2174,13 @@ function processMathop(item) { // If this is in legalization mode, steal the assign and assign into two vars if (legalizedI64s) { assert(item.assignTo); - var ret = 'var ' + item.assignTo + '$0 = ' + result[0] + '; var ' + item.assignTo + '$1 = ' + result[1] + ';'; + if (ASM_JS) { + var ret = item.assignTo + '$0=' + result[0] + ';' + item.assignTo + '$1=' + result[1] + ';'; + addVariable(item.assignTo + '$0', 'i32'); + addVariable(item.assignTo + '$1', 'i32'); + } else { + var ret = 'var ' + item.assignTo + '$0=' + result[0] + ';var ' + item.assignTo + '$1=' + result[1] + ';'; + } item.assignTo = null; return ret; } else { @@ -2307,7 +2331,7 @@ function processMathop(item) { dprint('Warning: 64 bit OR - precision limit may be hit on llvm line ' + item.lineNum); return 'Runtime.or64(' + idents[0] + ', ' + idents[1] + ')'; } - return idents[0] + ' | ' + idents[1]; + return idents[0] + '|' + idents[1]; } case 'and': { if (bits > 32) { @@ -2315,7 +2339,7 @@ function processMathop(item) { dprint('Warning: 64 bit AND - precision limit may be hit on llvm line ' + item.lineNum); return 'Runtime.and64(' + idents[0] + ', ' + idents[1] + ')'; } - return idents[0] + ' & ' + idents[1]; + return idents[0] + '&' + idents[1]; } case 'xor': { if (bits > 32) { @@ -2323,21 +2347,21 @@ function processMathop(item) { dprint('Warning: 64 bit XOR - precision limit may be hit on llvm line ' + item.lineNum); return 'Runtime.xor64(' + idents[0] + ', ' + idents[1] + ')'; } - return idents[0] + ' ^ ' + idents[1]; + return idents[0] + '^' + idents[1]; } case 'shl': { if (bits > 32) return idents[0] + '*' + getFastValue(2, 'pow', idents[1]); - return idents[0] + ' << ' + idents[1]; + return idents[0] + '<<' + idents[1]; } case 'ashr': { if (bits > 32) return integerizeBignum(idents[0] + '/' + getFastValue(2, 'pow', idents[1])); - if (bits === 32) return originalIdents[0] + ' >> ' + idents[1]; // No need to reSign in this case - return idents[0] + ' >> ' + idents[1]; + if (bits === 32) return originalIdents[0] + '>>' + idents[1]; // No need to reSign in this case + return idents[0] + '>>' + idents[1]; } case 'lshr': { if (bits > 32) return integerizeBignum(idents[0] + '/' + getFastValue(2, 'pow', idents[1])); - if (bits === 32) return originalIdents[0] + ' >>> ' + idents[1]; // No need to unSign in this case - return idents[0] + ' >>> ' + idents[1]; + if (bits === 32) return originalIdents[0] + '>>>' + idents[1]; // No need to unSign in this case + return idents[0] + '>>>' + idents[1]; } // basic float ops case 'fadd': return makeFloat(getFastValue(idents[0], '+', idents[1], item.type), item.type); @@ -2352,10 +2376,10 @@ function processMathop(item) { // Note that with typed arrays, these become 0 when written. So that is a potential difference with non-typed array runs. case 'icmp': { switch (variant) { - case 'uge': case 'sge': return idents[0] + ' >= ' + idents[1]; - case 'ule': case 'sle': return idents[0] + ' <= ' + idents[1]; - case 'ugt': case 'sgt': return idents[0] + ' > ' + idents[1]; - case 'ult': case 'slt': return idents[0] + ' < ' + idents[1]; + case 'uge': case 'sge': return idents[0] + '>=' + idents[1]; + case 'ule': case 'sle': return idents[0] + '<=' + idents[1]; + case 'ugt': case 'sgt': return idents[0] + '>' + idents[1]; + case 'ult': case 'slt': return idents[0] + '<' + idents[1]; // We use loose comparisons, which allows false == 0 to be true, etc. Ditto in fcmp case 'ne': case 'eq': { // We must sign them, so we do not compare -1 to 255 (could have unsigned them both too) @@ -2371,14 +2395,14 @@ function processMathop(item) { switch (variant) { // TODO 'o' ones should be 'ordered (no NaN) and', // 'u' ones should be 'unordered or'. - case 'uge': case 'oge': return idents[0] + ' >= ' + idents[1]; - case 'ule': case 'ole': return idents[0] + ' <= ' + idents[1]; - case 'ugt': case 'ogt': return idents[0] + ' > ' + idents[1]; - case 'ult': case 'olt': return idents[0] + ' < ' + idents[1]; - case 'une': case 'one': return idents[0] + ' != ' + idents[1]; - case 'ueq': case 'oeq': return idents[0] + ' == ' + idents[1]; - case 'ord': return '!' + makeIsNaN(idents[0]) + ' & !' + makeIsNaN(idents[1]); - case 'uno': return makeIsNaN(idents[0]) + ' | ' + makeIsNaN(idents[1]); + case 'uge': case 'oge': return idents[0] + '>=' + idents[1]; + case 'ule': case 'ole': return idents[0] + '<=' + idents[1]; + case 'ugt': case 'ogt': return idents[0] + '>' + idents[1]; + case 'ult': case 'olt': return idents[0] + '<' + idents[1]; + case 'une': case 'one': return idents[0] + '!=' + idents[1]; + case 'ueq': case 'oeq': return idents[0] + '==' + idents[1]; + case 'ord': return '!' + makeIsNaN(idents[0]) + '&!' + makeIsNaN(idents[1]); + case 'uno': return makeIsNaN(idents[0]) + '|' + makeIsNaN(idents[1]); case 'true': return '1'; default: throw 'Unknown fcmp variant: ' + variant; } @@ -2394,7 +2418,7 @@ function processMathop(item) { } case 'fpext': case 'sext': return idents[0]; case 'fptrunc': return idents[0]; - case 'select': return idents[0] + ' ? ' + asmEnsureFloat(idents[1], item.type) + ' : ' + asmEnsureFloat(idents[2], item.type); + case 'select': return idents[0] + '?' + asmEnsureFloat(idents[1], item.type) + ':' + asmEnsureFloat(idents[2], item.type); case 'ptrtoint': case 'inttoptr': { var ret = ''; if (QUANTUM_SIZE == 1) { @@ -2412,7 +2436,7 @@ function processMathop(item) { // truncating can change the number, e.g. by truncating to an i1 // in order to get the first bit assert(bitsLeft <= 32, 'Cannot truncate to more than 32 bits, since we use a native & op'); - return '((' + idents[0] + ') & ' + (Math.pow(2, bitsLeft)-1) + ')'; + return '((' + idents[0] + ')&' + (Math.pow(2, bitsLeft)-1) + ')'; } case 'bitcast': { // Most bitcasts are no-ops for us. However, the exception is int to float and float to int @@ -2553,3 +2577,29 @@ function parseAlign(text) { // parse ", align \d+" return parseInt(text.substr(8)); } +function deParen(text) { + if (text[0] === '(') return text.substr(1, text.length-2); + return text; +} + +function addVariable(ident, type, funcData) { + funcData = funcData || Framework.currItem.funcData; + assert(type); + var old = funcData.variables[ident]; + if (old) { + assert(old.type === type); + } else { + funcData.variables[ident] = { + ident: ident, + type: type, + origin: 'added', + lineNum: 0, + rawLinesIndex: 0, + hasValueTaken: false, + pointingLevels: 0, + uses: 0, + impl: VAR_EMULATED + }; + } +} + diff --git a/src/preamble.js b/src/preamble.js index 183fd0c8..88aaff77 100644 --- a/src/preamble.js +++ b/src/preamble.js @@ -644,7 +644,7 @@ Module['stringToUTF32'] = stringToUTF32; var PAGE_SIZE = 4096; function alignMemoryPage(x) { - return ((x+4095)>>12)<<12; + return (x+4095)&-4096; } var HEAP; @@ -943,6 +943,24 @@ if (!Math['toFloat32']) Math['toFloat32'] = function(x) { Math.toFloat32 = Math['toFloat32']; #endif +var Math_abs = Math.abs; +var Math_cos = Math.cos; +var Math_sin = Math.sin; +var Math_tan = Math.tan; +var Math_acos = Math.acos; +var Math_asin = Math.asin; +var Math_atan = Math.atan; +var Math_atan2 = Math.atan2; +var Math_exp = Math.exp; +var Math_log = Math.log; +var Math_sqrt = Math.sqrt; +var Math_ceil = Math.ceil; +var Math_floor = Math.floor; +var Math_pow = Math.pow; +var Math_imul = Math.imul; +var Math_toFloat32 = Math.toFloat32; +var Math_min = Math.min; + // A counter of dependencies for calling run(). If we need to // do asynchronous work before running, increment this and // decrement it. Incrementing must happen in a place like diff --git a/src/runtime.js b/src/runtime.js index 00031fed..e36068c8 100644 --- a/src/runtime.js +++ b/src/runtime.js @@ -32,8 +32,8 @@ var RuntimeGenerator = { stackEnter: function(initial, force) { if (initial === 0 && SKIP_STACK_IN_SMALL && !force) return ''; - var ret = 'var sp = ' + (ASM_JS ? '0; sp = ' : '') + 'STACKTOP'; - if (initial > 0) ret += '; STACKTOP = (STACKTOP + ' + initial + ')|0'; + var ret = 'var sp=' + (ASM_JS ? '0;sp=' : '') + 'STACKTOP'; + if (initial > 0) ret += ';STACKTOP=(STACKTOP+' + initial + ')|0'; if (USE_TYPED_ARRAYS == 2) { assert(initial % Runtime.STACK_ALIGN == 0); if (ASSERTIONS && Runtime.STACK_ALIGN == 4) { @@ -43,9 +43,6 @@ var RuntimeGenerator = { if (ASSERTIONS) { ret += '; (assert(' + asmCoercion('(STACKTOP|0) < (STACK_MAX|0)', 'i32') + ')|0)'; } - if (false) { - ret += '; _memset(' + asmCoercion('sp', 'i32') + ', 0, ' + initial + ')'; - } return ret; }, @@ -55,7 +52,7 @@ var RuntimeGenerator = { if (SAFE_HEAP) { ret += 'var i = sp; while ((i|0) < (STACKTOP|0)) { SAFE_HEAP_CLEAR(i|0); i = (i+1)|0 }'; } - return ret += 'STACKTOP = sp'; + return ret += 'STACKTOP=sp'; }, // An allocation that cannot normally be free'd (except through sbrk, which once @@ -112,8 +109,7 @@ var Runtime = { if (isNumber(target) && isNumber(quantum)) { return Math.ceil(target/quantum)*quantum; } else if (isNumber(quantum) && isPowerOfTwo(quantum)) { - var logg = log2(quantum); - return '((((' +target + ')+' + (quantum-1) + ')>>' + logg + ')<<' + logg + ')'; + return '(((' +target + ')+' + (quantum-1) + ')&' + -quantum + ')'; } return 'Math.ceil((' + target + ')/' + quantum + ')*' + quantum; }, @@ -347,22 +343,23 @@ var Runtime = { for (var i = 0; i < Runtime.functionPointers.length; i++) { if (!Runtime.functionPointers[i]) { Runtime.functionPointers[i] = func; - return 2 + 2*i; + return {{{ FUNCTION_POINTER_ALIGNMENT }}}*(1 + i); } } throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.'; #else var table = FUNCTION_TABLE; var ret = table.length; + assert(ret % {{{ FUNCTION_POINTER_ALIGNMENT }}} === 0); table.push(func); - table.push(0); + for (var i = 0; i < {{{ FUNCTION_POINTER_ALIGNMENT }}}-1; i++) table.push(0); return ret; #endif }, removeFunction: function(index) { #if ASM_JS - Runtime.functionPointers[(index-2)/2] = null; + Runtime.functionPointers[(index-{{{ FUNCTION_POINTER_ALIGNMENT }}})/{{{ FUNCTION_POINTER_ALIGNMENT }}}] = null; #else var table = FUNCTION_TABLE; table[index] = null; diff --git a/src/settings.js b/src/settings.js index 6e2b9e6c..d2b47dc8 100644 --- a/src/settings.js +++ b/src/settings.js @@ -170,6 +170,12 @@ var ALIASING_FUNCTION_POINTERS = 0; // Whether to allow function pointers to ali // a different type. This can greatly decrease table sizes // in asm.js, but can break code that compares function // pointers across different types. +var FUNCTION_POINTER_ALIGNMENT = 2; // Byte alignment of function pointers - we will fill the + // tables with zeros on aligned values. 1 means all values + // are aligned and all will be used (which is optimal). + // Sadly 1 breaks on &Class::method function pointer calls, + // which llvm assumes have the lower bit zero (see + // test_polymorph and issue #1692). var ASM_HEAP_LOG = 0; // Simple heap logging, like SAFE_HEAP_LOG but cheaper, and in asm.js @@ -266,6 +272,8 @@ var CORRECT_ROUNDINGS = 1; // C rounds to 0 (-5.5 to -5, +5.5 to 5), while JS ha var FS_LOG = 0; // Log all FS operations. This is especially helpful when you're porting // a new project and want to see a list of file system operations happening // so that you can create a virtual file system with all of the required files. +var CASE_INSENSITIVE_FS = 0; // If set to nonzero, the provided virtual filesystem if treated case-insensitive, like + // Windows and OSX do. If set to 0, the VFS is case-sensitive, like on Linux. var USE_BSS = 1; // https://en.wikipedia.org/wiki/.bss // When enabled, 0-initialized globals are sorted to the end of the globals list, @@ -419,14 +427,15 @@ var EXPLICIT_ZEXT = 0; // If 1, generate an explicit conversion of zext i1 to i3 var NECESSARY_BLOCKADDRS = []; // List of (function, block) for all block addresses that are taken. -var EMIT_GENERATED_FUNCTIONS = 0; // whether to emit the list of generated functions, needed for external JS optimization passes - var JS_CHUNK_SIZE = 10240; // Used as a maximum size before breaking up expressions and lines into smaller pieces var EXPORT_NAME = 'Module'; // Global variable to export the module as for environments without a standardized module // loading system (e.g. the browser and SM shell). +var RUNNING_JS_OPTS = 0; // whether js opts will be run, after the main compiler + var COMPILER_ASSERTIONS = 0; // costly (slow) compile-time assertions +var COMPILER_FASTPATHS = 1; // use fast-paths to speed up compilation // Compiler debugging options var DEBUG_TAGS_SHOWING = []; diff --git a/system/include/emscripten/emscripten.h b/system/include/emscripten/emscripten.h index 430fbc1c..d30620ec 100644 --- a/system/include/emscripten/emscripten.h +++ b/system/include/emscripten/emscripten.h @@ -23,10 +23,13 @@ extern "C" { * * EM_ASM(window.alert('hai')); * + * This also works with asm.js, as it outlines the code (it + * does a function call to reach it). + * * Note: double-quotes (") are not supported, but you can use * single-quotes (') in js anyhow. */ -#define EM_ASM(...) asm(#__VA_ARGS__) +#define EM_ASM(...) emscripten_asm_const(#__VA_ARGS__) /* * Forces LLVM to not dead-code-eliminate a function. Note that @@ -376,6 +379,8 @@ int emscripten_get_worker_queue_size(worker_handle worker); #define EMSCRIPTEN_NETWORK_WEBRTC 1 void emscripten_set_network_backend(int backend); +/* Internal APIs. Be careful with these. */ + /* * Profiling tools. * INIT must be called first, with the maximum identifier that @@ -413,6 +418,9 @@ void emscripten_jcache_printf(const char *format, ...); void emscripten_jcache_printf_(...); /* internal use */ #endif +/* Helper API for EM_ASM - do not call this yourself */ +void emscripten_asm_const(const char *code); + #ifdef __cplusplus } #endif diff --git a/tests/cases/fp80_ta2.ll b/tests/cases/fp80_ta2.ll deleted file mode 100644 index 7fc0db4a..00000000 --- a/tests/cases/fp80_ta2.ll +++ /dev/null @@ -1,21 +0,0 @@ -; ModuleID = 'src.cpp.o' -target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32" -target triple = "i386-pc-linux-gnu" - -@.str = private unnamed_addr constant [15 x i8] c"hello, world!\0A\00" ; [#uses=1] - -; [#uses=0] -define i32 @main() { -entry: - %x = zext i32 0 to x86_fp80 - %1 = bitcast x86_fp80 %x to i80 - %2 = trunc i80 %1 to i32 - %retval = alloca i32, align 4 ; [#uses=1] - store i32 0, i32* %retval - %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([15 x i8]* @.str, i32 0, i32 0)) ; [#uses=0] - ret i32 0 -} - -; [#uses=1] -declare i32 @printf(i8*, ...) - diff --git a/tests/test_core.py b/tests/test_core.py index 11ec8fd2..c1bfce6f 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -3841,25 +3841,26 @@ def process(filename): self.do_run(src, '4\n200\ndone\n') def test_inlinejs3(self): - if Settings.ASM_JS: return self.skip('asm does not support random code, TODO: something that works in asm') - src = r''' - #include <stdio.h> - #include <emscripten.h> + src = r''' + #include <stdio.h> + #include <emscripten.h> - int main() { - EM_ASM(Module.print('hello dere1')); - EM_ASM( - Module.print('hello dere2'); - ); + int main() { + EM_ASM(Module.print('hello dere1')); + EM_ASM( + Module.print('hello dere2'); + ); + for (int i = 0; i < 3; i++) { EM_ASM( Module.print('hello dere3'); Module.print('hello dere' + 4); ); - return 0; } - ''' + return 0; + } + ''' - self.do_run(src, 'hello dere1\nhello dere2\nhello dere3\nhello dere4\n') + self.do_run(src, 'hello dere1\nhello dere2\nhello dere3\nhello dere4\nhello dere3\nhello dere4\nhello dere3\nhello dere4\n') def test_memorygrowth(self): if Settings.USE_TYPED_ARRAYS == 0: return self.skip('memory growth is only supported with typed arrays') @@ -7266,6 +7267,7 @@ date: 18.07.2013w; day 18, month 7, year 2013, extra: 201, 3 if self.emcc_args is not None and '-O2' in self.emcc_args: self.emcc_args += ['--closure', '1'] # Use closure here, to test we don't break FS stuff self.emcc_args = filter(lambda x: x != '-g', self.emcc_args) # ensure we test --closure 1 --memory-init-file 1 (-g would disable closure) + self.emcc_args += ["-s", "CHECK_HEAP_ALIGN=0"] # disable heap align check here, it mixes poorly with closure Settings.CORRECT_SIGNS = 1 # Just so our output is what we expect. Can flip them both. post = ''' @@ -7749,7 +7751,6 @@ def process(filename): self.do_run(src, 'success', force_c=True, js_engines=[NODE_JS]) def test_unistd_access(self): - if Settings.ASM_JS: Settings.ASM_JS = 2 # skip validation, asm does not support random code if not self.is_le32(): return self.skip('le32 needed for inline js') for fs in ['MEMFS', 'NODEFS']: src = open(path_from_root('tests', 'unistd', 'access.c'), 'r').read() @@ -7758,7 +7759,6 @@ def process(filename): self.do_run(src, expected, js_engines=[NODE_JS]) def test_unistd_curdir(self): - if Settings.ASM_JS: Settings.ASM_JS = 2 # skip validation, asm does not support random code if not self.is_le32(): return self.skip('le32 needed for inline js') src = open(path_from_root('tests', 'unistd', 'curdir.c'), 'r').read() expected = open(path_from_root('tests', 'unistd', 'curdir.out'), 'r').read() @@ -7789,7 +7789,6 @@ def process(filename): self.do_run(src, expected) def test_unistd_truncate(self): - if Settings.ASM_JS: Settings.ASM_JS = 2 # skip validation, asm does not support random code if not self.is_le32(): return self.skip('le32 needed for inline js') for fs in ['MEMFS', 'NODEFS']: src = open(path_from_root('tests', 'unistd', 'truncate.c'), 'r').read() @@ -7825,7 +7824,6 @@ def process(filename): self.do_run(src, 'success', force_c=True, js_engines=[NODE_JS]) def test_unistd_links(self): - if Settings.ASM_JS: Settings.ASM_JS = 2 # skip validation, asm does not support random code if not self.is_le32(): return self.skip('le32 needed for inline js') for fs in ['MEMFS', 'NODEFS']: src = open(path_from_root('tests', 'unistd', 'links.c'), 'r').read() @@ -7839,7 +7837,6 @@ def process(filename): self.do_run(src, expected) def test_unistd_io(self): - if Settings.ASM_JS: Settings.ASM_JS = 2 # skip validation, asm does not support random code if not self.is_le32(): return self.skip('le32 needed for inline js') if self.run_name == 'o2': return self.skip('non-asm optimized builds can fail with inline js') if self.emcc_args is None: return self.skip('requires emcc') @@ -8609,6 +8606,12 @@ void*:16 assert ' & 255]()' not in original, 'big function table does not exist' assert ' & 255]()' in final, 'big function table exists' + assert 'asm1' in test_modes + if self.run_name == 'asm1': + assert not Settings.RELOOP + Settings.RELOOP = 1 # check for mixing of relooping with asm1 + self.do_run(path_from_root('tests', 'cubescript'), '*\nTemp is 33\n9\n5\nhello, everyone\n*', main_file='command.cpp') + def test_gcc_unmangler(self): Settings.NAMED_GLOBALS = 1 # test coverage for this @@ -10517,9 +10520,9 @@ o1 = make_run("o1", compiler=CLANG, emcc_args=["-O1", "-s", "ASM_JS=0", "-s", "S o2 = make_run("o2", compiler=CLANG, emcc_args=["-O2", "-s", "ASM_JS=0", "-s", "JS_CHUNK_SIZE=1024"]) # asm.js -asm1 = make_run("asm1", compiler=CLANG, emcc_args=["-O1", "-s", "CHECK_HEAP_ALIGN=1"]) +asm1 = make_run("asm1", compiler=CLANG, emcc_args=["-O1"]) asm2 = make_run("asm2", compiler=CLANG, emcc_args=["-O2"]) -asm2g = make_run("asm2g", compiler=CLANG, emcc_args=["-O2", "-g", "-s", "ASSERTIONS=1", "--memory-init-file", "1"]) +asm2g = make_run("asm2g", compiler=CLANG, emcc_args=["-O2", "-g", "-s", "ASSERTIONS=1", "--memory-init-file", "1", "-s", "CHECK_HEAP_ALIGN=1"]) asm2x86 = make_run("asm2x86", compiler=CLANG, emcc_args=["-O2", "-g", "-s", "CHECK_HEAP_ALIGN=1"], env={"EMCC_LLVM_TARGET": "i386-pc-linux-gnu"}) # Make custom runs with various options diff --git a/tests/test_other.py b/tests/test_other.py index 69823d8e..afad1927 100644 --- a/tests/test_other.py +++ b/tests/test_other.py @@ -175,7 +175,7 @@ Options that are modified or new in %s include: if opt_level >= 2 and '-g' in params: assert re.search('HEAP8\[\$?\w+ ?\+ ?\(+\$?\w+ ?', generated) or re.search('HEAP8\[HEAP32\[', generated), 'eliminator should create compound expressions, and fewer one-time vars' # also in -O1, but easier to test in -O2 assert ('_puts(' in generated) == (opt_level >= 1), 'with opt >= 1, llvm opts are run and they should optimize printf to puts' - if opt_level == 0 or '-g' in params: assert 'function _main() {' in generated, 'Should be unminified, including whitespace' + if opt_level == 0 or '-g' in params: assert 'function _main() {' in generated or 'function _main(){' in generated, 'Should be unminified' elif opt_level >= 2: assert ('function _main(){' in generated or '"use asm";var a=' in generated), 'Should be whitespace-minified' # emcc -s RELOOP=1 src.cpp ==> should pass -s to emscripten.py. --typed-arrays is a convenient alias for -s USE_TYPED_ARRAYS diff --git a/tools/eliminator/asm-eliminator-test-output.js b/tools/eliminator/asm-eliminator-test-output.js index 5cc6238e..dda82047 100644 --- a/tools/eliminator/asm-eliminator-test-output.js +++ b/tools/eliminator/asm-eliminator-test-output.js @@ -75,18 +75,6 @@ function _vec2Length($this) { function exc($this) { $this = $this | 0; var $1 = 0, $5 = 0; - $1 = (function() { - try { - __THREW__ = false; - return __ZNSt3__16locale8__globalEv(); - } catch (e) { - if (typeof e != "number") throw e; - if (ABORT) throw e; - __THREW__ = true; - Module.print("Exception: " + e + ", currently at: " + (new Error).stack); - return null; - } - })(); if (!__THREW__) { $5 = HEAP32[(($1 | 0) & 16777215) >> 2] | 0; HEAP32[(($this | 0) & 16777215) >> 2] = $5; @@ -122,233 +110,10 @@ function switchy() { break; } } -function confuusion() { - var i = +0, j = +0; - func1(+i); - j = i; - func2(+j); -} function tempDouble(a) { a = +a; f(a * a); } -function _org_apache_harmony_luni_util_NumberConverter_freeFormat__($me) { - $me = $me | 0; - var $_r2_sroa_0 = 0, $_r3_sroa_0 = 0, $$etemp$1 = 0, $6 = 0, $7 = 0, $10 = 0, $11 = +0, $15 = 0, $_r2_sroa_0_0_cast283 = 0, $_r3_sroa_0_0_cast247 = 0, $_r3_sroa_0_0_load244 = +0, $_r3_sroa_0_0_load244$$SHADOW$0 = 0, $_r2_sroa_0_0_load = +0, $_r2_sroa_0_0_load$$SHADOW$0 = 0, $trunc297 = 0, $25 = 0, $26 = 0, $smax = 0, $28 = 0, $_r3_sroa_0_0_load239 = +0, $_pre_phi301 = 0, $_r3_sroa_0_0_cast264_pre_phi = 0, $_r2_sroa_0_0_load265 = +0, $33 = 0, $34 = 0, $_r3_sroa_0_0_cast253 = 0, $36 = 0, $37 = 0, $_r3_sroa_0_0_load243 = +0, $_r2_sroa_0_0_cast = 0, $45 = 0, $_sink_in = +0, $_r3_sroa_0_0_load241 = +0, $_r2_sroa_0_0_load266287 = 0, $_r1_sroa_0_0 = +0, $47 = 0, $48$0 = 0, $48$1 = 0, $_r1_sroa_0_0_extract_trunc185 = 0, $_r1_sroa_0_1_in$0 = 0, $_r1_sroa_0_1_in$1 = 0, $_r1_sroa_0_0_extract_trunc169 = 0, $_r1_sroa_0_2 = +0, $64 = 0, $65 = 0, $69 = 0, $76 = 0, $82 = 0, $_r1_sroa_0_0_extract_trunc = 0, $$etemp$15 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $110 = 0, $112 = 0, $113 = 0, $118 = 0, $_r3_sroa_0_0_load242 = +0, label = 0, __stackBase__ = 0; - __stackBase__ = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - $_r2_sroa_0 = __stackBase__ | 0; - $_r3_sroa_0 = __stackBase__ + 8 | 0; - if ((HEAP32[(114668 | 0) >> 2] | 0 | 0) == 0) { - HEAP32[(114664 | 0) >> 2] = 1; - HEAP32[(114668 | 0) >> 2] = 1; - $$etemp$1 = 114672 | 0; - HEAP32[($$etemp$1 | 0) >> 2] = -1; - HEAP32[($$etemp$1 + 4 | 0) >> 2] = -1; - HEAP32[(114684 | 0) >> 2] = 25296 | 0; - HEAP32[(114704 | 0) >> 2] = 110728; - HEAP32[(114712 | 0) >> 2] = 8; - HEAP32[(114784 | 0 | 0) >> 2] = HEAP32[(107856 | 0 | 0) >> 2] | 0; - HEAP32[(114784 | 0 | 0) + 4 >> 2] = HEAP32[(107856 | 0 | 0) + 4 >> 2] | 0; - HEAP32[(114784 | 0 | 0) + 8 >> 2] = HEAP32[(107856 | 0 | 0) + 8 >> 2] | 0; - HEAP32[(114784 | 0 | 0) + 12 >> 2] = HEAP32[(107856 | 0 | 0) + 12 >> 2] | 0; - HEAP32[(114784 | 0 | 0) + 16 >> 2] = HEAP32[(107856 | 0 | 0) + 16 >> 2] | 0; - HEAP32[(114784 | 0 | 0) + 20 >> 2] = HEAP32[(107856 | 0 | 0) + 20 >> 2] | 0; - } - $6 = _org_xmlvm_runtime_XMLVMArray_createSingleDimension___java_lang_Class_int(HEAP32[138960 >> 2] | 0, 25) | 0; - $7 = $me + 8 | 0; - $10 = HEAP32[($me + 20 | 0) >> 2] | 0; - $11 = (HEAP32[tempDoublePtr >> 2] = $10, HEAP32[tempDoublePtr + 4 >> 2] = 0, +HEAPF64[tempDoublePtr >> 3]); - if (($10 | 0) > -1) { - HEAP32[$_r2_sroa_0 >> 2] = 0; - $_r2_sroa_0_0_load265 = +HEAPF64[$_r2_sroa_0 >> 3]; - $_r3_sroa_0_0_cast264_pre_phi = $_r3_sroa_0; - $_pre_phi301 = $6 + 16 | 0; - } else { - $15 = $6 + 16 | 0; - HEAP16[(HEAP32[$15 >> 2] | 0) >> 1] = 48; - $_r2_sroa_0_0_cast283 = $_r2_sroa_0; - HEAP16[((HEAP32[$15 >> 2] | 0) + 2 | 0) >> 1] = 46; - HEAP32[$_r2_sroa_0_0_cast283 >> 2] = 2; - $_r3_sroa_0_0_cast247 = $_r3_sroa_0; - HEAP32[$_r3_sroa_0_0_cast247 >> 2] = $10 + 1 | 0; - $_r3_sroa_0_0_load244 = +HEAPF64[$_r3_sroa_0 >> 3]; - $_r3_sroa_0_0_load244$$SHADOW$0 = HEAP32[($_r3_sroa_0 | 0) >> 2] | 0; - $_r2_sroa_0_0_load = +HEAPF64[$_r2_sroa_0 >> 3]; - $_r2_sroa_0_0_load$$SHADOW$0 = HEAP32[($_r2_sroa_0 | 0) >> 2] | 0; - HEAPF64[$_r3_sroa_0 >> 3] = $_r2_sroa_0_0_load; - HEAPF64[$_r2_sroa_0 >> 3] = $_r3_sroa_0_0_load244; - $trunc297 = $_r3_sroa_0_0_load244$$SHADOW$0; - $25 = $_r2_sroa_0_0_load$$SHADOW$0; - if (($trunc297 | 0) < 0) { - $26 = $trunc297 + 1 | 0; - $smax = ($26 | 0) > 0 ? $26 : 0; - $28 = $25 + $smax | 0; - $113 = $25; - $112 = $trunc297; - while (1) { - HEAP16[((HEAP32[$15 >> 2] | 0) + ($113 << 1) | 0) >> 1] = 48; - $118 = $112 + 1 | 0; - if (($118 | 0) < 0) { - $113 = $113 + 1 | 0; - $112 = $118; - } else { - break; - } - } - HEAP32[$_r3_sroa_0_0_cast247 >> 2] = $28 - $trunc297 | 0; - HEAP32[$_r2_sroa_0_0_cast283 >> 2] = $smax; - $_r3_sroa_0_0_load239 = +HEAPF64[$_r3_sroa_0 >> 3]; - } else { - $_r3_sroa_0_0_load239 = $_r2_sroa_0_0_load; - } - HEAPF64[$_r2_sroa_0 >> 3] = $_r3_sroa_0_0_load239; - $_r2_sroa_0_0_load265 = $_r3_sroa_0_0_load239; - $_r3_sroa_0_0_cast264_pre_phi = $_r3_sroa_0_0_cast247; - $_pre_phi301 = $15; - } - $33 = $me + 16 | 0; - $34 = HEAP32[$33 >> 2] | 0; - $_r3_sroa_0_0_cast253 = $_r3_sroa_0; - HEAP32[$_r3_sroa_0_0_cast253 >> 2] = $34; - $36 = $me + 12 | 0; - $37 = HEAP32[$36 >> 2] | 0; - HEAP32[$36 >> 2] = $37 + 1 | 0; - HEAP32[$_r3_sroa_0_0_cast264_pre_phi >> 2] = HEAP32[((HEAP32[($34 + 16 | 0) >> 2] | 0) + ($37 << 2) | 0) >> 2] | 0; - $_r3_sroa_0_0_load243 = +HEAPF64[$_r3_sroa_0 >> 3]; - HEAPF64[$_r3_sroa_0 >> 3] = $_r2_sroa_0_0_load265; - HEAPF64[$_r2_sroa_0 >> 3] = $11; - $_r2_sroa_0_0_cast = $_r2_sroa_0; - $45 = $7; - $_r1_sroa_0_0 = $_r3_sroa_0_0_load243; - $_r2_sroa_0_0_load266287 = $10; - $_r3_sroa_0_0_load241 = $_r2_sroa_0_0_load265; - $_sink_in = $_r2_sroa_0_0_load265; - while (1) { - HEAPF64[tempDoublePtr >> 3] = $_sink_in; - $47 = HEAP32[tempDoublePtr >> 2] | 0; - HEAPF64[tempDoublePtr >> 3] = $_r1_sroa_0_0; - $48$0 = HEAP32[tempDoublePtr >> 2] | 0; - $48$1 = HEAP32[tempDoublePtr + 4 >> 2] | 0; - $_r1_sroa_0_0_extract_trunc185 = $48$0; - do { - if (($_r1_sroa_0_0_extract_trunc185 | 0) == -1) { - if (($_r2_sroa_0_0_load266287 | 0) < -1) { - $_r1_sroa_0_2 = $_r3_sroa_0_0_load241; - break; - } - HEAP16[((HEAP32[$_pre_phi301 >> 2] | 0) + ($47 << 1) | 0) >> 1] = 48; - $_r1_sroa_0_1_in$1 = 0 | $48$1 & -1; - $_r1_sroa_0_1_in$0 = $47 + 1 | 0 | $48$0 & 0; - label = 785; - break; - } else { - HEAP16[((HEAP32[$_pre_phi301 >> 2] | 0) + ($47 << 1) | 0) >> 1] = ($_r1_sroa_0_0_extract_trunc185 + 48 | 0) & 65535; - $_r1_sroa_0_1_in$1 = 0; - $_r1_sroa_0_1_in$0 = $47 + 1 | 0; - label = 785; - break; - } - } while (0); - do { - if ((label | 0) == 785) { - label = 0; - if (!(($_r2_sroa_0_0_load266287 | 0) == 0)) { - $_r1_sroa_0_2 = (HEAP32[tempDoublePtr >> 2] = $_r1_sroa_0_1_in$0, HEAP32[tempDoublePtr + 4 >> 2] = $_r1_sroa_0_1_in$1, +HEAPF64[tempDoublePtr >> 3]); - break; - } - $_r1_sroa_0_0_extract_trunc169 = $_r1_sroa_0_1_in$0; - HEAP32[$_r3_sroa_0_0_cast264_pre_phi >> 2] = $_r1_sroa_0_0_extract_trunc169 + 1 | 0; - HEAP16[((HEAP32[$_pre_phi301 >> 2] | 0) + ($_r1_sroa_0_0_extract_trunc169 << 1) | 0) >> 1] = 46; - $_r1_sroa_0_2 = +HEAPF64[$_r3_sroa_0 >> 3]; - } - } while (0); - $64 = $_r2_sroa_0_0_load266287 - 1 | 0; - $65 = HEAP32[$36 >> 2] | 0; - HEAP32[$_r3_sroa_0_0_cast264_pre_phi >> 2] = $65; - if (($65 | 0) < (HEAP32[$45 >> 2] | 0 | 0)) { - $69 = HEAP32[$33 >> 2] | 0; - HEAP32[$_r3_sroa_0_0_cast253 >> 2] = $69; - HEAP32[$36 >> 2] = $65 + 1 | 0; - $76 = HEAP32[((HEAP32[($69 + 16 | 0) >> 2] | 0) + ($65 << 2) | 0) >> 2] | 0; - HEAP32[$_r3_sroa_0_0_cast264_pre_phi >> 2] = $76; - if (!(($76 | 0) != -1 | ($64 | 0) > -2)) { - break; - } - } else { - HEAP32[$_r3_sroa_0_0_cast264_pre_phi >> 2] = -1; - if (!(($64 | 0) > -2)) { - break; - } - } - $_r3_sroa_0_0_load242 = +HEAPF64[$_r3_sroa_0 >> 3]; - HEAPF64[$_r3_sroa_0 >> 3] = $_r1_sroa_0_2; - $_r1_sroa_0_0 = $_r3_sroa_0_0_load242; - $_r2_sroa_0_0_load266287 = $64; - $_r3_sroa_0_0_load241 = $_r1_sroa_0_2; - $_sink_in = $_r1_sroa_0_2; - } - HEAP32[$_r2_sroa_0_0_cast >> 2] = $64; - if ((HEAP32[(106148 | 0) >> 2] | 0 | 0) == 0) { - ___INIT_java_lang_String(); - } - $82 = _GC_MALLOC(36 | 0) | 0; - HEAP32[$82 >> 2] = 106144; - _memset($82 + 4 | 0 | 0 | 0, 0 | 0 | 0, 32 | 0 | 0); - HEAP32[$_r2_sroa_0 >> 2] = $82; - HEAPF64[tempDoublePtr >> 3] = $_r1_sroa_0_2; - $_r1_sroa_0_0_extract_trunc = HEAP32[tempDoublePtr >> 2] | 0; - HEAP32[($82 + 8 | 0) >> 2] = 0; - HEAP32[($82 + 12 | 0) >> 2] = 0; - HEAP32[($82 + 16 | 0) >> 2] = 0; - if (($_r1_sroa_0_0_extract_trunc | 0) < 0) { - _XMLVM_ERROR(16136 | 0, 13208 | 0, 132112 | 0, 830); - return 0 | 0; - } - if ((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < ($_r1_sroa_0_0_extract_trunc | 0)) { - _XMLVM_ERROR(16136 | 0, 13208 | 0, 132112 | 0, 830); - return 0 | 0; - } - HEAP32[($82 + 24 | 0) >> 2] = 0; - if (!((HEAP32[(114668 | 0) >> 2] | 0 | 0) == 0)) { - $105 = HEAP32[138960 >> 2] | 0; - $106 = _org_xmlvm_runtime_XMLVMArray_createSingleDimension___java_lang_Class_int($105, $_r1_sroa_0_0_extract_trunc) | 0; - $107 = $82 + 20 | 0; - $108 = $107; - HEAP32[$108 >> 2] = $106; - $109 = $82 + 28 | 0; - $110 = $109; - HEAP32[$110 >> 2] = $_r1_sroa_0_0_extract_trunc; - _java_lang_System_arraycopy___java_lang_Object_int_java_lang_Object_int_int($6, 0, $106, 0, $_r1_sroa_0_0_extract_trunc); - STACKTOP = __stackBase__; - return $82 | 0; - } - HEAP32[(114664 | 0) >> 2] = 1; - HEAP32[(114668 | 0) >> 2] = 1; - $$etemp$15 = 114672 | 0; - HEAP32[($$etemp$15 | 0) >> 2] = -1; - HEAP32[($$etemp$15 + 4 | 0) >> 2] = -1; - HEAP32[(114684 | 0) >> 2] = 25296 | 0; - HEAP32[(114704 | 0) >> 2] = 110728; - HEAP32[(114712 | 0) >> 2] = 8; - HEAP32[(114784 | 0 | 0) >> 2] = HEAP32[(107856 | 0 | 0) >> 2] | 0; - HEAP32[(114784 | 0 | 0) + 4 >> 2] = HEAP32[(107856 | 0 | 0) + 4 >> 2] | 0; - HEAP32[(114784 | 0 | 0) + 8 >> 2] = HEAP32[(107856 | 0 | 0) + 8 >> 2] | 0; - HEAP32[(114784 | 0 | 0) + 12 >> 2] = HEAP32[(107856 | 0 | 0) + 12 >> 2] | 0; - HEAP32[(114784 | 0 | 0) + 16 >> 2] = HEAP32[(107856 | 0 | 0) + 16 >> 2] | 0; - HEAP32[(114784 | 0 | 0) + 20 >> 2] = HEAP32[(107856 | 0 | 0) + 20 >> 2] | 0; - $105 = HEAP32[138960 >> 2] | 0; - $106 = _org_xmlvm_runtime_XMLVMArray_createSingleDimension___java_lang_Class_int($105, $_r1_sroa_0_0_extract_trunc) | 0; - $107 = $82 + 20 | 0; - $108 = $107; - HEAP32[$108 >> 2] = $106; - $109 = $82 + 28 | 0; - $110 = $109; - HEAP32[$110 >> 2] = $_r1_sroa_0_0_extract_trunc; - _java_lang_System_arraycopy___java_lang_Object_int_java_lang_Object_int_int($6, 0, $106, 0, $_r1_sroa_0_0_extract_trunc); - STACKTOP = __stackBase__; - return $82 | 0; -} function __ZN23b2EdgeAndPolygonContact8EvaluateEP10b2ManifoldRK11b2TransformS4_($this, $manifold, $xfA, $xfB) { $this = $this | 0; $manifold = $manifold | 0; @@ -361,4606 +126,6 @@ function __ZN23b2EdgeAndPolygonContact8EvaluateEP10b2ManifoldRK11b2TransformS4_( STACKTOP = __stackBase__; return; } -function _java_nio_charset_Charset_forNameInternal___java_lang_String($n1) { - $n1 = $n1 | 0; - var $_r0_sroa_0 = 0, $_r0_sroa_1 = 0, $_r1_sroa_0 = 0, $_r2_sroa_0 = 0, $_r3_sroa_0 = 0, $_r3_sroa_1 = 0, $_r5_sroa_0 = 0, $local_env_w4567aaac23b1b6 = 0, $local_env_w4567aaac23b1c16 = 0, $local_env_w4567aaac23b1c22 = 0, $local_env_w4567aaac23b1c24 = 0, $local_env_w4567aaac23b1c26 = 0, $local_env_w4567aaac23b1c29 = 0, $local_env_w4567aaac23b1c31 = 0, $local_env_w4567aaac23b1c35 = 0, $local_env_w4567aaac23b1c40 = 0, $local_env_w4567aaac23b1c42 = 0, $local_env_w4567aaac23b1c44 = 0, $local_env_w4567aaac23b1c48 = 0, $local_env_w4567aaac23b1c50 = 0, $5 = 0, $16 = 0, $18 = 0, $19 = 0, $21 = 0, $25 = 0, $40 = 0, $52 = 0, $57 = 0, $61 = 0, $tib1_0_ph_i543 = 0, $72 = 0, $tib1_0_lcssa_i546 = 0, $dimension_tib1_0_lcssa_i547 = 0, $77 = 0, $79 = 0, $dimension_tib1_029_i549 = 0, $82 = 0, $83 = 0, $86 = 0, $88 = 0, $dimension_tib2_024_i551 = 0, $91 = 0, $92 = 0, $95 = 0, $tib2_0_lcssa_in_i553 = 0, $dimension_tib2_0_lcssa_i554 = 0, $tib2_0_lcssa_i555 = 0, $tib1_121_i558 = 0, $i_0_i561 = 0, $113 = 0, $_r1_sroa_0_0_load600 = 0, $119 = 0, $122 = 0, $139 = 0, $145 = 0, $149 = 0, $151 = 0, $153 = 0, $155 = 0, $159 = 0, $170 = 0, $175 = 0, $179 = 0, $tib1_0_ph_i521 = 0, $190 = 0, $tib1_0_lcssa_i524 = 0, $dimension_tib1_0_lcssa_i525 = 0, $195 = 0, $197 = 0, $dimension_tib1_029_i527 = 0, $200 = 0, $201 = 0, $204 = 0, $206 = 0, $dimension_tib2_024_i529 = 0, $209 = 0, $210 = 0, $213 = 0, $tib2_0_lcssa_in_i531 = 0, $dimension_tib2_0_lcssa_i532 = 0, $tib2_0_lcssa_i533 = 0, $tib1_121_i536 = 0, $i_0_i539 = 0, $231 = 0, $238 = 0, $240 = 0, $_r1_sroa_0_0_load = 0, $246 = 0, $249 = 0, $266 = 0, $273 = 0, $275 = 0, $284 = 0, $286 = 0, $290 = 0, $305 = 0, $310 = 0, $323 = 0, $328 = 0, $332 = 0, $tib1_0_ph_i500 = 0, $343 = 0, $tib1_0_lcssa_i503 = 0, $dimension_tib1_0_lcssa_i504 = 0, $348 = 0, $350 = 0, $dimension_tib1_029_i506 = 0, $353 = 0, $354 = 0, $357 = 0, $359 = 0, $dimension_tib2_024_i508 = 0, $362 = 0, $363 = 0, $366 = 0, $tib2_0_lcssa_in_i510 = 0, $dimension_tib2_0_lcssa_i511 = 0, $tib2_0_lcssa_i512 = 0, $tib1_121_i515 = 0, $i_0_i518 = 0, $384 = 0, $392 = 0, $394 = 0, $395 = 0, $397 = 0, $401 = 0, $416 = 0, $424 = 0, $426 = 0, $427 = 0, $429 = 0, $433 = 0, $446 = 0, $451 = 0, $455 = 0, $tib1_0_ph_i479 = 0, $466 = 0, $tib1_0_lcssa_i482 = 0, $dimension_tib1_0_lcssa_i483 = 0, $471 = 0, $473 = 0, $dimension_tib1_029_i485 = 0, $476 = 0, $477 = 0, $480 = 0, $482 = 0, $dimension_tib2_024_i487 = 0, $485 = 0, $486 = 0, $489 = 0, $tib2_0_lcssa_in_i489 = 0, $dimension_tib2_0_lcssa_i490 = 0, $tib2_0_lcssa_i491 = 0, $tib1_121_i494 = 0, $i_0_i497 = 0, $507 = 0, $519 = 0, $521 = 0, $525 = 0, $534 = 0, $539 = 0, $542 = 0, $546 = 0, $548 = 0, $557 = 0, $562 = 0, $566 = 0, $tib1_0_ph_i458 = 0, $577 = 0, $tib1_0_lcssa_i461 = 0, $dimension_tib1_0_lcssa_i462 = 0, $582 = 0, $584 = 0, $dimension_tib1_029_i464 = 0, $587 = 0, $588 = 0, $591 = 0, $593 = 0, $dimension_tib2_024_i466 = 0, $596 = 0, $597 = 0, $600 = 0, $tib2_0_lcssa_in_i468 = 0, $dimension_tib2_0_lcssa_i469 = 0, $tib2_0_lcssa_i470 = 0, $tib1_121_i473 = 0, $i_0_i476 = 0, $618 = 0, $623 = 0, $625 = 0, $629 = 0, $632 = 0, $643 = 0, $644 = 0, $649 = 0, $653 = 0, $tib1_0_ph_i437 = 0, $664 = 0, $tib1_0_lcssa_i440 = 0, $dimension_tib1_0_lcssa_i441 = 0, $669 = 0, $671 = 0, $dimension_tib1_029_i443 = 0, $674 = 0, $675 = 0, $678 = 0, $680 = 0, $dimension_tib2_024_i445 = 0, $683 = 0, $684 = 0, $687 = 0, $tib2_0_lcssa_in_i447 = 0, $dimension_tib2_0_lcssa_i448 = 0, $tib2_0_lcssa_i449 = 0, $tib1_121_i452 = 0, $i_0_i455 = 0, $705 = 0, $711 = 0, $716 = 0, $720 = 0, $tib1_0_ph_i416 = 0, $731 = 0, $tib1_0_lcssa_i419 = 0, $dimension_tib1_0_lcssa_i420 = 0, $736 = 0, $738 = 0, $dimension_tib1_029_i422 = 0, $741 = 0, $742 = 0, $745 = 0, $747 = 0, $dimension_tib2_024_i424 = 0, $750 = 0, $751 = 0, $754 = 0, $tib2_0_lcssa_in_i426 = 0, $dimension_tib2_0_lcssa_i427 = 0, $tib2_0_lcssa_i428 = 0, $tib1_121_i431 = 0, $i_0_i434 = 0, $772 = 0, $780 = 0, $782 = 0, $783 = 0, $785 = 0, $789 = 0, $798 = 0, $808 = 0, $809 = 0, $814 = 0, $818 = 0, $tib1_0_ph_i395 = 0, $829 = 0, $tib1_0_lcssa_i398 = 0, $dimension_tib1_0_lcssa_i399 = 0, $834 = 0, $836 = 0, $dimension_tib1_029_i401 = 0, $839 = 0, $840 = 0, $843 = 0, $845 = 0, $dimension_tib2_024_i403 = 0, $848 = 0, $849 = 0, $852 = 0, $tib2_0_lcssa_in_i405 = 0, $dimension_tib2_0_lcssa_i406 = 0, $tib2_0_lcssa_i407 = 0, $tib1_121_i410 = 0, $i_0_i413 = 0, $870 = 0, $876 = 0, $881 = 0, $885 = 0, $tib1_0_ph_i374 = 0, $896 = 0, $tib1_0_lcssa_i377 = 0, $dimension_tib1_0_lcssa_i378 = 0, $901 = 0, $903 = 0, $dimension_tib1_029_i380 = 0, $906 = 0, $907 = 0, $910 = 0, $912 = 0, $dimension_tib2_024_i382 = 0, $915 = 0, $916 = 0, $919 = 0, $tib2_0_lcssa_in_i384 = 0, $dimension_tib2_0_lcssa_i385 = 0, $tib2_0_lcssa_i386 = 0, $tib1_121_i389 = 0, $i_0_i392 = 0, $937 = 0, $945 = 0, $947 = 0, $948 = 0, $950 = 0, $954 = 0, $_r0_sroa_0_0_load607 = 0, $969 = 0, $974 = 0, $978 = 0, $tib1_0_ph_i353 = 0, $989 = 0, $tib1_0_lcssa_i356 = 0, $dimension_tib1_0_lcssa_i357 = 0, $994 = 0, $996 = 0, $dimension_tib1_029_i359 = 0, $999 = 0, $1000 = 0, $1003 = 0, $1005 = 0, $dimension_tib2_024_i361 = 0, $1008 = 0, $1009 = 0, $1012 = 0, $tib2_0_lcssa_in_i363 = 0, $dimension_tib2_0_lcssa_i364 = 0, $tib2_0_lcssa_i365 = 0, $tib1_121_i368 = 0, $i_0_i371 = 0, $1030 = 0, $1036 = 0, $1038 = 0, $1042 = 0, $1050 = 0, $1056 = 0, $1064 = 0, $1066 = 0, $1067 = 0, $1069 = 0, $1073 = 0, $1083 = 0, $1084 = 0, $1089 = 0, $1093 = 0, $tib1_0_ph_i332 = 0, $1104 = 0, $tib1_0_lcssa_i335 = 0, $dimension_tib1_0_lcssa_i336 = 0, $1109 = 0, $1111 = 0, $dimension_tib1_029_i338 = 0, $1114 = 0, $1115 = 0, $1118 = 0, $1120 = 0, $dimension_tib2_024_i340 = 0, $1123 = 0, $1124 = 0, $1127 = 0, $tib2_0_lcssa_in_i342 = 0, $dimension_tib2_0_lcssa_i343 = 0, $tib2_0_lcssa_i344 = 0, $tib1_121_i347 = 0, $i_0_i350 = 0, $1145 = 0, $1151 = 0, $1156 = 0, $1160 = 0, $tib1_0_ph_i311 = 0, $1171 = 0, $tib1_0_lcssa_i314 = 0, $dimension_tib1_0_lcssa_i315 = 0, $1176 = 0, $1178 = 0, $dimension_tib1_029_i317 = 0, $1181 = 0, $1182 = 0, $1185 = 0, $1187 = 0, $dimension_tib2_024_i319 = 0, $1190 = 0, $1191 = 0, $1194 = 0, $tib2_0_lcssa_in_i321 = 0, $dimension_tib2_0_lcssa_i322 = 0, $tib2_0_lcssa_i323 = 0, $tib1_121_i326 = 0, $i_0_i329 = 0, $1212 = 0, $1222 = 0, $1232 = 0, $1233 = 0, $1238 = 0, $1242 = 0, $tib1_0_ph_i290 = 0, $1253 = 0, $tib1_0_lcssa_i293 = 0, $dimension_tib1_0_lcssa_i294 = 0, $1258 = 0, $1260 = 0, $dimension_tib1_029_i296 = 0, $1263 = 0, $1264 = 0, $1267 = 0, $1269 = 0, $dimension_tib2_024_i298 = 0, $1272 = 0, $1273 = 0, $1276 = 0, $tib2_0_lcssa_in_i300 = 0, $dimension_tib2_0_lcssa_i301 = 0, $tib2_0_lcssa_i302 = 0, $tib1_121_i305 = 0, $i_0_i308 = 0, $1294 = 0, $1300 = 0, $1305 = 0, $1309 = 0, $tib1_0_ph_i269 = 0, $1320 = 0, $tib1_0_lcssa_i272 = 0, $dimension_tib1_0_lcssa_i273 = 0, $1325 = 0, $1327 = 0, $dimension_tib1_029_i275 = 0, $1330 = 0, $1331 = 0, $1334 = 0, $1336 = 0, $dimension_tib2_024_i277 = 0, $1339 = 0, $1340 = 0, $1343 = 0, $tib2_0_lcssa_in_i279 = 0, $dimension_tib2_0_lcssa_i280 = 0, $tib2_0_lcssa_i281 = 0, $tib1_121_i284 = 0, $i_0_i287 = 0, $1361 = 0, $1369 = 0, $1371 = 0, $1372 = 0, $1374 = 0, $1378 = 0, $_r0_sroa_0_0_load604 = 0, $1391 = 0, $1400 = 0, $1401 = 0, $1406 = 0, $1410 = 0, $tib1_0_ph_i248 = 0, $1421 = 0, $tib1_0_lcssa_i251 = 0, $dimension_tib1_0_lcssa_i252 = 0, $1426 = 0, $1428 = 0, $dimension_tib1_029_i254 = 0, $1431 = 0, $1432 = 0, $1435 = 0, $1437 = 0, $dimension_tib2_024_i256 = 0, $1440 = 0, $1441 = 0, $1444 = 0, $tib2_0_lcssa_in_i258 = 0, $dimension_tib2_0_lcssa_i259 = 0, $tib2_0_lcssa_i260 = 0, $tib1_121_i263 = 0, $i_0_i266 = 0, $1462 = 0, $1468 = 0, $1473 = 0, $1477 = 0, $tib1_0_ph_i227 = 0, $1488 = 0, $tib1_0_lcssa_i230 = 0, $dimension_tib1_0_lcssa_i231 = 0, $1493 = 0, $1495 = 0, $dimension_tib1_029_i233 = 0, $1498 = 0, $1499 = 0, $1502 = 0, $1504 = 0, $dimension_tib2_024_i235 = 0, $1507 = 0, $1508 = 0, $1511 = 0, $tib2_0_lcssa_in_i237 = 0, $dimension_tib2_0_lcssa_i238 = 0, $tib2_0_lcssa_i239 = 0, $tib1_121_i242 = 0, $i_0_i245 = 0, $1529 = 0, $1536 = 0, $1538 = 0, $1539 = 0, $1541 = 0, $1545 = 0, $1551 = 0, $1553 = 0, $_r0_sroa_0_0_load602 = 0, $1570 = 0, $1575 = 0, $1579 = 0, $tib1_0_ph_i185 = 0, $1590 = 0, $tib1_0_lcssa_i188 = 0, $dimension_tib1_0_lcssa_i189 = 0, $1595 = 0, $1597 = 0, $dimension_tib1_029_i191 = 0, $1600 = 0, $1601 = 0, $1604 = 0, $1606 = 0, $dimension_tib2_024_i193 = 0, $1609 = 0, $1610 = 0, $1613 = 0, $tib2_0_lcssa_in_i195 = 0, $dimension_tib2_0_lcssa_i196 = 0, $tib2_0_lcssa_i197 = 0, $tib1_121_i200 = 0, $i_0_i203 = 0, $1631 = 0, $1638 = 0, $1640 = 0, $1641 = 0, $1643 = 0, $1647 = 0, $1653 = 0, $1655 = 0, $_r2_sroa_0_0_load = 0, $1666 = 0, $1668 = 0, $1684 = 0, $1689 = 0, $1693 = 0, $tib1_0_ph_i = 0, $1704 = 0, $tib1_0_lcssa_i = 0, $dimension_tib1_0_lcssa_i = 0, $1709 = 0, $1711 = 0, $dimension_tib1_029_i = 0, $1714 = 0, $1715 = 0, $1718 = 0, $1720 = 0, $dimension_tib2_024_i = 0, $1723 = 0, $1724 = 0, $1727 = 0, $tib2_0_lcssa_in_i = 0, $dimension_tib2_0_lcssa_i = 0, $tib2_0_lcssa_i = 0, $tib1_121_i = 0, $i_0_i = 0, $1745 = 0, label = 0, __stackBase__ = 0, setjmpLabel = 0, setjmpTable = 0; - __stackBase__ = STACKTOP; - STACKTOP = STACKTOP + 536 | 0; - label = 1; - setjmpLabel = 0; - setjmpTable = STACKTOP; - STACKTOP = STACKTOP + 168 | 0; - HEAP32[setjmpTable >> 2] = 0; - while (1) switch (label | 0) { - case 1: - $_r0_sroa_1 = __stackBase__ | 0; - $_r3_sroa_1 = __stackBase__ + 8 | 0; - $local_env_w4567aaac23b1b6 = __stackBase__ + 16 | 0; - $local_env_w4567aaac23b1c16 = __stackBase__ + 56 | 0; - $local_env_w4567aaac23b1c22 = __stackBase__ + 96 | 0; - $local_env_w4567aaac23b1c24 = __stackBase__ + 136 | 0; - $local_env_w4567aaac23b1c26 = __stackBase__ + 176 | 0; - $local_env_w4567aaac23b1c29 = __stackBase__ + 216 | 0; - $local_env_w4567aaac23b1c31 = __stackBase__ + 256 | 0; - $local_env_w4567aaac23b1c35 = __stackBase__ + 296 | 0; - $local_env_w4567aaac23b1c40 = __stackBase__ + 336 | 0; - $local_env_w4567aaac23b1c42 = __stackBase__ + 376 | 0; - $local_env_w4567aaac23b1c44 = __stackBase__ + 416 | 0; - $local_env_w4567aaac23b1c48 = __stackBase__ + 456 | 0; - $local_env_w4567aaac23b1c50 = __stackBase__ + 496 | 0; - if ((HEAP32[(98772 | 0) >> 2] | 0 | 0) == 0) { - label = 2; - break; - } else { - label = 3; - break; - } - case 2: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 3; - break; - case 3: - $_r5_sroa_0 = $n1; - $5 = invoke_ii(556, 709 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $_r0_sroa_0 = $5; - if ((HEAP32[(98772 | 0) >> 2] | 0 | 0) == 0) { - label = 4; - break; - } else { - label = 5; - break; - } - case 4: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 5; - break; - case 5: - $_r1_sroa_0 = HEAP32[136048 >> 2] | 0; - invoke_ii(202, $_r1_sroa_0 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - if ((HEAP32[(105500 | 0) >> 2] | 0 | 0) == 0) { - label = 6; - break; - } else { - label = 7; - break; - } - case 6: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 7; - break; - case 7: - $16 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $18 = invoke_iii(364, $16 | 0, 0 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $19 = $local_env_w4567aaac23b1b6; - $21 = $18 + 16 | 0; - _memcpy($19 | 0, HEAP32[$21 >> 2] | 0 | 0, 40); - $25 = _saveSetjmp(HEAP32[$21 >> 2] | 0 | 0, label, setjmpTable) | 0; - label = 413; - break; - case 413: - if (($25 | 0) == 0) { - label = 8; - break; - } else { - label = 11; - break; - } - case 8: - if ((HEAP32[(98772 | 0) >> 2] | 0 | 0) == 0) { - label = 9; - break; - } else { - label = 10; - break; - } - case 9: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 10; - break; - case 10: - $_r0_sroa_0 = HEAP32[140056 >> 2] | 0; - $40 = invoke_iii(HEAP32[((HEAP32[($_r0_sroa_0 | 0) >> 2] | 0) + 160 | 0) >> 2] | 0 | 0, $_r0_sroa_0 | 0, $_r5_sroa_0 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $_r0_sroa_0 = $40; - $_r0_sroa_0 = $_r0_sroa_0; - _memcpy(HEAP32[$21 >> 2] | 0 | 0, $19 | 0, 40); - if (($_r0_sroa_0 | 0) == 0) { - label = 32; - break; - } else { - label = 28; - break; - } - case 11: - _memcpy(HEAP32[$21 >> 2] | 0 | 0, $19 | 0, 40); - if ((HEAP32[(107740 | 0) >> 2] | 0 | 0) == 0) { - label = 12; - break; - } else { - label = 13; - break; - } - case 12: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 13; - break; - case 13: - $52 = HEAP32[($18 + 20 | 0) >> 2] | 0; - if (($52 | 0) == 0) { - label = 27; - break; - } else { - label = 14; - break; - } - case 14: - $57 = HEAP32[$52 >> 2] | 0; - $61 = HEAP32[((HEAP32[137616 >> 2] | 0) + 8 | 0) >> 2] | 0; - if (($57 | 0) == 82712) { - label = 15; - break; - } else { - $tib1_0_ph_i543 = $57; - label = 16; - break; - } - case 15: - $tib1_0_ph_i543 = HEAP32[((HEAP32[($52 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; - label = 16; - break; - case 16: - $72 = HEAP32[($tib1_0_ph_i543 + 56 | 0) >> 2] | 0; - if (($72 | 0) == 0) { - $dimension_tib1_0_lcssa_i547 = 0; - $tib1_0_lcssa_i546 = $tib1_0_ph_i543; - label = 18; - break; - } else { - $dimension_tib1_029_i549 = 0; - $79 = $72; - label = 19; - break; - } - case 17: - $dimension_tib1_0_lcssa_i547 = $83; - $tib1_0_lcssa_i546 = $82; - label = 18; - break; - case 18: - $77 = HEAP32[($61 + 56 | 0) >> 2] | 0; - if (($77 | 0) == 0) { - $dimension_tib2_0_lcssa_i554 = 0; - $tib2_0_lcssa_in_i553 = $61; - label = 21; - break; - } else { - $dimension_tib2_024_i551 = 0; - $88 = $77; - label = 20; - break; - } - case 19: - $82 = HEAP32[($79 + 8 | 0) >> 2] | 0; - $83 = $dimension_tib1_029_i549 + 1 | 0; - $86 = HEAP32[($82 + 56 | 0) >> 2] | 0; - if (($86 | 0) == 0) { - label = 17; - break; - } else { - $dimension_tib1_029_i549 = $83; - $79 = $86; - label = 19; - break; - } - case 20: - $91 = HEAP32[($88 + 8 | 0) >> 2] | 0; - $92 = $dimension_tib2_024_i551 + 1 | 0; - $95 = HEAP32[($91 + 56 | 0) >> 2] | 0; - if (($95 | 0) == 0) { - $dimension_tib2_0_lcssa_i554 = $92; - $tib2_0_lcssa_in_i553 = $91; - label = 21; - break; - } else { - $dimension_tib2_024_i551 = $92; - $88 = $95; - label = 20; - break; - } - case 21: - $tib2_0_lcssa_i555 = $tib2_0_lcssa_in_i553; - if (($dimension_tib1_0_lcssa_i547 | 0) < ($dimension_tib2_0_lcssa_i554 | 0) | ($tib1_0_lcssa_i546 | 0) == 0) { - label = 27; - break; - } else { - $tib1_121_i558 = $tib1_0_lcssa_i546; - label = 22; - break; - } - case 22: - if (($tib1_121_i558 | 0) == ($tib2_0_lcssa_i555 | 0)) { - label = 54; - break; - } else { - label = 23; - break; - } - case 23: - $i_0_i561 = 0; - label = 24; - break; - case 24: - if (($i_0_i561 | 0) < (HEAP32[($tib1_121_i558 + 108 | 0) >> 2] | 0 | 0)) { - label = 25; - break; - } else { - label = 26; - break; - } - case 25: - if ((HEAP32[((HEAP32[($tib1_121_i558 + 112 | 0) >> 2] | 0) + ($i_0_i561 << 2) | 0) >> 2] | 0 | 0) == ($tib2_0_lcssa_i555 | 0)) { - label = 54; - break; - } else { - $i_0_i561 = $i_0_i561 + 1 | 0; - label = 24; - break; - } - case 26: - $113 = HEAP32[($tib1_121_i558 + 40 | 0) >> 2] | 0; - if (($113 | 0) == 0) { - label = 27; - break; - } else { - $tib1_121_i558 = $113; - label = 22; - break; - } - case 27: - invoke_vii(48, HEAP32[$21 >> 2] | 0 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 28: - $_r1_sroa_0_0_load600 = $_r1_sroa_0; - $119 = $_r1_sroa_0_0_load600 + 4 | 0; - $122 = (HEAP32[$119 >> 2] | 0) + 8 | 0; - HEAP32[$122 >> 2] = (HEAP32[$122 >> 2] | 0) - 1 | 0; - if ((HEAP32[((HEAP32[$119 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == 0) { - label = 29; - break; - } else { - label = 31; - break; - } - case 29: - invoke_vi(28, $_r1_sroa_0_0_load600 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $139; - if (($139 | 0) == 0) { - label = 31; - break; - } else { - label = 30; - break; - } - case 30: - invoke_iii(268, 31e3 | 0 | 0, (tempInt = STACKTOP, STACKTOP = STACKTOP + 8 | 0, HEAP32[tempInt >> 2] = $139, tempInt) | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 31; - break; - case 31: - STACKTOP = __stackBase__; - return $_r0_sroa_0 | 0; - case 32: - $145 = ($_r5_sroa_0 | 0) == 0; - if ((HEAP32[(105500 | 0) >> 2] | 0 | 0) == 0) { - label = 33; - break; - } else { - label = 34; - break; - } - case 33: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 34; - break; - case 34: - $149 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $151 = invoke_iii(364, $149 | 0, 0 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - if ($145) { - label = 35; - break; - } else { - label = 62; - break; - } - case 35: - $153 = $local_env_w4567aaac23b1c16; - $155 = $151 + 16 | 0; - _memcpy($153 | 0, HEAP32[$155 >> 2] | 0 | 0, 40); - $159 = _saveSetjmp(HEAP32[$155 >> 2] | 0 | 0, label, setjmpTable) | 0; - label = 414; - break; - case 414: - if (($159 | 0) == 0) { - label = 36; - break; - } else { - label = 37; - break; - } - case 36: - invoke_viiii(14, 16136 | 0 | 0, 11648 | 0 | 0, 126872 | 0 | 0, 1457 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 37: - _memcpy(HEAP32[$155 >> 2] | 0 | 0, $153 | 0, 40); - if ((HEAP32[(107740 | 0) >> 2] | 0 | 0) == 0) { - label = 38; - break; - } else { - label = 39; - break; - } - case 38: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 39; - break; - case 39: - $170 = HEAP32[($151 + 20 | 0) >> 2] | 0; - if (($170 | 0) == 0) { - label = 53; - break; - } else { - label = 40; - break; - } - case 40: - $175 = HEAP32[$170 >> 2] | 0; - $179 = HEAP32[((HEAP32[137616 >> 2] | 0) + 8 | 0) >> 2] | 0; - if (($175 | 0) == 82712) { - label = 41; - break; - } else { - $tib1_0_ph_i521 = $175; - label = 42; - break; - } - case 41: - $tib1_0_ph_i521 = HEAP32[((HEAP32[($170 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; - label = 42; - break; - case 42: - $190 = HEAP32[($tib1_0_ph_i521 + 56 | 0) >> 2] | 0; - if (($190 | 0) == 0) { - $dimension_tib1_0_lcssa_i525 = 0; - $tib1_0_lcssa_i524 = $tib1_0_ph_i521; - label = 44; - break; - } else { - $dimension_tib1_029_i527 = 0; - $197 = $190; - label = 45; - break; - } - case 43: - $dimension_tib1_0_lcssa_i525 = $201; - $tib1_0_lcssa_i524 = $200; - label = 44; - break; - case 44: - $195 = HEAP32[($179 + 56 | 0) >> 2] | 0; - if (($195 | 0) == 0) { - $dimension_tib2_0_lcssa_i532 = 0; - $tib2_0_lcssa_in_i531 = $179; - label = 47; - break; - } else { - $dimension_tib2_024_i529 = 0; - $206 = $195; - label = 46; - break; - } - case 45: - $200 = HEAP32[($197 + 8 | 0) >> 2] | 0; - $201 = $dimension_tib1_029_i527 + 1 | 0; - $204 = HEAP32[($200 + 56 | 0) >> 2] | 0; - if (($204 | 0) == 0) { - label = 43; - break; - } else { - $dimension_tib1_029_i527 = $201; - $197 = $204; - label = 45; - break; - } - case 46: - $209 = HEAP32[($206 + 8 | 0) >> 2] | 0; - $210 = $dimension_tib2_024_i529 + 1 | 0; - $213 = HEAP32[($209 + 56 | 0) >> 2] | 0; - if (($213 | 0) == 0) { - $dimension_tib2_0_lcssa_i532 = $210; - $tib2_0_lcssa_in_i531 = $209; - label = 47; - break; - } else { - $dimension_tib2_024_i529 = $210; - $206 = $213; - label = 46; - break; - } - case 47: - $tib2_0_lcssa_i533 = $tib2_0_lcssa_in_i531; - if (($dimension_tib1_0_lcssa_i525 | 0) < ($dimension_tib2_0_lcssa_i532 | 0) | ($tib1_0_lcssa_i524 | 0) == 0) { - label = 53; - break; - } else { - $tib1_121_i536 = $tib1_0_lcssa_i524; - label = 48; - break; - } - case 48: - if (($tib1_121_i536 | 0) == ($tib2_0_lcssa_i533 | 0)) { - label = 54; - break; - } else { - label = 49; - break; - } - case 49: - $i_0_i539 = 0; - label = 50; - break; - case 50: - if (($i_0_i539 | 0) < (HEAP32[($tib1_121_i536 + 108 | 0) >> 2] | 0 | 0)) { - label = 51; - break; - } else { - label = 52; - break; - } - case 51: - if ((HEAP32[((HEAP32[($tib1_121_i536 + 112 | 0) >> 2] | 0) + ($i_0_i539 << 2) | 0) >> 2] | 0 | 0) == ($tib2_0_lcssa_i533 | 0)) { - label = 54; - break; - } else { - $i_0_i539 = $i_0_i539 + 1 | 0; - label = 50; - break; - } - case 52: - $231 = HEAP32[($tib1_121_i536 + 40 | 0) >> 2] | 0; - if (($231 | 0) == 0) { - label = 53; - break; - } else { - $tib1_121_i536 = $231; - label = 48; - break; - } - case 53: - invoke_vii(48, HEAP32[$155 >> 2] | 0 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 54: - if ((HEAP32[(105500 | 0) >> 2] | 0 | 0) == 0) { - label = 55; - break; - } else { - label = 56; - break; - } - case 55: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 56; - break; - case 56: - $238 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $240 = invoke_iii(364, $238 | 0, 0 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $_r0_sroa_0 = HEAP32[($240 + 20 | 0) >> 2] | 0; - $_r1_sroa_0_0_load = $_r1_sroa_0; - $246 = $_r1_sroa_0_0_load + 4 | 0; - $249 = (HEAP32[$246 >> 2] | 0) + 8 | 0; - HEAP32[$249 >> 2] = (HEAP32[$249 >> 2] | 0) - 1 | 0; - if ((HEAP32[((HEAP32[$246 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == 0) { - label = 57; - break; - } else { - label = 59; - break; - } - case 57: - invoke_vi(28, $_r1_sroa_0_0_load | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $266; - if (($266 | 0) == 0) { - label = 59; - break; - } else { - label = 58; - break; - } - case 58: - invoke_iii(268, 31e3 | 0 | 0, (tempInt = STACKTOP, STACKTOP = STACKTOP + 8 | 0, HEAP32[tempInt >> 2] = $266, tempInt) | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 59; - break; - case 59: - if ((HEAP32[(105500 | 0) >> 2] | 0 | 0) == 0) { - label = 60; - break; - } else { - label = 61; - break; - } - case 60: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 61; - break; - case 61: - $273 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $275 = invoke_iii(364, $273 | 0, 0 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - HEAP32[($275 + 20 | 0) >> 2] = $_r0_sroa_0; - invoke_vii(48, HEAP32[($275 + 16 | 0) >> 2] | 0 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 62: - $284 = $local_env_w4567aaac23b1c22; - $286 = $151 + 16 | 0; - _memcpy($284 | 0, HEAP32[$286 >> 2] | 0 | 0, 40); - $290 = _saveSetjmp(HEAP32[$286 >> 2] | 0 | 0, label, setjmpTable) | 0; - label = 415; - break; - case 415: - if (($290 | 0) == 0) { - label = 63; - break; - } else { - label = 72; - break; - } - case 63: - invoke_vi(44, $_r5_sroa_0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - if ((HEAP32[(98772 | 0) >> 2] | 0 | 0) == 0) { - label = 64; - break; - } else { - label = 65; - break; - } - case 64: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 65; - break; - case 65: - $_r0_sroa_0 = HEAP32[140064 >> 2] | 0; - if (($_r0_sroa_0 | 0) == 0) { - label = 67; - break; - } else { - label = 66; - break; - } - case 66: - _memcpy(HEAP32[$286 >> 2] | 0 | 0, $284 | 0, 40); - label = 89; - break; - case 67: - if ((HEAP32[(84292 | 0) >> 2] | 0 | 0) == 0) { - label = 68; - break; - } else { - label = 69; - break; - } - case 68: - invoke_v(584); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 69; - break; - case 69: - $305 = invoke_ii(338, 20 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - HEAP32[$305 >> 2] = 84288; - _memset($305 + 4 | 0 | 0 | 0, 0 | 0 | 0, 16 | 0 | 0); - $_r0_sroa_0 = $305; - invoke_vi(34, $_r0_sroa_0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $310 = $_r0_sroa_0; - if ((HEAP32[(98772 | 0) >> 2] | 0 | 0) == 0) { - label = 70; - break; - } else { - label = 71; - break; - } - case 70: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 71; - break; - case 71: - HEAP32[140064 >> 2] = $310; - _memcpy(HEAP32[$286 >> 2] | 0 | 0, $284 | 0, 40); - label = 89; - break; - case 72: - _memcpy(HEAP32[$286 >> 2] | 0 | 0, $284 | 0, 40); - if ((HEAP32[(107740 | 0) >> 2] | 0 | 0) == 0) { - label = 73; - break; - } else { - label = 74; - break; - } - case 73: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 74; - break; - case 74: - $323 = HEAP32[($151 + 20 | 0) >> 2] | 0; - if (($323 | 0) == 0) { - label = 88; - break; - } else { - label = 75; - break; - } - case 75: - $328 = HEAP32[$323 >> 2] | 0; - $332 = HEAP32[((HEAP32[137616 >> 2] | 0) + 8 | 0) >> 2] | 0; - if (($328 | 0) == 82712) { - label = 76; - break; - } else { - $tib1_0_ph_i500 = $328; - label = 77; - break; - } - case 76: - $tib1_0_ph_i500 = HEAP32[((HEAP32[($323 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; - label = 77; - break; - case 77: - $343 = HEAP32[($tib1_0_ph_i500 + 56 | 0) >> 2] | 0; - if (($343 | 0) == 0) { - $dimension_tib1_0_lcssa_i504 = 0; - $tib1_0_lcssa_i503 = $tib1_0_ph_i500; - label = 79; - break; - } else { - $dimension_tib1_029_i506 = 0; - $350 = $343; - label = 80; - break; - } - case 78: - $dimension_tib1_0_lcssa_i504 = $354; - $tib1_0_lcssa_i503 = $353; - label = 79; - break; - case 79: - $348 = HEAP32[($332 + 56 | 0) >> 2] | 0; - if (($348 | 0) == 0) { - $dimension_tib2_0_lcssa_i511 = 0; - $tib2_0_lcssa_in_i510 = $332; - label = 82; - break; - } else { - $dimension_tib2_024_i508 = 0; - $359 = $348; - label = 81; - break; - } - case 80: - $353 = HEAP32[($350 + 8 | 0) >> 2] | 0; - $354 = $dimension_tib1_029_i506 + 1 | 0; - $357 = HEAP32[($353 + 56 | 0) >> 2] | 0; - if (($357 | 0) == 0) { - label = 78; - break; - } else { - $dimension_tib1_029_i506 = $354; - $350 = $357; - label = 80; - break; - } - case 81: - $362 = HEAP32[($359 + 8 | 0) >> 2] | 0; - $363 = $dimension_tib2_024_i508 + 1 | 0; - $366 = HEAP32[($362 + 56 | 0) >> 2] | 0; - if (($366 | 0) == 0) { - $dimension_tib2_0_lcssa_i511 = $363; - $tib2_0_lcssa_in_i510 = $362; - label = 82; - break; - } else { - $dimension_tib2_024_i508 = $363; - $359 = $366; - label = 81; - break; - } - case 82: - $tib2_0_lcssa_i512 = $tib2_0_lcssa_in_i510; - if (($dimension_tib1_0_lcssa_i504 | 0) < ($dimension_tib2_0_lcssa_i511 | 0) | ($tib1_0_lcssa_i503 | 0) == 0) { - label = 88; - break; - } else { - $tib1_121_i515 = $tib1_0_lcssa_i503; - label = 83; - break; - } - case 83: - if (($tib1_121_i515 | 0) == ($tib2_0_lcssa_i512 | 0)) { - label = 54; - break; - } else { - label = 84; - break; - } - case 84: - $i_0_i518 = 0; - label = 85; - break; - case 85: - if (($i_0_i518 | 0) < (HEAP32[($tib1_121_i515 + 108 | 0) >> 2] | 0 | 0)) { - label = 86; - break; - } else { - label = 87; - break; - } - case 86: - if ((HEAP32[((HEAP32[($tib1_121_i515 + 112 | 0) >> 2] | 0) + ($i_0_i518 << 2) | 0) >> 2] | 0 | 0) == ($tib2_0_lcssa_i512 | 0)) { - label = 54; - break; - } else { - $i_0_i518 = $i_0_i518 + 1 | 0; - label = 85; - break; - } - case 87: - $384 = HEAP32[($tib1_121_i515 + 40 | 0) >> 2] | 0; - if (($384 | 0) == 0) { - label = 88; - break; - } else { - $tib1_121_i515 = $384; - label = 83; - break; - } - case 88: - invoke_vii(48, HEAP32[$286 >> 2] | 0 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 89: - if ((HEAP32[(105500 | 0) >> 2] | 0 | 0) == 0) { - label = 90; - break; - } else { - label = 91; - break; - } - case 90: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 91; - break; - case 91: - $392 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $394 = invoke_iii(364, $392 | 0, 0 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $395 = $local_env_w4567aaac23b1c24; - $397 = $394 + 16 | 0; - _memcpy($395 | 0, HEAP32[$397 >> 2] | 0 | 0, 40); - $401 = _saveSetjmp(HEAP32[$397 >> 2] | 0 | 0, label, setjmpTable) | 0; - label = 416; - break; - case 416: - if (($401 | 0) == 0) { - label = 92; - break; - } else { - label = 99; - break; - } - case 92: - if ((HEAP32[(98772 | 0) >> 2] | 0 | 0) == 0) { - label = 93; - break; - } else { - label = 94; - break; - } - case 93: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 94; - break; - case 94: - $_r0_sroa_0 = HEAP32[140064 >> 2] | 0; - $416 = invoke_iii(HEAP32[((HEAP32[($_r0_sroa_0 | 0) >> 2] | 0) + 144 | 0) >> 2] | 0 | 0, $_r0_sroa_0 | 0, $_r5_sroa_0 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $_r0_sroa_0 = $416; - if (($_r0_sroa_0 | 0) == 0) { - label = 95; - break; - } else { - label = 98; - break; - } - case 95: - _memcpy(HEAP32[$397 >> 2] | 0 | 0, $395 | 0, 40); - if ((HEAP32[(105500 | 0) >> 2] | 0 | 0) == 0) { - label = 96; - break; - } else { - label = 97; - break; - } - case 96: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 97; - break; - case 97: - $424 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $426 = invoke_iii(364, $424 | 0, 0 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $427 = $local_env_w4567aaac23b1c26; - $429 = $426 + 16 | 0; - _memcpy($427 | 0, HEAP32[$429 >> 2] | 0 | 0, 40); - $433 = _saveSetjmp(HEAP32[$429 >> 2] | 0 | 0, label, setjmpTable) | 0; - label = 417; - break; - case 417: - if (($433 | 0) == 0) { - label = 116; - break; - } else { - label = 127; - break; - } - case 98: - invoke_vii(24, $_r0_sroa_0 | 0, $_r5_sroa_0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - _memcpy(HEAP32[$397 >> 2] | 0 | 0, $395 | 0, 40); - label = 28; - break; - case 99: - _memcpy(HEAP32[$397 >> 2] | 0 | 0, $395 | 0, 40); - if ((HEAP32[(107740 | 0) >> 2] | 0 | 0) == 0) { - label = 100; - break; - } else { - label = 101; - break; - } - case 100: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 101; - break; - case 101: - $446 = HEAP32[($394 + 20 | 0) >> 2] | 0; - if (($446 | 0) == 0) { - label = 115; - break; - } else { - label = 102; - break; - } - case 102: - $451 = HEAP32[$446 >> 2] | 0; - $455 = HEAP32[((HEAP32[137616 >> 2] | 0) + 8 | 0) >> 2] | 0; - if (($451 | 0) == 82712) { - label = 103; - break; - } else { - $tib1_0_ph_i479 = $451; - label = 104; - break; - } - case 103: - $tib1_0_ph_i479 = HEAP32[((HEAP32[($446 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; - label = 104; - break; - case 104: - $466 = HEAP32[($tib1_0_ph_i479 + 56 | 0) >> 2] | 0; - if (($466 | 0) == 0) { - $dimension_tib1_0_lcssa_i483 = 0; - $tib1_0_lcssa_i482 = $tib1_0_ph_i479; - label = 106; - break; - } else { - $dimension_tib1_029_i485 = 0; - $473 = $466; - label = 107; - break; - } - case 105: - $dimension_tib1_0_lcssa_i483 = $477; - $tib1_0_lcssa_i482 = $476; - label = 106; - break; - case 106: - $471 = HEAP32[($455 + 56 | 0) >> 2] | 0; - if (($471 | 0) == 0) { - $dimension_tib2_0_lcssa_i490 = 0; - $tib2_0_lcssa_in_i489 = $455; - label = 109; - break; - } else { - $dimension_tib2_024_i487 = 0; - $482 = $471; - label = 108; - break; - } - case 107: - $476 = HEAP32[($473 + 8 | 0) >> 2] | 0; - $477 = $dimension_tib1_029_i485 + 1 | 0; - $480 = HEAP32[($476 + 56 | 0) >> 2] | 0; - if (($480 | 0) == 0) { - label = 105; - break; - } else { - $dimension_tib1_029_i485 = $477; - $473 = $480; - label = 107; - break; - } - case 108: - $485 = HEAP32[($482 + 8 | 0) >> 2] | 0; - $486 = $dimension_tib2_024_i487 + 1 | 0; - $489 = HEAP32[($485 + 56 | 0) >> 2] | 0; - if (($489 | 0) == 0) { - $dimension_tib2_0_lcssa_i490 = $486; - $tib2_0_lcssa_in_i489 = $485; - label = 109; - break; - } else { - $dimension_tib2_024_i487 = $486; - $482 = $489; - label = 108; - break; - } - case 109: - $tib2_0_lcssa_i491 = $tib2_0_lcssa_in_i489; - if (($dimension_tib1_0_lcssa_i483 | 0) < ($dimension_tib2_0_lcssa_i490 | 0) | ($tib1_0_lcssa_i482 | 0) == 0) { - label = 115; - break; - } else { - $tib1_121_i494 = $tib1_0_lcssa_i482; - label = 110; - break; - } - case 110: - if (($tib1_121_i494 | 0) == ($tib2_0_lcssa_i491 | 0)) { - label = 54; - break; - } else { - label = 111; - break; - } - case 111: - $i_0_i497 = 0; - label = 112; - break; - case 112: - if (($i_0_i497 | 0) < (HEAP32[($tib1_121_i494 + 108 | 0) >> 2] | 0 | 0)) { - label = 113; - break; - } else { - label = 114; - break; - } - case 113: - if ((HEAP32[((HEAP32[($tib1_121_i494 + 112 | 0) >> 2] | 0) + ($i_0_i497 << 2) | 0) >> 2] | 0 | 0) == ($tib2_0_lcssa_i491 | 0)) { - label = 54; - break; - } else { - $i_0_i497 = $i_0_i497 + 1 | 0; - label = 112; - break; - } - case 114: - $507 = HEAP32[($tib1_121_i494 + 40 | 0) >> 2] | 0; - if (($507 | 0) == 0) { - label = 115; - break; - } else { - $tib1_121_i494 = $507; - label = 110; - break; - } - case 115: - invoke_vii(48, HEAP32[$397 >> 2] | 0 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 116: - if ((HEAP32[(98772 | 0) >> 2] | 0 | 0) == 0) { - label = 117; - break; - } else { - label = 118; - break; - } - case 117: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 118; - break; - case 118: - if ((HEAP32[(105500 | 0) >> 2] | 0 | 0) == 0) { - label = 119; - break; - } else { - label = 120; - break; - } - case 119: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 120; - break; - case 120: - $519 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $521 = invoke_iii(364, $519 | 0, 0 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - if ((HEAP32[(98148 | 0) >> 2] | 0 | 0) == 0) { - label = 121; - break; - } else { - label = 122; - break; - } - case 121: - invoke_v(408); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 122; - break; - case 122: - $525 = invoke_ii(338, 12 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - HEAP32[$525 >> 2] = 98144; - HEAP32[($525 + 4 | 0) >> 2] = 0; - HEAP32[($525 + 8 | 0) >> 2] = $521; - if ((HEAP32[(97532 | 0) >> 2] | 0 | 0) == 0) { - label = 123; - break; - } else { - $534 = 98144; - label = 124; - break; - } - case 123: - invoke_v(568); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $534 = HEAP32[$525 >> 2] | 0; - label = 124; - break; - case 124: - $539 = invoke_ii(HEAP32[(HEAP32[($534 + 116 | 0) >> 2] | 0) >> 2] | 0 | 0, $525 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $_r2_sroa_0 = $539; - _memcpy(HEAP32[$429 >> 2] | 0 | 0, $427 | 0, 40); - $542 = ($_r2_sroa_0 | 0) == 0; - if ((HEAP32[(105500 | 0) >> 2] | 0 | 0) == 0) { - label = 125; - break; - } else { - label = 126; - break; - } - case 125: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 126; - break; - case 126: - $546 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $548 = invoke_iii(364, $546 | 0, 0 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - if ($542) { - label = 240; - break; - } else { - label = 144; - break; - } - case 127: - _memcpy(HEAP32[$429 >> 2] | 0 | 0, $427 | 0, 40); - if ((HEAP32[(107740 | 0) >> 2] | 0 | 0) == 0) { - label = 128; - break; - } else { - label = 129; - break; - } - case 128: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 129; - break; - case 129: - $557 = HEAP32[($426 + 20 | 0) >> 2] | 0; - if (($557 | 0) == 0) { - label = 143; - break; - } else { - label = 130; - break; - } - case 130: - $562 = HEAP32[$557 >> 2] | 0; - $566 = HEAP32[((HEAP32[137616 >> 2] | 0) + 8 | 0) >> 2] | 0; - if (($562 | 0) == 82712) { - label = 131; - break; - } else { - $tib1_0_ph_i458 = $562; - label = 132; - break; - } - case 131: - $tib1_0_ph_i458 = HEAP32[((HEAP32[($557 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; - label = 132; - break; - case 132: - $577 = HEAP32[($tib1_0_ph_i458 + 56 | 0) >> 2] | 0; - if (($577 | 0) == 0) { - $dimension_tib1_0_lcssa_i462 = 0; - $tib1_0_lcssa_i461 = $tib1_0_ph_i458; - label = 134; - break; - } else { - $dimension_tib1_029_i464 = 0; - $584 = $577; - label = 135; - break; - } - case 133: - $dimension_tib1_0_lcssa_i462 = $588; - $tib1_0_lcssa_i461 = $587; - label = 134; - break; - case 134: - $582 = HEAP32[($566 + 56 | 0) >> 2] | 0; - if (($582 | 0) == 0) { - $dimension_tib2_0_lcssa_i469 = 0; - $tib2_0_lcssa_in_i468 = $566; - label = 137; - break; - } else { - $dimension_tib2_024_i466 = 0; - $593 = $582; - label = 136; - break; - } - case 135: - $587 = HEAP32[($584 + 8 | 0) >> 2] | 0; - $588 = $dimension_tib1_029_i464 + 1 | 0; - $591 = HEAP32[($587 + 56 | 0) >> 2] | 0; - if (($591 | 0) == 0) { - label = 133; - break; - } else { - $dimension_tib1_029_i464 = $588; - $584 = $591; - label = 135; - break; - } - case 136: - $596 = HEAP32[($593 + 8 | 0) >> 2] | 0; - $597 = $dimension_tib2_024_i466 + 1 | 0; - $600 = HEAP32[($596 + 56 | 0) >> 2] | 0; - if (($600 | 0) == 0) { - $dimension_tib2_0_lcssa_i469 = $597; - $tib2_0_lcssa_in_i468 = $596; - label = 137; - break; - } else { - $dimension_tib2_024_i466 = $597; - $593 = $600; - label = 136; - break; - } - case 137: - $tib2_0_lcssa_i470 = $tib2_0_lcssa_in_i468; - if (($dimension_tib1_0_lcssa_i462 | 0) < ($dimension_tib2_0_lcssa_i469 | 0) | ($tib1_0_lcssa_i461 | 0) == 0) { - label = 143; - break; - } else { - $tib1_121_i473 = $tib1_0_lcssa_i461; - label = 138; - break; - } - case 138: - if (($tib1_121_i473 | 0) == ($tib2_0_lcssa_i470 | 0)) { - label = 54; - break; - } else { - label = 139; - break; - } - case 139: - $i_0_i476 = 0; - label = 140; - break; - case 140: - if (($i_0_i476 | 0) < (HEAP32[($tib1_121_i473 + 108 | 0) >> 2] | 0 | 0)) { - label = 141; - break; - } else { - label = 142; - break; - } - case 141: - if ((HEAP32[((HEAP32[($tib1_121_i473 + 112 | 0) >> 2] | 0) + ($i_0_i476 << 2) | 0) >> 2] | 0 | 0) == ($tib2_0_lcssa_i470 | 0)) { - label = 54; - break; - } else { - $i_0_i476 = $i_0_i476 + 1 | 0; - label = 140; - break; - } - case 142: - $618 = HEAP32[($tib1_121_i473 + 40 | 0) >> 2] | 0; - if (($618 | 0) == 0) { - label = 143; - break; - } else { - $tib1_121_i473 = $618; - label = 138; - break; - } - case 143: - invoke_vii(48, HEAP32[$429 >> 2] | 0 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 144: - $623 = $local_env_w4567aaac23b1c29; - $625 = $548 + 16 | 0; - _memcpy($623 | 0, HEAP32[$625 >> 2] | 0 | 0, 40); - $629 = _saveSetjmp(HEAP32[$625 >> 2] | 0 | 0, label, setjmpTable) | 0; - label = 418; - break; - case 418: - if (($629 | 0) == 0) { - label = 145; - break; - } else { - label = 146; - break; - } - case 145: - $632 = invoke_ii(556, 709 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $_r0_sroa_0 = $632; - $_r0_sroa_0 = 0; - $_r3_sroa_0 = $_r0_sroa_0; - HEAP32[($_r3_sroa_1 | 0) >> 2] = HEAP32[($_r0_sroa_1 | 0) >> 2] | 0; - _memcpy(HEAP32[$625 >> 2] | 0 | 0, $623 | 0, 40); - label = 179; - break; - case 146: - _memcpy(HEAP32[$625 >> 2] | 0 | 0, $623 | 0, 40); - if ((HEAP32[(113236 | 0) >> 2] | 0 | 0) == 0) { - label = 147; - break; - } else { - label = 148; - break; - } - case 147: - invoke_v(538); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 148; - break; - case 148: - $643 = $548 + 20 | 0; - $644 = HEAP32[$643 >> 2] | 0; - if (($644 | 0) == 0) { - label = 162; - break; - } else { - label = 149; - break; - } - case 149: - $649 = HEAP32[$644 >> 2] | 0; - $653 = HEAP32[((HEAP32[138672 >> 2] | 0) + 8 | 0) >> 2] | 0; - if (($649 | 0) == 82712) { - label = 150; - break; - } else { - $tib1_0_ph_i437 = $649; - label = 151; - break; - } - case 150: - $tib1_0_ph_i437 = HEAP32[((HEAP32[($644 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; - label = 151; - break; - case 151: - $664 = HEAP32[($tib1_0_ph_i437 + 56 | 0) >> 2] | 0; - if (($664 | 0) == 0) { - $dimension_tib1_0_lcssa_i441 = 0; - $tib1_0_lcssa_i440 = $tib1_0_ph_i437; - label = 153; - break; - } else { - $dimension_tib1_029_i443 = 0; - $671 = $664; - label = 154; - break; - } - case 152: - $dimension_tib1_0_lcssa_i441 = $675; - $tib1_0_lcssa_i440 = $674; - label = 153; - break; - case 153: - $669 = HEAP32[($653 + 56 | 0) >> 2] | 0; - if (($669 | 0) == 0) { - $dimension_tib2_0_lcssa_i448 = 0; - $tib2_0_lcssa_in_i447 = $653; - label = 156; - break; - } else { - $dimension_tib2_024_i445 = 0; - $680 = $669; - label = 155; - break; - } - case 154: - $674 = HEAP32[($671 + 8 | 0) >> 2] | 0; - $675 = $dimension_tib1_029_i443 + 1 | 0; - $678 = HEAP32[($674 + 56 | 0) >> 2] | 0; - if (($678 | 0) == 0) { - label = 152; - break; - } else { - $dimension_tib1_029_i443 = $675; - $671 = $678; - label = 154; - break; - } - case 155: - $683 = HEAP32[($680 + 8 | 0) >> 2] | 0; - $684 = $dimension_tib2_024_i445 + 1 | 0; - $687 = HEAP32[($683 + 56 | 0) >> 2] | 0; - if (($687 | 0) == 0) { - $dimension_tib2_0_lcssa_i448 = $684; - $tib2_0_lcssa_in_i447 = $683; - label = 156; - break; - } else { - $dimension_tib2_024_i445 = $684; - $680 = $687; - label = 155; - break; - } - case 156: - $tib2_0_lcssa_i449 = $tib2_0_lcssa_in_i447; - if (($dimension_tib1_0_lcssa_i441 | 0) < ($dimension_tib2_0_lcssa_i448 | 0) | ($tib1_0_lcssa_i440 | 0) == 0) { - label = 162; - break; - } else { - $tib1_121_i452 = $tib1_0_lcssa_i440; - label = 157; - break; - } - case 157: - if (($tib1_121_i452 | 0) == ($tib2_0_lcssa_i449 | 0)) { - label = 361; - break; - } else { - label = 158; - break; - } - case 158: - $i_0_i455 = 0; - label = 159; - break; - case 159: - if (($i_0_i455 | 0) < (HEAP32[($tib1_121_i452 + 108 | 0) >> 2] | 0 | 0)) { - label = 160; - break; - } else { - label = 161; - break; - } - case 160: - if ((HEAP32[((HEAP32[($tib1_121_i452 + 112 | 0) >> 2] | 0) + ($i_0_i455 << 2) | 0) >> 2] | 0 | 0) == ($tib2_0_lcssa_i449 | 0)) { - label = 361; - break; - } else { - $i_0_i455 = $i_0_i455 + 1 | 0; - label = 159; - break; - } - case 161: - $705 = HEAP32[($tib1_121_i452 + 40 | 0) >> 2] | 0; - if (($705 | 0) == 0) { - label = 162; - break; - } else { - $tib1_121_i452 = $705; - label = 157; - break; - } - case 162: - if ((HEAP32[(107740 | 0) >> 2] | 0 | 0) == 0) { - label = 163; - break; - } else { - label = 164; - break; - } - case 163: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 164; - break; - case 164: - $711 = HEAP32[$643 >> 2] | 0; - if (($711 | 0) == 0) { - label = 178; - break; - } else { - label = 165; - break; - } - case 165: - $716 = HEAP32[$711 >> 2] | 0; - $720 = HEAP32[((HEAP32[137616 >> 2] | 0) + 8 | 0) >> 2] | 0; - if (($716 | 0) == 82712) { - label = 166; - break; - } else { - $tib1_0_ph_i416 = $716; - label = 167; - break; - } - case 166: - $tib1_0_ph_i416 = HEAP32[((HEAP32[($711 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; - label = 167; - break; - case 167: - $731 = HEAP32[($tib1_0_ph_i416 + 56 | 0) >> 2] | 0; - if (($731 | 0) == 0) { - $dimension_tib1_0_lcssa_i420 = 0; - $tib1_0_lcssa_i419 = $tib1_0_ph_i416; - label = 169; - break; - } else { - $dimension_tib1_029_i422 = 0; - $738 = $731; - label = 170; - break; - } - case 168: - $dimension_tib1_0_lcssa_i420 = $742; - $tib1_0_lcssa_i419 = $741; - label = 169; - break; - case 169: - $736 = HEAP32[($720 + 56 | 0) >> 2] | 0; - if (($736 | 0) == 0) { - $dimension_tib2_0_lcssa_i427 = 0; - $tib2_0_lcssa_in_i426 = $720; - label = 172; - break; - } else { - $dimension_tib2_024_i424 = 0; - $747 = $736; - label = 171; - break; - } - case 170: - $741 = HEAP32[($738 + 8 | 0) >> 2] | 0; - $742 = $dimension_tib1_029_i422 + 1 | 0; - $745 = HEAP32[($741 + 56 | 0) >> 2] | 0; - if (($745 | 0) == 0) { - label = 168; - break; - } else { - $dimension_tib1_029_i422 = $742; - $738 = $745; - label = 170; - break; - } - case 171: - $750 = HEAP32[($747 + 8 | 0) >> 2] | 0; - $751 = $dimension_tib2_024_i424 + 1 | 0; - $754 = HEAP32[($750 + 56 | 0) >> 2] | 0; - if (($754 | 0) == 0) { - $dimension_tib2_0_lcssa_i427 = $751; - $tib2_0_lcssa_in_i426 = $750; - label = 172; - break; - } else { - $dimension_tib2_024_i424 = $751; - $747 = $754; - label = 171; - break; - } - case 172: - $tib2_0_lcssa_i428 = $tib2_0_lcssa_in_i426; - if (($dimension_tib1_0_lcssa_i420 | 0) < ($dimension_tib2_0_lcssa_i427 | 0) | ($tib1_0_lcssa_i419 | 0) == 0) { - label = 178; - break; - } else { - $tib1_121_i431 = $tib1_0_lcssa_i419; - label = 173; - break; - } - case 173: - if (($tib1_121_i431 | 0) == ($tib2_0_lcssa_i428 | 0)) { - label = 386; - break; - } else { - label = 174; - break; - } - case 174: - $i_0_i434 = 0; - label = 175; - break; - case 175: - if (($i_0_i434 | 0) < (HEAP32[($tib1_121_i431 + 108 | 0) >> 2] | 0 | 0)) { - label = 176; - break; - } else { - label = 177; - break; - } - case 176: - if ((HEAP32[((HEAP32[($tib1_121_i431 + 112 | 0) >> 2] | 0) + ($i_0_i434 << 2) | 0) >> 2] | 0 | 0) == ($tib2_0_lcssa_i428 | 0)) { - label = 386; - break; - } else { - $i_0_i434 = $i_0_i434 + 1 | 0; - label = 175; - break; - } - case 177: - $772 = HEAP32[($tib1_121_i431 + 40 | 0) >> 2] | 0; - if (($772 | 0) == 0) { - label = 178; - break; - } else { - $tib1_121_i431 = $772; - label = 173; - break; - } - case 178: - invoke_vii(48, HEAP32[$625 >> 2] | 0 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 179: - if ((HEAP32[(105500 | 0) >> 2] | 0 | 0) == 0) { - label = 180; - break; - } else { - label = 181; - break; - } - case 180: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 181; - break; - case 181: - $780 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $782 = invoke_iii(364, $780 | 0, 0 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $783 = $local_env_w4567aaac23b1c31; - $785 = $782 + 16 | 0; - _memcpy($783 | 0, HEAP32[$785 >> 2] | 0 | 0, 40); - $789 = _saveSetjmp(HEAP32[$785 >> 2] | 0 | 0, label, setjmpTable) | 0; - label = 419; - break; - case 419: - if (($789 | 0) == 0) { - label = 182; - break; - } else { - label = 183; - break; - } - case 182: - $798 = invoke_ii(HEAP32[(HEAP32[((HEAP32[$_r3_sroa_0 >> 2] | 0) + 116 | 0) >> 2] | 0) >> 2] | 0 | 0, $_r3_sroa_0 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $_r0_sroa_0 = $798; - _memcpy(HEAP32[$785 >> 2] | 0 | 0, $783 | 0, 40); - if (($_r0_sroa_0 | 0) == 0) { - label = 216; - break; - } else { - label = 322; - break; - } - case 183: - _memcpy(HEAP32[$785 >> 2] | 0 | 0, $783 | 0, 40); - if ((HEAP32[(113236 | 0) >> 2] | 0 | 0) == 0) { - label = 184; - break; - } else { - label = 185; - break; - } - case 184: - invoke_v(538); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 185; - break; - case 185: - $808 = $782 + 20 | 0; - $809 = HEAP32[$808 >> 2] | 0; - if (($809 | 0) == 0) { - label = 199; - break; - } else { - label = 186; - break; - } - case 186: - $814 = HEAP32[$809 >> 2] | 0; - $818 = HEAP32[((HEAP32[138672 >> 2] | 0) + 8 | 0) >> 2] | 0; - if (($814 | 0) == 82712) { - label = 187; - break; - } else { - $tib1_0_ph_i395 = $814; - label = 188; - break; - } - case 187: - $tib1_0_ph_i395 = HEAP32[((HEAP32[($809 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; - label = 188; - break; - case 188: - $829 = HEAP32[($tib1_0_ph_i395 + 56 | 0) >> 2] | 0; - if (($829 | 0) == 0) { - $dimension_tib1_0_lcssa_i399 = 0; - $tib1_0_lcssa_i398 = $tib1_0_ph_i395; - label = 190; - break; - } else { - $dimension_tib1_029_i401 = 0; - $836 = $829; - label = 191; - break; - } - case 189: - $dimension_tib1_0_lcssa_i399 = $840; - $tib1_0_lcssa_i398 = $839; - label = 190; - break; - case 190: - $834 = HEAP32[($818 + 56 | 0) >> 2] | 0; - if (($834 | 0) == 0) { - $dimension_tib2_0_lcssa_i406 = 0; - $tib2_0_lcssa_in_i405 = $818; - label = 193; - break; - } else { - $dimension_tib2_024_i403 = 0; - $845 = $834; - label = 192; - break; - } - case 191: - $839 = HEAP32[($836 + 8 | 0) >> 2] | 0; - $840 = $dimension_tib1_029_i401 + 1 | 0; - $843 = HEAP32[($839 + 56 | 0) >> 2] | 0; - if (($843 | 0) == 0) { - label = 189; - break; - } else { - $dimension_tib1_029_i401 = $840; - $836 = $843; - label = 191; - break; - } - case 192: - $848 = HEAP32[($845 + 8 | 0) >> 2] | 0; - $849 = $dimension_tib2_024_i403 + 1 | 0; - $852 = HEAP32[($848 + 56 | 0) >> 2] | 0; - if (($852 | 0) == 0) { - $dimension_tib2_0_lcssa_i406 = $849; - $tib2_0_lcssa_in_i405 = $848; - label = 193; - break; - } else { - $dimension_tib2_024_i403 = $849; - $845 = $852; - label = 192; - break; - } - case 193: - $tib2_0_lcssa_i407 = $tib2_0_lcssa_in_i405; - if (($dimension_tib1_0_lcssa_i399 | 0) < ($dimension_tib2_0_lcssa_i406 | 0) | ($tib1_0_lcssa_i398 | 0) == 0) { - label = 199; - break; - } else { - $tib1_121_i410 = $tib1_0_lcssa_i398; - label = 194; - break; - } - case 194: - if (($tib1_121_i410 | 0) == ($tib2_0_lcssa_i407 | 0)) { - label = 361; - break; - } else { - label = 195; - break; - } - case 195: - $i_0_i413 = 0; - label = 196; - break; - case 196: - if (($i_0_i413 | 0) < (HEAP32[($tib1_121_i410 + 108 | 0) >> 2] | 0 | 0)) { - label = 197; - break; - } else { - label = 198; - break; - } - case 197: - if ((HEAP32[((HEAP32[($tib1_121_i410 + 112 | 0) >> 2] | 0) + ($i_0_i413 << 2) | 0) >> 2] | 0 | 0) == ($tib2_0_lcssa_i407 | 0)) { - label = 361; - break; - } else { - $i_0_i413 = $i_0_i413 + 1 | 0; - label = 196; - break; - } - case 198: - $870 = HEAP32[($tib1_121_i410 + 40 | 0) >> 2] | 0; - if (($870 | 0) == 0) { - label = 199; - break; - } else { - $tib1_121_i410 = $870; - label = 194; - break; - } - case 199: - if ((HEAP32[(107740 | 0) >> 2] | 0 | 0) == 0) { - label = 200; - break; - } else { - label = 201; - break; - } - case 200: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 201; - break; - case 201: - $876 = HEAP32[$808 >> 2] | 0; - if (($876 | 0) == 0) { - label = 215; - break; - } else { - label = 202; - break; - } - case 202: - $881 = HEAP32[$876 >> 2] | 0; - $885 = HEAP32[((HEAP32[137616 >> 2] | 0) + 8 | 0) >> 2] | 0; - if (($881 | 0) == 82712) { - label = 203; - break; - } else { - $tib1_0_ph_i374 = $881; - label = 204; - break; - } - case 203: - $tib1_0_ph_i374 = HEAP32[((HEAP32[($876 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; - label = 204; - break; - case 204: - $896 = HEAP32[($tib1_0_ph_i374 + 56 | 0) >> 2] | 0; - if (($896 | 0) == 0) { - $dimension_tib1_0_lcssa_i378 = 0; - $tib1_0_lcssa_i377 = $tib1_0_ph_i374; - label = 206; - break; - } else { - $dimension_tib1_029_i380 = 0; - $903 = $896; - label = 207; - break; - } - case 205: - $dimension_tib1_0_lcssa_i378 = $907; - $tib1_0_lcssa_i377 = $906; - label = 206; - break; - case 206: - $901 = HEAP32[($885 + 56 | 0) >> 2] | 0; - if (($901 | 0) == 0) { - $dimension_tib2_0_lcssa_i385 = 0; - $tib2_0_lcssa_in_i384 = $885; - label = 209; - break; - } else { - $dimension_tib2_024_i382 = 0; - $912 = $901; - label = 208; - break; - } - case 207: - $906 = HEAP32[($903 + 8 | 0) >> 2] | 0; - $907 = $dimension_tib1_029_i380 + 1 | 0; - $910 = HEAP32[($906 + 56 | 0) >> 2] | 0; - if (($910 | 0) == 0) { - label = 205; - break; - } else { - $dimension_tib1_029_i380 = $907; - $903 = $910; - label = 207; - break; - } - case 208: - $915 = HEAP32[($912 + 8 | 0) >> 2] | 0; - $916 = $dimension_tib2_024_i382 + 1 | 0; - $919 = HEAP32[($915 + 56 | 0) >> 2] | 0; - if (($919 | 0) == 0) { - $dimension_tib2_0_lcssa_i385 = $916; - $tib2_0_lcssa_in_i384 = $915; - label = 209; - break; - } else { - $dimension_tib2_024_i382 = $916; - $912 = $919; - label = 208; - break; - } - case 209: - $tib2_0_lcssa_i386 = $tib2_0_lcssa_in_i384; - if (($dimension_tib1_0_lcssa_i378 | 0) < ($dimension_tib2_0_lcssa_i385 | 0) | ($tib1_0_lcssa_i377 | 0) == 0) { - label = 215; - break; - } else { - $tib1_121_i389 = $tib1_0_lcssa_i377; - label = 210; - break; - } - case 210: - if (($tib1_121_i389 | 0) == ($tib2_0_lcssa_i386 | 0)) { - label = 386; - break; - } else { - label = 211; - break; - } - case 211: - $i_0_i392 = 0; - label = 212; - break; - case 212: - if (($i_0_i392 | 0) < (HEAP32[($tib1_121_i389 + 108 | 0) >> 2] | 0 | 0)) { - label = 213; - break; - } else { - label = 214; - break; - } - case 213: - if ((HEAP32[((HEAP32[($tib1_121_i389 + 112 | 0) >> 2] | 0) + ($i_0_i392 << 2) | 0) >> 2] | 0 | 0) == ($tib2_0_lcssa_i386 | 0)) { - label = 386; - break; - } else { - $i_0_i392 = $i_0_i392 + 1 | 0; - label = 212; - break; - } - case 214: - $937 = HEAP32[($tib1_121_i389 + 40 | 0) >> 2] | 0; - if (($937 | 0) == 0) { - label = 215; - break; - } else { - $tib1_121_i389 = $937; - label = 210; - break; - } - case 215: - invoke_vii(48, HEAP32[$785 >> 2] | 0 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 216: - $_r0_sroa_0 = 0; - if ((HEAP32[(105500 | 0) >> 2] | 0 | 0) == 0) { - label = 217; - break; - } else { - label = 218; - break; - } - case 217: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 218; - break; - case 218: - $945 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $947 = invoke_iii(364, $945 | 0, 0 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $948 = $local_env_w4567aaac23b1c35; - $950 = $947 + 16 | 0; - _memcpy($948 | 0, HEAP32[$950 >> 2] | 0 | 0, 40); - $954 = _saveSetjmp(HEAP32[$950 >> 2] | 0 | 0, label, setjmpTable) | 0; - label = 420; - break; - case 420: - if (($954 | 0) == 0) { - label = 219; - break; - } else { - label = 222; - break; - } - case 219: - $_r0_sroa_0_0_load607 = $_r0_sroa_0; - if ((HEAP32[(98772 | 0) >> 2] | 0 | 0) == 0) { - label = 220; - break; - } else { - label = 221; - break; - } - case 220: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 221; - break; - case 221: - HEAP32[140048 >> 2] = $_r0_sroa_0_0_load607; - _memcpy(HEAP32[$950 >> 2] | 0 | 0, $948 | 0, 40); - label = 239; - break; - case 222: - _memcpy(HEAP32[$950 >> 2] | 0 | 0, $948 | 0, 40); - if ((HEAP32[(107740 | 0) >> 2] | 0 | 0) == 0) { - label = 223; - break; - } else { - label = 224; - break; - } - case 223: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 224; - break; - case 224: - $969 = HEAP32[($947 + 20 | 0) >> 2] | 0; - if (($969 | 0) == 0) { - label = 238; - break; - } else { - label = 225; - break; - } - case 225: - $974 = HEAP32[$969 >> 2] | 0; - $978 = HEAP32[((HEAP32[137616 >> 2] | 0) + 8 | 0) >> 2] | 0; - if (($974 | 0) == 82712) { - label = 226; - break; - } else { - $tib1_0_ph_i353 = $974; - label = 227; - break; - } - case 226: - $tib1_0_ph_i353 = HEAP32[((HEAP32[($969 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; - label = 227; - break; - case 227: - $989 = HEAP32[($tib1_0_ph_i353 + 56 | 0) >> 2] | 0; - if (($989 | 0) == 0) { - $dimension_tib1_0_lcssa_i357 = 0; - $tib1_0_lcssa_i356 = $tib1_0_ph_i353; - label = 229; - break; - } else { - $dimension_tib1_029_i359 = 0; - $996 = $989; - label = 230; - break; - } - case 228: - $dimension_tib1_0_lcssa_i357 = $1000; - $tib1_0_lcssa_i356 = $999; - label = 229; - break; - case 229: - $994 = HEAP32[($978 + 56 | 0) >> 2] | 0; - if (($994 | 0) == 0) { - $dimension_tib2_0_lcssa_i364 = 0; - $tib2_0_lcssa_in_i363 = $978; - label = 232; - break; - } else { - $dimension_tib2_024_i361 = 0; - $1005 = $994; - label = 231; - break; - } - case 230: - $999 = HEAP32[($996 + 8 | 0) >> 2] | 0; - $1000 = $dimension_tib1_029_i359 + 1 | 0; - $1003 = HEAP32[($999 + 56 | 0) >> 2] | 0; - if (($1003 | 0) == 0) { - label = 228; - break; - } else { - $dimension_tib1_029_i359 = $1000; - $996 = $1003; - label = 230; - break; - } - case 231: - $1008 = HEAP32[($1005 + 8 | 0) >> 2] | 0; - $1009 = $dimension_tib2_024_i361 + 1 | 0; - $1012 = HEAP32[($1008 + 56 | 0) >> 2] | 0; - if (($1012 | 0) == 0) { - $dimension_tib2_0_lcssa_i364 = $1009; - $tib2_0_lcssa_in_i363 = $1008; - label = 232; - break; - } else { - $dimension_tib2_024_i361 = $1009; - $1005 = $1012; - label = 231; - break; - } - case 232: - $tib2_0_lcssa_i365 = $tib2_0_lcssa_in_i363; - if (($dimension_tib1_0_lcssa_i357 | 0) < ($dimension_tib2_0_lcssa_i364 | 0) | ($tib1_0_lcssa_i356 | 0) == 0) { - label = 238; - break; - } else { - $tib1_121_i368 = $tib1_0_lcssa_i356; - label = 233; - break; - } - case 233: - if (($tib1_121_i368 | 0) == ($tib2_0_lcssa_i365 | 0)) { - label = 54; - break; - } else { - label = 234; - break; - } - case 234: - $i_0_i371 = 0; - label = 235; - break; - case 235: - if (($i_0_i371 | 0) < (HEAP32[($tib1_121_i368 + 108 | 0) >> 2] | 0 | 0)) { - label = 236; - break; - } else { - label = 237; - break; - } - case 236: - if ((HEAP32[((HEAP32[($tib1_121_i368 + 112 | 0) >> 2] | 0) + ($i_0_i371 << 2) | 0) >> 2] | 0 | 0) == ($tib2_0_lcssa_i365 | 0)) { - label = 54; - break; - } else { - $i_0_i371 = $i_0_i371 + 1 | 0; - label = 235; - break; - } - case 237: - $1030 = HEAP32[($tib1_121_i368 + 40 | 0) >> 2] | 0; - if (($1030 | 0) == 0) { - label = 238; - break; - } else { - $tib1_121_i368 = $1030; - label = 233; - break; - } - case 238: - invoke_vii(48, HEAP32[$950 >> 2] | 0 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 239: - $_r0_sroa_0 = 0; - label = 28; - break; - case 240: - $1036 = $local_env_w4567aaac23b1c40; - $1038 = $548 + 16 | 0; - _memcpy($1036 | 0, HEAP32[$1038 >> 2] | 0 | 0, 40); - $1042 = _saveSetjmp(HEAP32[$1038 >> 2] | 0 | 0, label, setjmpTable) | 0; - label = 421; - break; - case 421: - if (($1042 | 0) == 0) { - label = 241; - break; - } else { - label = 253; - break; - } - case 241: - if ((HEAP32[(98772 | 0) >> 2] | 0 | 0) == 0) { - label = 242; - break; - } else { - label = 244; - break; - } - case 242: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - if ((HEAP32[(98772 | 0) >> 2] | 0 | 0) == 0) { - label = 243; - break; - } else { - label = 244; - break; - } - case 243: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 244; - break; - case 244: - $1050 = HEAP32[140040 >> 2] | 0; - if (($1050 | 0) == 0) { - label = 245; - break; - } else { - label = 246; - break; - } - case 245: - invoke_viiii(14, 16136 | 0 | 0, 11648 | 0 | 0, 126768 | 0 | 0, 573 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 246: - if ((HEAP32[(98772 | 0) >> 2] | 0 | 0) == 0) { - label = 247; - break; - } else { - $1056 = $1050; - label = 248; - break; - } - case 247: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1056 = HEAP32[140040 >> 2] | 0; - label = 248; - break; - case 248: - $_r0_sroa_0 = $1056; - if (($_r0_sroa_0 | 0) == 0) { - label = 252; - break; - } else { - label = 249; - break; - } - case 249: - _memcpy(HEAP32[$1038 >> 2] | 0 | 0, $1036 | 0, 40); - if ((HEAP32[(105500 | 0) >> 2] | 0 | 0) == 0) { - label = 250; - break; - } else { - label = 251; - break; - } - case 250: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 251; - break; - case 251: - $1064 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1066 = invoke_iii(364, $1064 | 0, 0 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1067 = $local_env_w4567aaac23b1c42; - $1069 = $1066 + 16 | 0; - _memcpy($1067 | 0, HEAP32[$1069 >> 2] | 0 | 0, 40); - $1073 = _saveSetjmp(HEAP32[$1069 >> 2] | 0 | 0, label, setjmpTable) | 0; - label = 422; - break; - case 422: - if (($1073 | 0) == 0) { - label = 286; - break; - } else { - label = 289; - break; - } - case 252: - invoke_viiii(14, 16136 | 0 | 0, 11648 | 0 | 0, 126872 | 0 | 0, 1581 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 253: - _memcpy(HEAP32[$1038 >> 2] | 0 | 0, $1036 | 0, 40); - if ((HEAP32[(113236 | 0) >> 2] | 0 | 0) == 0) { - label = 254; - break; - } else { - label = 255; - break; - } - case 254: - invoke_v(538); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 255; - break; - case 255: - $1083 = $548 + 20 | 0; - $1084 = HEAP32[$1083 >> 2] | 0; - if (($1084 | 0) == 0) { - label = 269; - break; - } else { - label = 256; - break; - } - case 256: - $1089 = HEAP32[$1084 >> 2] | 0; - $1093 = HEAP32[((HEAP32[138672 >> 2] | 0) + 8 | 0) >> 2] | 0; - if (($1089 | 0) == 82712) { - label = 257; - break; - } else { - $tib1_0_ph_i332 = $1089; - label = 258; - break; - } - case 257: - $tib1_0_ph_i332 = HEAP32[((HEAP32[($1084 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; - label = 258; - break; - case 258: - $1104 = HEAP32[($tib1_0_ph_i332 + 56 | 0) >> 2] | 0; - if (($1104 | 0) == 0) { - $dimension_tib1_0_lcssa_i336 = 0; - $tib1_0_lcssa_i335 = $tib1_0_ph_i332; - label = 260; - break; - } else { - $dimension_tib1_029_i338 = 0; - $1111 = $1104; - label = 261; - break; - } - case 259: - $dimension_tib1_0_lcssa_i336 = $1115; - $tib1_0_lcssa_i335 = $1114; - label = 260; - break; - case 260: - $1109 = HEAP32[($1093 + 56 | 0) >> 2] | 0; - if (($1109 | 0) == 0) { - $dimension_tib2_0_lcssa_i343 = 0; - $tib2_0_lcssa_in_i342 = $1093; - label = 263; - break; - } else { - $dimension_tib2_024_i340 = 0; - $1120 = $1109; - label = 262; - break; - } - case 261: - $1114 = HEAP32[($1111 + 8 | 0) >> 2] | 0; - $1115 = $dimension_tib1_029_i338 + 1 | 0; - $1118 = HEAP32[($1114 + 56 | 0) >> 2] | 0; - if (($1118 | 0) == 0) { - label = 259; - break; - } else { - $dimension_tib1_029_i338 = $1115; - $1111 = $1118; - label = 261; - break; - } - case 262: - $1123 = HEAP32[($1120 + 8 | 0) >> 2] | 0; - $1124 = $dimension_tib2_024_i340 + 1 | 0; - $1127 = HEAP32[($1123 + 56 | 0) >> 2] | 0; - if (($1127 | 0) == 0) { - $dimension_tib2_0_lcssa_i343 = $1124; - $tib2_0_lcssa_in_i342 = $1123; - label = 263; - break; - } else { - $dimension_tib2_024_i340 = $1124; - $1120 = $1127; - label = 262; - break; - } - case 263: - $tib2_0_lcssa_i344 = $tib2_0_lcssa_in_i342; - if (($dimension_tib1_0_lcssa_i336 | 0) < ($dimension_tib2_0_lcssa_i343 | 0) | ($tib1_0_lcssa_i335 | 0) == 0) { - label = 269; - break; - } else { - $tib1_121_i347 = $tib1_0_lcssa_i335; - label = 264; - break; - } - case 264: - if (($tib1_121_i347 | 0) == ($tib2_0_lcssa_i344 | 0)) { - label = 361; - break; - } else { - label = 265; - break; - } - case 265: - $i_0_i350 = 0; - label = 266; - break; - case 266: - if (($i_0_i350 | 0) < (HEAP32[($tib1_121_i347 + 108 | 0) >> 2] | 0 | 0)) { - label = 267; - break; - } else { - label = 268; - break; - } - case 267: - if ((HEAP32[((HEAP32[($tib1_121_i347 + 112 | 0) >> 2] | 0) + ($i_0_i350 << 2) | 0) >> 2] | 0 | 0) == ($tib2_0_lcssa_i344 | 0)) { - label = 361; - break; - } else { - $i_0_i350 = $i_0_i350 + 1 | 0; - label = 266; - break; - } - case 268: - $1145 = HEAP32[($tib1_121_i347 + 40 | 0) >> 2] | 0; - if (($1145 | 0) == 0) { - label = 269; - break; - } else { - $tib1_121_i347 = $1145; - label = 264; - break; - } - case 269: - if ((HEAP32[(107740 | 0) >> 2] | 0 | 0) == 0) { - label = 270; - break; - } else { - label = 271; - break; - } - case 270: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 271; - break; - case 271: - $1151 = HEAP32[$1083 >> 2] | 0; - if (($1151 | 0) == 0) { - label = 285; - break; - } else { - label = 272; - break; - } - case 272: - $1156 = HEAP32[$1151 >> 2] | 0; - $1160 = HEAP32[((HEAP32[137616 >> 2] | 0) + 8 | 0) >> 2] | 0; - if (($1156 | 0) == 82712) { - label = 273; - break; - } else { - $tib1_0_ph_i311 = $1156; - label = 274; - break; - } - case 273: - $tib1_0_ph_i311 = HEAP32[((HEAP32[($1151 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; - label = 274; - break; - case 274: - $1171 = HEAP32[($tib1_0_ph_i311 + 56 | 0) >> 2] | 0; - if (($1171 | 0) == 0) { - $dimension_tib1_0_lcssa_i315 = 0; - $tib1_0_lcssa_i314 = $tib1_0_ph_i311; - label = 276; - break; - } else { - $dimension_tib1_029_i317 = 0; - $1178 = $1171; - label = 277; - break; - } - case 275: - $dimension_tib1_0_lcssa_i315 = $1182; - $tib1_0_lcssa_i314 = $1181; - label = 276; - break; - case 276: - $1176 = HEAP32[($1160 + 56 | 0) >> 2] | 0; - if (($1176 | 0) == 0) { - $dimension_tib2_0_lcssa_i322 = 0; - $tib2_0_lcssa_in_i321 = $1160; - label = 279; - break; - } else { - $dimension_tib2_024_i319 = 0; - $1187 = $1176; - label = 278; - break; - } - case 277: - $1181 = HEAP32[($1178 + 8 | 0) >> 2] | 0; - $1182 = $dimension_tib1_029_i317 + 1 | 0; - $1185 = HEAP32[($1181 + 56 | 0) >> 2] | 0; - if (($1185 | 0) == 0) { - label = 275; - break; - } else { - $dimension_tib1_029_i317 = $1182; - $1178 = $1185; - label = 277; - break; - } - case 278: - $1190 = HEAP32[($1187 + 8 | 0) >> 2] | 0; - $1191 = $dimension_tib2_024_i319 + 1 | 0; - $1194 = HEAP32[($1190 + 56 | 0) >> 2] | 0; - if (($1194 | 0) == 0) { - $dimension_tib2_0_lcssa_i322 = $1191; - $tib2_0_lcssa_in_i321 = $1190; - label = 279; - break; - } else { - $dimension_tib2_024_i319 = $1191; - $1187 = $1194; - label = 278; - break; - } - case 279: - $tib2_0_lcssa_i323 = $tib2_0_lcssa_in_i321; - if (($dimension_tib1_0_lcssa_i315 | 0) < ($dimension_tib2_0_lcssa_i322 | 0) | ($tib1_0_lcssa_i314 | 0) == 0) { - label = 285; - break; - } else { - $tib1_121_i326 = $tib1_0_lcssa_i314; - label = 280; - break; - } - case 280: - if (($tib1_121_i326 | 0) == ($tib2_0_lcssa_i323 | 0)) { - label = 386; - break; - } else { - label = 281; - break; - } - case 281: - $i_0_i329 = 0; - label = 282; - break; - case 282: - if (($i_0_i329 | 0) < (HEAP32[($tib1_121_i326 + 108 | 0) >> 2] | 0 | 0)) { - label = 283; - break; - } else { - label = 284; - break; - } - case 283: - if ((HEAP32[((HEAP32[($tib1_121_i326 + 112 | 0) >> 2] | 0) + ($i_0_i329 << 2) | 0) >> 2] | 0 | 0) == ($tib2_0_lcssa_i323 | 0)) { - label = 386; - break; - } else { - $i_0_i329 = $i_0_i329 + 1 | 0; - label = 282; - break; - } - case 284: - $1212 = HEAP32[($tib1_121_i326 + 40 | 0) >> 2] | 0; - if (($1212 | 0) == 0) { - label = 285; - break; - } else { - $tib1_121_i326 = $1212; - label = 280; - break; - } - case 285: - invoke_vii(48, HEAP32[$1038 >> 2] | 0 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 286: - if ((HEAP32[(98772 | 0) >> 2] | 0 | 0) == 0) { - label = 287; - break; - } else { - label = 288; - break; - } - case 287: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 288; - break; - case 288: - $_r0_sroa_0 = HEAP32[140040 >> 2] | 0; - $1222 = invoke_ii(556, 709 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $_r3_sroa_0 = $1222; - $_r0_sroa_0 = 0; - $_r3_sroa_0 = $_r0_sroa_0; - HEAP32[($_r3_sroa_1 | 0) >> 2] = HEAP32[($_r0_sroa_1 | 0) >> 2] | 0; - _memcpy(HEAP32[$1069 >> 2] | 0 | 0, $1067 | 0, 40); - label = 179; - break; - case 289: - _memcpy(HEAP32[$1069 >> 2] | 0 | 0, $1067 | 0, 40); - if ((HEAP32[(113236 | 0) >> 2] | 0 | 0) == 0) { - label = 290; - break; - } else { - label = 291; - break; - } - case 290: - invoke_v(538); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 291; - break; - case 291: - $1232 = $1066 + 20 | 0; - $1233 = HEAP32[$1232 >> 2] | 0; - if (($1233 | 0) == 0) { - label = 305; - break; - } else { - label = 292; - break; - } - case 292: - $1238 = HEAP32[$1233 >> 2] | 0; - $1242 = HEAP32[((HEAP32[138672 >> 2] | 0) + 8 | 0) >> 2] | 0; - if (($1238 | 0) == 82712) { - label = 293; - break; - } else { - $tib1_0_ph_i290 = $1238; - label = 294; - break; - } - case 293: - $tib1_0_ph_i290 = HEAP32[((HEAP32[($1233 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; - label = 294; - break; - case 294: - $1253 = HEAP32[($tib1_0_ph_i290 + 56 | 0) >> 2] | 0; - if (($1253 | 0) == 0) { - $dimension_tib1_0_lcssa_i294 = 0; - $tib1_0_lcssa_i293 = $tib1_0_ph_i290; - label = 296; - break; - } else { - $dimension_tib1_029_i296 = 0; - $1260 = $1253; - label = 297; - break; - } - case 295: - $dimension_tib1_0_lcssa_i294 = $1264; - $tib1_0_lcssa_i293 = $1263; - label = 296; - break; - case 296: - $1258 = HEAP32[($1242 + 56 | 0) >> 2] | 0; - if (($1258 | 0) == 0) { - $dimension_tib2_0_lcssa_i301 = 0; - $tib2_0_lcssa_in_i300 = $1242; - label = 299; - break; - } else { - $dimension_tib2_024_i298 = 0; - $1269 = $1258; - label = 298; - break; - } - case 297: - $1263 = HEAP32[($1260 + 8 | 0) >> 2] | 0; - $1264 = $dimension_tib1_029_i296 + 1 | 0; - $1267 = HEAP32[($1263 + 56 | 0) >> 2] | 0; - if (($1267 | 0) == 0) { - label = 295; - break; - } else { - $dimension_tib1_029_i296 = $1264; - $1260 = $1267; - label = 297; - break; - } - case 298: - $1272 = HEAP32[($1269 + 8 | 0) >> 2] | 0; - $1273 = $dimension_tib2_024_i298 + 1 | 0; - $1276 = HEAP32[($1272 + 56 | 0) >> 2] | 0; - if (($1276 | 0) == 0) { - $dimension_tib2_0_lcssa_i301 = $1273; - $tib2_0_lcssa_in_i300 = $1272; - label = 299; - break; - } else { - $dimension_tib2_024_i298 = $1273; - $1269 = $1276; - label = 298; - break; - } - case 299: - $tib2_0_lcssa_i302 = $tib2_0_lcssa_in_i300; - if (($dimension_tib1_0_lcssa_i294 | 0) < ($dimension_tib2_0_lcssa_i301 | 0) | ($tib1_0_lcssa_i293 | 0) == 0) { - label = 305; - break; - } else { - $tib1_121_i305 = $tib1_0_lcssa_i293; - label = 300; - break; - } - case 300: - if (($tib1_121_i305 | 0) == ($tib2_0_lcssa_i302 | 0)) { - label = 361; - break; - } else { - label = 301; - break; - } - case 301: - $i_0_i308 = 0; - label = 302; - break; - case 302: - if (($i_0_i308 | 0) < (HEAP32[($tib1_121_i305 + 108 | 0) >> 2] | 0 | 0)) { - label = 303; - break; - } else { - label = 304; - break; - } - case 303: - if ((HEAP32[((HEAP32[($tib1_121_i305 + 112 | 0) >> 2] | 0) + ($i_0_i308 << 2) | 0) >> 2] | 0 | 0) == ($tib2_0_lcssa_i302 | 0)) { - label = 361; - break; - } else { - $i_0_i308 = $i_0_i308 + 1 | 0; - label = 302; - break; - } - case 304: - $1294 = HEAP32[($tib1_121_i305 + 40 | 0) >> 2] | 0; - if (($1294 | 0) == 0) { - label = 305; - break; - } else { - $tib1_121_i305 = $1294; - label = 300; - break; - } - case 305: - if ((HEAP32[(107740 | 0) >> 2] | 0 | 0) == 0) { - label = 306; - break; - } else { - label = 307; - break; - } - case 306: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 307; - break; - case 307: - $1300 = HEAP32[$1232 >> 2] | 0; - if (($1300 | 0) == 0) { - label = 321; - break; - } else { - label = 308; - break; - } - case 308: - $1305 = HEAP32[$1300 >> 2] | 0; - $1309 = HEAP32[((HEAP32[137616 >> 2] | 0) + 8 | 0) >> 2] | 0; - if (($1305 | 0) == 82712) { - label = 309; - break; - } else { - $tib1_0_ph_i269 = $1305; - label = 310; - break; - } - case 309: - $tib1_0_ph_i269 = HEAP32[((HEAP32[($1300 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; - label = 310; - break; - case 310: - $1320 = HEAP32[($tib1_0_ph_i269 + 56 | 0) >> 2] | 0; - if (($1320 | 0) == 0) { - $dimension_tib1_0_lcssa_i273 = 0; - $tib1_0_lcssa_i272 = $tib1_0_ph_i269; - label = 312; - break; - } else { - $dimension_tib1_029_i275 = 0; - $1327 = $1320; - label = 313; - break; - } - case 311: - $dimension_tib1_0_lcssa_i273 = $1331; - $tib1_0_lcssa_i272 = $1330; - label = 312; - break; - case 312: - $1325 = HEAP32[($1309 + 56 | 0) >> 2] | 0; - if (($1325 | 0) == 0) { - $dimension_tib2_0_lcssa_i280 = 0; - $tib2_0_lcssa_in_i279 = $1309; - label = 315; - break; - } else { - $dimension_tib2_024_i277 = 0; - $1336 = $1325; - label = 314; - break; - } - case 313: - $1330 = HEAP32[($1327 + 8 | 0) >> 2] | 0; - $1331 = $dimension_tib1_029_i275 + 1 | 0; - $1334 = HEAP32[($1330 + 56 | 0) >> 2] | 0; - if (($1334 | 0) == 0) { - label = 311; - break; - } else { - $dimension_tib1_029_i275 = $1331; - $1327 = $1334; - label = 313; - break; - } - case 314: - $1339 = HEAP32[($1336 + 8 | 0) >> 2] | 0; - $1340 = $dimension_tib2_024_i277 + 1 | 0; - $1343 = HEAP32[($1339 + 56 | 0) >> 2] | 0; - if (($1343 | 0) == 0) { - $dimension_tib2_0_lcssa_i280 = $1340; - $tib2_0_lcssa_in_i279 = $1339; - label = 315; - break; - } else { - $dimension_tib2_024_i277 = $1340; - $1336 = $1343; - label = 314; - break; - } - case 315: - $tib2_0_lcssa_i281 = $tib2_0_lcssa_in_i279; - if (($dimension_tib1_0_lcssa_i273 | 0) < ($dimension_tib2_0_lcssa_i280 | 0) | ($tib1_0_lcssa_i272 | 0) == 0) { - label = 321; - break; - } else { - $tib1_121_i284 = $tib1_0_lcssa_i272; - label = 316; - break; - } - case 316: - if (($tib1_121_i284 | 0) == ($tib2_0_lcssa_i281 | 0)) { - label = 386; - break; - } else { - label = 317; - break; - } - case 317: - $i_0_i287 = 0; - label = 318; - break; - case 318: - if (($i_0_i287 | 0) < (HEAP32[($tib1_121_i284 + 108 | 0) >> 2] | 0 | 0)) { - label = 319; - break; - } else { - label = 320; - break; - } - case 319: - if ((HEAP32[((HEAP32[($tib1_121_i284 + 112 | 0) >> 2] | 0) + ($i_0_i287 << 2) | 0) >> 2] | 0 | 0) == ($tib2_0_lcssa_i281 | 0)) { - label = 386; - break; - } else { - $i_0_i287 = $i_0_i287 + 1 | 0; - label = 318; - break; - } - case 320: - $1361 = HEAP32[($tib1_121_i284 + 40 | 0) >> 2] | 0; - if (($1361 | 0) == 0) { - label = 321; - break; - } else { - $tib1_121_i284 = $1361; - label = 316; - break; - } - case 321: - invoke_vii(48, HEAP32[$1069 >> 2] | 0 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 322: - if ((HEAP32[(105500 | 0) >> 2] | 0 | 0) == 0) { - label = 323; - break; - } else { - label = 324; - break; - } - case 323: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 324; - break; - case 324: - $1369 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1371 = invoke_iii(364, $1369 | 0, 0 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1372 = $local_env_w4567aaac23b1c44; - $1374 = $1371 + 16 | 0; - _memcpy($1372 | 0, HEAP32[$1374 >> 2] | 0 | 0, 40); - $1378 = _saveSetjmp(HEAP32[$1374 >> 2] | 0 | 0, label, setjmpTable) | 0; - label = 423; - break; - case 423: - if (($1378 | 0) == 0) { - label = 325; - break; - } else { - label = 328; - break; - } - case 325: - $_r0_sroa_0 = 1; - $_r0_sroa_0_0_load604 = $_r0_sroa_0; - if ((HEAP32[(98772 | 0) >> 2] | 0 | 0) == 0) { - label = 326; - break; - } else { - label = 327; - break; - } - case 326: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 327; - break; - case 327: - HEAP32[140048 >> 2] = $_r0_sroa_0_0_load604; - $1391 = invoke_ii(HEAP32[((HEAP32[((HEAP32[$_r3_sroa_0 >> 2] | 0) + 116 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, $_r3_sroa_0 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $_r0_sroa_0 = $1391; - invoke_viiii(14, 16136 | 0 | 0, 11648 | 0 | 0, 126872 | 0 | 0, 1630 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 328: - _memcpy(HEAP32[$1374 >> 2] | 0 | 0, $1372 | 0, 40); - if ((HEAP32[(113236 | 0) >> 2] | 0 | 0) == 0) { - label = 329; - break; - } else { - label = 330; - break; - } - case 329: - invoke_v(538); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 330; - break; - case 330: - $1400 = $1371 + 20 | 0; - $1401 = HEAP32[$1400 >> 2] | 0; - if (($1401 | 0) == 0) { - label = 344; - break; - } else { - label = 331; - break; - } - case 331: - $1406 = HEAP32[$1401 >> 2] | 0; - $1410 = HEAP32[((HEAP32[138672 >> 2] | 0) + 8 | 0) >> 2] | 0; - if (($1406 | 0) == 82712) { - label = 332; - break; - } else { - $tib1_0_ph_i248 = $1406; - label = 333; - break; - } - case 332: - $tib1_0_ph_i248 = HEAP32[((HEAP32[($1401 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; - label = 333; - break; - case 333: - $1421 = HEAP32[($tib1_0_ph_i248 + 56 | 0) >> 2] | 0; - if (($1421 | 0) == 0) { - $dimension_tib1_0_lcssa_i252 = 0; - $tib1_0_lcssa_i251 = $tib1_0_ph_i248; - label = 335; - break; - } else { - $dimension_tib1_029_i254 = 0; - $1428 = $1421; - label = 336; - break; - } - case 334: - $dimension_tib1_0_lcssa_i252 = $1432; - $tib1_0_lcssa_i251 = $1431; - label = 335; - break; - case 335: - $1426 = HEAP32[($1410 + 56 | 0) >> 2] | 0; - if (($1426 | 0) == 0) { - $dimension_tib2_0_lcssa_i259 = 0; - $tib2_0_lcssa_in_i258 = $1410; - label = 338; - break; - } else { - $dimension_tib2_024_i256 = 0; - $1437 = $1426; - label = 337; - break; - } - case 336: - $1431 = HEAP32[($1428 + 8 | 0) >> 2] | 0; - $1432 = $dimension_tib1_029_i254 + 1 | 0; - $1435 = HEAP32[($1431 + 56 | 0) >> 2] | 0; - if (($1435 | 0) == 0) { - label = 334; - break; - } else { - $dimension_tib1_029_i254 = $1432; - $1428 = $1435; - label = 336; - break; - } - case 337: - $1440 = HEAP32[($1437 + 8 | 0) >> 2] | 0; - $1441 = $dimension_tib2_024_i256 + 1 | 0; - $1444 = HEAP32[($1440 + 56 | 0) >> 2] | 0; - if (($1444 | 0) == 0) { - $dimension_tib2_0_lcssa_i259 = $1441; - $tib2_0_lcssa_in_i258 = $1440; - label = 338; - break; - } else { - $dimension_tib2_024_i256 = $1441; - $1437 = $1444; - label = 337; - break; - } - case 338: - $tib2_0_lcssa_i260 = $tib2_0_lcssa_in_i258; - if (($dimension_tib1_0_lcssa_i252 | 0) < ($dimension_tib2_0_lcssa_i259 | 0) | ($tib1_0_lcssa_i251 | 0) == 0) { - label = 344; - break; - } else { - $tib1_121_i263 = $tib1_0_lcssa_i251; - label = 339; - break; - } - case 339: - if (($tib1_121_i263 | 0) == ($tib2_0_lcssa_i260 | 0)) { - label = 361; - break; - } else { - label = 340; - break; - } - case 340: - $i_0_i266 = 0; - label = 341; - break; - case 341: - if (($i_0_i266 | 0) < (HEAP32[($tib1_121_i263 + 108 | 0) >> 2] | 0 | 0)) { - label = 342; - break; - } else { - label = 343; - break; - } - case 342: - if ((HEAP32[((HEAP32[($tib1_121_i263 + 112 | 0) >> 2] | 0) + ($i_0_i266 << 2) | 0) >> 2] | 0 | 0) == ($tib2_0_lcssa_i260 | 0)) { - label = 361; - break; - } else { - $i_0_i266 = $i_0_i266 + 1 | 0; - label = 341; - break; - } - case 343: - $1462 = HEAP32[($tib1_121_i263 + 40 | 0) >> 2] | 0; - if (($1462 | 0) == 0) { - label = 344; - break; - } else { - $tib1_121_i263 = $1462; - label = 339; - break; - } - case 344: - if ((HEAP32[(107740 | 0) >> 2] | 0 | 0) == 0) { - label = 345; - break; - } else { - label = 346; - break; - } - case 345: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 346; - break; - case 346: - $1468 = HEAP32[$1400 >> 2] | 0; - if (($1468 | 0) == 0) { - label = 360; - break; - } else { - label = 347; - break; - } - case 347: - $1473 = HEAP32[$1468 >> 2] | 0; - $1477 = HEAP32[((HEAP32[137616 >> 2] | 0) + 8 | 0) >> 2] | 0; - if (($1473 | 0) == 82712) { - label = 348; - break; - } else { - $tib1_0_ph_i227 = $1473; - label = 349; - break; - } - case 348: - $tib1_0_ph_i227 = HEAP32[((HEAP32[($1468 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; - label = 349; - break; - case 349: - $1488 = HEAP32[($tib1_0_ph_i227 + 56 | 0) >> 2] | 0; - if (($1488 | 0) == 0) { - $dimension_tib1_0_lcssa_i231 = 0; - $tib1_0_lcssa_i230 = $tib1_0_ph_i227; - label = 351; - break; - } else { - $dimension_tib1_029_i233 = 0; - $1495 = $1488; - label = 352; - break; - } - case 350: - $dimension_tib1_0_lcssa_i231 = $1499; - $tib1_0_lcssa_i230 = $1498; - label = 351; - break; - case 351: - $1493 = HEAP32[($1477 + 56 | 0) >> 2] | 0; - if (($1493 | 0) == 0) { - $dimension_tib2_0_lcssa_i238 = 0; - $tib2_0_lcssa_in_i237 = $1477; - label = 354; - break; - } else { - $dimension_tib2_024_i235 = 0; - $1504 = $1493; - label = 353; - break; - } - case 352: - $1498 = HEAP32[($1495 + 8 | 0) >> 2] | 0; - $1499 = $dimension_tib1_029_i233 + 1 | 0; - $1502 = HEAP32[($1498 + 56 | 0) >> 2] | 0; - if (($1502 | 0) == 0) { - label = 350; - break; - } else { - $dimension_tib1_029_i233 = $1499; - $1495 = $1502; - label = 352; - break; - } - case 353: - $1507 = HEAP32[($1504 + 8 | 0) >> 2] | 0; - $1508 = $dimension_tib2_024_i235 + 1 | 0; - $1511 = HEAP32[($1507 + 56 | 0) >> 2] | 0; - if (($1511 | 0) == 0) { - $dimension_tib2_0_lcssa_i238 = $1508; - $tib2_0_lcssa_in_i237 = $1507; - label = 354; - break; - } else { - $dimension_tib2_024_i235 = $1508; - $1504 = $1511; - label = 353; - break; - } - case 354: - $tib2_0_lcssa_i239 = $tib2_0_lcssa_in_i237; - if (($dimension_tib1_0_lcssa_i231 | 0) < ($dimension_tib2_0_lcssa_i238 | 0) | ($tib1_0_lcssa_i230 | 0) == 0) { - label = 360; - break; - } else { - $tib1_121_i242 = $tib1_0_lcssa_i230; - label = 355; - break; - } - case 355: - if (($tib1_121_i242 | 0) == ($tib2_0_lcssa_i239 | 0)) { - label = 386; - break; - } else { - label = 356; - break; - } - case 356: - $i_0_i245 = 0; - label = 357; - break; - case 357: - if (($i_0_i245 | 0) < (HEAP32[($tib1_121_i242 + 108 | 0) >> 2] | 0 | 0)) { - label = 358; - break; - } else { - label = 359; - break; - } - case 358: - if ((HEAP32[((HEAP32[($tib1_121_i242 + 112 | 0) >> 2] | 0) + ($i_0_i245 << 2) | 0) >> 2] | 0 | 0) == ($tib2_0_lcssa_i239 | 0)) { - label = 386; - break; - } else { - $i_0_i245 = $i_0_i245 + 1 | 0; - label = 357; - break; - } - case 359: - $1529 = HEAP32[($tib1_121_i242 + 40 | 0) >> 2] | 0; - if (($1529 | 0) == 0) { - label = 360; - break; - } else { - $tib1_121_i242 = $1529; - label = 355; - break; - } - case 360: - invoke_vii(48, HEAP32[$1374 >> 2] | 0 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 361: - if ((HEAP32[(105500 | 0) >> 2] | 0 | 0) == 0) { - label = 362; - break; - } else { - label = 363; - break; - } - case 362: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 363; - break; - case 363: - $1536 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1538 = invoke_iii(364, $1536 | 0, 0 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1539 = $local_env_w4567aaac23b1c48; - $1541 = $1538 + 16 | 0; - _memcpy($1539 | 0, HEAP32[$1541 >> 2] | 0 | 0, 40); - $1545 = _saveSetjmp(HEAP32[$1541 >> 2] | 0 | 0, label, setjmpTable) | 0; - label = 424; - break; - case 424: - if (($1545 | 0) == 0) { - label = 364; - break; - } else { - label = 369; - break; - } - case 364: - if ((HEAP32[(105500 | 0) >> 2] | 0 | 0) == 0) { - label = 365; - break; - } else { - label = 366; - break; - } - case 365: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 366; - break; - case 366: - $1551 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1553 = invoke_iii(364, $1551 | 0, 0 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $_r0_sroa_0 = HEAP32[($1553 + 20 | 0) >> 2] | 0; - $_r0_sroa_0 = 0; - $_r0_sroa_0_0_load602 = $_r0_sroa_0; - if ((HEAP32[(98772 | 0) >> 2] | 0 | 0) == 0) { - label = 367; - break; - } else { - label = 368; - break; - } - case 367: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 368; - break; - case 368: - HEAP32[140048 >> 2] = $_r0_sroa_0_0_load602; - _memcpy(HEAP32[$1541 >> 2] | 0 | 0, $1539 | 0, 40); - label = 239; - break; - case 369: - _memcpy(HEAP32[$1541 >> 2] | 0 | 0, $1539 | 0, 40); - if ((HEAP32[(107740 | 0) >> 2] | 0 | 0) == 0) { - label = 370; - break; - } else { - label = 371; - break; - } - case 370: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 371; - break; - case 371: - $1570 = HEAP32[($1538 + 20 | 0) >> 2] | 0; - if (($1570 | 0) == 0) { - label = 385; - break; - } else { - label = 372; - break; - } - case 372: - $1575 = HEAP32[$1570 >> 2] | 0; - $1579 = HEAP32[((HEAP32[137616 >> 2] | 0) + 8 | 0) >> 2] | 0; - if (($1575 | 0) == 82712) { - label = 373; - break; - } else { - $tib1_0_ph_i185 = $1575; - label = 374; - break; - } - case 373: - $tib1_0_ph_i185 = HEAP32[((HEAP32[($1570 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; - label = 374; - break; - case 374: - $1590 = HEAP32[($tib1_0_ph_i185 + 56 | 0) >> 2] | 0; - if (($1590 | 0) == 0) { - $dimension_tib1_0_lcssa_i189 = 0; - $tib1_0_lcssa_i188 = $tib1_0_ph_i185; - label = 376; - break; - } else { - $dimension_tib1_029_i191 = 0; - $1597 = $1590; - label = 377; - break; - } - case 375: - $dimension_tib1_0_lcssa_i189 = $1601; - $tib1_0_lcssa_i188 = $1600; - label = 376; - break; - case 376: - $1595 = HEAP32[($1579 + 56 | 0) >> 2] | 0; - if (($1595 | 0) == 0) { - $dimension_tib2_0_lcssa_i196 = 0; - $tib2_0_lcssa_in_i195 = $1579; - label = 379; - break; - } else { - $dimension_tib2_024_i193 = 0; - $1606 = $1595; - label = 378; - break; - } - case 377: - $1600 = HEAP32[($1597 + 8 | 0) >> 2] | 0; - $1601 = $dimension_tib1_029_i191 + 1 | 0; - $1604 = HEAP32[($1600 + 56 | 0) >> 2] | 0; - if (($1604 | 0) == 0) { - label = 375; - break; - } else { - $dimension_tib1_029_i191 = $1601; - $1597 = $1604; - label = 377; - break; - } - case 378: - $1609 = HEAP32[($1606 + 8 | 0) >> 2] | 0; - $1610 = $dimension_tib2_024_i193 + 1 | 0; - $1613 = HEAP32[($1609 + 56 | 0) >> 2] | 0; - if (($1613 | 0) == 0) { - $dimension_tib2_0_lcssa_i196 = $1610; - $tib2_0_lcssa_in_i195 = $1609; - label = 379; - break; - } else { - $dimension_tib2_024_i193 = $1610; - $1606 = $1613; - label = 378; - break; - } - case 379: - $tib2_0_lcssa_i197 = $tib2_0_lcssa_in_i195; - if (($dimension_tib1_0_lcssa_i189 | 0) < ($dimension_tib2_0_lcssa_i196 | 0) | ($tib1_0_lcssa_i188 | 0) == 0) { - label = 385; - break; - } else { - $tib1_121_i200 = $tib1_0_lcssa_i188; - label = 380; - break; - } - case 380: - if (($tib1_121_i200 | 0) == ($tib2_0_lcssa_i197 | 0)) { - label = 54; - break; - } else { - label = 381; - break; - } - case 381: - $i_0_i203 = 0; - label = 382; - break; - case 382: - if (($i_0_i203 | 0) < (HEAP32[($tib1_121_i200 + 108 | 0) >> 2] | 0 | 0)) { - label = 383; - break; - } else { - label = 384; - break; - } - case 383: - if ((HEAP32[((HEAP32[($tib1_121_i200 + 112 | 0) >> 2] | 0) + ($i_0_i203 << 2) | 0) >> 2] | 0 | 0) == ($tib2_0_lcssa_i197 | 0)) { - label = 54; - break; - } else { - $i_0_i203 = $i_0_i203 + 1 | 0; - label = 382; - break; - } - case 384: - $1631 = HEAP32[($tib1_121_i200 + 40 | 0) >> 2] | 0; - if (($1631 | 0) == 0) { - label = 385; - break; - } else { - $tib1_121_i200 = $1631; - label = 380; - break; - } - case 385: - invoke_vii(48, HEAP32[$1541 >> 2] | 0 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 386: - if ((HEAP32[(105500 | 0) >> 2] | 0 | 0) == 0) { - label = 387; - break; - } else { - label = 388; - break; - } - case 387: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 388; - break; - case 388: - $1638 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1640 = invoke_iii(364, $1638 | 0, 0 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1641 = $local_env_w4567aaac23b1c50; - $1643 = $1640 + 16 | 0; - _memcpy($1641 | 0, HEAP32[$1643 >> 2] | 0 | 0, 40); - $1647 = _saveSetjmp(HEAP32[$1643 >> 2] | 0 | 0, label, setjmpTable) | 0; - label = 425; - break; - case 425: - if (($1647 | 0) == 0) { - label = 389; - break; - } else { - label = 396; - break; - } - case 389: - if ((HEAP32[(105500 | 0) >> 2] | 0 | 0) == 0) { - label = 390; - break; - } else { - label = 391; - break; - } - case 390: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 391; - break; - case 391: - $1653 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1655 = invoke_iii(364, $1653 | 0, 0 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $_r0_sroa_0 = HEAP32[($1655 + 20 | 0) >> 2] | 0; - $_r2_sroa_0 = 0; - $_r2_sroa_0_0_load = $_r2_sroa_0; - if ((HEAP32[(98772 | 0) >> 2] | 0 | 0) == 0) { - label = 392; - break; - } else { - label = 393; - break; - } - case 392: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 393; - break; - case 393: - HEAP32[140048 >> 2] = $_r2_sroa_0_0_load; - if ((HEAP32[(105500 | 0) >> 2] | 0 | 0) == 0) { - label = 394; - break; - } else { - label = 395; - break; - } - case 394: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 395; - break; - case 395: - $1666 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1668 = invoke_iii(364, $1666 | 0, 0 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - HEAP32[($1668 + 20 | 0) >> 2] = $_r0_sroa_0; - invoke_vii(48, HEAP32[($1668 + 16 | 0) >> 2] | 0 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 396: - _memcpy(HEAP32[$1643 >> 2] | 0 | 0, $1641 | 0, 40); - if ((HEAP32[(107740 | 0) >> 2] | 0 | 0) == 0) { - label = 397; - break; - } else { - label = 398; - break; - } - case 397: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 398; - break; - case 398: - $1684 = HEAP32[($1640 + 20 | 0) >> 2] | 0; - if (($1684 | 0) == 0) { - label = 412; - break; - } else { - label = 399; - break; - } - case 399: - $1689 = HEAP32[$1684 >> 2] | 0; - $1693 = HEAP32[((HEAP32[137616 >> 2] | 0) + 8 | 0) >> 2] | 0; - if (($1689 | 0) == 82712) { - label = 400; - break; - } else { - $tib1_0_ph_i = $1689; - label = 401; - break; - } - case 400: - $tib1_0_ph_i = HEAP32[((HEAP32[($1684 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; - label = 401; - break; - case 401: - $1704 = HEAP32[($tib1_0_ph_i + 56 | 0) >> 2] | 0; - if (($1704 | 0) == 0) { - $dimension_tib1_0_lcssa_i = 0; - $tib1_0_lcssa_i = $tib1_0_ph_i; - label = 403; - break; - } else { - $dimension_tib1_029_i = 0; - $1711 = $1704; - label = 404; - break; - } - case 402: - $dimension_tib1_0_lcssa_i = $1715; - $tib1_0_lcssa_i = $1714; - label = 403; - break; - case 403: - $1709 = HEAP32[($1693 + 56 | 0) >> 2] | 0; - if (($1709 | 0) == 0) { - $dimension_tib2_0_lcssa_i = 0; - $tib2_0_lcssa_in_i = $1693; - label = 406; - break; - } else { - $dimension_tib2_024_i = 0; - $1720 = $1709; - label = 405; - break; - } - case 404: - $1714 = HEAP32[($1711 + 8 | 0) >> 2] | 0; - $1715 = $dimension_tib1_029_i + 1 | 0; - $1718 = HEAP32[($1714 + 56 | 0) >> 2] | 0; - if (($1718 | 0) == 0) { - label = 402; - break; - } else { - $dimension_tib1_029_i = $1715; - $1711 = $1718; - label = 404; - break; - } - case 405: - $1723 = HEAP32[($1720 + 8 | 0) >> 2] | 0; - $1724 = $dimension_tib2_024_i + 1 | 0; - $1727 = HEAP32[($1723 + 56 | 0) >> 2] | 0; - if (($1727 | 0) == 0) { - $dimension_tib2_0_lcssa_i = $1724; - $tib2_0_lcssa_in_i = $1723; - label = 406; - break; - } else { - $dimension_tib2_024_i = $1724; - $1720 = $1727; - label = 405; - break; - } - case 406: - $tib2_0_lcssa_i = $tib2_0_lcssa_in_i; - if (($dimension_tib1_0_lcssa_i | 0) < ($dimension_tib2_0_lcssa_i | 0) | ($tib1_0_lcssa_i | 0) == 0) { - label = 412; - break; - } else { - $tib1_121_i = $tib1_0_lcssa_i; - label = 407; - break; - } - case 407: - if (($tib1_121_i | 0) == ($tib2_0_lcssa_i | 0)) { - label = 54; - break; - } else { - label = 408; - break; - } - case 408: - $i_0_i = 0; - label = 409; - break; - case 409: - if (($i_0_i | 0) < (HEAP32[($tib1_121_i + 108 | 0) >> 2] | 0 | 0)) { - label = 410; - break; - } else { - label = 411; - break; - } - case 410: - if ((HEAP32[((HEAP32[($tib1_121_i + 112 | 0) >> 2] | 0) + ($i_0_i << 2) | 0) >> 2] | 0 | 0) == ($tib2_0_lcssa_i | 0)) { - label = 54; - break; - } else { - $i_0_i = $i_0_i + 1 | 0; - label = 409; - break; - } - case 411: - $1745 = HEAP32[($tib1_121_i + 40 | 0) >> 2] | 0; - if (($1745 | 0) == 0) { - label = 412; - break; - } else { - $tib1_121_i = $1745; - label = 407; - break; - } - case 412: - invoke_vii(48, HEAP32[$1643 >> 2] | 0 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case -1111: - if ((setjmpLabel | 0) == 7) { - $25 = threwValue; - label = 413; - } else if ((setjmpLabel | 0) == 35) { - $159 = threwValue; - label = 414; - } else if ((setjmpLabel | 0) == 62) { - $290 = threwValue; - label = 415; - } else if ((setjmpLabel | 0) == 91) { - $401 = threwValue; - label = 416; - } else if ((setjmpLabel | 0) == 97) { - $433 = threwValue; - label = 417; - } else if ((setjmpLabel | 0) == 144) { - $629 = threwValue; - label = 418; - } else if ((setjmpLabel | 0) == 181) { - $789 = threwValue; - label = 419; - } else if ((setjmpLabel | 0) == 218) { - $954 = threwValue; - label = 420; - } else if ((setjmpLabel | 0) == 240) { - $1042 = threwValue; - label = 421; - } else if ((setjmpLabel | 0) == 251) { - $1073 = threwValue; - label = 422; - } else if ((setjmpLabel | 0) == 324) { - $1378 = threwValue; - label = 423; - } else if ((setjmpLabel | 0) == 363) { - $1545 = threwValue; - label = 424; - } else if ((setjmpLabel | 0) == 388) { - $1647 = threwValue; - label = 425; - } - __THREW__ = threwValue = 0; - break; - } -} function looop2() { var i = 0; while (1) { diff --git a/tools/eliminator/asm-eliminator-test.js b/tools/eliminator/asm-eliminator-test.js index b33c6040..6f426150 100644 --- a/tools/eliminator/asm-eliminator-test.js +++ b/tools/eliminator/asm-eliminator-test.js @@ -103,18 +103,6 @@ function exc($this) { $this = $this | 0; var $1 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $8 = +0, $9 = 0; var label = 0; - var $1 = (function() { - try { - __THREW__ = false; - return __ZNSt3__16locale8__globalEv(); - } catch (e) { - if (typeof e != "number") throw e; - if (ABORT) throw e; - __THREW__ = true; - Module.print("Exception: " + e + ", currently at: " + (new Error).stack); - return null; - } - })(); if (!__THREW__) { $3 = $this | 0; $4 = $1 | 0; @@ -161,12 +149,6 @@ function switchy() { break; } } -function confuusion() { - var i = +0; - func1(+i); - var j = i; // add this var in the middle. should show up with right type later, auto-inferred from i's type - func2(+j); -} function tempDouble(a) { a = +a; var x = +0, y = +0; @@ -175,397 +157,6 @@ function tempDouble(a) { y = a*a; f(y); } -function _org_apache_harmony_luni_util_NumberConverter_freeFormat__($me) { - $me = $me | 0; - var $_r2_sroa_0 = 0, $_r3_sroa_0 = 0, $1 = 0, $2 = 0, $$etemp$1 = 0, $$etemp$0$0 = 0, $$etemp$0$1 = 0, $st$2$0 = 0; - var $st$3$1 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $_r1_sroa_0_0_insert_ext191$0 = 0; - var $_r1_sroa_0_0_insert_ext191$1 = 0, $11 = +0, $12 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $_r2_sroa_0_0_cast283 = 0; - var $18 = 0, $19 = 0, $20 = 0, $21 = 0, $_r3_sroa_0_0_cast247 = 0, $_r3_sroa_0_0_load244 = +0, $ld$4$0 = 0, $_r3_sroa_0_0_load244$$SHADOW$0 = 0; - var $ld$5$1 = 0, $_r3_sroa_0_0_load244$$SHADOW$1 = 0, $_r2_sroa_0_0_load = +0, $ld$6$0 = 0, $_r2_sroa_0_0_load$$SHADOW$0 = 0, $ld$7$1 = 0, $_r2_sroa_0_0_load$$SHADOW$1 = 0, $22$0 = 0; - var $22$1 = 0, $trunc297$0 = 0, $trunc297 = 0, $23 = 0, $24$0 = 0, $24$1 = 0, $25$0 = 0, $25 = 0; - var $26 = 0, $27 = 0, $smax = 0, $28 = 0, $29 = 0, $_r3_sroa_0_0_load239_pre = +0, $ld$8$0 = 0, $_r3_sroa_0_0_load239_pre$$SHADOW$0 = 0; - var $ld$9$1 = 0, $_r3_sroa_0_0_load239_pre$$SHADOW$1 = 0, $_r3_sroa_0_0_load239 = +0, $_pre_phi301 = 0, $_r3_sroa_0_0_cast264_pre_phi = 0, $_r2_sroa_0_0_load265 = +0, $32 = 0, $33 = 0; - var $34 = 0, $_r3_sroa_0_0_cast253 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0; - var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $_r3_sroa_0_0_load243 = +0, $ld$10$0 = 0, $_r3_sroa_0_0_load243$$SHADOW$0 = 0, $ld$11$1 = 0; - var $_r3_sroa_0_0_load243$$SHADOW$1 = 0, $_r2_sroa_0_0_cast = 0, $45 = 0, $_sink_in = +0, $_r3_sroa_0_0_load241 = +0, $_r2_sroa_0_0_load266287 = 0, $_r1_sroa_0_0 = +0, $_sink$0 = 0, $_sink$1 = 0; - var $47$0 = 0, $47 = 0, $48$0 = 0, $48$1 = 0, $_r1_sroa_0_0_extract_trunc185$0 = 0, $_r1_sroa_0_0_extract_trunc185 = 0, $49 = 0, $51 = 0, $52 = 0; - var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $_r1_sroa_0_0_insert_ext195$0 = 0, $_r1_sroa_0_0_insert_ext195$1 = 0, $_r1_sroa_0_1_in$0 = 0, $_r1_sroa_0_1_in$1 = 0; - var $_r1_sroa_0_1 = +0, $58 = 0, $_r1_sroa_0_0_extract_trunc169$0 = 0, $_r1_sroa_0_0_extract_trunc169 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $_r3_sroa_0_0_load240 = +0, $ld$12$0 = 0, $_r3_sroa_0_0_load240$$SHADOW$0 = 0, $ld$13$1 = 0, $_r3_sroa_0_0_load240$$SHADOW$1 = 0, $_r1_sroa_0_2 = +0, $64 = 0, $65 = 0; - var $66 = 0, $67 = 0, $69 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0; - var $75 = 0, $76 = 0, $phitmp = 0, $77 = 0, $or_cond = 0, $79 = 0, $80 = 0, $82 = 0; - var $83 = 0, $84 = 0, $_r2_sroa_0_0_cast269 = 0, $85$0 = 0, $85$1 = 0, $_r1_sroa_0_0_extract_trunc$0 = 0, $_r1_sroa_0_0_extract_trunc = 0, $86 = 0, $87 = 0; - var $88 = 0, $89 = 0, $90 = 0, $91 = 0, $92 = 0, $94 = 0, $95 = 0, $96 = 0; - var $97 = 0, $99 = 0, $100 = 0, $101 = 0, $102 = 0, $$etemp$15 = 0, $$etemp$14$0 = 0, $$etemp$14$1 = 0; - var $st$16$0 = 0, $st$17$1 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $110 = 0; - var $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0; - var $121 = 0, $123 = 0, $_r1_sroa_0_0_insert_ext$0 = 0, $_r1_sroa_0_0_insert_ext$1 = 0, $$etemp$18$0 = 0, $$etemp$18$1 = 0, $_r1_sroa_0_0_insert_mask$0 = 0, $_r1_sroa_0_0_insert_mask$1 = 0; - var $_r1_sroa_0_0_insert_insert$0 = 0, $_r1_sroa_0_0_insert_insert$1 = 0, $124 = 0, $125 = 0, $126 = 0, $_old = 0, $_r3_sroa_0_0_load242 = +0, $ld$19$0 = 0; - var $_r3_sroa_0_0_load242$$SHADOW$0 = 0, $ld$20$1 = 0, $_r3_sroa_0_0_load242$$SHADOW$1 = 0, $_r2_sroa_0_0_cast284 = 0, $_r2_sroa_0_0_load265_pre = +0, $ld$21$0 = 0, $_r2_sroa_0_0_load265_pre$$SHADOW$0 = 0, $ld$22$1 = 0; - var $_r2_sroa_0_0_load265_pre$$SHADOW$1 = 0, $_r3_sroa_0_0_cast264_pre = 0, $_pre = 0, $_pre300 = 0; - var label = 0; - var __stackBase__ = 0; - __stackBase__ = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - $_r2_sroa_0 = __stackBase__ | 0; - $_r3_sroa_0 = __stackBase__ + 8 | 0; - $1 = HEAP32[(114668 | 0) >> 2] | 0; - $2 = ($1 | 0) == 0; - if ($2) { - HEAP32[(114664 | 0) >> 2] = 1; - HEAP32[(114668 | 0) >> 2] = 1; - $$etemp$1 = 114672 | 0; - $$etemp$0$0 = -1; - $$etemp$0$1 = -1; - $st$2$0 = $$etemp$1 | 0; - HEAP32[$st$2$0 >> 2] = $$etemp$0$0; - $st$3$1 = $$etemp$1 + 4 | 0; - HEAP32[$st$3$1 >> 2] = $$etemp$0$1; - HEAP32[(114684 | 0) >> 2] = 25296 | 0; - HEAP32[(114704 | 0) >> 2] = 110728; - HEAP32[(114712 | 0) >> 2] = 8; - HEAP32[(114784 | 0 | 0) >> 2] = HEAP32[(107856 | 0 | 0) >> 2] | 0; - HEAP32[(114784 | 0 | 0) + 4 >> 2] = HEAP32[(107856 | 0 | 0) + 4 >> 2] | 0; - HEAP32[(114784 | 0 | 0) + 8 >> 2] = HEAP32[(107856 | 0 | 0) + 8 >> 2] | 0; - HEAP32[(114784 | 0 | 0) + 12 >> 2] = HEAP32[(107856 | 0 | 0) + 12 >> 2] | 0; - HEAP32[(114784 | 0 | 0) + 16 >> 2] = HEAP32[(107856 | 0 | 0) + 16 >> 2] | 0; - HEAP32[(114784 | 0 | 0) + 20 >> 2] = HEAP32[(107856 | 0 | 0) + 20 >> 2] | 0; - } - $5 = HEAP32[138960 >> 2] | 0; - $6 = _org_xmlvm_runtime_XMLVMArray_createSingleDimension___java_lang_Class_int($5, 25) | 0; - $7 = $me + 8 | 0; - $8 = $me + 20 | 0; - $9 = $8; - $10 = HEAP32[$9 >> 2] | 0; - $_r1_sroa_0_0_insert_ext191$0 = $10; - $_r1_sroa_0_0_insert_ext191$1 = 0; - $11 = (HEAP32[tempDoublePtr >> 2] = $_r1_sroa_0_0_insert_ext191$0, HEAP32[tempDoublePtr + 4 >> 2] = $_r1_sroa_0_0_insert_ext191$1, +HEAPF64[tempDoublePtr >> 3]); - $12 = ($10 | 0) > -1; - if ($12) { - $_r2_sroa_0_0_cast284 = $_r2_sroa_0; - HEAP32[$_r2_sroa_0_0_cast284 >> 2] = 0; - $_r2_sroa_0_0_load265_pre = +HEAPF64[$_r2_sroa_0 >> 3]; - $ld$21$0 = $_r2_sroa_0 | 0; - $_r2_sroa_0_0_load265_pre$$SHADOW$0 = HEAP32[$ld$21$0 >> 2] | 0; - $ld$22$1 = $_r2_sroa_0 + 4 | 0; - $_r2_sroa_0_0_load265_pre$$SHADOW$1 = HEAP32[$ld$22$1 >> 2] | 0; - $_r3_sroa_0_0_cast264_pre = $_r3_sroa_0; - $_pre = $6 + 16 | 0; - $_pre300 = $_pre; - var $_r2_sroa_0_0_load265 = $_r2_sroa_0_0_load265_pre; - var $_r3_sroa_0_0_cast264_pre_phi = $_r3_sroa_0_0_cast264_pre; - var $_pre_phi301 = $_pre300; - } else { - $14 = $6 + 16 | 0; - $15 = $14; - $16 = HEAP32[$15 >> 2] | 0; - $17 = $16; - HEAP16[$17 >> 1] = 48; - $_r2_sroa_0_0_cast283 = $_r2_sroa_0; - $18 = HEAP32[$15 >> 2] | 0; - $19 = $18 + 2 | 0; - $20 = $19; - HEAP16[$20 >> 1] = 46; - HEAP32[$_r2_sroa_0_0_cast283 >> 2] = 2; - $21 = $10 + 1 | 0; - $_r3_sroa_0_0_cast247 = $_r3_sroa_0; - HEAP32[$_r3_sroa_0_0_cast247 >> 2] = $21; - $_r3_sroa_0_0_load244 = +HEAPF64[$_r3_sroa_0 >> 3]; - $ld$4$0 = $_r3_sroa_0 | 0; - $_r3_sroa_0_0_load244$$SHADOW$0 = HEAP32[$ld$4$0 >> 2] | 0; - $ld$5$1 = $_r3_sroa_0 + 4 | 0; - $_r3_sroa_0_0_load244$$SHADOW$1 = HEAP32[$ld$5$1 >> 2] | 0; - $_r2_sroa_0_0_load = +HEAPF64[$_r2_sroa_0 >> 3]; - $ld$6$0 = $_r2_sroa_0 | 0; - $_r2_sroa_0_0_load$$SHADOW$0 = HEAP32[$ld$6$0 >> 2] | 0; - $ld$7$1 = $_r2_sroa_0 + 4 | 0; - $_r2_sroa_0_0_load$$SHADOW$1 = HEAP32[$ld$7$1 >> 2] | 0; - HEAPF64[$_r3_sroa_0 >> 3] = $_r2_sroa_0_0_load; - HEAPF64[$_r2_sroa_0 >> 3] = $_r3_sroa_0_0_load244; - $22$0 = $_r3_sroa_0_0_load244$$SHADOW$0; - $22$1 = $_r3_sroa_0_0_load244$$SHADOW$1; - $trunc297$0 = $22$0; - $trunc297 = $trunc297$0; - $23 = ($trunc297 | 0) < 0; - $24$0 = $_r2_sroa_0_0_load$$SHADOW$0; - $24$1 = $_r2_sroa_0_0_load$$SHADOW$1; - $25$0 = $24$0; - $25 = $25$0; - if ($23) { - $26 = $trunc297 + 1 | 0; - $27 = ($26 | 0) > 0; - $smax = $27 ? $26 : 0; - $28 = $25 + $smax | 0; - var $113 = $25; - var $112 = $trunc297; - while (1) { - $114 = $113 + 1 | 0; - $115 = HEAP32[$15 >> 2] | 0; - $116 = $115; - $117 = $116 + ($113 << 1) | 0; - HEAP16[$117 >> 1] = 48; - $118 = $112 + 1 | 0; - $119 = ($118 | 0) < 0; - if ($119) { - var $113 = $114; - var $112 = $118; - } else { - break; - } - } - $29 = $28 - $trunc297 | 0; - HEAP32[$_r3_sroa_0_0_cast247 >> 2] = $29; - HEAP32[$_r2_sroa_0_0_cast283 >> 2] = $smax; - $_r3_sroa_0_0_load239_pre = +HEAPF64[$_r3_sroa_0 >> 3]; - $ld$8$0 = $_r3_sroa_0 | 0; - $_r3_sroa_0_0_load239_pre$$SHADOW$0 = HEAP32[$ld$8$0 >> 2] | 0; - $ld$9$1 = $_r3_sroa_0 + 4 | 0; - $_r3_sroa_0_0_load239_pre$$SHADOW$1 = HEAP32[$ld$9$1 >> 2] | 0; - $_r3_sroa_0_0_load239 = $_r3_sroa_0_0_load239_pre; - } else { - $_r3_sroa_0_0_load239 = $_r2_sroa_0_0_load; - } - HEAPF64[$_r2_sroa_0 >> 3] = $_r3_sroa_0_0_load239; - var $_r2_sroa_0_0_load265 = $_r3_sroa_0_0_load239; - var $_r3_sroa_0_0_cast264_pre_phi = $_r3_sroa_0_0_cast247; - var $_pre_phi301 = $15; - } - $32 = $me + 16 | 0; - $33 = $32; - $34 = HEAP32[$33 >> 2] | 0; - $_r3_sroa_0_0_cast253 = $_r3_sroa_0; - HEAP32[$_r3_sroa_0_0_cast253 >> 2] = $34; - $35 = $me + 12 | 0; - $36 = $35; - $37 = HEAP32[$36 >> 2] | 0; - $38 = $37 + 1 | 0; - HEAP32[$36 >> 2] = $38; - $39 = $34 + 16 | 0; - $40 = $39; - $41 = HEAP32[$40 >> 2] | 0; - $42 = $41; - $43 = $42 + ($37 << 2) | 0; - $44 = HEAP32[$43 >> 2] | 0; - HEAP32[$_r3_sroa_0_0_cast264_pre_phi >> 2] = $44; - $_r3_sroa_0_0_load243 = +HEAPF64[$_r3_sroa_0 >> 3]; - $ld$10$0 = $_r3_sroa_0 | 0; - $_r3_sroa_0_0_load243$$SHADOW$0 = HEAP32[$ld$10$0 >> 2] | 0; - $ld$11$1 = $_r3_sroa_0 + 4 | 0; - $_r3_sroa_0_0_load243$$SHADOW$1 = HEAP32[$ld$11$1 >> 2] | 0; - HEAPF64[$_r3_sroa_0 >> 3] = $_r2_sroa_0_0_load265; - HEAPF64[$_r2_sroa_0 >> 3] = $11; - $_r2_sroa_0_0_cast = $_r2_sroa_0; - $45 = $7; - var $_r1_sroa_0_0 = $_r3_sroa_0_0_load243; - var $_r2_sroa_0_0_load266287 = $10; - var $_r3_sroa_0_0_load241 = $_r2_sroa_0_0_load265; - var $_sink_in = $_r2_sroa_0_0_load265; - while (1) { - HEAPF64[tempDoublePtr >> 3] = $_sink_in; - var $_sink$0 = HEAP32[tempDoublePtr >> 2] | 0; - var $_sink$1 = HEAP32[tempDoublePtr + 4 >> 2] | 0; - $47$0 = $_sink$0; - $47 = $47$0; - HEAPF64[tempDoublePtr >> 3] = $_r1_sroa_0_0; - var $48$0 = HEAP32[tempDoublePtr >> 2] | 0; - var $48$1 = HEAP32[tempDoublePtr + 4 >> 2] | 0; - $_r1_sroa_0_0_extract_trunc185$0 = $48$0; - $_r1_sroa_0_0_extract_trunc185 = $_r1_sroa_0_0_extract_trunc185$0; - $49 = ($_r1_sroa_0_0_extract_trunc185 | 0) == -1; - do { - if ($49) { - $121 = ($_r2_sroa_0_0_load266287 | 0) < -1; - if ($121) { - $_r1_sroa_0_2 = $_r3_sroa_0_0_load241; - break; - } - $123 = $47 + 1 | 0; - $_r1_sroa_0_0_insert_ext$0 = $123; - $_r1_sroa_0_0_insert_ext$1 = 0; - $$etemp$18$0 = 0; - $$etemp$18$1 = -1; - $_r1_sroa_0_0_insert_mask$0 = $48$0 & $$etemp$18$0; - $_r1_sroa_0_0_insert_mask$1 = $48$1 & $$etemp$18$1; - $_r1_sroa_0_0_insert_insert$0 = $_r1_sroa_0_0_insert_ext$0 | $_r1_sroa_0_0_insert_mask$0; - $_r1_sroa_0_0_insert_insert$1 = $_r1_sroa_0_0_insert_ext$1 | $_r1_sroa_0_0_insert_mask$1; - $124 = HEAP32[$_pre_phi301 >> 2] | 0; - $125 = $124; - $126 = $125 + ($47 << 1) | 0; - HEAP16[$126 >> 1] = 48; - var $_r1_sroa_0_1_in$1 = $_r1_sroa_0_0_insert_insert$1; - var $_r1_sroa_0_1_in$0 = $_r1_sroa_0_0_insert_insert$0; - label = 785; - break; - } else { - $51 = $47 + 1 | 0; - $52 = $_r1_sroa_0_0_extract_trunc185 + 48 | 0; - $53 = $52 & 65535; - $54 = HEAP32[$_pre_phi301 >> 2] | 0; - $55 = $54; - $56 = $55 + ($47 << 1) | 0; - HEAP16[$56 >> 1] = $53; - $_r1_sroa_0_0_insert_ext195$0 = $51; - $_r1_sroa_0_0_insert_ext195$1 = 0; - var $_r1_sroa_0_1_in$1 = $_r1_sroa_0_0_insert_ext195$1; - var $_r1_sroa_0_1_in$0 = $_r1_sroa_0_0_insert_ext195$0; - label = 785; - break; - } - } while (0); - do { - if ((label | 0) == 785) { - label = 0; - $_r1_sroa_0_1 = (HEAP32[tempDoublePtr >> 2] = $_r1_sroa_0_1_in$0, HEAP32[tempDoublePtr + 4 >> 2] = $_r1_sroa_0_1_in$1, +HEAPF64[tempDoublePtr >> 3]); - $58 = ($_r2_sroa_0_0_load266287 | 0) == 0; - if (!$58) { - $_r1_sroa_0_2 = $_r1_sroa_0_1; - break; - } - $_r1_sroa_0_0_extract_trunc169$0 = $_r1_sroa_0_1_in$0; - $_r1_sroa_0_0_extract_trunc169 = $_r1_sroa_0_0_extract_trunc169$0; - $60 = $_r1_sroa_0_0_extract_trunc169 + 1 | 0; - HEAP32[$_r3_sroa_0_0_cast264_pre_phi >> 2] = $60; - $61 = HEAP32[$_pre_phi301 >> 2] | 0; - $62 = $61; - $63 = $62 + ($_r1_sroa_0_0_extract_trunc169 << 1) | 0; - HEAP16[$63 >> 1] = 46; - $_r3_sroa_0_0_load240 = +HEAPF64[$_r3_sroa_0 >> 3]; - $ld$12$0 = $_r3_sroa_0 | 0; - $_r3_sroa_0_0_load240$$SHADOW$0 = HEAP32[$ld$12$0 >> 2] | 0; - $ld$13$1 = $_r3_sroa_0 + 4 | 0; - $_r3_sroa_0_0_load240$$SHADOW$1 = HEAP32[$ld$13$1 >> 2] | 0; - $_r1_sroa_0_2 = $_r3_sroa_0_0_load240; - } - } while (0); - $64 = $_r2_sroa_0_0_load266287 - 1 | 0; - $65 = HEAP32[$36 >> 2] | 0; - HEAP32[$_r3_sroa_0_0_cast264_pre_phi >> 2] = $65; - $66 = HEAP32[$45 >> 2] | 0; - $67 = ($65 | 0) < ($66 | 0); - if ($67) { - $69 = HEAP32[$33 >> 2] | 0; - HEAP32[$_r3_sroa_0_0_cast253 >> 2] = $69; - $70 = $65 + 1 | 0; - HEAP32[$36 >> 2] = $70; - $71 = $69 + 16 | 0; - $72 = $71; - $73 = HEAP32[$72 >> 2] | 0; - $74 = $73; - $75 = $74 + ($65 << 2) | 0; - $76 = HEAP32[$75 >> 2] | 0; - HEAP32[$_r3_sroa_0_0_cast264_pre_phi >> 2] = $76; - $phitmp = ($76 | 0) != -1; - $77 = ($64 | 0) > -2; - $or_cond = $phitmp | $77; - if (!$or_cond) { - break; - } - } else { - HEAP32[$_r3_sroa_0_0_cast264_pre_phi >> 2] = -1; - $_old = ($64 | 0) > -2; - if (!$_old) { - break; - } - } - $_r3_sroa_0_0_load242 = +HEAPF64[$_r3_sroa_0 >> 3]; - $ld$19$0 = $_r3_sroa_0 | 0; - $_r3_sroa_0_0_load242$$SHADOW$0 = HEAP32[$ld$19$0 >> 2] | 0; - $ld$20$1 = $_r3_sroa_0 + 4 | 0; - $_r3_sroa_0_0_load242$$SHADOW$1 = HEAP32[$ld$20$1 >> 2] | 0; - HEAPF64[$_r3_sroa_0 >> 3] = $_r1_sroa_0_2; - var $_r1_sroa_0_0 = $_r3_sroa_0_0_load242; - var $_r2_sroa_0_0_load266287 = $64; - var $_r3_sroa_0_0_load241 = $_r1_sroa_0_2; - var $_sink_in = $_r1_sroa_0_2; - } - HEAP32[$_r2_sroa_0_0_cast >> 2] = $64; - $79 = HEAP32[(106148 | 0) >> 2] | 0; - $80 = ($79 | 0) == 0; - if ($80) { - ___INIT_java_lang_String(); - } - $82 = _GC_MALLOC(36 | 0) | 0; - $83 = $82; - HEAP32[$83 >> 2] = 106144; - $84 = $82 + 4 | 0; - _memset($84 | 0 | 0, 0 | 0 | 0, 32 | 0 | 0); - $_r2_sroa_0_0_cast269 = $_r2_sroa_0; - HEAP32[$_r2_sroa_0_0_cast269 >> 2] = $82; - HEAPF64[tempDoublePtr >> 3] = $_r1_sroa_0_2; - var $85$0 = HEAP32[tempDoublePtr >> 2] | 0; - var $85$1 = HEAP32[tempDoublePtr + 4 >> 2] | 0; - $_r1_sroa_0_0_extract_trunc$0 = $85$0; - $_r1_sroa_0_0_extract_trunc = $_r1_sroa_0_0_extract_trunc$0; - $86 = $82 + 8 | 0; - $87 = $86; - HEAP32[$87 >> 2] = 0; - $88 = $82 + 12 | 0; - $89 = $88; - HEAP32[$89 >> 2] = 0; - $90 = $82 + 16 | 0; - $91 = $90; - HEAP32[$91 >> 2] = 0; - $92 = ($_r1_sroa_0_0_extract_trunc | 0) < 0; - if ($92) { - _XMLVM_ERROR(16136 | 0, 13208 | 0, 132112 | 0, 830); - return 0 | 0; - } - $94 = $6 + 12 | 0; - $95 = $94; - $96 = HEAP32[$95 >> 2] | 0; - $97 = ($96 | 0) < ($_r1_sroa_0_0_extract_trunc | 0); - if ($97) { - _XMLVM_ERROR(16136 | 0, 13208 | 0, 132112 | 0, 830); - return 0 | 0; - } - $99 = $82 + 24 | 0; - $100 = $99; - HEAP32[$100 >> 2] = 0; - $101 = HEAP32[(114668 | 0) >> 2] | 0; - $102 = ($101 | 0) == 0; - if (!$102) { - $105 = HEAP32[138960 >> 2] | 0; - $106 = _org_xmlvm_runtime_XMLVMArray_createSingleDimension___java_lang_Class_int($105, $_r1_sroa_0_0_extract_trunc) | 0; - $107 = $82 + 20 | 0; - $108 = $107; - HEAP32[$108 >> 2] = $106; - $109 = $82 + 28 | 0; - $110 = $109; - HEAP32[$110 >> 2] = $_r1_sroa_0_0_extract_trunc; - _java_lang_System_arraycopy___java_lang_Object_int_java_lang_Object_int_int($6, 0, $106, 0, $_r1_sroa_0_0_extract_trunc); - STACKTOP = __stackBase__; - return $82 | 0; - } - HEAP32[(114664 | 0) >> 2] = 1; - HEAP32[(114668 | 0) >> 2] = 1; - $$etemp$15 = 114672 | 0; - $$etemp$14$0 = -1; - $$etemp$14$1 = -1; - $st$16$0 = $$etemp$15 | 0; - HEAP32[$st$16$0 >> 2] = $$etemp$14$0; - $st$17$1 = $$etemp$15 + 4 | 0; - HEAP32[$st$17$1 >> 2] = $$etemp$14$1; - HEAP32[(114684 | 0) >> 2] = 25296 | 0; - HEAP32[(114704 | 0) >> 2] = 110728; - HEAP32[(114712 | 0) >> 2] = 8; - HEAP32[(114784 | 0 | 0) >> 2] = HEAP32[(107856 | 0 | 0) >> 2] | 0; - HEAP32[(114784 | 0 | 0) + 4 >> 2] = HEAP32[(107856 | 0 | 0) + 4 >> 2] | 0; - HEAP32[(114784 | 0 | 0) + 8 >> 2] = HEAP32[(107856 | 0 | 0) + 8 >> 2] | 0; - HEAP32[(114784 | 0 | 0) + 12 >> 2] = HEAP32[(107856 | 0 | 0) + 12 >> 2] | 0; - HEAP32[(114784 | 0 | 0) + 16 >> 2] = HEAP32[(107856 | 0 | 0) + 16 >> 2] | 0; - HEAP32[(114784 | 0 | 0) + 20 >> 2] = HEAP32[(107856 | 0 | 0) + 20 >> 2] | 0; - $105 = HEAP32[138960 >> 2] | 0; - $106 = _org_xmlvm_runtime_XMLVMArray_createSingleDimension___java_lang_Class_int($105, $_r1_sroa_0_0_extract_trunc) | 0; - $107 = $82 + 20 | 0; - $108 = $107; - HEAP32[$108 >> 2] = $106; - $109 = $82 + 28 | 0; - $110 = $109; - HEAP32[$110 >> 2] = $_r1_sroa_0_0_extract_trunc; - _java_lang_System_arraycopy___java_lang_Object_int_java_lang_Object_int_int($6, 0, $106, 0, $_r1_sroa_0_0_extract_trunc); - STACKTOP = __stackBase__; - return $82 | 0; -} function __ZN23b2EdgeAndPolygonContact8EvaluateEP10b2ManifoldRK11b2TransformS4_($this, $manifold, $xfA, $xfB) { $this = $this | 0; $manifold = $manifold | 0; @@ -593,6092 +184,6 @@ function __ZN23b2EdgeAndPolygonContact8EvaluateEP10b2ManifoldRK11b2TransformS4_( STACKTOP = __stackBase__; return; } -function _java_nio_charset_Charset_forNameInternal___java_lang_String($n1) { - $n1 = $n1 | 0; - var $_r0_sroa_0 = 0, $_r0_sroa_1 = 0, $_r1_sroa_0 = 0, $_r2_sroa_0 = 0, $_r3_sroa_0 = 0, $_r3_sroa_1 = 0, $_r5_sroa_0 = 0, $local_env_w4567aaac23b1b6 = 0; - var $local_env_w4567aaac23b1c16 = 0, $local_env_w4567aaac23b1c22 = 0, $local_env_w4567aaac23b1c24 = 0, $local_env_w4567aaac23b1c26 = 0, $local_env_w4567aaac23b1c29 = 0, $local_env_w4567aaac23b1c31 = 0, $local_env_w4567aaac23b1c35 = 0, $local_env_w4567aaac23b1c40 = 0; - var $local_env_w4567aaac23b1c42 = 0, $local_env_w4567aaac23b1c44 = 0, $local_env_w4567aaac23b1c48 = 0, $local_env_w4567aaac23b1c50 = 0, $1 = 0, $2 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $11 = 0, $_r1_sroa_0_0_load601 = 0, $12 = 0, $13 = 0, $14 = 0, $16 = 0; - var $17$0 = 0, $17$1 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $28 = 0, $29 = 0, $31 = 0, $32 = 0, $_r0_sroa_0_0_load622 = 0; - var $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $_r0_sroa_0_0_load621 = 0, $39 = 0; - var $_r5_sroa_0_0_load592 = 0, $40 = 0, $41 = 0, $_r0_sroa_0_0_load620 = 0, $42 = 0, $_r0_sroa_0_0_load619 = 0, $43 = 0, $45 = 0; - var $46 = 0, $47 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $55 = 0, $56 = 0; - var $57 = 0, $58 = 0, $59 = 0, $60 = 0, $61 = 0, $62 = 0, $64 = 0, $65 = 0; - var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $70 = 0, $tib1_0_ph_i543 = 0, $71 = 0, $72 = 0; - var $73 = 0, $74 = 0, $tib1_0_lcssa_i546 = 0, $dimension_tib1_0_lcssa_i547 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; - var $79 = 0, $dimension_tib1_029_i549 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $dimension_tib2_024_i551 = 0, $89 = 0, $90 = 0, $91 = 0, $92 = 0; - var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $tib2_0_lcssa_in_i553 = 0, $dimension_tib2_0_lcssa_i554 = 0, $tib2_0_lcssa_i555 = 0, $97 = 0; - var $98 = 0, $or_cond_i556 = 0, $tib1_121_i558 = 0, $99 = 0, $100 = 0, $101 = 0, $102 = 0, $i_0_i561 = 0; - var $104 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $110 = 0, $112 = 0, $113 = 0; - var $114 = 0, $115 = 0, $116 = 0, $_r1_sroa_0_0_load600 = 0, $118 = 0, $119 = 0, $120 = 0, $121 = 0; - var $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0; - var $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0; - var $139 = 0, $140 = 0, $142 = 0, $_r0_sroa_0_0_load618 = 0, $143 = 0, $_r5_sroa_0_0_load591 = 0, $145 = 0, $146 = 0; - var $147 = 0, $149 = 0, $150$0 = 0, $150$1 = 0, $151 = 0, $153 = 0, $154 = 0, $155 = 0; - var $156 = 0, $157 = 0, $158 = 0, $159 = 0, $160 = 0, $163 = 0, $164 = 0, $165 = 0; - var $168 = 0, $169 = 0, $170 = 0, $171 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0; - var $177 = 0, $178 = 0, $179 = 0, $180 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0; - var $186 = 0, $187 = 0, $188 = 0, $tib1_0_ph_i521 = 0, $189 = 0, $190 = 0, $191 = 0, $192 = 0; - var $tib1_0_lcssa_i524 = 0, $dimension_tib1_0_lcssa_i525 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $dimension_tib1_029_i527 = 0; - var $198 = 0, $199 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0; - var $206 = 0, $dimension_tib2_024_i529 = 0, $207 = 0, $208 = 0, $209 = 0, $210 = 0, $211 = 0, $212 = 0; - var $213 = 0, $214 = 0, $tib2_0_lcssa_in_i531 = 0, $dimension_tib2_0_lcssa_i532 = 0, $tib2_0_lcssa_i533 = 0, $215 = 0, $216 = 0, $or_cond_i534 = 0; - var $tib1_121_i536 = 0, $217 = 0, $218 = 0, $219 = 0, $220 = 0, $i_0_i539 = 0, $222 = 0, $224 = 0; - var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0; - var $234 = 0, $235 = 0, $236 = 0, $238 = 0, $239$0 = 0, $239$1 = 0, $240 = 0, $241 = 0; - var $242 = 0, $243 = 0, $244 = 0, $_r1_sroa_0_0_load = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0; - var $249 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0; - var $258 = 0, $259 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0; - var $266 = 0, $267 = 0, $269 = 0, $270 = 0, $271 = 0, $273 = 0, $274$0 = 0, $274$1 = 0; - var $275 = 0, $_r0_sroa_0_0_load617 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $280 = 0, $281 = 0; - var $282 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $290 = 0; - var $291 = 0, $_r5_sroa_0_0_load590 = 0, $293 = 0, $294 = 0, $296 = 0, $297 = 0, $_r0_sroa_0_0_load616 = 0, $298 = 0; - var $300 = 0, $302 = 0, $303 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $_r0_sroa_0_0_load615 = 0; - var $309 = 0, $_r0_sroa_0_0_load614 = 0, $310 = 0, $311 = 0, $312 = 0, $314 = 0, $316 = 0, $317 = 0; - var $318 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $326 = 0, $327 = 0, $328 = 0; - var $329 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $335 = 0, $336 = 0, $337 = 0; - var $338 = 0, $339 = 0, $340 = 0, $341 = 0, $tib1_0_ph_i500 = 0, $342 = 0, $343 = 0, $344 = 0; - var $345 = 0, $tib1_0_lcssa_i503 = 0, $dimension_tib1_0_lcssa_i504 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $350 = 0; - var $dimension_tib1_029_i506 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0; - var $358 = 0, $359 = 0, $dimension_tib2_024_i508 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0; - var $365 = 0, $366 = 0, $367 = 0, $tib2_0_lcssa_in_i510 = 0, $dimension_tib2_0_lcssa_i511 = 0, $tib2_0_lcssa_i512 = 0, $368 = 0, $369 = 0; - var $or_cond_i513 = 0, $tib1_121_i515 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $i_0_i518 = 0, $375 = 0; - var $377 = 0, $378 = 0, $379 = 0, $380 = 0, $381 = 0, $383 = 0, $384 = 0, $385 = 0; - var $386 = 0, $387 = 0, $389 = 0, $390 = 0, $392 = 0, $393$0 = 0, $393$1 = 0, $394 = 0; - var $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $400 = 0, $401 = 0, $402 = 0; - var $404 = 0, $405 = 0, $407 = 0, $408 = 0, $_r0_sroa_0_0_load613 = 0, $409 = 0, $410 = 0, $411 = 0; - var $412 = 0, $413 = 0, $414 = 0, $_r0_sroa_0_0_load612 = 0, $415 = 0, $_r5_sroa_0_0_load589 = 0, $416 = 0, $417 = 0; - var $_r0_sroa_0_0_load611 = 0, $418 = 0, $420 = 0, $421 = 0, $422 = 0, $424 = 0, $425$0 = 0, $425$1 = 0; - var $426 = 0, $427 = 0, $428 = 0, $429 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0; - var $434 = 0, $_r0_sroa_0_0_load610 = 0, $436 = 0, $_r5_sroa_0_0_load588 = 0, $437 = 0, $439 = 0, $440 = 0, $441 = 0; - var $444 = 0, $445 = 0, $446 = 0, $447 = 0, $449 = 0, $450 = 0, $451 = 0, $452 = 0; - var $453 = 0, $454 = 0, $455 = 0, $456 = 0, $458 = 0, $459 = 0, $460 = 0, $461 = 0; - var $462 = 0, $463 = 0, $464 = 0, $tib1_0_ph_i479 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0; - var $tib1_0_lcssa_i482 = 0, $dimension_tib1_0_lcssa_i483 = 0, $469 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $dimension_tib1_029_i485 = 0; - var $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $480 = 0, $481 = 0; - var $482 = 0, $dimension_tib2_024_i487 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0; - var $489 = 0, $490 = 0, $tib2_0_lcssa_in_i489 = 0, $dimension_tib2_0_lcssa_i490 = 0, $tib2_0_lcssa_i491 = 0, $491 = 0, $492 = 0, $or_cond_i492 = 0; - var $tib1_121_i494 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $i_0_i497 = 0, $498 = 0, $500 = 0; - var $501 = 0, $502 = 0, $503 = 0, $504 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0; - var $510 = 0, $512 = 0, $513 = 0, $516 = 0, $517 = 0, $519 = 0, $520$0 = 0, $520$1 = 0; - var $521 = 0, $522 = 0, $523 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0; - var $530 = 0, $531 = 0, $532 = 0, $_phi_trans_insert = 0, $_pre = 0, $534 = 0, $535 = 0, $536 = 0; - var $537 = 0, $538 = 0, $539 = 0, $540 = 0, $541 = 0, $_r2_sroa_0_0_load599 = 0, $542 = 0, $543 = 0; - var $544 = 0, $546 = 0, $547$0 = 0, $547$1 = 0, $548 = 0, $550 = 0, $551 = 0, $552 = 0; - var $555 = 0, $556 = 0, $557 = 0, $558 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0; - var $564 = 0, $565 = 0, $566 = 0, $567 = 0, $569 = 0, $570 = 0, $571 = 0, $572 = 0; - var $573 = 0, $574 = 0, $575 = 0, $tib1_0_ph_i458 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0; - var $tib1_0_lcssa_i461 = 0, $dimension_tib1_0_lcssa_i462 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $dimension_tib1_029_i464 = 0; - var $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $590 = 0, $591 = 0, $592 = 0; - var $593 = 0, $dimension_tib2_024_i466 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0; - var $600 = 0, $601 = 0, $tib2_0_lcssa_in_i468 = 0, $dimension_tib2_0_lcssa_i469 = 0, $tib2_0_lcssa_i470 = 0, $602 = 0, $603 = 0, $or_cond_i471 = 0; - var $tib1_121_i473 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $i_0_i476 = 0, $609 = 0, $611 = 0; - var $612 = 0, $613 = 0, $614 = 0, $615 = 0, $617 = 0, $618 = 0, $619 = 0, $620 = 0; - var $621 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0; - var $630 = 0, $632 = 0, $633 = 0, $_r2_sroa_0_0_load598 = 0, $_r0_sroa_0_0_load609 = 0, $_r0_sroa_0_0_load624 = 0, $634 = 0, $_r0_sroa_1_4__r3_sroa_1_4_idx108_idx = 0; - var $_r0_sroa_1_4_idx = 0, $635 = 0, $637 = 0, $638 = 0, $639 = 0, $642 = 0, $643 = 0, $644 = 0; - var $645 = 0, $647 = 0, $648 = 0, $649 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0; - var $654 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $660 = 0, $661 = 0, $662 = 0; - var $tib1_0_ph_i437 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $tib1_0_lcssa_i440 = 0, $dimension_tib1_0_lcssa_i441 = 0, $667 = 0; - var $668 = 0, $669 = 0, $670 = 0, $671 = 0, $dimension_tib1_029_i443 = 0, $672 = 0, $673 = 0, $674 = 0; - var $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $680 = 0, $dimension_tib2_024_i445 = 0, $681 = 0; - var $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $tib2_0_lcssa_in_i447 = 0; - var $dimension_tib2_0_lcssa_i448 = 0, $tib2_0_lcssa_i449 = 0, $689 = 0, $690 = 0, $or_cond_i450 = 0, $tib1_121_i452 = 0, $691 = 0, $692 = 0; - var $693 = 0, $694 = 0, $i_0_i455 = 0, $696 = 0, $698 = 0, $699 = 0, $700 = 0, $701 = 0; - var $702 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $711 = 0, $712 = 0; - var $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $720 = 0, $721 = 0; - var $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $tib1_0_ph_i416 = 0; - var $730 = 0, $731 = 0, $732 = 0, $733 = 0, $tib1_0_lcssa_i419 = 0, $dimension_tib1_0_lcssa_i420 = 0, $734 = 0, $735 = 0; - var $736 = 0, $737 = 0, $738 = 0, $dimension_tib1_029_i422 = 0, $739 = 0, $740 = 0, $741 = 0, $742 = 0; - var $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $dimension_tib2_024_i424 = 0, $748 = 0, $749 = 0; - var $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $tib2_0_lcssa_in_i426 = 0, $dimension_tib2_0_lcssa_i427 = 0; - var $tib2_0_lcssa_i428 = 0, $756 = 0, $757 = 0, $or_cond_i429 = 0, $tib1_121_i431 = 0, $758 = 0, $759 = 0, $760 = 0; - var $761 = 0, $i_0_i434 = 0, $763 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0; - var $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $777 = 0, $778 = 0, $780 = 0; - var $781$0 = 0, $781$1 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0; - var $788 = 0, $789 = 0, $790 = 0, $_r3_sroa_0_0_load596 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0; - var $796 = 0, $797 = 0, $_r3_sroa_0_0_load595 = 0, $798 = 0, $799 = 0, $_r0_sroa_0_0_load608 = 0, $800 = 0, $802 = 0; - var $803 = 0, $804 = 0, $807 = 0, $808 = 0, $809 = 0, $810 = 0, $812 = 0, $813 = 0; - var $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $821 = 0, $822 = 0; - var $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $tib1_0_ph_i395 = 0, $828 = 0, $829 = 0; - var $830 = 0, $831 = 0, $tib1_0_lcssa_i398 = 0, $dimension_tib1_0_lcssa_i399 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0; - var $836 = 0, $dimension_tib1_029_i401 = 0, $837 = 0, $838 = 0, $839 = 0, $840 = 0, $841 = 0, $842 = 0; - var $843 = 0, $844 = 0, $845 = 0, $dimension_tib2_024_i403 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0; - var $850 = 0, $851 = 0, $852 = 0, $853 = 0, $tib2_0_lcssa_in_i405 = 0, $dimension_tib2_0_lcssa_i406 = 0, $tib2_0_lcssa_i407 = 0, $854 = 0; - var $855 = 0, $or_cond_i408 = 0, $tib1_121_i410 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $i_0_i413 = 0; - var $861 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $869 = 0, $870 = 0; - var $871 = 0, $872 = 0, $873 = 0, $876 = 0, $877 = 0, $879 = 0, $880 = 0, $881 = 0; - var $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $888 = 0, $889 = 0, $890 = 0; - var $891 = 0, $892 = 0, $893 = 0, $894 = 0, $tib1_0_ph_i374 = 0, $895 = 0, $896 = 0, $897 = 0; - var $898 = 0, $tib1_0_lcssa_i377 = 0, $dimension_tib1_0_lcssa_i378 = 0, $899 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0; - var $dimension_tib1_029_i380 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $910 = 0; - var $911 = 0, $912 = 0, $dimension_tib2_024_i382 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0; - var $918 = 0, $919 = 0, $920 = 0, $tib2_0_lcssa_in_i384 = 0, $dimension_tib2_0_lcssa_i385 = 0, $tib2_0_lcssa_i386 = 0, $921 = 0, $922 = 0; - var $or_cond_i387 = 0, $tib1_121_i389 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $i_0_i392 = 0, $928 = 0; - var $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $936 = 0, $937 = 0, $938 = 0; - var $939 = 0, $940 = 0, $942 = 0, $943 = 0, $945 = 0, $946$0 = 0, $946$1 = 0, $947 = 0; - var $948 = 0, $949 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0; - var $_r0_sroa_0_0_load607 = 0, $957 = 0, $958 = 0, $960 = 0, $962 = 0, $963 = 0, $964 = 0, $967 = 0; - var $968 = 0, $969 = 0, $970 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0; - var $977 = 0, $978 = 0, $979 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0; - var $986 = 0, $987 = 0, $tib1_0_ph_i353 = 0, $988 = 0, $989 = 0, $990 = 0, $991 = 0, $tib1_0_lcssa_i356 = 0; - var $dimension_tib1_0_lcssa_i357 = 0, $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0, $dimension_tib1_029_i359 = 0, $997 = 0; - var $998 = 0, $999 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0; - var $dimension_tib2_024_i361 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $1010 = 0, $1011 = 0, $1012 = 0; - var $1013 = 0, $tib2_0_lcssa_in_i363 = 0, $dimension_tib2_0_lcssa_i364 = 0, $tib2_0_lcssa_i365 = 0, $1014 = 0, $1015 = 0, $or_cond_i366 = 0, $tib1_121_i368 = 0; - var $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $i_0_i371 = 0, $1021 = 0, $1023 = 0, $1024 = 0; - var $1025 = 0, $1026 = 0, $1027 = 0, $1029 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0; - var $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0; - var $1045 = 0, $1046 = 0, $_pr = 0, $1048 = 0, $1050 = 0, $1051 = 0, $1053 = 0, $1054 = 0; - var $_pre855 = 0, $1056 = 0, $1057 = 0, $_r0_sroa_0_0_load606 = 0, $1058 = 0, $1060 = 0, $1061 = 0, $1062 = 0; - var $1064 = 0, $1065$0 = 0, $1065$1 = 0, $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0, $1070 = 0; - var $1071 = 0, $1072 = 0, $1073 = 0, $1074 = 0, $1077 = 0, $1078 = 0, $1079 = 0, $1082 = 0; - var $1083 = 0, $1084 = 0, $1085 = 0, $1087 = 0, $1088 = 0, $1089 = 0, $1090 = 0, $1091 = 0; - var $1092 = 0, $1093 = 0, $1094 = 0, $1096 = 0, $1097 = 0, $1098 = 0, $1099 = 0, $1100 = 0; - var $1101 = 0, $1102 = 0, $tib1_0_ph_i332 = 0, $1103 = 0, $1104 = 0, $1105 = 0, $1106 = 0, $tib1_0_lcssa_i335 = 0; - var $dimension_tib1_0_lcssa_i336 = 0, $1107 = 0, $1108 = 0, $1109 = 0, $1110 = 0, $1111 = 0, $dimension_tib1_029_i338 = 0, $1112 = 0; - var $1113 = 0, $1114 = 0, $1115 = 0, $1116 = 0, $1117 = 0, $1118 = 0, $1119 = 0, $1120 = 0; - var $dimension_tib2_024_i340 = 0, $1121 = 0, $1122 = 0, $1123 = 0, $1124 = 0, $1125 = 0, $1126 = 0, $1127 = 0; - var $1128 = 0, $tib2_0_lcssa_in_i342 = 0, $dimension_tib2_0_lcssa_i343 = 0, $tib2_0_lcssa_i344 = 0, $1129 = 0, $1130 = 0, $or_cond_i345 = 0, $tib1_121_i347 = 0; - var $1131 = 0, $1132 = 0, $1133 = 0, $1134 = 0, $i_0_i350 = 0, $1136 = 0, $1138 = 0, $1139 = 0; - var $1140 = 0, $1141 = 0, $1142 = 0, $1144 = 0, $1145 = 0, $1146 = 0, $1147 = 0, $1148 = 0; - var $1151 = 0, $1152 = 0, $1154 = 0, $1155 = 0, $1156 = 0, $1157 = 0, $1158 = 0, $1159 = 0; - var $1160 = 0, $1161 = 0, $1163 = 0, $1164 = 0, $1165 = 0, $1166 = 0, $1167 = 0, $1168 = 0; - var $1169 = 0, $tib1_0_ph_i311 = 0, $1170 = 0, $1171 = 0, $1172 = 0, $1173 = 0, $tib1_0_lcssa_i314 = 0, $dimension_tib1_0_lcssa_i315 = 0; - var $1174 = 0, $1175 = 0, $1176 = 0, $1177 = 0, $1178 = 0, $dimension_tib1_029_i317 = 0, $1179 = 0, $1180 = 0; - var $1181 = 0, $1182 = 0, $1183 = 0, $1184 = 0, $1185 = 0, $1186 = 0, $1187 = 0, $dimension_tib2_024_i319 = 0; - var $1188 = 0, $1189 = 0, $1190 = 0, $1191 = 0, $1192 = 0, $1193 = 0, $1194 = 0, $1195 = 0; - var $tib2_0_lcssa_in_i321 = 0, $dimension_tib2_0_lcssa_i322 = 0, $tib2_0_lcssa_i323 = 0, $1196 = 0, $1197 = 0, $or_cond_i324 = 0, $tib1_121_i326 = 0, $1198 = 0; - var $1199 = 0, $1200 = 0, $1201 = 0, $i_0_i329 = 0, $1203 = 0, $1205 = 0, $1206 = 0, $1207 = 0; - var $1208 = 0, $1209 = 0, $1211 = 0, $1212 = 0, $1213 = 0, $1214 = 0, $1215 = 0, $1217 = 0; - var $1218 = 0, $1220 = 0, $1221 = 0, $1222 = 0, $_r0_sroa_0_0_load605 = 0, $_r3_sroa_0_0_load594 = 0, $_r0_sroa_0_0_load623 = 0, $1223 = 0; - var $_r0_sroa_1_4__r3_sroa_1_4_idx_idx = 0, $_r0_sroa_1_4_idx156 = 0, $1224 = 0, $1226 = 0, $1227 = 0, $1228 = 0, $1231 = 0, $1232 = 0; - var $1233 = 0, $1234 = 0, $1236 = 0, $1237 = 0, $1238 = 0, $1239 = 0, $1240 = 0, $1241 = 0; - var $1242 = 0, $1243 = 0, $1245 = 0, $1246 = 0, $1247 = 0, $1248 = 0, $1249 = 0, $1250 = 0; - var $1251 = 0, $tib1_0_ph_i290 = 0, $1252 = 0, $1253 = 0, $1254 = 0, $1255 = 0, $tib1_0_lcssa_i293 = 0, $dimension_tib1_0_lcssa_i294 = 0; - var $1256 = 0, $1257 = 0, $1258 = 0, $1259 = 0, $1260 = 0, $dimension_tib1_029_i296 = 0, $1261 = 0, $1262 = 0; - var $1263 = 0, $1264 = 0, $1265 = 0, $1266 = 0, $1267 = 0, $1268 = 0, $1269 = 0, $dimension_tib2_024_i298 = 0; - var $1270 = 0, $1271 = 0, $1272 = 0, $1273 = 0, $1274 = 0, $1275 = 0, $1276 = 0, $1277 = 0; - var $tib2_0_lcssa_in_i300 = 0, $dimension_tib2_0_lcssa_i301 = 0, $tib2_0_lcssa_i302 = 0, $1278 = 0, $1279 = 0, $or_cond_i303 = 0, $tib1_121_i305 = 0, $1280 = 0; - var $1281 = 0, $1282 = 0, $1283 = 0, $i_0_i308 = 0, $1285 = 0, $1287 = 0, $1288 = 0, $1289 = 0; - var $1290 = 0, $1291 = 0, $1293 = 0, $1294 = 0, $1295 = 0, $1296 = 0, $1297 = 0, $1300 = 0; - var $1301 = 0, $1303 = 0, $1304 = 0, $1305 = 0, $1306 = 0, $1307 = 0, $1308 = 0, $1309 = 0; - var $1310 = 0, $1312 = 0, $1313 = 0, $1314 = 0, $1315 = 0, $1316 = 0, $1317 = 0, $1318 = 0; - var $tib1_0_ph_i269 = 0, $1319 = 0, $1320 = 0, $1321 = 0, $1322 = 0, $tib1_0_lcssa_i272 = 0, $dimension_tib1_0_lcssa_i273 = 0, $1323 = 0; - var $1324 = 0, $1325 = 0, $1326 = 0, $1327 = 0, $dimension_tib1_029_i275 = 0, $1328 = 0, $1329 = 0, $1330 = 0; - var $1331 = 0, $1332 = 0, $1333 = 0, $1334 = 0, $1335 = 0, $1336 = 0, $dimension_tib2_024_i277 = 0, $1337 = 0; - var $1338 = 0, $1339 = 0, $1340 = 0, $1341 = 0, $1342 = 0, $1343 = 0, $1344 = 0, $tib2_0_lcssa_in_i279 = 0; - var $dimension_tib2_0_lcssa_i280 = 0, $tib2_0_lcssa_i281 = 0, $1345 = 0, $1346 = 0, $or_cond_i282 = 0, $tib1_121_i284 = 0, $1347 = 0, $1348 = 0; - var $1349 = 0, $1350 = 0, $i_0_i287 = 0, $1352 = 0, $1354 = 0, $1355 = 0, $1356 = 0, $1357 = 0; - var $1358 = 0, $1360 = 0, $1361 = 0, $1362 = 0, $1363 = 0, $1364 = 0, $1366 = 0, $1367 = 0; - var $1369 = 0, $1370$0 = 0, $1370$1 = 0, $1371 = 0, $1372 = 0, $1373 = 0, $1374 = 0, $1375 = 0; - var $1376 = 0, $1377 = 0, $1378 = 0, $1379 = 0, $_r0_sroa_0_0_load604 = 0, $1381 = 0, $1382 = 0, $_r3_sroa_0_0_load593 = 0; - var $1384 = 0, $1385 = 0, $1386 = 0, $1387 = 0, $1388 = 0, $1389 = 0, $1390 = 0, $_r3_sroa_0_0_load = 0; - var $1391 = 0, $1392 = 0, $1394 = 0, $1395 = 0, $1396 = 0, $1399 = 0, $1400 = 0, $1401 = 0; - var $1402 = 0, $1404 = 0, $1405 = 0, $1406 = 0, $1407 = 0, $1408 = 0, $1409 = 0, $1410 = 0; - var $1411 = 0, $1413 = 0, $1414 = 0, $1415 = 0, $1416 = 0, $1417 = 0, $1418 = 0, $1419 = 0; - var $tib1_0_ph_i248 = 0, $1420 = 0, $1421 = 0, $1422 = 0, $1423 = 0, $tib1_0_lcssa_i251 = 0, $dimension_tib1_0_lcssa_i252 = 0, $1424 = 0; - var $1425 = 0, $1426 = 0, $1427 = 0, $1428 = 0, $dimension_tib1_029_i254 = 0, $1429 = 0, $1430 = 0, $1431 = 0; - var $1432 = 0, $1433 = 0, $1434 = 0, $1435 = 0, $1436 = 0, $1437 = 0, $dimension_tib2_024_i256 = 0, $1438 = 0; - var $1439 = 0, $1440 = 0, $1441 = 0, $1442 = 0, $1443 = 0, $1444 = 0, $1445 = 0, $tib2_0_lcssa_in_i258 = 0; - var $dimension_tib2_0_lcssa_i259 = 0, $tib2_0_lcssa_i260 = 0, $1446 = 0, $1447 = 0, $or_cond_i261 = 0, $tib1_121_i263 = 0, $1448 = 0, $1449 = 0; - var $1450 = 0, $1451 = 0, $i_0_i266 = 0, $1453 = 0, $1455 = 0, $1456 = 0, $1457 = 0, $1458 = 0; - var $1459 = 0, $1461 = 0, $1462 = 0, $1463 = 0, $1464 = 0, $1465 = 0, $1468 = 0, $1469 = 0; - var $1471 = 0, $1472 = 0, $1473 = 0, $1474 = 0, $1475 = 0, $1476 = 0, $1477 = 0, $1478 = 0; - var $1480 = 0, $1481 = 0, $1482 = 0, $1483 = 0, $1484 = 0, $1485 = 0, $1486 = 0, $tib1_0_ph_i227 = 0; - var $1487 = 0, $1488 = 0, $1489 = 0, $1490 = 0, $tib1_0_lcssa_i230 = 0, $dimension_tib1_0_lcssa_i231 = 0, $1491 = 0, $1492 = 0; - var $1493 = 0, $1494 = 0, $1495 = 0, $dimension_tib1_029_i233 = 0, $1496 = 0, $1497 = 0, $1498 = 0, $1499 = 0; - var $1500 = 0, $1501 = 0, $1502 = 0, $1503 = 0, $1504 = 0, $dimension_tib2_024_i235 = 0, $1505 = 0, $1506 = 0; - var $1507 = 0, $1508 = 0, $1509 = 0, $1510 = 0, $1511 = 0, $1512 = 0, $tib2_0_lcssa_in_i237 = 0, $dimension_tib2_0_lcssa_i238 = 0; - var $tib2_0_lcssa_i239 = 0, $1513 = 0, $1514 = 0, $or_cond_i240 = 0, $tib1_121_i242 = 0, $1515 = 0, $1516 = 0, $1517 = 0; - var $1518 = 0, $i_0_i245 = 0, $1520 = 0, $1522 = 0, $1523 = 0, $1524 = 0, $1525 = 0, $1526 = 0; - var $1528 = 0, $1529 = 0, $1530 = 0, $1531 = 0, $1532 = 0, $1533 = 0, $1534 = 0, $1536 = 0; - var $1537$0 = 0, $1537$1 = 0, $1538 = 0, $1539 = 0, $1540 = 0, $1541 = 0, $1542 = 0, $1543 = 0; - var $1544 = 0, $1545 = 0, $1546 = 0, $1548 = 0, $1549 = 0, $1551 = 0, $1552$0 = 0, $1552$1 = 0; - var $1553 = 0, $1554 = 0, $1555 = 0, $1556 = 0, $1557 = 0, $_r0_sroa_0_0_load602 = 0, $1558 = 0, $1559 = 0; - var $1561 = 0, $1563 = 0, $1564 = 0, $1565 = 0, $1568 = 0, $1569 = 0, $1570 = 0, $1571 = 0; - var $1573 = 0, $1574 = 0, $1575 = 0, $1576 = 0, $1577 = 0, $1578 = 0, $1579 = 0, $1580 = 0; - var $1582 = 0, $1583 = 0, $1584 = 0, $1585 = 0, $1586 = 0, $1587 = 0, $1588 = 0, $tib1_0_ph_i185 = 0; - var $1589 = 0, $1590 = 0, $1591 = 0, $1592 = 0, $tib1_0_lcssa_i188 = 0, $dimension_tib1_0_lcssa_i189 = 0, $1593 = 0, $1594 = 0; - var $1595 = 0, $1596 = 0, $1597 = 0, $dimension_tib1_029_i191 = 0, $1598 = 0, $1599 = 0, $1600 = 0, $1601 = 0; - var $1602 = 0, $1603 = 0, $1604 = 0, $1605 = 0, $1606 = 0, $dimension_tib2_024_i193 = 0, $1607 = 0, $1608 = 0; - var $1609 = 0, $1610 = 0, $1611 = 0, $1612 = 0, $1613 = 0, $1614 = 0, $tib2_0_lcssa_in_i195 = 0, $dimension_tib2_0_lcssa_i196 = 0; - var $tib2_0_lcssa_i197 = 0, $1615 = 0, $1616 = 0, $or_cond_i198 = 0, $tib1_121_i200 = 0, $1617 = 0, $1618 = 0, $1619 = 0; - var $1620 = 0, $i_0_i203 = 0, $1622 = 0, $1624 = 0, $1625 = 0, $1626 = 0, $1627 = 0, $1628 = 0; - var $1630 = 0, $1631 = 0, $1632 = 0, $1633 = 0, $1634 = 0, $1635 = 0, $1636 = 0, $1638 = 0; - var $1639$0 = 0, $1639$1 = 0, $1640 = 0, $1641 = 0, $1642 = 0, $1643 = 0, $1644 = 0, $1645 = 0; - var $1646 = 0, $1647 = 0, $1648 = 0, $1650 = 0, $1651 = 0, $1653 = 0, $1654$0 = 0, $1654$1 = 0; - var $1655 = 0, $1656 = 0, $1657 = 0, $1658 = 0, $1659 = 0, $_r2_sroa_0_0_load = 0, $1660 = 0, $1661 = 0; - var $1663 = 0, $1664 = 0, $1666 = 0, $1667$0 = 0, $1667$1 = 0, $1668 = 0, $_r0_sroa_0_0_load = 0, $1669 = 0; - var $1670 = 0, $1671 = 0, $1672 = 0, $1673 = 0, $1674 = 0, $1675 = 0, $1677 = 0, $1678 = 0; - var $1679 = 0, $1682 = 0, $1683 = 0, $1684 = 0, $1685 = 0, $1687 = 0, $1688 = 0, $1689 = 0; - var $1690 = 0, $1691 = 0, $1692 = 0, $1693 = 0, $1694 = 0, $1696 = 0, $1697 = 0, $1698 = 0; - var $1699 = 0, $1700 = 0, $1701 = 0, $1702 = 0, $tib1_0_ph_i = 0, $1703 = 0, $1704 = 0, $1705 = 0; - var $1706 = 0, $tib1_0_lcssa_i = 0, $dimension_tib1_0_lcssa_i = 0, $1707 = 0, $1708 = 0, $1709 = 0, $1710 = 0, $1711 = 0; - var $dimension_tib1_029_i = 0, $1712 = 0, $1713 = 0, $1714 = 0, $1715 = 0, $1716 = 0, $1717 = 0, $1718 = 0; - var $1719 = 0, $1720 = 0, $dimension_tib2_024_i = 0, $1721 = 0, $1722 = 0, $1723 = 0, $1724 = 0, $1725 = 0; - var $1726 = 0, $1727 = 0, $1728 = 0, $tib2_0_lcssa_in_i = 0, $dimension_tib2_0_lcssa_i = 0, $tib2_0_lcssa_i = 0, $1729 = 0, $1730 = 0; - var $or_cond_i = 0, $tib1_121_i = 0, $1731 = 0, $1732 = 0, $1733 = 0, $1734 = 0, $i_0_i = 0, $1736 = 0; - var $1738 = 0, $1739 = 0, $1740 = 0, $1741 = 0, $1742 = 0, $1744 = 0, $1745 = 0, $1746 = 0; - var $1747 = 0, $1748 = 0; - var label = 0; - var __stackBase__ = 0; - __stackBase__ = STACKTOP; - STACKTOP = STACKTOP + 536 | 0; - label = 1; - var setjmpLabel = 0; - var setjmpTable = STACKTOP; - STACKTOP = STACKTOP + 168 | 0; - HEAP32[setjmpTable >> 2] = 0; - while (1) switch (label | 0) { - case 1: - $_r0_sroa_1 = __stackBase__ | 0; - $_r3_sroa_1 = __stackBase__ + 8 | 0; - $local_env_w4567aaac23b1b6 = __stackBase__ + 16 | 0; - $local_env_w4567aaac23b1c16 = __stackBase__ + 56 | 0; - $local_env_w4567aaac23b1c22 = __stackBase__ + 96 | 0; - $local_env_w4567aaac23b1c24 = __stackBase__ + 136 | 0; - $local_env_w4567aaac23b1c26 = __stackBase__ + 176 | 0; - $local_env_w4567aaac23b1c29 = __stackBase__ + 216 | 0; - $local_env_w4567aaac23b1c31 = __stackBase__ + 256 | 0; - $local_env_w4567aaac23b1c35 = __stackBase__ + 296 | 0; - $local_env_w4567aaac23b1c40 = __stackBase__ + 336 | 0; - $local_env_w4567aaac23b1c42 = __stackBase__ + 376 | 0; - $local_env_w4567aaac23b1c44 = __stackBase__ + 416 | 0; - $local_env_w4567aaac23b1c48 = __stackBase__ + 456 | 0; - $local_env_w4567aaac23b1c50 = __stackBase__ + 496 | 0; - $1 = HEAP32[(98772 | 0) >> 2] | 0; - $2 = ($1 | 0) == 0; - if ($2) { - label = 2; - break; - } else { - label = 3; - break; - } - case 2: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 3; - break; - case 3: - $_r5_sroa_0 = $n1; - $5 = invoke_ii(556, 709 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $6 = $5; - $_r0_sroa_0 = $6; - $7 = HEAP32[(98772 | 0) >> 2] | 0; - $8 = ($7 | 0) == 0; - if ($8) { - label = 4; - break; - } else { - label = 5; - break; - } - case 4: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 5; - break; - case 5: - $11 = HEAP32[136048 >> 2] | 0; - $_r1_sroa_0 = $11; - $_r1_sroa_0_0_load601 = $_r1_sroa_0; - $12 = invoke_ii(202, $_r1_sroa_0_0_load601 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $13 = HEAP32[(105500 | 0) >> 2] | 0; - $14 = ($13 | 0) == 0; - if ($14) { - label = 6; - break; - } else { - label = 7; - break; - } - case 6: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 7; - break; - case 7: - $16 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $17$0 = $16; - $17$1 = 0; - $18 = invoke_iii(364, $17$0 | 0, $17$1 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $19 = $local_env_w4567aaac23b1b6; - $20 = $18 + 16 | 0; - $21 = $20; - $22 = HEAP32[$21 >> 2] | 0; - _memcpy($19 | 0, $22 | 0, 40); - $23 = HEAP32[$21 >> 2] | 0; - $24 = $23; - $25 = _saveSetjmp($24 | 0, label, setjmpTable) | 0; - label = 413; - break; - case 413: - $26 = ($25 | 0) == 0; - if ($26) { - label = 8; - break; - } else { - label = 11; - break; - } - case 8: - $28 = HEAP32[(98772 | 0) >> 2] | 0; - $29 = ($28 | 0) == 0; - if ($29) { - label = 9; - break; - } else { - label = 10; - break; - } - case 9: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 10; - break; - case 10: - $31 = HEAP32[140056 >> 2] | 0; - $32 = $31; - $_r0_sroa_0 = $32; - $_r0_sroa_0_0_load622 = $_r0_sroa_0; - $33 = $_r0_sroa_0_0_load622; - $34 = $33 | 0; - $35 = HEAP32[$34 >> 2] | 0; - $36 = $35 + 160 | 0; - $37 = HEAP32[$36 >> 2] | 0; - $38 = $37; - $_r0_sroa_0_0_load621 = $_r0_sroa_0; - $39 = $_r0_sroa_0_0_load621; - $_r5_sroa_0_0_load592 = $_r5_sroa_0; - $40 = invoke_iii($38 | 0, $39 | 0, $_r5_sroa_0_0_load592 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $41 = $40; - $_r0_sroa_0 = $41; - $_r0_sroa_0_0_load620 = $_r0_sroa_0; - $_r0_sroa_0 = $_r0_sroa_0_0_load620; - $42 = HEAP32[$21 >> 2] | 0; - _memcpy($42 | 0, $19 | 0, 40); - $_r0_sroa_0_0_load619 = $_r0_sroa_0; - $43 = ($_r0_sroa_0_0_load619 | 0) == 0; - if ($43) { - label = 32; - break; - } else { - label = 28; - break; - } - case 11: - $45 = HEAP32[$21 >> 2] | 0; - _memcpy($45 | 0, $19 | 0, 40); - $46 = HEAP32[(107740 | 0) >> 2] | 0; - $47 = ($46 | 0) == 0; - if ($47) { - label = 12; - break; - } else { - label = 13; - break; - } - case 12: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 13; - break; - case 13: - $50 = $18 + 20 | 0; - $51 = $50; - $52 = HEAP32[$51 >> 2] | 0; - $53 = ($52 | 0) == 0; - if ($53) { - label = 27; - break; - } else { - label = 14; - break; - } - case 14: - $55 = HEAP32[137616 >> 2] | 0; - $56 = $52; - $57 = HEAP32[$56 >> 2] | 0; - $58 = $57; - $59 = $55 + 8 | 0; - $60 = $59; - $61 = HEAP32[$60 >> 2] | 0; - $62 = ($57 | 0) == 82712; - if ($62) { - label = 15; - break; - } else { - $tib1_0_ph_i543 = $58; - label = 16; - break; - } - case 15: - $64 = $52 + 8 | 0; - $65 = $64; - $66 = HEAP32[$65 >> 2] | 0; - $67 = $66 + 8 | 0; - $68 = $67; - $69 = HEAP32[$68 >> 2] | 0; - $70 = $69; - $tib1_0_ph_i543 = $70; - label = 16; - break; - case 16: - $71 = $tib1_0_ph_i543 + 56 | 0; - $72 = HEAP32[$71 >> 2] | 0; - $73 = ($72 | 0) == 0; - if ($73) { - var $dimension_tib1_0_lcssa_i547 = 0; - var $tib1_0_lcssa_i546 = $tib1_0_ph_i543; - label = 18; - break; - } else { - var $dimension_tib1_029_i549 = 0; - var $79 = $72; - label = 19; - break; - } - case 17: - $74 = $82; - var $dimension_tib1_0_lcssa_i547 = $83; - var $tib1_0_lcssa_i546 = $74; - label = 18; - break; - case 18: - $75 = $61 + 56 | 0; - $76 = $75; - $77 = HEAP32[$76 >> 2] | 0; - $78 = ($77 | 0) == 0; - if ($78) { - var $dimension_tib2_0_lcssa_i554 = 0; - var $tib2_0_lcssa_in_i553 = $61; - label = 21; - break; - } else { - var $dimension_tib2_024_i551 = 0; - var $88 = $77; - label = 20; - break; - } - case 19: - $80 = $79 + 8 | 0; - $81 = $80; - $82 = HEAP32[$81 >> 2] | 0; - $83 = $dimension_tib1_029_i549 + 1 | 0; - $84 = $82 + 56 | 0; - $85 = $84; - $86 = HEAP32[$85 >> 2] | 0; - $87 = ($86 | 0) == 0; - if ($87) { - label = 17; - break; - } else { - var $dimension_tib1_029_i549 = $83; - var $79 = $86; - label = 19; - break; - } - case 20: - $89 = $88 + 8 | 0; - $90 = $89; - $91 = HEAP32[$90 >> 2] | 0; - $92 = $dimension_tib2_024_i551 + 1 | 0; - $93 = $91 + 56 | 0; - $94 = $93; - $95 = HEAP32[$94 >> 2] | 0; - $96 = ($95 | 0) == 0; - if ($96) { - var $dimension_tib2_0_lcssa_i554 = $92; - var $tib2_0_lcssa_in_i553 = $91; - label = 21; - break; - } else { - var $dimension_tib2_024_i551 = $92; - var $88 = $95; - label = 20; - break; - } - case 21: - $tib2_0_lcssa_i555 = $tib2_0_lcssa_in_i553; - $97 = ($dimension_tib1_0_lcssa_i547 | 0) < ($dimension_tib2_0_lcssa_i554 | 0); - $98 = ($tib1_0_lcssa_i546 | 0) == 0; - $or_cond_i556 = $97 | $98; - if ($or_cond_i556) { - label = 27; - break; - } else { - $tib1_121_i558 = $tib1_0_lcssa_i546; - label = 22; - break; - } - case 22: - $99 = ($tib1_121_i558 | 0) == ($tib2_0_lcssa_i555 | 0); - if ($99) { - label = 54; - break; - } else { - label = 23; - break; - } - case 23: - $100 = $tib1_121_i558 + 108 | 0; - $101 = HEAP32[$100 >> 2] | 0; - $102 = $tib1_121_i558 + 112 | 0; - $i_0_i561 = 0; - label = 24; - break; - case 24: - $104 = ($i_0_i561 | 0) < ($101 | 0); - if ($104) { - label = 25; - break; - } else { - label = 26; - break; - } - case 25: - $106 = HEAP32[$102 >> 2] | 0; - $107 = $106 + ($i_0_i561 << 2) | 0; - $108 = HEAP32[$107 >> 2] | 0; - $109 = ($108 | 0) == ($tib2_0_lcssa_i555 | 0); - $110 = $i_0_i561 + 1 | 0; - if ($109) { - label = 54; - break; - } else { - $i_0_i561 = $110; - label = 24; - break; - } - case 26: - $112 = $tib1_121_i558 + 40 | 0; - $113 = HEAP32[$112 >> 2] | 0; - $114 = ($113 | 0) == 0; - if ($114) { - label = 27; - break; - } else { - $tib1_121_i558 = $113; - label = 22; - break; - } - case 27: - $115 = HEAP32[$21 >> 2] | 0; - $116 = $115; - invoke_vii(48, $116 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 28: - $_r1_sroa_0_0_load600 = $_r1_sroa_0; - $118 = $_r1_sroa_0_0_load600 + 4 | 0; - $119 = $118; - $120 = HEAP32[$119 >> 2] | 0; - $121 = $120 + 8 | 0; - $122 = $121; - $123 = HEAP32[$122 >> 2] | 0; - $124 = $123 - 1 | 0; - HEAP32[$122 >> 2] = $124; - $125 = HEAP32[$119 >> 2] | 0; - $126 = $125 + 8 | 0; - $127 = $126; - $128 = HEAP32[$127 >> 2] | 0; - $129 = ($128 | 0) == 0; - if ($129) { - label = 29; - break; - } else { - label = 31; - break; - } - case 29: - invoke_vi(28, $_r1_sroa_0_0_load600 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $131 = HEAP32[$119 >> 2] | 0; - $132 = $131 + 16 | 0; - $133 = $132; - $134 = HEAP32[$133 >> 2] | 0; - $135 = $134 + 8 | 0; - $136 = $135; - $137 = HEAP32[$136 >> 2] | 0; - $138 = $137; - $139; - $140 = ($139 | 0) == 0; - if ($140) { - label = 31; - break; - } else { - label = 30; - break; - } - case 30: - $142 = invoke_iii(268, 31e3 | 0 | 0, (tempInt = STACKTOP, STACKTOP = STACKTOP + 8 | 0, HEAP32[tempInt >> 2] = $139, tempInt) | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 31; - break; - case 31: - $_r0_sroa_0_0_load618 = $_r0_sroa_0; - $143 = $_r0_sroa_0_0_load618; - STACKTOP = __stackBase__; - return $143 | 0; - case 32: - $_r5_sroa_0_0_load591 = $_r5_sroa_0; - $145 = ($_r5_sroa_0_0_load591 | 0) == 0; - $146 = HEAP32[(105500 | 0) >> 2] | 0; - $147 = ($146 | 0) == 0; - if ($147) { - label = 33; - break; - } else { - label = 34; - break; - } - case 33: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 34; - break; - case 34: - $149 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $150$0 = $149; - $150$1 = 0; - $151 = invoke_iii(364, $150$0 | 0, $150$1 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - if ($145) { - label = 35; - break; - } else { - label = 62; - break; - } - case 35: - $153 = $local_env_w4567aaac23b1c16; - $154 = $151 + 16 | 0; - $155 = $154; - $156 = HEAP32[$155 >> 2] | 0; - _memcpy($153 | 0, $156 | 0, 40); - $157 = HEAP32[$155 >> 2] | 0; - $158 = $157; - $159 = _saveSetjmp($158 | 0, label, setjmpTable) | 0; - label = 414; - break; - case 414: - $160 = ($159 | 0) == 0; - if ($160) { - label = 36; - break; - } else { - label = 37; - break; - } - case 36: - invoke_viiii(14, 16136 | 0 | 0, 11648 | 0 | 0, 126872 | 0 | 0, 1457 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 37: - $163 = HEAP32[$155 >> 2] | 0; - _memcpy($163 | 0, $153 | 0, 40); - $164 = HEAP32[(107740 | 0) >> 2] | 0; - $165 = ($164 | 0) == 0; - if ($165) { - label = 38; - break; - } else { - label = 39; - break; - } - case 38: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 39; - break; - case 39: - $168 = $151 + 20 | 0; - $169 = $168; - $170 = HEAP32[$169 >> 2] | 0; - $171 = ($170 | 0) == 0; - if ($171) { - label = 53; - break; - } else { - label = 40; - break; - } - case 40: - $173 = HEAP32[137616 >> 2] | 0; - $174 = $170; - $175 = HEAP32[$174 >> 2] | 0; - $176 = $175; - $177 = $173 + 8 | 0; - $178 = $177; - $179 = HEAP32[$178 >> 2] | 0; - $180 = ($175 | 0) == 82712; - if ($180) { - label = 41; - break; - } else { - $tib1_0_ph_i521 = $176; - label = 42; - break; - } - case 41: - $182 = $170 + 8 | 0; - $183 = $182; - $184 = HEAP32[$183 >> 2] | 0; - $185 = $184 + 8 | 0; - $186 = $185; - $187 = HEAP32[$186 >> 2] | 0; - $188 = $187; - $tib1_0_ph_i521 = $188; - label = 42; - break; - case 42: - $189 = $tib1_0_ph_i521 + 56 | 0; - $190 = HEAP32[$189 >> 2] | 0; - $191 = ($190 | 0) == 0; - if ($191) { - var $dimension_tib1_0_lcssa_i525 = 0; - var $tib1_0_lcssa_i524 = $tib1_0_ph_i521; - label = 44; - break; - } else { - var $dimension_tib1_029_i527 = 0; - var $197 = $190; - label = 45; - break; - } - case 43: - $192 = $200; - var $dimension_tib1_0_lcssa_i525 = $201; - var $tib1_0_lcssa_i524 = $192; - label = 44; - break; - case 44: - $193 = $179 + 56 | 0; - $194 = $193; - $195 = HEAP32[$194 >> 2] | 0; - $196 = ($195 | 0) == 0; - if ($196) { - var $dimension_tib2_0_lcssa_i532 = 0; - var $tib2_0_lcssa_in_i531 = $179; - label = 47; - break; - } else { - var $dimension_tib2_024_i529 = 0; - var $206 = $195; - label = 46; - break; - } - case 45: - $198 = $197 + 8 | 0; - $199 = $198; - $200 = HEAP32[$199 >> 2] | 0; - $201 = $dimension_tib1_029_i527 + 1 | 0; - $202 = $200 + 56 | 0; - $203 = $202; - $204 = HEAP32[$203 >> 2] | 0; - $205 = ($204 | 0) == 0; - if ($205) { - label = 43; - break; - } else { - var $dimension_tib1_029_i527 = $201; - var $197 = $204; - label = 45; - break; - } - case 46: - $207 = $206 + 8 | 0; - $208 = $207; - $209 = HEAP32[$208 >> 2] | 0; - $210 = $dimension_tib2_024_i529 + 1 | 0; - $211 = $209 + 56 | 0; - $212 = $211; - $213 = HEAP32[$212 >> 2] | 0; - $214 = ($213 | 0) == 0; - if ($214) { - var $dimension_tib2_0_lcssa_i532 = $210; - var $tib2_0_lcssa_in_i531 = $209; - label = 47; - break; - } else { - var $dimension_tib2_024_i529 = $210; - var $206 = $213; - label = 46; - break; - } - case 47: - $tib2_0_lcssa_i533 = $tib2_0_lcssa_in_i531; - $215 = ($dimension_tib1_0_lcssa_i525 | 0) < ($dimension_tib2_0_lcssa_i532 | 0); - $216 = ($tib1_0_lcssa_i524 | 0) == 0; - $or_cond_i534 = $215 | $216; - if ($or_cond_i534) { - label = 53; - break; - } else { - $tib1_121_i536 = $tib1_0_lcssa_i524; - label = 48; - break; - } - case 48: - $217 = ($tib1_121_i536 | 0) == ($tib2_0_lcssa_i533 | 0); - if ($217) { - label = 54; - break; - } else { - label = 49; - break; - } - case 49: - $218 = $tib1_121_i536 + 108 | 0; - $219 = HEAP32[$218 >> 2] | 0; - $220 = $tib1_121_i536 + 112 | 0; - $i_0_i539 = 0; - label = 50; - break; - case 50: - $222 = ($i_0_i539 | 0) < ($219 | 0); - if ($222) { - label = 51; - break; - } else { - label = 52; - break; - } - case 51: - $224 = HEAP32[$220 >> 2] | 0; - $225 = $224 + ($i_0_i539 << 2) | 0; - $226 = HEAP32[$225 >> 2] | 0; - $227 = ($226 | 0) == ($tib2_0_lcssa_i533 | 0); - $228 = $i_0_i539 + 1 | 0; - if ($227) { - label = 54; - break; - } else { - $i_0_i539 = $228; - label = 50; - break; - } - case 52: - $230 = $tib1_121_i536 + 40 | 0; - $231 = HEAP32[$230 >> 2] | 0; - $232 = ($231 | 0) == 0; - if ($232) { - label = 53; - break; - } else { - $tib1_121_i536 = $231; - label = 48; - break; - } - case 53: - $233 = HEAP32[$155 >> 2] | 0; - $234 = $233; - invoke_vii(48, $234 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 54: - $235 = HEAP32[(105500 | 0) >> 2] | 0; - $236 = ($235 | 0) == 0; - if ($236) { - label = 55; - break; - } else { - label = 56; - break; - } - case 55: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 56; - break; - case 56: - $238 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $239$0 = $238; - $239$1 = 0; - $240 = invoke_iii(364, $239$0 | 0, $239$1 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $241 = $240 + 20 | 0; - $242 = $241; - $243 = HEAP32[$242 >> 2] | 0; - $244 = $243; - $_r0_sroa_0 = $244; - $_r1_sroa_0_0_load = $_r1_sroa_0; - $245 = $_r1_sroa_0_0_load + 4 | 0; - $246 = $245; - $247 = HEAP32[$246 >> 2] | 0; - $248 = $247 + 8 | 0; - $249 = $248; - $250 = HEAP32[$249 >> 2] | 0; - $251 = $250 - 1 | 0; - HEAP32[$249 >> 2] = $251; - $252 = HEAP32[$246 >> 2] | 0; - $253 = $252 + 8 | 0; - $254 = $253; - $255 = HEAP32[$254 >> 2] | 0; - $256 = ($255 | 0) == 0; - if ($256) { - label = 57; - break; - } else { - label = 59; - break; - } - case 57: - invoke_vi(28, $_r1_sroa_0_0_load | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $258 = HEAP32[$246 >> 2] | 0; - $259 = $258 + 16 | 0; - $260 = $259; - $261 = HEAP32[$260 >> 2] | 0; - $262 = $261 + 8 | 0; - $263 = $262; - $264 = HEAP32[$263 >> 2] | 0; - $265 = $264; - $266; - $267 = ($266 | 0) == 0; - if ($267) { - label = 59; - break; - } else { - label = 58; - break; - } - case 58: - $269 = invoke_iii(268, 31e3 | 0 | 0, (tempInt = STACKTOP, STACKTOP = STACKTOP + 8 | 0, HEAP32[tempInt >> 2] = $266, tempInt) | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 59; - break; - case 59: - $270 = HEAP32[(105500 | 0) >> 2] | 0; - $271 = ($270 | 0) == 0; - if ($271) { - label = 60; - break; - } else { - label = 61; - break; - } - case 60: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 61; - break; - case 61: - $273 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $274$0 = $273; - $274$1 = 0; - $275 = invoke_iii(364, $274$0 | 0, $274$1 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $_r0_sroa_0_0_load617 = $_r0_sroa_0; - $276 = $_r0_sroa_0_0_load617; - $277 = $275 + 16 | 0; - $278 = $275 + 20 | 0; - $279 = $278; - HEAP32[$279 >> 2] = $276; - $280 = $277; - $281 = HEAP32[$280 >> 2] | 0; - $282 = $281; - invoke_vii(48, $282 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 62: - $284 = $local_env_w4567aaac23b1c22; - $285 = $151 + 16 | 0; - $286 = $285; - $287 = HEAP32[$286 >> 2] | 0; - _memcpy($284 | 0, $287 | 0, 40); - $288 = HEAP32[$286 >> 2] | 0; - $289 = $288; - $290 = _saveSetjmp($289 | 0, label, setjmpTable) | 0; - label = 415; - break; - case 415: - $291 = ($290 | 0) == 0; - if ($291) { - label = 63; - break; - } else { - label = 72; - break; - } - case 63: - $_r5_sroa_0_0_load590 = $_r5_sroa_0; - invoke_vi(44, $_r5_sroa_0_0_load590 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $293 = HEAP32[(98772 | 0) >> 2] | 0; - $294 = ($293 | 0) == 0; - if ($294) { - label = 64; - break; - } else { - label = 65; - break; - } - case 64: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 65; - break; - case 65: - $296 = HEAP32[140064 >> 2] | 0; - $297 = $296; - $_r0_sroa_0 = $297; - $_r0_sroa_0_0_load616 = $_r0_sroa_0; - $298 = ($_r0_sroa_0_0_load616 | 0) == 0; - if ($298) { - label = 67; - break; - } else { - label = 66; - break; - } - case 66: - $300 = HEAP32[$286 >> 2] | 0; - _memcpy($300 | 0, $284 | 0, 40); - label = 89; - break; - case 67: - $302 = HEAP32[(84292 | 0) >> 2] | 0; - $303 = ($302 | 0) == 0; - if ($303) { - label = 68; - break; - } else { - label = 69; - break; - } - case 68: - invoke_v(584); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 69; - break; - case 69: - $305 = invoke_ii(338, 20 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $306 = $305; - HEAP32[$306 >> 2] = 84288; - $307 = $305 + 4 | 0; - _memset($307 | 0 | 0, 0 | 0 | 0, 16 | 0 | 0); - $308 = $305; - $_r0_sroa_0 = $308; - $_r0_sroa_0_0_load615 = $_r0_sroa_0; - $309 = $_r0_sroa_0_0_load615; - invoke_vi(34, $309 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $_r0_sroa_0_0_load614 = $_r0_sroa_0; - $310 = $_r0_sroa_0_0_load614; - $311 = HEAP32[(98772 | 0) >> 2] | 0; - $312 = ($311 | 0) == 0; - if ($312) { - label = 70; - break; - } else { - label = 71; - break; - } - case 70: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 71; - break; - case 71: - HEAP32[140064 >> 2] = $310; - $314 = HEAP32[$286 >> 2] | 0; - _memcpy($314 | 0, $284 | 0, 40); - label = 89; - break; - case 72: - $316 = HEAP32[$286 >> 2] | 0; - _memcpy($316 | 0, $284 | 0, 40); - $317 = HEAP32[(107740 | 0) >> 2] | 0; - $318 = ($317 | 0) == 0; - if ($318) { - label = 73; - break; - } else { - label = 74; - break; - } - case 73: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 74; - break; - case 74: - $321 = $151 + 20 | 0; - $322 = $321; - $323 = HEAP32[$322 >> 2] | 0; - $324 = ($323 | 0) == 0; - if ($324) { - label = 88; - break; - } else { - label = 75; - break; - } - case 75: - $326 = HEAP32[137616 >> 2] | 0; - $327 = $323; - $328 = HEAP32[$327 >> 2] | 0; - $329 = $328; - $330 = $326 + 8 | 0; - $331 = $330; - $332 = HEAP32[$331 >> 2] | 0; - $333 = ($328 | 0) == 82712; - if ($333) { - label = 76; - break; - } else { - $tib1_0_ph_i500 = $329; - label = 77; - break; - } - case 76: - $335 = $323 + 8 | 0; - $336 = $335; - $337 = HEAP32[$336 >> 2] | 0; - $338 = $337 + 8 | 0; - $339 = $338; - $340 = HEAP32[$339 >> 2] | 0; - $341 = $340; - $tib1_0_ph_i500 = $341; - label = 77; - break; - case 77: - $342 = $tib1_0_ph_i500 + 56 | 0; - $343 = HEAP32[$342 >> 2] | 0; - $344 = ($343 | 0) == 0; - if ($344) { - var $dimension_tib1_0_lcssa_i504 = 0; - var $tib1_0_lcssa_i503 = $tib1_0_ph_i500; - label = 79; - break; - } else { - var $dimension_tib1_029_i506 = 0; - var $350 = $343; - label = 80; - break; - } - case 78: - $345 = $353; - var $dimension_tib1_0_lcssa_i504 = $354; - var $tib1_0_lcssa_i503 = $345; - label = 79; - break; - case 79: - $346 = $332 + 56 | 0; - $347 = $346; - $348 = HEAP32[$347 >> 2] | 0; - $349 = ($348 | 0) == 0; - if ($349) { - var $dimension_tib2_0_lcssa_i511 = 0; - var $tib2_0_lcssa_in_i510 = $332; - label = 82; - break; - } else { - var $dimension_tib2_024_i508 = 0; - var $359 = $348; - label = 81; - break; - } - case 80: - $351 = $350 + 8 | 0; - $352 = $351; - $353 = HEAP32[$352 >> 2] | 0; - $354 = $dimension_tib1_029_i506 + 1 | 0; - $355 = $353 + 56 | 0; - $356 = $355; - $357 = HEAP32[$356 >> 2] | 0; - $358 = ($357 | 0) == 0; - if ($358) { - label = 78; - break; - } else { - var $dimension_tib1_029_i506 = $354; - var $350 = $357; - label = 80; - break; - } - case 81: - $360 = $359 + 8 | 0; - $361 = $360; - $362 = HEAP32[$361 >> 2] | 0; - $363 = $dimension_tib2_024_i508 + 1 | 0; - $364 = $362 + 56 | 0; - $365 = $364; - $366 = HEAP32[$365 >> 2] | 0; - $367 = ($366 | 0) == 0; - if ($367) { - var $dimension_tib2_0_lcssa_i511 = $363; - var $tib2_0_lcssa_in_i510 = $362; - label = 82; - break; - } else { - var $dimension_tib2_024_i508 = $363; - var $359 = $366; - label = 81; - break; - } - case 82: - $tib2_0_lcssa_i512 = $tib2_0_lcssa_in_i510; - $368 = ($dimension_tib1_0_lcssa_i504 | 0) < ($dimension_tib2_0_lcssa_i511 | 0); - $369 = ($tib1_0_lcssa_i503 | 0) == 0; - $or_cond_i513 = $368 | $369; - if ($or_cond_i513) { - label = 88; - break; - } else { - $tib1_121_i515 = $tib1_0_lcssa_i503; - label = 83; - break; - } - case 83: - $370 = ($tib1_121_i515 | 0) == ($tib2_0_lcssa_i512 | 0); - if ($370) { - label = 54; - break; - } else { - label = 84; - break; - } - case 84: - $371 = $tib1_121_i515 + 108 | 0; - $372 = HEAP32[$371 >> 2] | 0; - $373 = $tib1_121_i515 + 112 | 0; - $i_0_i518 = 0; - label = 85; - break; - case 85: - $375 = ($i_0_i518 | 0) < ($372 | 0); - if ($375) { - label = 86; - break; - } else { - label = 87; - break; - } - case 86: - $377 = HEAP32[$373 >> 2] | 0; - $378 = $377 + ($i_0_i518 << 2) | 0; - $379 = HEAP32[$378 >> 2] | 0; - $380 = ($379 | 0) == ($tib2_0_lcssa_i512 | 0); - $381 = $i_0_i518 + 1 | 0; - if ($380) { - label = 54; - break; - } else { - $i_0_i518 = $381; - label = 85; - break; - } - case 87: - $383 = $tib1_121_i515 + 40 | 0; - $384 = HEAP32[$383 >> 2] | 0; - $385 = ($384 | 0) == 0; - if ($385) { - label = 88; - break; - } else { - $tib1_121_i515 = $384; - label = 83; - break; - } - case 88: - $386 = HEAP32[$286 >> 2] | 0; - $387 = $386; - invoke_vii(48, $387 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 89: - $389 = HEAP32[(105500 | 0) >> 2] | 0; - $390 = ($389 | 0) == 0; - if ($390) { - label = 90; - break; - } else { - label = 91; - break; - } - case 90: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 91; - break; - case 91: - $392 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $393$0 = $392; - $393$1 = 0; - $394 = invoke_iii(364, $393$0 | 0, $393$1 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $395 = $local_env_w4567aaac23b1c24; - $396 = $394 + 16 | 0; - $397 = $396; - $398 = HEAP32[$397 >> 2] | 0; - _memcpy($395 | 0, $398 | 0, 40); - $399 = HEAP32[$397 >> 2] | 0; - $400 = $399; - $401 = _saveSetjmp($400 | 0, label, setjmpTable) | 0; - label = 416; - break; - case 416: - $402 = ($401 | 0) == 0; - if ($402) { - label = 92; - break; - } else { - label = 99; - break; - } - case 92: - $404 = HEAP32[(98772 | 0) >> 2] | 0; - $405 = ($404 | 0) == 0; - if ($405) { - label = 93; - break; - } else { - label = 94; - break; - } - case 93: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 94; - break; - case 94: - $407 = HEAP32[140064 >> 2] | 0; - $408 = $407; - $_r0_sroa_0 = $408; - $_r0_sroa_0_0_load613 = $_r0_sroa_0; - $409 = $_r0_sroa_0_0_load613; - $410 = $409 | 0; - $411 = HEAP32[$410 >> 2] | 0; - $412 = $411 + 144 | 0; - $413 = HEAP32[$412 >> 2] | 0; - $414 = $413; - $_r0_sroa_0_0_load612 = $_r0_sroa_0; - $415 = $_r0_sroa_0_0_load612; - $_r5_sroa_0_0_load589 = $_r5_sroa_0; - $416 = invoke_iii($414 | 0, $415 | 0, $_r5_sroa_0_0_load589 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $417 = $416; - $_r0_sroa_0 = $417; - $_r0_sroa_0_0_load611 = $_r0_sroa_0; - $418 = ($_r0_sroa_0_0_load611 | 0) == 0; - if ($418) { - label = 95; - break; - } else { - label = 98; - break; - } - case 95: - $420 = HEAP32[$397 >> 2] | 0; - _memcpy($420 | 0, $395 | 0, 40); - $421 = HEAP32[(105500 | 0) >> 2] | 0; - $422 = ($421 | 0) == 0; - if ($422) { - label = 96; - break; - } else { - label = 97; - break; - } - case 96: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 97; - break; - case 97: - $424 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $425$0 = $424; - $425$1 = 0; - $426 = invoke_iii(364, $425$0 | 0, $425$1 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $427 = $local_env_w4567aaac23b1c26; - $428 = $426 + 16 | 0; - $429 = $428; - $430 = HEAP32[$429 >> 2] | 0; - _memcpy($427 | 0, $430 | 0, 40); - $431 = HEAP32[$429 >> 2] | 0; - $432 = $431; - $433 = _saveSetjmp($432 | 0, label, setjmpTable) | 0; - label = 417; - break; - case 417: - $434 = ($433 | 0) == 0; - if ($434) { - label = 116; - break; - } else { - label = 127; - break; - } - case 98: - $_r0_sroa_0_0_load610 = $_r0_sroa_0; - $436 = $_r0_sroa_0_0_load610; - $_r5_sroa_0_0_load588 = $_r5_sroa_0; - invoke_vii(24, $436 | 0, $_r5_sroa_0_0_load588 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $437 = HEAP32[$397 >> 2] | 0; - _memcpy($437 | 0, $395 | 0, 40); - label = 28; - break; - case 99: - $439 = HEAP32[$397 >> 2] | 0; - _memcpy($439 | 0, $395 | 0, 40); - $440 = HEAP32[(107740 | 0) >> 2] | 0; - $441 = ($440 | 0) == 0; - if ($441) { - label = 100; - break; - } else { - label = 101; - break; - } - case 100: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 101; - break; - case 101: - $444 = $394 + 20 | 0; - $445 = $444; - $446 = HEAP32[$445 >> 2] | 0; - $447 = ($446 | 0) == 0; - if ($447) { - label = 115; - break; - } else { - label = 102; - break; - } - case 102: - $449 = HEAP32[137616 >> 2] | 0; - $450 = $446; - $451 = HEAP32[$450 >> 2] | 0; - $452 = $451; - $453 = $449 + 8 | 0; - $454 = $453; - $455 = HEAP32[$454 >> 2] | 0; - $456 = ($451 | 0) == 82712; - if ($456) { - label = 103; - break; - } else { - $tib1_0_ph_i479 = $452; - label = 104; - break; - } - case 103: - $458 = $446 + 8 | 0; - $459 = $458; - $460 = HEAP32[$459 >> 2] | 0; - $461 = $460 + 8 | 0; - $462 = $461; - $463 = HEAP32[$462 >> 2] | 0; - $464 = $463; - $tib1_0_ph_i479 = $464; - label = 104; - break; - case 104: - $465 = $tib1_0_ph_i479 + 56 | 0; - $466 = HEAP32[$465 >> 2] | 0; - $467 = ($466 | 0) == 0; - if ($467) { - var $dimension_tib1_0_lcssa_i483 = 0; - var $tib1_0_lcssa_i482 = $tib1_0_ph_i479; - label = 106; - break; - } else { - var $dimension_tib1_029_i485 = 0; - var $473 = $466; - label = 107; - break; - } - case 105: - $468 = $476; - var $dimension_tib1_0_lcssa_i483 = $477; - var $tib1_0_lcssa_i482 = $468; - label = 106; - break; - case 106: - $469 = $455 + 56 | 0; - $470 = $469; - $471 = HEAP32[$470 >> 2] | 0; - $472 = ($471 | 0) == 0; - if ($472) { - var $dimension_tib2_0_lcssa_i490 = 0; - var $tib2_0_lcssa_in_i489 = $455; - label = 109; - break; - } else { - var $dimension_tib2_024_i487 = 0; - var $482 = $471; - label = 108; - break; - } - case 107: - $474 = $473 + 8 | 0; - $475 = $474; - $476 = HEAP32[$475 >> 2] | 0; - $477 = $dimension_tib1_029_i485 + 1 | 0; - $478 = $476 + 56 | 0; - $479 = $478; - $480 = HEAP32[$479 >> 2] | 0; - $481 = ($480 | 0) == 0; - if ($481) { - label = 105; - break; - } else { - var $dimension_tib1_029_i485 = $477; - var $473 = $480; - label = 107; - break; - } - case 108: - $483 = $482 + 8 | 0; - $484 = $483; - $485 = HEAP32[$484 >> 2] | 0; - $486 = $dimension_tib2_024_i487 + 1 | 0; - $487 = $485 + 56 | 0; - $488 = $487; - $489 = HEAP32[$488 >> 2] | 0; - $490 = ($489 | 0) == 0; - if ($490) { - var $dimension_tib2_0_lcssa_i490 = $486; - var $tib2_0_lcssa_in_i489 = $485; - label = 109; - break; - } else { - var $dimension_tib2_024_i487 = $486; - var $482 = $489; - label = 108; - break; - } - case 109: - $tib2_0_lcssa_i491 = $tib2_0_lcssa_in_i489; - $491 = ($dimension_tib1_0_lcssa_i483 | 0) < ($dimension_tib2_0_lcssa_i490 | 0); - $492 = ($tib1_0_lcssa_i482 | 0) == 0; - $or_cond_i492 = $491 | $492; - if ($or_cond_i492) { - label = 115; - break; - } else { - $tib1_121_i494 = $tib1_0_lcssa_i482; - label = 110; - break; - } - case 110: - $493 = ($tib1_121_i494 | 0) == ($tib2_0_lcssa_i491 | 0); - if ($493) { - label = 54; - break; - } else { - label = 111; - break; - } - case 111: - $494 = $tib1_121_i494 + 108 | 0; - $495 = HEAP32[$494 >> 2] | 0; - $496 = $tib1_121_i494 + 112 | 0; - $i_0_i497 = 0; - label = 112; - break; - case 112: - $498 = ($i_0_i497 | 0) < ($495 | 0); - if ($498) { - label = 113; - break; - } else { - label = 114; - break; - } - case 113: - $500 = HEAP32[$496 >> 2] | 0; - $501 = $500 + ($i_0_i497 << 2) | 0; - $502 = HEAP32[$501 >> 2] | 0; - $503 = ($502 | 0) == ($tib2_0_lcssa_i491 | 0); - $504 = $i_0_i497 + 1 | 0; - if ($503) { - label = 54; - break; - } else { - $i_0_i497 = $504; - label = 112; - break; - } - case 114: - $506 = $tib1_121_i494 + 40 | 0; - $507 = HEAP32[$506 >> 2] | 0; - $508 = ($507 | 0) == 0; - if ($508) { - label = 115; - break; - } else { - $tib1_121_i494 = $507; - label = 110; - break; - } - case 115: - $509 = HEAP32[$397 >> 2] | 0; - $510 = $509; - invoke_vii(48, $510 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 116: - $512 = HEAP32[(98772 | 0) >> 2] | 0; - $513 = ($512 | 0) == 0; - if ($513) { - label = 117; - break; - } else { - label = 118; - break; - } - case 117: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 118; - break; - case 118: - $516 = HEAP32[(105500 | 0) >> 2] | 0; - $517 = ($516 | 0) == 0; - if ($517) { - label = 119; - break; - } else { - label = 120; - break; - } - case 119: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 120; - break; - case 120: - $519 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $520$0 = $519; - $520$1 = 0; - $521 = invoke_iii(364, $520$0 | 0, $520$1 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $522 = HEAP32[(98148 | 0) >> 2] | 0; - $523 = ($522 | 0) == 0; - if ($523) { - label = 121; - break; - } else { - label = 122; - break; - } - case 121: - invoke_v(408); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 122; - break; - case 122: - $525 = invoke_ii(338, 12 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $526 = $525; - HEAP32[$526 >> 2] = 98144; - $527 = $525 + 4 | 0; - $528 = $527; - HEAP32[$528 >> 2] = 0; - $529 = $525 + 8 | 0; - $530 = $529; - HEAP32[$530 >> 2] = $521; - $531 = HEAP32[(97532 | 0) >> 2] | 0; - $532 = ($531 | 0) == 0; - if ($532) { - label = 123; - break; - } else { - $534 = 98144; - label = 124; - break; - } - case 123: - invoke_v(568); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $_phi_trans_insert = $525; - $_pre = HEAP32[$_phi_trans_insert >> 2] | 0; - $534 = $_pre; - label = 124; - break; - case 124: - $535 = $534 + 116 | 0; - $536 = HEAP32[$535 >> 2] | 0; - $537 = HEAP32[$536 >> 2] | 0; - $538 = $537; - $539 = invoke_ii($538 | 0, $525 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $540 = $539; - $_r2_sroa_0 = $540; - $541 = HEAP32[$429 >> 2] | 0; - _memcpy($541 | 0, $427 | 0, 40); - $_r2_sroa_0_0_load599 = $_r2_sroa_0; - $542 = ($_r2_sroa_0_0_load599 | 0) == 0; - $543 = HEAP32[(105500 | 0) >> 2] | 0; - $544 = ($543 | 0) == 0; - if ($544) { - label = 125; - break; - } else { - label = 126; - break; - } - case 125: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 126; - break; - case 126: - $546 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $547$0 = $546; - $547$1 = 0; - $548 = invoke_iii(364, $547$0 | 0, $547$1 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - if ($542) { - label = 240; - break; - } else { - label = 144; - break; - } - case 127: - $550 = HEAP32[$429 >> 2] | 0; - _memcpy($550 | 0, $427 | 0, 40); - $551 = HEAP32[(107740 | 0) >> 2] | 0; - $552 = ($551 | 0) == 0; - if ($552) { - label = 128; - break; - } else { - label = 129; - break; - } - case 128: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 129; - break; - case 129: - $555 = $426 + 20 | 0; - $556 = $555; - $557 = HEAP32[$556 >> 2] | 0; - $558 = ($557 | 0) == 0; - if ($558) { - label = 143; - break; - } else { - label = 130; - break; - } - case 130: - $560 = HEAP32[137616 >> 2] | 0; - $561 = $557; - $562 = HEAP32[$561 >> 2] | 0; - $563 = $562; - $564 = $560 + 8 | 0; - $565 = $564; - $566 = HEAP32[$565 >> 2] | 0; - $567 = ($562 | 0) == 82712; - if ($567) { - label = 131; - break; - } else { - $tib1_0_ph_i458 = $563; - label = 132; - break; - } - case 131: - $569 = $557 + 8 | 0; - $570 = $569; - $571 = HEAP32[$570 >> 2] | 0; - $572 = $571 + 8 | 0; - $573 = $572; - $574 = HEAP32[$573 >> 2] | 0; - $575 = $574; - $tib1_0_ph_i458 = $575; - label = 132; - break; - case 132: - $576 = $tib1_0_ph_i458 + 56 | 0; - $577 = HEAP32[$576 >> 2] | 0; - $578 = ($577 | 0) == 0; - if ($578) { - var $dimension_tib1_0_lcssa_i462 = 0; - var $tib1_0_lcssa_i461 = $tib1_0_ph_i458; - label = 134; - break; - } else { - var $dimension_tib1_029_i464 = 0; - var $584 = $577; - label = 135; - break; - } - case 133: - $579 = $587; - var $dimension_tib1_0_lcssa_i462 = $588; - var $tib1_0_lcssa_i461 = $579; - label = 134; - break; - case 134: - $580 = $566 + 56 | 0; - $581 = $580; - $582 = HEAP32[$581 >> 2] | 0; - $583 = ($582 | 0) == 0; - if ($583) { - var $dimension_tib2_0_lcssa_i469 = 0; - var $tib2_0_lcssa_in_i468 = $566; - label = 137; - break; - } else { - var $dimension_tib2_024_i466 = 0; - var $593 = $582; - label = 136; - break; - } - case 135: - $585 = $584 + 8 | 0; - $586 = $585; - $587 = HEAP32[$586 >> 2] | 0; - $588 = $dimension_tib1_029_i464 + 1 | 0; - $589 = $587 + 56 | 0; - $590 = $589; - $591 = HEAP32[$590 >> 2] | 0; - $592 = ($591 | 0) == 0; - if ($592) { - label = 133; - break; - } else { - var $dimension_tib1_029_i464 = $588; - var $584 = $591; - label = 135; - break; - } - case 136: - $594 = $593 + 8 | 0; - $595 = $594; - $596 = HEAP32[$595 >> 2] | 0; - $597 = $dimension_tib2_024_i466 + 1 | 0; - $598 = $596 + 56 | 0; - $599 = $598; - $600 = HEAP32[$599 >> 2] | 0; - $601 = ($600 | 0) == 0; - if ($601) { - var $dimension_tib2_0_lcssa_i469 = $597; - var $tib2_0_lcssa_in_i468 = $596; - label = 137; - break; - } else { - var $dimension_tib2_024_i466 = $597; - var $593 = $600; - label = 136; - break; - } - case 137: - $tib2_0_lcssa_i470 = $tib2_0_lcssa_in_i468; - $602 = ($dimension_tib1_0_lcssa_i462 | 0) < ($dimension_tib2_0_lcssa_i469 | 0); - $603 = ($tib1_0_lcssa_i461 | 0) == 0; - $or_cond_i471 = $602 | $603; - if ($or_cond_i471) { - label = 143; - break; - } else { - $tib1_121_i473 = $tib1_0_lcssa_i461; - label = 138; - break; - } - case 138: - $604 = ($tib1_121_i473 | 0) == ($tib2_0_lcssa_i470 | 0); - if ($604) { - label = 54; - break; - } else { - label = 139; - break; - } - case 139: - $605 = $tib1_121_i473 + 108 | 0; - $606 = HEAP32[$605 >> 2] | 0; - $607 = $tib1_121_i473 + 112 | 0; - $i_0_i476 = 0; - label = 140; - break; - case 140: - $609 = ($i_0_i476 | 0) < ($606 | 0); - if ($609) { - label = 141; - break; - } else { - label = 142; - break; - } - case 141: - $611 = HEAP32[$607 >> 2] | 0; - $612 = $611 + ($i_0_i476 << 2) | 0; - $613 = HEAP32[$612 >> 2] | 0; - $614 = ($613 | 0) == ($tib2_0_lcssa_i470 | 0); - $615 = $i_0_i476 + 1 | 0; - if ($614) { - label = 54; - break; - } else { - $i_0_i476 = $615; - label = 140; - break; - } - case 142: - $617 = $tib1_121_i473 + 40 | 0; - $618 = HEAP32[$617 >> 2] | 0; - $619 = ($618 | 0) == 0; - if ($619) { - label = 143; - break; - } else { - $tib1_121_i473 = $618; - label = 138; - break; - } - case 143: - $620 = HEAP32[$429 >> 2] | 0; - $621 = $620; - invoke_vii(48, $621 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 144: - $623 = $local_env_w4567aaac23b1c29; - $624 = $548 + 16 | 0; - $625 = $624; - $626 = HEAP32[$625 >> 2] | 0; - _memcpy($623 | 0, $626 | 0, 40); - $627 = HEAP32[$625 >> 2] | 0; - $628 = $627; - $629 = _saveSetjmp($628 | 0, label, setjmpTable) | 0; - label = 418; - break; - case 418: - $630 = ($629 | 0) == 0; - if ($630) { - label = 145; - break; - } else { - label = 146; - break; - } - case 145: - $632 = invoke_ii(556, 709 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $633 = $632; - $_r0_sroa_0 = $633; - $_r2_sroa_0_0_load598 = $_r2_sroa_0; - $_r0_sroa_0_0_load609 = $_r0_sroa_0; - $_r0_sroa_0 = 0; - $_r0_sroa_0_0_load624 = $_r0_sroa_0; - $634 = $_r0_sroa_0_0_load624; - $_r3_sroa_0 = $634; - $_r0_sroa_1_4__r3_sroa_1_4_idx108_idx = $_r3_sroa_1 | 0; - $_r0_sroa_1_4_idx = $_r0_sroa_1 | 0; - HEAP32[$_r0_sroa_1_4__r3_sroa_1_4_idx108_idx >> 2] = HEAP32[$_r0_sroa_1_4_idx >> 2] | 0; - $635 = HEAP32[$625 >> 2] | 0; - _memcpy($635 | 0, $623 | 0, 40); - label = 179; - break; - case 146: - $637 = HEAP32[$625 >> 2] | 0; - _memcpy($637 | 0, $623 | 0, 40); - $638 = HEAP32[(113236 | 0) >> 2] | 0; - $639 = ($638 | 0) == 0; - if ($639) { - label = 147; - break; - } else { - label = 148; - break; - } - case 147: - invoke_v(538); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 148; - break; - case 148: - $642 = $548 + 20 | 0; - $643 = $642; - $644 = HEAP32[$643 >> 2] | 0; - $645 = ($644 | 0) == 0; - if ($645) { - label = 162; - break; - } else { - label = 149; - break; - } - case 149: - $647 = HEAP32[138672 >> 2] | 0; - $648 = $644; - $649 = HEAP32[$648 >> 2] | 0; - $650 = $649; - $651 = $647 + 8 | 0; - $652 = $651; - $653 = HEAP32[$652 >> 2] | 0; - $654 = ($649 | 0) == 82712; - if ($654) { - label = 150; - break; - } else { - $tib1_0_ph_i437 = $650; - label = 151; - break; - } - case 150: - $656 = $644 + 8 | 0; - $657 = $656; - $658 = HEAP32[$657 >> 2] | 0; - $659 = $658 + 8 | 0; - $660 = $659; - $661 = HEAP32[$660 >> 2] | 0; - $662 = $661; - $tib1_0_ph_i437 = $662; - label = 151; - break; - case 151: - $663 = $tib1_0_ph_i437 + 56 | 0; - $664 = HEAP32[$663 >> 2] | 0; - $665 = ($664 | 0) == 0; - if ($665) { - var $dimension_tib1_0_lcssa_i441 = 0; - var $tib1_0_lcssa_i440 = $tib1_0_ph_i437; - label = 153; - break; - } else { - var $dimension_tib1_029_i443 = 0; - var $671 = $664; - label = 154; - break; - } - case 152: - $666 = $674; - var $dimension_tib1_0_lcssa_i441 = $675; - var $tib1_0_lcssa_i440 = $666; - label = 153; - break; - case 153: - $667 = $653 + 56 | 0; - $668 = $667; - $669 = HEAP32[$668 >> 2] | 0; - $670 = ($669 | 0) == 0; - if ($670) { - var $dimension_tib2_0_lcssa_i448 = 0; - var $tib2_0_lcssa_in_i447 = $653; - label = 156; - break; - } else { - var $dimension_tib2_024_i445 = 0; - var $680 = $669; - label = 155; - break; - } - case 154: - $672 = $671 + 8 | 0; - $673 = $672; - $674 = HEAP32[$673 >> 2] | 0; - $675 = $dimension_tib1_029_i443 + 1 | 0; - $676 = $674 + 56 | 0; - $677 = $676; - $678 = HEAP32[$677 >> 2] | 0; - $679 = ($678 | 0) == 0; - if ($679) { - label = 152; - break; - } else { - var $dimension_tib1_029_i443 = $675; - var $671 = $678; - label = 154; - break; - } - case 155: - $681 = $680 + 8 | 0; - $682 = $681; - $683 = HEAP32[$682 >> 2] | 0; - $684 = $dimension_tib2_024_i445 + 1 | 0; - $685 = $683 + 56 | 0; - $686 = $685; - $687 = HEAP32[$686 >> 2] | 0; - $688 = ($687 | 0) == 0; - if ($688) { - var $dimension_tib2_0_lcssa_i448 = $684; - var $tib2_0_lcssa_in_i447 = $683; - label = 156; - break; - } else { - var $dimension_tib2_024_i445 = $684; - var $680 = $687; - label = 155; - break; - } - case 156: - $tib2_0_lcssa_i449 = $tib2_0_lcssa_in_i447; - $689 = ($dimension_tib1_0_lcssa_i441 | 0) < ($dimension_tib2_0_lcssa_i448 | 0); - $690 = ($tib1_0_lcssa_i440 | 0) == 0; - $or_cond_i450 = $689 | $690; - if ($or_cond_i450) { - label = 162; - break; - } else { - $tib1_121_i452 = $tib1_0_lcssa_i440; - label = 157; - break; - } - case 157: - $691 = ($tib1_121_i452 | 0) == ($tib2_0_lcssa_i449 | 0); - if ($691) { - label = 361; - break; - } else { - label = 158; - break; - } - case 158: - $692 = $tib1_121_i452 + 108 | 0; - $693 = HEAP32[$692 >> 2] | 0; - $694 = $tib1_121_i452 + 112 | 0; - $i_0_i455 = 0; - label = 159; - break; - case 159: - $696 = ($i_0_i455 | 0) < ($693 | 0); - if ($696) { - label = 160; - break; - } else { - label = 161; - break; - } - case 160: - $698 = HEAP32[$694 >> 2] | 0; - $699 = $698 + ($i_0_i455 << 2) | 0; - $700 = HEAP32[$699 >> 2] | 0; - $701 = ($700 | 0) == ($tib2_0_lcssa_i449 | 0); - $702 = $i_0_i455 + 1 | 0; - if ($701) { - label = 361; - break; - } else { - $i_0_i455 = $702; - label = 159; - break; - } - case 161: - $704 = $tib1_121_i452 + 40 | 0; - $705 = HEAP32[$704 >> 2] | 0; - $706 = ($705 | 0) == 0; - if ($706) { - label = 162; - break; - } else { - $tib1_121_i452 = $705; - label = 157; - break; - } - case 162: - $707 = HEAP32[(107740 | 0) >> 2] | 0; - $708 = ($707 | 0) == 0; - if ($708) { - label = 163; - break; - } else { - label = 164; - break; - } - case 163: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 164; - break; - case 164: - $711 = HEAP32[$643 >> 2] | 0; - $712 = ($711 | 0) == 0; - if ($712) { - label = 178; - break; - } else { - label = 165; - break; - } - case 165: - $714 = HEAP32[137616 >> 2] | 0; - $715 = $711; - $716 = HEAP32[$715 >> 2] | 0; - $717 = $716; - $718 = $714 + 8 | 0; - $719 = $718; - $720 = HEAP32[$719 >> 2] | 0; - $721 = ($716 | 0) == 82712; - if ($721) { - label = 166; - break; - } else { - $tib1_0_ph_i416 = $717; - label = 167; - break; - } - case 166: - $723 = $711 + 8 | 0; - $724 = $723; - $725 = HEAP32[$724 >> 2] | 0; - $726 = $725 + 8 | 0; - $727 = $726; - $728 = HEAP32[$727 >> 2] | 0; - $729 = $728; - $tib1_0_ph_i416 = $729; - label = 167; - break; - case 167: - $730 = $tib1_0_ph_i416 + 56 | 0; - $731 = HEAP32[$730 >> 2] | 0; - $732 = ($731 | 0) == 0; - if ($732) { - var $dimension_tib1_0_lcssa_i420 = 0; - var $tib1_0_lcssa_i419 = $tib1_0_ph_i416; - label = 169; - break; - } else { - var $dimension_tib1_029_i422 = 0; - var $738 = $731; - label = 170; - break; - } - case 168: - $733 = $741; - var $dimension_tib1_0_lcssa_i420 = $742; - var $tib1_0_lcssa_i419 = $733; - label = 169; - break; - case 169: - $734 = $720 + 56 | 0; - $735 = $734; - $736 = HEAP32[$735 >> 2] | 0; - $737 = ($736 | 0) == 0; - if ($737) { - var $dimension_tib2_0_lcssa_i427 = 0; - var $tib2_0_lcssa_in_i426 = $720; - label = 172; - break; - } else { - var $dimension_tib2_024_i424 = 0; - var $747 = $736; - label = 171; - break; - } - case 170: - $739 = $738 + 8 | 0; - $740 = $739; - $741 = HEAP32[$740 >> 2] | 0; - $742 = $dimension_tib1_029_i422 + 1 | 0; - $743 = $741 + 56 | 0; - $744 = $743; - $745 = HEAP32[$744 >> 2] | 0; - $746 = ($745 | 0) == 0; - if ($746) { - label = 168; - break; - } else { - var $dimension_tib1_029_i422 = $742; - var $738 = $745; - label = 170; - break; - } - case 171: - $748 = $747 + 8 | 0; - $749 = $748; - $750 = HEAP32[$749 >> 2] | 0; - $751 = $dimension_tib2_024_i424 + 1 | 0; - $752 = $750 + 56 | 0; - $753 = $752; - $754 = HEAP32[$753 >> 2] | 0; - $755 = ($754 | 0) == 0; - if ($755) { - var $dimension_tib2_0_lcssa_i427 = $751; - var $tib2_0_lcssa_in_i426 = $750; - label = 172; - break; - } else { - var $dimension_tib2_024_i424 = $751; - var $747 = $754; - label = 171; - break; - } - case 172: - $tib2_0_lcssa_i428 = $tib2_0_lcssa_in_i426; - $756 = ($dimension_tib1_0_lcssa_i420 | 0) < ($dimension_tib2_0_lcssa_i427 | 0); - $757 = ($tib1_0_lcssa_i419 | 0) == 0; - $or_cond_i429 = $756 | $757; - if ($or_cond_i429) { - label = 178; - break; - } else { - $tib1_121_i431 = $tib1_0_lcssa_i419; - label = 173; - break; - } - case 173: - $758 = ($tib1_121_i431 | 0) == ($tib2_0_lcssa_i428 | 0); - if ($758) { - label = 386; - break; - } else { - label = 174; - break; - } - case 174: - $759 = $tib1_121_i431 + 108 | 0; - $760 = HEAP32[$759 >> 2] | 0; - $761 = $tib1_121_i431 + 112 | 0; - $i_0_i434 = 0; - label = 175; - break; - case 175: - $763 = ($i_0_i434 | 0) < ($760 | 0); - if ($763) { - label = 176; - break; - } else { - label = 177; - break; - } - case 176: - $765 = HEAP32[$761 >> 2] | 0; - $766 = $765 + ($i_0_i434 << 2) | 0; - $767 = HEAP32[$766 >> 2] | 0; - $768 = ($767 | 0) == ($tib2_0_lcssa_i428 | 0); - $769 = $i_0_i434 + 1 | 0; - if ($768) { - label = 386; - break; - } else { - $i_0_i434 = $769; - label = 175; - break; - } - case 177: - $771 = $tib1_121_i431 + 40 | 0; - $772 = HEAP32[$771 >> 2] | 0; - $773 = ($772 | 0) == 0; - if ($773) { - label = 178; - break; - } else { - $tib1_121_i431 = $772; - label = 173; - break; - } - case 178: - $774 = HEAP32[$625 >> 2] | 0; - $775 = $774; - invoke_vii(48, $775 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 179: - $777 = HEAP32[(105500 | 0) >> 2] | 0; - $778 = ($777 | 0) == 0; - if ($778) { - label = 180; - break; - } else { - label = 181; - break; - } - case 180: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 181; - break; - case 181: - $780 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $781$0 = $780; - $781$1 = 0; - $782 = invoke_iii(364, $781$0 | 0, $781$1 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $783 = $local_env_w4567aaac23b1c31; - $784 = $782 + 16 | 0; - $785 = $784; - $786 = HEAP32[$785 >> 2] | 0; - _memcpy($783 | 0, $786 | 0, 40); - $787 = HEAP32[$785 >> 2] | 0; - $788 = $787; - $789 = _saveSetjmp($788 | 0, label, setjmpTable) | 0; - label = 419; - break; - case 419: - $790 = ($789 | 0) == 0; - if ($790) { - label = 182; - break; - } else { - label = 183; - break; - } - case 182: - $_r3_sroa_0_0_load596 = $_r3_sroa_0; - $792 = $_r3_sroa_0_0_load596; - $793 = HEAP32[$792 >> 2] | 0; - $794 = $793 + 116 | 0; - $795 = HEAP32[$794 >> 2] | 0; - $796 = HEAP32[$795 >> 2] | 0; - $797 = $796; - $_r3_sroa_0_0_load595 = $_r3_sroa_0; - $798 = invoke_ii($797 | 0, $_r3_sroa_0_0_load595 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $_r0_sroa_0 = $798; - $799 = HEAP32[$785 >> 2] | 0; - _memcpy($799 | 0, $783 | 0, 40); - $_r0_sroa_0_0_load608 = $_r0_sroa_0; - $800 = ($_r0_sroa_0_0_load608 | 0) == 0; - if ($800) { - label = 216; - break; - } else { - label = 322; - break; - } - case 183: - $802 = HEAP32[$785 >> 2] | 0; - _memcpy($802 | 0, $783 | 0, 40); - $803 = HEAP32[(113236 | 0) >> 2] | 0; - $804 = ($803 | 0) == 0; - if ($804) { - label = 184; - break; - } else { - label = 185; - break; - } - case 184: - invoke_v(538); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 185; - break; - case 185: - $807 = $782 + 20 | 0; - $808 = $807; - $809 = HEAP32[$808 >> 2] | 0; - $810 = ($809 | 0) == 0; - if ($810) { - label = 199; - break; - } else { - label = 186; - break; - } - case 186: - $812 = HEAP32[138672 >> 2] | 0; - $813 = $809; - $814 = HEAP32[$813 >> 2] | 0; - $815 = $814; - $816 = $812 + 8 | 0; - $817 = $816; - $818 = HEAP32[$817 >> 2] | 0; - $819 = ($814 | 0) == 82712; - if ($819) { - label = 187; - break; - } else { - $tib1_0_ph_i395 = $815; - label = 188; - break; - } - case 187: - $821 = $809 + 8 | 0; - $822 = $821; - $823 = HEAP32[$822 >> 2] | 0; - $824 = $823 + 8 | 0; - $825 = $824; - $826 = HEAP32[$825 >> 2] | 0; - $827 = $826; - $tib1_0_ph_i395 = $827; - label = 188; - break; - case 188: - $828 = $tib1_0_ph_i395 + 56 | 0; - $829 = HEAP32[$828 >> 2] | 0; - $830 = ($829 | 0) == 0; - if ($830) { - var $dimension_tib1_0_lcssa_i399 = 0; - var $tib1_0_lcssa_i398 = $tib1_0_ph_i395; - label = 190; - break; - } else { - var $dimension_tib1_029_i401 = 0; - var $836 = $829; - label = 191; - break; - } - case 189: - $831 = $839; - var $dimension_tib1_0_lcssa_i399 = $840; - var $tib1_0_lcssa_i398 = $831; - label = 190; - break; - case 190: - $832 = $818 + 56 | 0; - $833 = $832; - $834 = HEAP32[$833 >> 2] | 0; - $835 = ($834 | 0) == 0; - if ($835) { - var $dimension_tib2_0_lcssa_i406 = 0; - var $tib2_0_lcssa_in_i405 = $818; - label = 193; - break; - } else { - var $dimension_tib2_024_i403 = 0; - var $845 = $834; - label = 192; - break; - } - case 191: - $837 = $836 + 8 | 0; - $838 = $837; - $839 = HEAP32[$838 >> 2] | 0; - $840 = $dimension_tib1_029_i401 + 1 | 0; - $841 = $839 + 56 | 0; - $842 = $841; - $843 = HEAP32[$842 >> 2] | 0; - $844 = ($843 | 0) == 0; - if ($844) { - label = 189; - break; - } else { - var $dimension_tib1_029_i401 = $840; - var $836 = $843; - label = 191; - break; - } - case 192: - $846 = $845 + 8 | 0; - $847 = $846; - $848 = HEAP32[$847 >> 2] | 0; - $849 = $dimension_tib2_024_i403 + 1 | 0; - $850 = $848 + 56 | 0; - $851 = $850; - $852 = HEAP32[$851 >> 2] | 0; - $853 = ($852 | 0) == 0; - if ($853) { - var $dimension_tib2_0_lcssa_i406 = $849; - var $tib2_0_lcssa_in_i405 = $848; - label = 193; - break; - } else { - var $dimension_tib2_024_i403 = $849; - var $845 = $852; - label = 192; - break; - } - case 193: - $tib2_0_lcssa_i407 = $tib2_0_lcssa_in_i405; - $854 = ($dimension_tib1_0_lcssa_i399 | 0) < ($dimension_tib2_0_lcssa_i406 | 0); - $855 = ($tib1_0_lcssa_i398 | 0) == 0; - $or_cond_i408 = $854 | $855; - if ($or_cond_i408) { - label = 199; - break; - } else { - $tib1_121_i410 = $tib1_0_lcssa_i398; - label = 194; - break; - } - case 194: - $856 = ($tib1_121_i410 | 0) == ($tib2_0_lcssa_i407 | 0); - if ($856) { - label = 361; - break; - } else { - label = 195; - break; - } - case 195: - $857 = $tib1_121_i410 + 108 | 0; - $858 = HEAP32[$857 >> 2] | 0; - $859 = $tib1_121_i410 + 112 | 0; - $i_0_i413 = 0; - label = 196; - break; - case 196: - $861 = ($i_0_i413 | 0) < ($858 | 0); - if ($861) { - label = 197; - break; - } else { - label = 198; - break; - } - case 197: - $863 = HEAP32[$859 >> 2] | 0; - $864 = $863 + ($i_0_i413 << 2) | 0; - $865 = HEAP32[$864 >> 2] | 0; - $866 = ($865 | 0) == ($tib2_0_lcssa_i407 | 0); - $867 = $i_0_i413 + 1 | 0; - if ($866) { - label = 361; - break; - } else { - $i_0_i413 = $867; - label = 196; - break; - } - case 198: - $869 = $tib1_121_i410 + 40 | 0; - $870 = HEAP32[$869 >> 2] | 0; - $871 = ($870 | 0) == 0; - if ($871) { - label = 199; - break; - } else { - $tib1_121_i410 = $870; - label = 194; - break; - } - case 199: - $872 = HEAP32[(107740 | 0) >> 2] | 0; - $873 = ($872 | 0) == 0; - if ($873) { - label = 200; - break; - } else { - label = 201; - break; - } - case 200: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 201; - break; - case 201: - $876 = HEAP32[$808 >> 2] | 0; - $877 = ($876 | 0) == 0; - if ($877) { - label = 215; - break; - } else { - label = 202; - break; - } - case 202: - $879 = HEAP32[137616 >> 2] | 0; - $880 = $876; - $881 = HEAP32[$880 >> 2] | 0; - $882 = $881; - $883 = $879 + 8 | 0; - $884 = $883; - $885 = HEAP32[$884 >> 2] | 0; - $886 = ($881 | 0) == 82712; - if ($886) { - label = 203; - break; - } else { - $tib1_0_ph_i374 = $882; - label = 204; - break; - } - case 203: - $888 = $876 + 8 | 0; - $889 = $888; - $890 = HEAP32[$889 >> 2] | 0; - $891 = $890 + 8 | 0; - $892 = $891; - $893 = HEAP32[$892 >> 2] | 0; - $894 = $893; - $tib1_0_ph_i374 = $894; - label = 204; - break; - case 204: - $895 = $tib1_0_ph_i374 + 56 | 0; - $896 = HEAP32[$895 >> 2] | 0; - $897 = ($896 | 0) == 0; - if ($897) { - var $dimension_tib1_0_lcssa_i378 = 0; - var $tib1_0_lcssa_i377 = $tib1_0_ph_i374; - label = 206; - break; - } else { - var $dimension_tib1_029_i380 = 0; - var $903 = $896; - label = 207; - break; - } - case 205: - $898 = $906; - var $dimension_tib1_0_lcssa_i378 = $907; - var $tib1_0_lcssa_i377 = $898; - label = 206; - break; - case 206: - $899 = $885 + 56 | 0; - $900 = $899; - $901 = HEAP32[$900 >> 2] | 0; - $902 = ($901 | 0) == 0; - if ($902) { - var $dimension_tib2_0_lcssa_i385 = 0; - var $tib2_0_lcssa_in_i384 = $885; - label = 209; - break; - } else { - var $dimension_tib2_024_i382 = 0; - var $912 = $901; - label = 208; - break; - } - case 207: - $904 = $903 + 8 | 0; - $905 = $904; - $906 = HEAP32[$905 >> 2] | 0; - $907 = $dimension_tib1_029_i380 + 1 | 0; - $908 = $906 + 56 | 0; - $909 = $908; - $910 = HEAP32[$909 >> 2] | 0; - $911 = ($910 | 0) == 0; - if ($911) { - label = 205; - break; - } else { - var $dimension_tib1_029_i380 = $907; - var $903 = $910; - label = 207; - break; - } - case 208: - $913 = $912 + 8 | 0; - $914 = $913; - $915 = HEAP32[$914 >> 2] | 0; - $916 = $dimension_tib2_024_i382 + 1 | 0; - $917 = $915 + 56 | 0; - $918 = $917; - $919 = HEAP32[$918 >> 2] | 0; - $920 = ($919 | 0) == 0; - if ($920) { - var $dimension_tib2_0_lcssa_i385 = $916; - var $tib2_0_lcssa_in_i384 = $915; - label = 209; - break; - } else { - var $dimension_tib2_024_i382 = $916; - var $912 = $919; - label = 208; - break; - } - case 209: - $tib2_0_lcssa_i386 = $tib2_0_lcssa_in_i384; - $921 = ($dimension_tib1_0_lcssa_i378 | 0) < ($dimension_tib2_0_lcssa_i385 | 0); - $922 = ($tib1_0_lcssa_i377 | 0) == 0; - $or_cond_i387 = $921 | $922; - if ($or_cond_i387) { - label = 215; - break; - } else { - $tib1_121_i389 = $tib1_0_lcssa_i377; - label = 210; - break; - } - case 210: - $923 = ($tib1_121_i389 | 0) == ($tib2_0_lcssa_i386 | 0); - if ($923) { - label = 386; - break; - } else { - label = 211; - break; - } - case 211: - $924 = $tib1_121_i389 + 108 | 0; - $925 = HEAP32[$924 >> 2] | 0; - $926 = $tib1_121_i389 + 112 | 0; - $i_0_i392 = 0; - label = 212; - break; - case 212: - $928 = ($i_0_i392 | 0) < ($925 | 0); - if ($928) { - label = 213; - break; - } else { - label = 214; - break; - } - case 213: - $930 = HEAP32[$926 >> 2] | 0; - $931 = $930 + ($i_0_i392 << 2) | 0; - $932 = HEAP32[$931 >> 2] | 0; - $933 = ($932 | 0) == ($tib2_0_lcssa_i386 | 0); - $934 = $i_0_i392 + 1 | 0; - if ($933) { - label = 386; - break; - } else { - $i_0_i392 = $934; - label = 212; - break; - } - case 214: - $936 = $tib1_121_i389 + 40 | 0; - $937 = HEAP32[$936 >> 2] | 0; - $938 = ($937 | 0) == 0; - if ($938) { - label = 215; - break; - } else { - $tib1_121_i389 = $937; - label = 210; - break; - } - case 215: - $939 = HEAP32[$785 >> 2] | 0; - $940 = $939; - invoke_vii(48, $940 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 216: - $_r0_sroa_0 = 0; - $942 = HEAP32[(105500 | 0) >> 2] | 0; - $943 = ($942 | 0) == 0; - if ($943) { - label = 217; - break; - } else { - label = 218; - break; - } - case 217: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 218; - break; - case 218: - $945 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $946$0 = $945; - $946$1 = 0; - $947 = invoke_iii(364, $946$0 | 0, $946$1 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $948 = $local_env_w4567aaac23b1c35; - $949 = $947 + 16 | 0; - $950 = $949; - $951 = HEAP32[$950 >> 2] | 0; - _memcpy($948 | 0, $951 | 0, 40); - $952 = HEAP32[$950 >> 2] | 0; - $953 = $952; - $954 = _saveSetjmp($953 | 0, label, setjmpTable) | 0; - label = 420; - break; - case 420: - $955 = ($954 | 0) == 0; - if ($955) { - label = 219; - break; - } else { - label = 222; - break; - } - case 219: - $_r0_sroa_0_0_load607 = $_r0_sroa_0; - $957 = HEAP32[(98772 | 0) >> 2] | 0; - $958 = ($957 | 0) == 0; - if ($958) { - label = 220; - break; - } else { - label = 221; - break; - } - case 220: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 221; - break; - case 221: - HEAP32[140048 >> 2] = $_r0_sroa_0_0_load607; - $960 = HEAP32[$950 >> 2] | 0; - _memcpy($960 | 0, $948 | 0, 40); - label = 239; - break; - case 222: - $962 = HEAP32[$950 >> 2] | 0; - _memcpy($962 | 0, $948 | 0, 40); - $963 = HEAP32[(107740 | 0) >> 2] | 0; - $964 = ($963 | 0) == 0; - if ($964) { - label = 223; - break; - } else { - label = 224; - break; - } - case 223: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 224; - break; - case 224: - $967 = $947 + 20 | 0; - $968 = $967; - $969 = HEAP32[$968 >> 2] | 0; - $970 = ($969 | 0) == 0; - if ($970) { - label = 238; - break; - } else { - label = 225; - break; - } - case 225: - $972 = HEAP32[137616 >> 2] | 0; - $973 = $969; - $974 = HEAP32[$973 >> 2] | 0; - $975 = $974; - $976 = $972 + 8 | 0; - $977 = $976; - $978 = HEAP32[$977 >> 2] | 0; - $979 = ($974 | 0) == 82712; - if ($979) { - label = 226; - break; - } else { - $tib1_0_ph_i353 = $975; - label = 227; - break; - } - case 226: - $981 = $969 + 8 | 0; - $982 = $981; - $983 = HEAP32[$982 >> 2] | 0; - $984 = $983 + 8 | 0; - $985 = $984; - $986 = HEAP32[$985 >> 2] | 0; - $987 = $986; - $tib1_0_ph_i353 = $987; - label = 227; - break; - case 227: - $988 = $tib1_0_ph_i353 + 56 | 0; - $989 = HEAP32[$988 >> 2] | 0; - $990 = ($989 | 0) == 0; - if ($990) { - var $dimension_tib1_0_lcssa_i357 = 0; - var $tib1_0_lcssa_i356 = $tib1_0_ph_i353; - label = 229; - break; - } else { - var $dimension_tib1_029_i359 = 0; - var $996 = $989; - label = 230; - break; - } - case 228: - $991 = $999; - var $dimension_tib1_0_lcssa_i357 = $1000; - var $tib1_0_lcssa_i356 = $991; - label = 229; - break; - case 229: - $992 = $978 + 56 | 0; - $993 = $992; - $994 = HEAP32[$993 >> 2] | 0; - $995 = ($994 | 0) == 0; - if ($995) { - var $dimension_tib2_0_lcssa_i364 = 0; - var $tib2_0_lcssa_in_i363 = $978; - label = 232; - break; - } else { - var $dimension_tib2_024_i361 = 0; - var $1005 = $994; - label = 231; - break; - } - case 230: - $997 = $996 + 8 | 0; - $998 = $997; - $999 = HEAP32[$998 >> 2] | 0; - $1000 = $dimension_tib1_029_i359 + 1 | 0; - $1001 = $999 + 56 | 0; - $1002 = $1001; - $1003 = HEAP32[$1002 >> 2] | 0; - $1004 = ($1003 | 0) == 0; - if ($1004) { - label = 228; - break; - } else { - var $dimension_tib1_029_i359 = $1000; - var $996 = $1003; - label = 230; - break; - } - case 231: - $1006 = $1005 + 8 | 0; - $1007 = $1006; - $1008 = HEAP32[$1007 >> 2] | 0; - $1009 = $dimension_tib2_024_i361 + 1 | 0; - $1010 = $1008 + 56 | 0; - $1011 = $1010; - $1012 = HEAP32[$1011 >> 2] | 0; - $1013 = ($1012 | 0) == 0; - if ($1013) { - var $dimension_tib2_0_lcssa_i364 = $1009; - var $tib2_0_lcssa_in_i363 = $1008; - label = 232; - break; - } else { - var $dimension_tib2_024_i361 = $1009; - var $1005 = $1012; - label = 231; - break; - } - case 232: - $tib2_0_lcssa_i365 = $tib2_0_lcssa_in_i363; - $1014 = ($dimension_tib1_0_lcssa_i357 | 0) < ($dimension_tib2_0_lcssa_i364 | 0); - $1015 = ($tib1_0_lcssa_i356 | 0) == 0; - $or_cond_i366 = $1014 | $1015; - if ($or_cond_i366) { - label = 238; - break; - } else { - $tib1_121_i368 = $tib1_0_lcssa_i356; - label = 233; - break; - } - case 233: - $1016 = ($tib1_121_i368 | 0) == ($tib2_0_lcssa_i365 | 0); - if ($1016) { - label = 54; - break; - } else { - label = 234; - break; - } - case 234: - $1017 = $tib1_121_i368 + 108 | 0; - $1018 = HEAP32[$1017 >> 2] | 0; - $1019 = $tib1_121_i368 + 112 | 0; - $i_0_i371 = 0; - label = 235; - break; - case 235: - $1021 = ($i_0_i371 | 0) < ($1018 | 0); - if ($1021) { - label = 236; - break; - } else { - label = 237; - break; - } - case 236: - $1023 = HEAP32[$1019 >> 2] | 0; - $1024 = $1023 + ($i_0_i371 << 2) | 0; - $1025 = HEAP32[$1024 >> 2] | 0; - $1026 = ($1025 | 0) == ($tib2_0_lcssa_i365 | 0); - $1027 = $i_0_i371 + 1 | 0; - if ($1026) { - label = 54; - break; - } else { - $i_0_i371 = $1027; - label = 235; - break; - } - case 237: - $1029 = $tib1_121_i368 + 40 | 0; - $1030 = HEAP32[$1029 >> 2] | 0; - $1031 = ($1030 | 0) == 0; - if ($1031) { - label = 238; - break; - } else { - $tib1_121_i368 = $1030; - label = 233; - break; - } - case 238: - $1032 = HEAP32[$950 >> 2] | 0; - $1033 = $1032; - invoke_vii(48, $1033 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 239: - $_r0_sroa_0 = 0; - label = 28; - break; - case 240: - $1036 = $local_env_w4567aaac23b1c40; - $1037 = $548 + 16 | 0; - $1038 = $1037; - $1039 = HEAP32[$1038 >> 2] | 0; - _memcpy($1036 | 0, $1039 | 0, 40); - $1040 = HEAP32[$1038 >> 2] | 0; - $1041 = $1040; - $1042 = _saveSetjmp($1041 | 0, label, setjmpTable) | 0; - label = 421; - break; - case 421: - $1043 = ($1042 | 0) == 0; - if ($1043) { - label = 241; - break; - } else { - label = 253; - break; - } - case 241: - $1045 = HEAP32[(98772 | 0) >> 2] | 0; - $1046 = ($1045 | 0) == 0; - if ($1046) { - label = 242; - break; - } else { - label = 244; - break; - } - case 242: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $_pr = HEAP32[(98772 | 0) >> 2] | 0; - $1048 = ($_pr | 0) == 0; - if ($1048) { - label = 243; - break; - } else { - label = 244; - break; - } - case 243: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 244; - break; - case 244: - $1050 = HEAP32[140040 >> 2] | 0; - $1051 = ($1050 | 0) == 0; - if ($1051) { - label = 245; - break; - } else { - label = 246; - break; - } - case 245: - invoke_viiii(14, 16136 | 0 | 0, 11648 | 0 | 0, 126768 | 0 | 0, 573 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 246: - $1053 = HEAP32[(98772 | 0) >> 2] | 0; - $1054 = ($1053 | 0) == 0; - if ($1054) { - label = 247; - break; - } else { - $1056 = $1050; - label = 248; - break; - } - case 247: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $_pre855 = HEAP32[140040 >> 2] | 0; - $1056 = $_pre855; - label = 248; - break; - case 248: - $1057 = $1056; - $_r0_sroa_0 = $1057; - $_r0_sroa_0_0_load606 = $_r0_sroa_0; - $1058 = ($_r0_sroa_0_0_load606 | 0) == 0; - if ($1058) { - label = 252; - break; - } else { - label = 249; - break; - } - case 249: - $1060 = HEAP32[$1038 >> 2] | 0; - _memcpy($1060 | 0, $1036 | 0, 40); - $1061 = HEAP32[(105500 | 0) >> 2] | 0; - $1062 = ($1061 | 0) == 0; - if ($1062) { - label = 250; - break; - } else { - label = 251; - break; - } - case 250: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 251; - break; - case 251: - $1064 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1065$0 = $1064; - $1065$1 = 0; - $1066 = invoke_iii(364, $1065$0 | 0, $1065$1 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1067 = $local_env_w4567aaac23b1c42; - $1068 = $1066 + 16 | 0; - $1069 = $1068; - $1070 = HEAP32[$1069 >> 2] | 0; - _memcpy($1067 | 0, $1070 | 0, 40); - $1071 = HEAP32[$1069 >> 2] | 0; - $1072 = $1071; - $1073 = _saveSetjmp($1072 | 0, label, setjmpTable) | 0; - label = 422; - break; - case 422: - $1074 = ($1073 | 0) == 0; - if ($1074) { - label = 286; - break; - } else { - label = 289; - break; - } - case 252: - invoke_viiii(14, 16136 | 0 | 0, 11648 | 0 | 0, 126872 | 0 | 0, 1581 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 253: - $1077 = HEAP32[$1038 >> 2] | 0; - _memcpy($1077 | 0, $1036 | 0, 40); - $1078 = HEAP32[(113236 | 0) >> 2] | 0; - $1079 = ($1078 | 0) == 0; - if ($1079) { - label = 254; - break; - } else { - label = 255; - break; - } - case 254: - invoke_v(538); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 255; - break; - case 255: - $1082 = $548 + 20 | 0; - $1083 = $1082; - $1084 = HEAP32[$1083 >> 2] | 0; - $1085 = ($1084 | 0) == 0; - if ($1085) { - label = 269; - break; - } else { - label = 256; - break; - } - case 256: - $1087 = HEAP32[138672 >> 2] | 0; - $1088 = $1084; - $1089 = HEAP32[$1088 >> 2] | 0; - $1090 = $1089; - $1091 = $1087 + 8 | 0; - $1092 = $1091; - $1093 = HEAP32[$1092 >> 2] | 0; - $1094 = ($1089 | 0) == 82712; - if ($1094) { - label = 257; - break; - } else { - $tib1_0_ph_i332 = $1090; - label = 258; - break; - } - case 257: - $1096 = $1084 + 8 | 0; - $1097 = $1096; - $1098 = HEAP32[$1097 >> 2] | 0; - $1099 = $1098 + 8 | 0; - $1100 = $1099; - $1101 = HEAP32[$1100 >> 2] | 0; - $1102 = $1101; - $tib1_0_ph_i332 = $1102; - label = 258; - break; - case 258: - $1103 = $tib1_0_ph_i332 + 56 | 0; - $1104 = HEAP32[$1103 >> 2] | 0; - $1105 = ($1104 | 0) == 0; - if ($1105) { - var $dimension_tib1_0_lcssa_i336 = 0; - var $tib1_0_lcssa_i335 = $tib1_0_ph_i332; - label = 260; - break; - } else { - var $dimension_tib1_029_i338 = 0; - var $1111 = $1104; - label = 261; - break; - } - case 259: - $1106 = $1114; - var $dimension_tib1_0_lcssa_i336 = $1115; - var $tib1_0_lcssa_i335 = $1106; - label = 260; - break; - case 260: - $1107 = $1093 + 56 | 0; - $1108 = $1107; - $1109 = HEAP32[$1108 >> 2] | 0; - $1110 = ($1109 | 0) == 0; - if ($1110) { - var $dimension_tib2_0_lcssa_i343 = 0; - var $tib2_0_lcssa_in_i342 = $1093; - label = 263; - break; - } else { - var $dimension_tib2_024_i340 = 0; - var $1120 = $1109; - label = 262; - break; - } - case 261: - $1112 = $1111 + 8 | 0; - $1113 = $1112; - $1114 = HEAP32[$1113 >> 2] | 0; - $1115 = $dimension_tib1_029_i338 + 1 | 0; - $1116 = $1114 + 56 | 0; - $1117 = $1116; - $1118 = HEAP32[$1117 >> 2] | 0; - $1119 = ($1118 | 0) == 0; - if ($1119) { - label = 259; - break; - } else { - var $dimension_tib1_029_i338 = $1115; - var $1111 = $1118; - label = 261; - break; - } - case 262: - $1121 = $1120 + 8 | 0; - $1122 = $1121; - $1123 = HEAP32[$1122 >> 2] | 0; - $1124 = $dimension_tib2_024_i340 + 1 | 0; - $1125 = $1123 + 56 | 0; - $1126 = $1125; - $1127 = HEAP32[$1126 >> 2] | 0; - $1128 = ($1127 | 0) == 0; - if ($1128) { - var $dimension_tib2_0_lcssa_i343 = $1124; - var $tib2_0_lcssa_in_i342 = $1123; - label = 263; - break; - } else { - var $dimension_tib2_024_i340 = $1124; - var $1120 = $1127; - label = 262; - break; - } - case 263: - $tib2_0_lcssa_i344 = $tib2_0_lcssa_in_i342; - $1129 = ($dimension_tib1_0_lcssa_i336 | 0) < ($dimension_tib2_0_lcssa_i343 | 0); - $1130 = ($tib1_0_lcssa_i335 | 0) == 0; - $or_cond_i345 = $1129 | $1130; - if ($or_cond_i345) { - label = 269; - break; - } else { - $tib1_121_i347 = $tib1_0_lcssa_i335; - label = 264; - break; - } - case 264: - $1131 = ($tib1_121_i347 | 0) == ($tib2_0_lcssa_i344 | 0); - if ($1131) { - label = 361; - break; - } else { - label = 265; - break; - } - case 265: - $1132 = $tib1_121_i347 + 108 | 0; - $1133 = HEAP32[$1132 >> 2] | 0; - $1134 = $tib1_121_i347 + 112 | 0; - $i_0_i350 = 0; - label = 266; - break; - case 266: - $1136 = ($i_0_i350 | 0) < ($1133 | 0); - if ($1136) { - label = 267; - break; - } else { - label = 268; - break; - } - case 267: - $1138 = HEAP32[$1134 >> 2] | 0; - $1139 = $1138 + ($i_0_i350 << 2) | 0; - $1140 = HEAP32[$1139 >> 2] | 0; - $1141 = ($1140 | 0) == ($tib2_0_lcssa_i344 | 0); - $1142 = $i_0_i350 + 1 | 0; - if ($1141) { - label = 361; - break; - } else { - $i_0_i350 = $1142; - label = 266; - break; - } - case 268: - $1144 = $tib1_121_i347 + 40 | 0; - $1145 = HEAP32[$1144 >> 2] | 0; - $1146 = ($1145 | 0) == 0; - if ($1146) { - label = 269; - break; - } else { - $tib1_121_i347 = $1145; - label = 264; - break; - } - case 269: - $1147 = HEAP32[(107740 | 0) >> 2] | 0; - $1148 = ($1147 | 0) == 0; - if ($1148) { - label = 270; - break; - } else { - label = 271; - break; - } - case 270: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 271; - break; - case 271: - $1151 = HEAP32[$1083 >> 2] | 0; - $1152 = ($1151 | 0) == 0; - if ($1152) { - label = 285; - break; - } else { - label = 272; - break; - } - case 272: - $1154 = HEAP32[137616 >> 2] | 0; - $1155 = $1151; - $1156 = HEAP32[$1155 >> 2] | 0; - $1157 = $1156; - $1158 = $1154 + 8 | 0; - $1159 = $1158; - $1160 = HEAP32[$1159 >> 2] | 0; - $1161 = ($1156 | 0) == 82712; - if ($1161) { - label = 273; - break; - } else { - $tib1_0_ph_i311 = $1157; - label = 274; - break; - } - case 273: - $1163 = $1151 + 8 | 0; - $1164 = $1163; - $1165 = HEAP32[$1164 >> 2] | 0; - $1166 = $1165 + 8 | 0; - $1167 = $1166; - $1168 = HEAP32[$1167 >> 2] | 0; - $1169 = $1168; - $tib1_0_ph_i311 = $1169; - label = 274; - break; - case 274: - $1170 = $tib1_0_ph_i311 + 56 | 0; - $1171 = HEAP32[$1170 >> 2] | 0; - $1172 = ($1171 | 0) == 0; - if ($1172) { - var $dimension_tib1_0_lcssa_i315 = 0; - var $tib1_0_lcssa_i314 = $tib1_0_ph_i311; - label = 276; - break; - } else { - var $dimension_tib1_029_i317 = 0; - var $1178 = $1171; - label = 277; - break; - } - case 275: - $1173 = $1181; - var $dimension_tib1_0_lcssa_i315 = $1182; - var $tib1_0_lcssa_i314 = $1173; - label = 276; - break; - case 276: - $1174 = $1160 + 56 | 0; - $1175 = $1174; - $1176 = HEAP32[$1175 >> 2] | 0; - $1177 = ($1176 | 0) == 0; - if ($1177) { - var $dimension_tib2_0_lcssa_i322 = 0; - var $tib2_0_lcssa_in_i321 = $1160; - label = 279; - break; - } else { - var $dimension_tib2_024_i319 = 0; - var $1187 = $1176; - label = 278; - break; - } - case 277: - $1179 = $1178 + 8 | 0; - $1180 = $1179; - $1181 = HEAP32[$1180 >> 2] | 0; - $1182 = $dimension_tib1_029_i317 + 1 | 0; - $1183 = $1181 + 56 | 0; - $1184 = $1183; - $1185 = HEAP32[$1184 >> 2] | 0; - $1186 = ($1185 | 0) == 0; - if ($1186) { - label = 275; - break; - } else { - var $dimension_tib1_029_i317 = $1182; - var $1178 = $1185; - label = 277; - break; - } - case 278: - $1188 = $1187 + 8 | 0; - $1189 = $1188; - $1190 = HEAP32[$1189 >> 2] | 0; - $1191 = $dimension_tib2_024_i319 + 1 | 0; - $1192 = $1190 + 56 | 0; - $1193 = $1192; - $1194 = HEAP32[$1193 >> 2] | 0; - $1195 = ($1194 | 0) == 0; - if ($1195) { - var $dimension_tib2_0_lcssa_i322 = $1191; - var $tib2_0_lcssa_in_i321 = $1190; - label = 279; - break; - } else { - var $dimension_tib2_024_i319 = $1191; - var $1187 = $1194; - label = 278; - break; - } - case 279: - $tib2_0_lcssa_i323 = $tib2_0_lcssa_in_i321; - $1196 = ($dimension_tib1_0_lcssa_i315 | 0) < ($dimension_tib2_0_lcssa_i322 | 0); - $1197 = ($tib1_0_lcssa_i314 | 0) == 0; - $or_cond_i324 = $1196 | $1197; - if ($or_cond_i324) { - label = 285; - break; - } else { - $tib1_121_i326 = $tib1_0_lcssa_i314; - label = 280; - break; - } - case 280: - $1198 = ($tib1_121_i326 | 0) == ($tib2_0_lcssa_i323 | 0); - if ($1198) { - label = 386; - break; - } else { - label = 281; - break; - } - case 281: - $1199 = $tib1_121_i326 + 108 | 0; - $1200 = HEAP32[$1199 >> 2] | 0; - $1201 = $tib1_121_i326 + 112 | 0; - $i_0_i329 = 0; - label = 282; - break; - case 282: - $1203 = ($i_0_i329 | 0) < ($1200 | 0); - if ($1203) { - label = 283; - break; - } else { - label = 284; - break; - } - case 283: - $1205 = HEAP32[$1201 >> 2] | 0; - $1206 = $1205 + ($i_0_i329 << 2) | 0; - $1207 = HEAP32[$1206 >> 2] | 0; - $1208 = ($1207 | 0) == ($tib2_0_lcssa_i323 | 0); - $1209 = $i_0_i329 + 1 | 0; - if ($1208) { - label = 386; - break; - } else { - $i_0_i329 = $1209; - label = 282; - break; - } - case 284: - $1211 = $tib1_121_i326 + 40 | 0; - $1212 = HEAP32[$1211 >> 2] | 0; - $1213 = ($1212 | 0) == 0; - if ($1213) { - label = 285; - break; - } else { - $tib1_121_i326 = $1212; - label = 280; - break; - } - case 285: - $1214 = HEAP32[$1038 >> 2] | 0; - $1215 = $1214; - invoke_vii(48, $1215 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 286: - $1217 = HEAP32[(98772 | 0) >> 2] | 0; - $1218 = ($1217 | 0) == 0; - if ($1218) { - label = 287; - break; - } else { - label = 288; - break; - } - case 287: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 288; - break; - case 288: - $1220 = HEAP32[140040 >> 2] | 0; - $1221 = $1220; - $_r0_sroa_0 = $1221; - $1222 = invoke_ii(556, 709 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $_r3_sroa_0 = $1222; - $_r0_sroa_0_0_load605 = $_r0_sroa_0; - $_r3_sroa_0_0_load594 = $_r3_sroa_0; - $_r0_sroa_0 = 0; - $_r0_sroa_0_0_load623 = $_r0_sroa_0; - $1223 = $_r0_sroa_0_0_load623; - $_r3_sroa_0 = $1223; - $_r0_sroa_1_4__r3_sroa_1_4_idx_idx = $_r3_sroa_1 | 0; - $_r0_sroa_1_4_idx156 = $_r0_sroa_1 | 0; - HEAP32[$_r0_sroa_1_4__r3_sroa_1_4_idx_idx >> 2] = HEAP32[$_r0_sroa_1_4_idx156 >> 2] | 0; - $1224 = HEAP32[$1069 >> 2] | 0; - _memcpy($1224 | 0, $1067 | 0, 40); - label = 179; - break; - case 289: - $1226 = HEAP32[$1069 >> 2] | 0; - _memcpy($1226 | 0, $1067 | 0, 40); - $1227 = HEAP32[(113236 | 0) >> 2] | 0; - $1228 = ($1227 | 0) == 0; - if ($1228) { - label = 290; - break; - } else { - label = 291; - break; - } - case 290: - invoke_v(538); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 291; - break; - case 291: - $1231 = $1066 + 20 | 0; - $1232 = $1231; - $1233 = HEAP32[$1232 >> 2] | 0; - $1234 = ($1233 | 0) == 0; - if ($1234) { - label = 305; - break; - } else { - label = 292; - break; - } - case 292: - $1236 = HEAP32[138672 >> 2] | 0; - $1237 = $1233; - $1238 = HEAP32[$1237 >> 2] | 0; - $1239 = $1238; - $1240 = $1236 + 8 | 0; - $1241 = $1240; - $1242 = HEAP32[$1241 >> 2] | 0; - $1243 = ($1238 | 0) == 82712; - if ($1243) { - label = 293; - break; - } else { - $tib1_0_ph_i290 = $1239; - label = 294; - break; - } - case 293: - $1245 = $1233 + 8 | 0; - $1246 = $1245; - $1247 = HEAP32[$1246 >> 2] | 0; - $1248 = $1247 + 8 | 0; - $1249 = $1248; - $1250 = HEAP32[$1249 >> 2] | 0; - $1251 = $1250; - $tib1_0_ph_i290 = $1251; - label = 294; - break; - case 294: - $1252 = $tib1_0_ph_i290 + 56 | 0; - $1253 = HEAP32[$1252 >> 2] | 0; - $1254 = ($1253 | 0) == 0; - if ($1254) { - var $dimension_tib1_0_lcssa_i294 = 0; - var $tib1_0_lcssa_i293 = $tib1_0_ph_i290; - label = 296; - break; - } else { - var $dimension_tib1_029_i296 = 0; - var $1260 = $1253; - label = 297; - break; - } - case 295: - $1255 = $1263; - var $dimension_tib1_0_lcssa_i294 = $1264; - var $tib1_0_lcssa_i293 = $1255; - label = 296; - break; - case 296: - $1256 = $1242 + 56 | 0; - $1257 = $1256; - $1258 = HEAP32[$1257 >> 2] | 0; - $1259 = ($1258 | 0) == 0; - if ($1259) { - var $dimension_tib2_0_lcssa_i301 = 0; - var $tib2_0_lcssa_in_i300 = $1242; - label = 299; - break; - } else { - var $dimension_tib2_024_i298 = 0; - var $1269 = $1258; - label = 298; - break; - } - case 297: - $1261 = $1260 + 8 | 0; - $1262 = $1261; - $1263 = HEAP32[$1262 >> 2] | 0; - $1264 = $dimension_tib1_029_i296 + 1 | 0; - $1265 = $1263 + 56 | 0; - $1266 = $1265; - $1267 = HEAP32[$1266 >> 2] | 0; - $1268 = ($1267 | 0) == 0; - if ($1268) { - label = 295; - break; - } else { - var $dimension_tib1_029_i296 = $1264; - var $1260 = $1267; - label = 297; - break; - } - case 298: - $1270 = $1269 + 8 | 0; - $1271 = $1270; - $1272 = HEAP32[$1271 >> 2] | 0; - $1273 = $dimension_tib2_024_i298 + 1 | 0; - $1274 = $1272 + 56 | 0; - $1275 = $1274; - $1276 = HEAP32[$1275 >> 2] | 0; - $1277 = ($1276 | 0) == 0; - if ($1277) { - var $dimension_tib2_0_lcssa_i301 = $1273; - var $tib2_0_lcssa_in_i300 = $1272; - label = 299; - break; - } else { - var $dimension_tib2_024_i298 = $1273; - var $1269 = $1276; - label = 298; - break; - } - case 299: - $tib2_0_lcssa_i302 = $tib2_0_lcssa_in_i300; - $1278 = ($dimension_tib1_0_lcssa_i294 | 0) < ($dimension_tib2_0_lcssa_i301 | 0); - $1279 = ($tib1_0_lcssa_i293 | 0) == 0; - $or_cond_i303 = $1278 | $1279; - if ($or_cond_i303) { - label = 305; - break; - } else { - $tib1_121_i305 = $tib1_0_lcssa_i293; - label = 300; - break; - } - case 300: - $1280 = ($tib1_121_i305 | 0) == ($tib2_0_lcssa_i302 | 0); - if ($1280) { - label = 361; - break; - } else { - label = 301; - break; - } - case 301: - $1281 = $tib1_121_i305 + 108 | 0; - $1282 = HEAP32[$1281 >> 2] | 0; - $1283 = $tib1_121_i305 + 112 | 0; - $i_0_i308 = 0; - label = 302; - break; - case 302: - $1285 = ($i_0_i308 | 0) < ($1282 | 0); - if ($1285) { - label = 303; - break; - } else { - label = 304; - break; - } - case 303: - $1287 = HEAP32[$1283 >> 2] | 0; - $1288 = $1287 + ($i_0_i308 << 2) | 0; - $1289 = HEAP32[$1288 >> 2] | 0; - $1290 = ($1289 | 0) == ($tib2_0_lcssa_i302 | 0); - $1291 = $i_0_i308 + 1 | 0; - if ($1290) { - label = 361; - break; - } else { - $i_0_i308 = $1291; - label = 302; - break; - } - case 304: - $1293 = $tib1_121_i305 + 40 | 0; - $1294 = HEAP32[$1293 >> 2] | 0; - $1295 = ($1294 | 0) == 0; - if ($1295) { - label = 305; - break; - } else { - $tib1_121_i305 = $1294; - label = 300; - break; - } - case 305: - $1296 = HEAP32[(107740 | 0) >> 2] | 0; - $1297 = ($1296 | 0) == 0; - if ($1297) { - label = 306; - break; - } else { - label = 307; - break; - } - case 306: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 307; - break; - case 307: - $1300 = HEAP32[$1232 >> 2] | 0; - $1301 = ($1300 | 0) == 0; - if ($1301) { - label = 321; - break; - } else { - label = 308; - break; - } - case 308: - $1303 = HEAP32[137616 >> 2] | 0; - $1304 = $1300; - $1305 = HEAP32[$1304 >> 2] | 0; - $1306 = $1305; - $1307 = $1303 + 8 | 0; - $1308 = $1307; - $1309 = HEAP32[$1308 >> 2] | 0; - $1310 = ($1305 | 0) == 82712; - if ($1310) { - label = 309; - break; - } else { - $tib1_0_ph_i269 = $1306; - label = 310; - break; - } - case 309: - $1312 = $1300 + 8 | 0; - $1313 = $1312; - $1314 = HEAP32[$1313 >> 2] | 0; - $1315 = $1314 + 8 | 0; - $1316 = $1315; - $1317 = HEAP32[$1316 >> 2] | 0; - $1318 = $1317; - $tib1_0_ph_i269 = $1318; - label = 310; - break; - case 310: - $1319 = $tib1_0_ph_i269 + 56 | 0; - $1320 = HEAP32[$1319 >> 2] | 0; - $1321 = ($1320 | 0) == 0; - if ($1321) { - var $dimension_tib1_0_lcssa_i273 = 0; - var $tib1_0_lcssa_i272 = $tib1_0_ph_i269; - label = 312; - break; - } else { - var $dimension_tib1_029_i275 = 0; - var $1327 = $1320; - label = 313; - break; - } - case 311: - $1322 = $1330; - var $dimension_tib1_0_lcssa_i273 = $1331; - var $tib1_0_lcssa_i272 = $1322; - label = 312; - break; - case 312: - $1323 = $1309 + 56 | 0; - $1324 = $1323; - $1325 = HEAP32[$1324 >> 2] | 0; - $1326 = ($1325 | 0) == 0; - if ($1326) { - var $dimension_tib2_0_lcssa_i280 = 0; - var $tib2_0_lcssa_in_i279 = $1309; - label = 315; - break; - } else { - var $dimension_tib2_024_i277 = 0; - var $1336 = $1325; - label = 314; - break; - } - case 313: - $1328 = $1327 + 8 | 0; - $1329 = $1328; - $1330 = HEAP32[$1329 >> 2] | 0; - $1331 = $dimension_tib1_029_i275 + 1 | 0; - $1332 = $1330 + 56 | 0; - $1333 = $1332; - $1334 = HEAP32[$1333 >> 2] | 0; - $1335 = ($1334 | 0) == 0; - if ($1335) { - label = 311; - break; - } else { - var $dimension_tib1_029_i275 = $1331; - var $1327 = $1334; - label = 313; - break; - } - case 314: - $1337 = $1336 + 8 | 0; - $1338 = $1337; - $1339 = HEAP32[$1338 >> 2] | 0; - $1340 = $dimension_tib2_024_i277 + 1 | 0; - $1341 = $1339 + 56 | 0; - $1342 = $1341; - $1343 = HEAP32[$1342 >> 2] | 0; - $1344 = ($1343 | 0) == 0; - if ($1344) { - var $dimension_tib2_0_lcssa_i280 = $1340; - var $tib2_0_lcssa_in_i279 = $1339; - label = 315; - break; - } else { - var $dimension_tib2_024_i277 = $1340; - var $1336 = $1343; - label = 314; - break; - } - case 315: - $tib2_0_lcssa_i281 = $tib2_0_lcssa_in_i279; - $1345 = ($dimension_tib1_0_lcssa_i273 | 0) < ($dimension_tib2_0_lcssa_i280 | 0); - $1346 = ($tib1_0_lcssa_i272 | 0) == 0; - $or_cond_i282 = $1345 | $1346; - if ($or_cond_i282) { - label = 321; - break; - } else { - $tib1_121_i284 = $tib1_0_lcssa_i272; - label = 316; - break; - } - case 316: - $1347 = ($tib1_121_i284 | 0) == ($tib2_0_lcssa_i281 | 0); - if ($1347) { - label = 386; - break; - } else { - label = 317; - break; - } - case 317: - $1348 = $tib1_121_i284 + 108 | 0; - $1349 = HEAP32[$1348 >> 2] | 0; - $1350 = $tib1_121_i284 + 112 | 0; - $i_0_i287 = 0; - label = 318; - break; - case 318: - $1352 = ($i_0_i287 | 0) < ($1349 | 0); - if ($1352) { - label = 319; - break; - } else { - label = 320; - break; - } - case 319: - $1354 = HEAP32[$1350 >> 2] | 0; - $1355 = $1354 + ($i_0_i287 << 2) | 0; - $1356 = HEAP32[$1355 >> 2] | 0; - $1357 = ($1356 | 0) == ($tib2_0_lcssa_i281 | 0); - $1358 = $i_0_i287 + 1 | 0; - if ($1357) { - label = 386; - break; - } else { - $i_0_i287 = $1358; - label = 318; - break; - } - case 320: - $1360 = $tib1_121_i284 + 40 | 0; - $1361 = HEAP32[$1360 >> 2] | 0; - $1362 = ($1361 | 0) == 0; - if ($1362) { - label = 321; - break; - } else { - $tib1_121_i284 = $1361; - label = 316; - break; - } - case 321: - $1363 = HEAP32[$1069 >> 2] | 0; - $1364 = $1363; - invoke_vii(48, $1364 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 322: - $1366 = HEAP32[(105500 | 0) >> 2] | 0; - $1367 = ($1366 | 0) == 0; - if ($1367) { - label = 323; - break; - } else { - label = 324; - break; - } - case 323: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 324; - break; - case 324: - $1369 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1370$0 = $1369; - $1370$1 = 0; - $1371 = invoke_iii(364, $1370$0 | 0, $1370$1 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1372 = $local_env_w4567aaac23b1c44; - $1373 = $1371 + 16 | 0; - $1374 = $1373; - $1375 = HEAP32[$1374 >> 2] | 0; - _memcpy($1372 | 0, $1375 | 0, 40); - $1376 = HEAP32[$1374 >> 2] | 0; - $1377 = $1376; - $1378 = _saveSetjmp($1377 | 0, label, setjmpTable) | 0; - label = 423; - break; - case 423: - $1379 = ($1378 | 0) == 0; - if ($1379) { - label = 325; - break; - } else { - label = 328; - break; - } - case 325: - $_r0_sroa_0 = 1; - $_r0_sroa_0_0_load604 = $_r0_sroa_0; - $1381 = HEAP32[(98772 | 0) >> 2] | 0; - $1382 = ($1381 | 0) == 0; - if ($1382) { - label = 326; - break; - } else { - label = 327; - break; - } - case 326: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 327; - break; - case 327: - HEAP32[140048 >> 2] = $_r0_sroa_0_0_load604; - $_r3_sroa_0_0_load593 = $_r3_sroa_0; - $1384 = $_r3_sroa_0_0_load593; - $1385 = HEAP32[$1384 >> 2] | 0; - $1386 = $1385 + 116 | 0; - $1387 = HEAP32[$1386 >> 2] | 0; - $1388 = $1387 + 4 | 0; - $1389 = HEAP32[$1388 >> 2] | 0; - $1390 = $1389; - $_r3_sroa_0_0_load = $_r3_sroa_0; - $1391 = invoke_ii($1390 | 0, $_r3_sroa_0_0_load | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1392 = $1391; - $_r0_sroa_0 = $1392; - invoke_viiii(14, 16136 | 0 | 0, 11648 | 0 | 0, 126872 | 0 | 0, 1630 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 328: - $1394 = HEAP32[$1374 >> 2] | 0; - _memcpy($1394 | 0, $1372 | 0, 40); - $1395 = HEAP32[(113236 | 0) >> 2] | 0; - $1396 = ($1395 | 0) == 0; - if ($1396) { - label = 329; - break; - } else { - label = 330; - break; - } - case 329: - invoke_v(538); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 330; - break; - case 330: - $1399 = $1371 + 20 | 0; - $1400 = $1399; - $1401 = HEAP32[$1400 >> 2] | 0; - $1402 = ($1401 | 0) == 0; - if ($1402) { - label = 344; - break; - } else { - label = 331; - break; - } - case 331: - $1404 = HEAP32[138672 >> 2] | 0; - $1405 = $1401; - $1406 = HEAP32[$1405 >> 2] | 0; - $1407 = $1406; - $1408 = $1404 + 8 | 0; - $1409 = $1408; - $1410 = HEAP32[$1409 >> 2] | 0; - $1411 = ($1406 | 0) == 82712; - if ($1411) { - label = 332; - break; - } else { - $tib1_0_ph_i248 = $1407; - label = 333; - break; - } - case 332: - $1413 = $1401 + 8 | 0; - $1414 = $1413; - $1415 = HEAP32[$1414 >> 2] | 0; - $1416 = $1415 + 8 | 0; - $1417 = $1416; - $1418 = HEAP32[$1417 >> 2] | 0; - $1419 = $1418; - $tib1_0_ph_i248 = $1419; - label = 333; - break; - case 333: - $1420 = $tib1_0_ph_i248 + 56 | 0; - $1421 = HEAP32[$1420 >> 2] | 0; - $1422 = ($1421 | 0) == 0; - if ($1422) { - var $dimension_tib1_0_lcssa_i252 = 0; - var $tib1_0_lcssa_i251 = $tib1_0_ph_i248; - label = 335; - break; - } else { - var $dimension_tib1_029_i254 = 0; - var $1428 = $1421; - label = 336; - break; - } - case 334: - $1423 = $1431; - var $dimension_tib1_0_lcssa_i252 = $1432; - var $tib1_0_lcssa_i251 = $1423; - label = 335; - break; - case 335: - $1424 = $1410 + 56 | 0; - $1425 = $1424; - $1426 = HEAP32[$1425 >> 2] | 0; - $1427 = ($1426 | 0) == 0; - if ($1427) { - var $dimension_tib2_0_lcssa_i259 = 0; - var $tib2_0_lcssa_in_i258 = $1410; - label = 338; - break; - } else { - var $dimension_tib2_024_i256 = 0; - var $1437 = $1426; - label = 337; - break; - } - case 336: - $1429 = $1428 + 8 | 0; - $1430 = $1429; - $1431 = HEAP32[$1430 >> 2] | 0; - $1432 = $dimension_tib1_029_i254 + 1 | 0; - $1433 = $1431 + 56 | 0; - $1434 = $1433; - $1435 = HEAP32[$1434 >> 2] | 0; - $1436 = ($1435 | 0) == 0; - if ($1436) { - label = 334; - break; - } else { - var $dimension_tib1_029_i254 = $1432; - var $1428 = $1435; - label = 336; - break; - } - case 337: - $1438 = $1437 + 8 | 0; - $1439 = $1438; - $1440 = HEAP32[$1439 >> 2] | 0; - $1441 = $dimension_tib2_024_i256 + 1 | 0; - $1442 = $1440 + 56 | 0; - $1443 = $1442; - $1444 = HEAP32[$1443 >> 2] | 0; - $1445 = ($1444 | 0) == 0; - if ($1445) { - var $dimension_tib2_0_lcssa_i259 = $1441; - var $tib2_0_lcssa_in_i258 = $1440; - label = 338; - break; - } else { - var $dimension_tib2_024_i256 = $1441; - var $1437 = $1444; - label = 337; - break; - } - case 338: - $tib2_0_lcssa_i260 = $tib2_0_lcssa_in_i258; - $1446 = ($dimension_tib1_0_lcssa_i252 | 0) < ($dimension_tib2_0_lcssa_i259 | 0); - $1447 = ($tib1_0_lcssa_i251 | 0) == 0; - $or_cond_i261 = $1446 | $1447; - if ($or_cond_i261) { - label = 344; - break; - } else { - $tib1_121_i263 = $tib1_0_lcssa_i251; - label = 339; - break; - } - case 339: - $1448 = ($tib1_121_i263 | 0) == ($tib2_0_lcssa_i260 | 0); - if ($1448) { - label = 361; - break; - } else { - label = 340; - break; - } - case 340: - $1449 = $tib1_121_i263 + 108 | 0; - $1450 = HEAP32[$1449 >> 2] | 0; - $1451 = $tib1_121_i263 + 112 | 0; - $i_0_i266 = 0; - label = 341; - break; - case 341: - $1453 = ($i_0_i266 | 0) < ($1450 | 0); - if ($1453) { - label = 342; - break; - } else { - label = 343; - break; - } - case 342: - $1455 = HEAP32[$1451 >> 2] | 0; - $1456 = $1455 + ($i_0_i266 << 2) | 0; - $1457 = HEAP32[$1456 >> 2] | 0; - $1458 = ($1457 | 0) == ($tib2_0_lcssa_i260 | 0); - $1459 = $i_0_i266 + 1 | 0; - if ($1458) { - label = 361; - break; - } else { - $i_0_i266 = $1459; - label = 341; - break; - } - case 343: - $1461 = $tib1_121_i263 + 40 | 0; - $1462 = HEAP32[$1461 >> 2] | 0; - $1463 = ($1462 | 0) == 0; - if ($1463) { - label = 344; - break; - } else { - $tib1_121_i263 = $1462; - label = 339; - break; - } - case 344: - $1464 = HEAP32[(107740 | 0) >> 2] | 0; - $1465 = ($1464 | 0) == 0; - if ($1465) { - label = 345; - break; - } else { - label = 346; - break; - } - case 345: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 346; - break; - case 346: - $1468 = HEAP32[$1400 >> 2] | 0; - $1469 = ($1468 | 0) == 0; - if ($1469) { - label = 360; - break; - } else { - label = 347; - break; - } - case 347: - $1471 = HEAP32[137616 >> 2] | 0; - $1472 = $1468; - $1473 = HEAP32[$1472 >> 2] | 0; - $1474 = $1473; - $1475 = $1471 + 8 | 0; - $1476 = $1475; - $1477 = HEAP32[$1476 >> 2] | 0; - $1478 = ($1473 | 0) == 82712; - if ($1478) { - label = 348; - break; - } else { - $tib1_0_ph_i227 = $1474; - label = 349; - break; - } - case 348: - $1480 = $1468 + 8 | 0; - $1481 = $1480; - $1482 = HEAP32[$1481 >> 2] | 0; - $1483 = $1482 + 8 | 0; - $1484 = $1483; - $1485 = HEAP32[$1484 >> 2] | 0; - $1486 = $1485; - $tib1_0_ph_i227 = $1486; - label = 349; - break; - case 349: - $1487 = $tib1_0_ph_i227 + 56 | 0; - $1488 = HEAP32[$1487 >> 2] | 0; - $1489 = ($1488 | 0) == 0; - if ($1489) { - var $dimension_tib1_0_lcssa_i231 = 0; - var $tib1_0_lcssa_i230 = $tib1_0_ph_i227; - label = 351; - break; - } else { - var $dimension_tib1_029_i233 = 0; - var $1495 = $1488; - label = 352; - break; - } - case 350: - $1490 = $1498; - var $dimension_tib1_0_lcssa_i231 = $1499; - var $tib1_0_lcssa_i230 = $1490; - label = 351; - break; - case 351: - $1491 = $1477 + 56 | 0; - $1492 = $1491; - $1493 = HEAP32[$1492 >> 2] | 0; - $1494 = ($1493 | 0) == 0; - if ($1494) { - var $dimension_tib2_0_lcssa_i238 = 0; - var $tib2_0_lcssa_in_i237 = $1477; - label = 354; - break; - } else { - var $dimension_tib2_024_i235 = 0; - var $1504 = $1493; - label = 353; - break; - } - case 352: - $1496 = $1495 + 8 | 0; - $1497 = $1496; - $1498 = HEAP32[$1497 >> 2] | 0; - $1499 = $dimension_tib1_029_i233 + 1 | 0; - $1500 = $1498 + 56 | 0; - $1501 = $1500; - $1502 = HEAP32[$1501 >> 2] | 0; - $1503 = ($1502 | 0) == 0; - if ($1503) { - label = 350; - break; - } else { - var $dimension_tib1_029_i233 = $1499; - var $1495 = $1502; - label = 352; - break; - } - case 353: - $1505 = $1504 + 8 | 0; - $1506 = $1505; - $1507 = HEAP32[$1506 >> 2] | 0; - $1508 = $dimension_tib2_024_i235 + 1 | 0; - $1509 = $1507 + 56 | 0; - $1510 = $1509; - $1511 = HEAP32[$1510 >> 2] | 0; - $1512 = ($1511 | 0) == 0; - if ($1512) { - var $dimension_tib2_0_lcssa_i238 = $1508; - var $tib2_0_lcssa_in_i237 = $1507; - label = 354; - break; - } else { - var $dimension_tib2_024_i235 = $1508; - var $1504 = $1511; - label = 353; - break; - } - case 354: - $tib2_0_lcssa_i239 = $tib2_0_lcssa_in_i237; - $1513 = ($dimension_tib1_0_lcssa_i231 | 0) < ($dimension_tib2_0_lcssa_i238 | 0); - $1514 = ($tib1_0_lcssa_i230 | 0) == 0; - $or_cond_i240 = $1513 | $1514; - if ($or_cond_i240) { - label = 360; - break; - } else { - $tib1_121_i242 = $tib1_0_lcssa_i230; - label = 355; - break; - } - case 355: - $1515 = ($tib1_121_i242 | 0) == ($tib2_0_lcssa_i239 | 0); - if ($1515) { - label = 386; - break; - } else { - label = 356; - break; - } - case 356: - $1516 = $tib1_121_i242 + 108 | 0; - $1517 = HEAP32[$1516 >> 2] | 0; - $1518 = $tib1_121_i242 + 112 | 0; - $i_0_i245 = 0; - label = 357; - break; - case 357: - $1520 = ($i_0_i245 | 0) < ($1517 | 0); - if ($1520) { - label = 358; - break; - } else { - label = 359; - break; - } - case 358: - $1522 = HEAP32[$1518 >> 2] | 0; - $1523 = $1522 + ($i_0_i245 << 2) | 0; - $1524 = HEAP32[$1523 >> 2] | 0; - $1525 = ($1524 | 0) == ($tib2_0_lcssa_i239 | 0); - $1526 = $i_0_i245 + 1 | 0; - if ($1525) { - label = 386; - break; - } else { - $i_0_i245 = $1526; - label = 357; - break; - } - case 359: - $1528 = $tib1_121_i242 + 40 | 0; - $1529 = HEAP32[$1528 >> 2] | 0; - $1530 = ($1529 | 0) == 0; - if ($1530) { - label = 360; - break; - } else { - $tib1_121_i242 = $1529; - label = 355; - break; - } - case 360: - $1531 = HEAP32[$1374 >> 2] | 0; - $1532 = $1531; - invoke_vii(48, $1532 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 361: - $1533 = HEAP32[(105500 | 0) >> 2] | 0; - $1534 = ($1533 | 0) == 0; - if ($1534) { - label = 362; - break; - } else { - label = 363; - break; - } - case 362: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 363; - break; - case 363: - $1536 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1537$0 = $1536; - $1537$1 = 0; - $1538 = invoke_iii(364, $1537$0 | 0, $1537$1 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1539 = $local_env_w4567aaac23b1c48; - $1540 = $1538 + 16 | 0; - $1541 = $1540; - $1542 = HEAP32[$1541 >> 2] | 0; - _memcpy($1539 | 0, $1542 | 0, 40); - $1543 = HEAP32[$1541 >> 2] | 0; - $1544 = $1543; - $1545 = _saveSetjmp($1544 | 0, label, setjmpTable) | 0; - label = 424; - break; - case 424: - $1546 = ($1545 | 0) == 0; - if ($1546) { - label = 364; - break; - } else { - label = 369; - break; - } - case 364: - $1548 = HEAP32[(105500 | 0) >> 2] | 0; - $1549 = ($1548 | 0) == 0; - if ($1549) { - label = 365; - break; - } else { - label = 366; - break; - } - case 365: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 366; - break; - case 366: - $1551 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1552$0 = $1551; - $1552$1 = 0; - $1553 = invoke_iii(364, $1552$0 | 0, $1552$1 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1554 = $1553 + 20 | 0; - $1555 = $1554; - $1556 = HEAP32[$1555 >> 2] | 0; - $1557 = $1556; - $_r0_sroa_0 = $1557; - $_r0_sroa_0 = 0; - $_r0_sroa_0_0_load602 = $_r0_sroa_0; - $1558 = HEAP32[(98772 | 0) >> 2] | 0; - $1559 = ($1558 | 0) == 0; - if ($1559) { - label = 367; - break; - } else { - label = 368; - break; - } - case 367: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 368; - break; - case 368: - HEAP32[140048 >> 2] = $_r0_sroa_0_0_load602; - $1561 = HEAP32[$1541 >> 2] | 0; - _memcpy($1561 | 0, $1539 | 0, 40); - label = 239; - break; - case 369: - $1563 = HEAP32[$1541 >> 2] | 0; - _memcpy($1563 | 0, $1539 | 0, 40); - $1564 = HEAP32[(107740 | 0) >> 2] | 0; - $1565 = ($1564 | 0) == 0; - if ($1565) { - label = 370; - break; - } else { - label = 371; - break; - } - case 370: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 371; - break; - case 371: - $1568 = $1538 + 20 | 0; - $1569 = $1568; - $1570 = HEAP32[$1569 >> 2] | 0; - $1571 = ($1570 | 0) == 0; - if ($1571) { - label = 385; - break; - } else { - label = 372; - break; - } - case 372: - $1573 = HEAP32[137616 >> 2] | 0; - $1574 = $1570; - $1575 = HEAP32[$1574 >> 2] | 0; - $1576 = $1575; - $1577 = $1573 + 8 | 0; - $1578 = $1577; - $1579 = HEAP32[$1578 >> 2] | 0; - $1580 = ($1575 | 0) == 82712; - if ($1580) { - label = 373; - break; - } else { - $tib1_0_ph_i185 = $1576; - label = 374; - break; - } - case 373: - $1582 = $1570 + 8 | 0; - $1583 = $1582; - $1584 = HEAP32[$1583 >> 2] | 0; - $1585 = $1584 + 8 | 0; - $1586 = $1585; - $1587 = HEAP32[$1586 >> 2] | 0; - $1588 = $1587; - $tib1_0_ph_i185 = $1588; - label = 374; - break; - case 374: - $1589 = $tib1_0_ph_i185 + 56 | 0; - $1590 = HEAP32[$1589 >> 2] | 0; - $1591 = ($1590 | 0) == 0; - if ($1591) { - var $dimension_tib1_0_lcssa_i189 = 0; - var $tib1_0_lcssa_i188 = $tib1_0_ph_i185; - label = 376; - break; - } else { - var $dimension_tib1_029_i191 = 0; - var $1597 = $1590; - label = 377; - break; - } - case 375: - $1592 = $1600; - var $dimension_tib1_0_lcssa_i189 = $1601; - var $tib1_0_lcssa_i188 = $1592; - label = 376; - break; - case 376: - $1593 = $1579 + 56 | 0; - $1594 = $1593; - $1595 = HEAP32[$1594 >> 2] | 0; - $1596 = ($1595 | 0) == 0; - if ($1596) { - var $dimension_tib2_0_lcssa_i196 = 0; - var $tib2_0_lcssa_in_i195 = $1579; - label = 379; - break; - } else { - var $dimension_tib2_024_i193 = 0; - var $1606 = $1595; - label = 378; - break; - } - case 377: - $1598 = $1597 + 8 | 0; - $1599 = $1598; - $1600 = HEAP32[$1599 >> 2] | 0; - $1601 = $dimension_tib1_029_i191 + 1 | 0; - $1602 = $1600 + 56 | 0; - $1603 = $1602; - $1604 = HEAP32[$1603 >> 2] | 0; - $1605 = ($1604 | 0) == 0; - if ($1605) { - label = 375; - break; - } else { - var $dimension_tib1_029_i191 = $1601; - var $1597 = $1604; - label = 377; - break; - } - case 378: - $1607 = $1606 + 8 | 0; - $1608 = $1607; - $1609 = HEAP32[$1608 >> 2] | 0; - $1610 = $dimension_tib2_024_i193 + 1 | 0; - $1611 = $1609 + 56 | 0; - $1612 = $1611; - $1613 = HEAP32[$1612 >> 2] | 0; - $1614 = ($1613 | 0) == 0; - if ($1614) { - var $dimension_tib2_0_lcssa_i196 = $1610; - var $tib2_0_lcssa_in_i195 = $1609; - label = 379; - break; - } else { - var $dimension_tib2_024_i193 = $1610; - var $1606 = $1613; - label = 378; - break; - } - case 379: - $tib2_0_lcssa_i197 = $tib2_0_lcssa_in_i195; - $1615 = ($dimension_tib1_0_lcssa_i189 | 0) < ($dimension_tib2_0_lcssa_i196 | 0); - $1616 = ($tib1_0_lcssa_i188 | 0) == 0; - $or_cond_i198 = $1615 | $1616; - if ($or_cond_i198) { - label = 385; - break; - } else { - $tib1_121_i200 = $tib1_0_lcssa_i188; - label = 380; - break; - } - case 380: - $1617 = ($tib1_121_i200 | 0) == ($tib2_0_lcssa_i197 | 0); - if ($1617) { - label = 54; - break; - } else { - label = 381; - break; - } - case 381: - $1618 = $tib1_121_i200 + 108 | 0; - $1619 = HEAP32[$1618 >> 2] | 0; - $1620 = $tib1_121_i200 + 112 | 0; - $i_0_i203 = 0; - label = 382; - break; - case 382: - $1622 = ($i_0_i203 | 0) < ($1619 | 0); - if ($1622) { - label = 383; - break; - } else { - label = 384; - break; - } - case 383: - $1624 = HEAP32[$1620 >> 2] | 0; - $1625 = $1624 + ($i_0_i203 << 2) | 0; - $1626 = HEAP32[$1625 >> 2] | 0; - $1627 = ($1626 | 0) == ($tib2_0_lcssa_i197 | 0); - $1628 = $i_0_i203 + 1 | 0; - if ($1627) { - label = 54; - break; - } else { - $i_0_i203 = $1628; - label = 382; - break; - } - case 384: - $1630 = $tib1_121_i200 + 40 | 0; - $1631 = HEAP32[$1630 >> 2] | 0; - $1632 = ($1631 | 0) == 0; - if ($1632) { - label = 385; - break; - } else { - $tib1_121_i200 = $1631; - label = 380; - break; - } - case 385: - $1633 = HEAP32[$1541 >> 2] | 0; - $1634 = $1633; - invoke_vii(48, $1634 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 386: - $1635 = HEAP32[(105500 | 0) >> 2] | 0; - $1636 = ($1635 | 0) == 0; - if ($1636) { - label = 387; - break; - } else { - label = 388; - break; - } - case 387: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 388; - break; - case 388: - $1638 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1639$0 = $1638; - $1639$1 = 0; - $1640 = invoke_iii(364, $1639$0 | 0, $1639$1 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1641 = $local_env_w4567aaac23b1c50; - $1642 = $1640 + 16 | 0; - $1643 = $1642; - $1644 = HEAP32[$1643 >> 2] | 0; - _memcpy($1641 | 0, $1644 | 0, 40); - $1645 = HEAP32[$1643 >> 2] | 0; - $1646 = $1645; - $1647 = _saveSetjmp($1646 | 0, label, setjmpTable) | 0; - label = 425; - break; - case 425: - $1648 = ($1647 | 0) == 0; - if ($1648) { - label = 389; - break; - } else { - label = 396; - break; - } - case 389: - $1650 = HEAP32[(105500 | 0) >> 2] | 0; - $1651 = ($1650 | 0) == 0; - if ($1651) { - label = 390; - break; - } else { - label = 391; - break; - } - case 390: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 391; - break; - case 391: - $1653 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1654$0 = $1653; - $1654$1 = 0; - $1655 = invoke_iii(364, $1654$0 | 0, $1654$1 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1656 = $1655 + 20 | 0; - $1657 = $1656; - $1658 = HEAP32[$1657 >> 2] | 0; - $1659 = $1658; - $_r0_sroa_0 = $1659; - $_r2_sroa_0 = 0; - $_r2_sroa_0_0_load = $_r2_sroa_0; - $1660 = HEAP32[(98772 | 0) >> 2] | 0; - $1661 = ($1660 | 0) == 0; - if ($1661) { - label = 392; - break; - } else { - label = 393; - break; - } - case 392: - invoke_v(702); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 393; - break; - case 393: - HEAP32[140048 >> 2] = $_r2_sroa_0_0_load; - $1663 = HEAP32[(105500 | 0) >> 2] | 0; - $1664 = ($1663 | 0) == 0; - if ($1664) { - label = 394; - break; - } else { - label = 395; - break; - } - case 394: - invoke_v(30); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 395; - break; - case 395: - $1666 = invoke_i(70) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $1667$0 = $1666; - $1667$1 = 0; - $1668 = invoke_iii(364, $1667$0 | 0, $1667$1 | 0) | 0; - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - $_r0_sroa_0_0_load = $_r0_sroa_0; - $1669 = $_r0_sroa_0_0_load; - $1670 = $1668 + 16 | 0; - $1671 = $1668 + 20 | 0; - $1672 = $1671; - HEAP32[$1672 >> 2] = $1669; - $1673 = $1670; - $1674 = HEAP32[$1673 >> 2] | 0; - $1675 = $1674; - invoke_vii(48, $1675 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case 396: - $1677 = HEAP32[$1643 >> 2] | 0; - _memcpy($1677 | 0, $1641 | 0, 40); - $1678 = HEAP32[(107740 | 0) >> 2] | 0; - $1679 = ($1678 | 0) == 0; - if ($1679) { - label = 397; - break; - } else { - label = 398; - break; - } - case 397: - invoke_v(374); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - label = 398; - break; - case 398: - $1682 = $1640 + 20 | 0; - $1683 = $1682; - $1684 = HEAP32[$1683 >> 2] | 0; - $1685 = ($1684 | 0) == 0; - if ($1685) { - label = 412; - break; - } else { - label = 399; - break; - } - case 399: - $1687 = HEAP32[137616 >> 2] | 0; - $1688 = $1684; - $1689 = HEAP32[$1688 >> 2] | 0; - $1690 = $1689; - $1691 = $1687 + 8 | 0; - $1692 = $1691; - $1693 = HEAP32[$1692 >> 2] | 0; - $1694 = ($1689 | 0) == 82712; - if ($1694) { - label = 400; - break; - } else { - $tib1_0_ph_i = $1690; - label = 401; - break; - } - case 400: - $1696 = $1684 + 8 | 0; - $1697 = $1696; - $1698 = HEAP32[$1697 >> 2] | 0; - $1699 = $1698 + 8 | 0; - $1700 = $1699; - $1701 = HEAP32[$1700 >> 2] | 0; - $1702 = $1701; - $tib1_0_ph_i = $1702; - label = 401; - break; - case 401: - $1703 = $tib1_0_ph_i + 56 | 0; - $1704 = HEAP32[$1703 >> 2] | 0; - $1705 = ($1704 | 0) == 0; - if ($1705) { - var $dimension_tib1_0_lcssa_i = 0; - var $tib1_0_lcssa_i = $tib1_0_ph_i; - label = 403; - break; - } else { - var $dimension_tib1_029_i = 0; - var $1711 = $1704; - label = 404; - break; - } - case 402: - $1706 = $1714; - var $dimension_tib1_0_lcssa_i = $1715; - var $tib1_0_lcssa_i = $1706; - label = 403; - break; - case 403: - $1707 = $1693 + 56 | 0; - $1708 = $1707; - $1709 = HEAP32[$1708 >> 2] | 0; - $1710 = ($1709 | 0) == 0; - if ($1710) { - var $dimension_tib2_0_lcssa_i = 0; - var $tib2_0_lcssa_in_i = $1693; - label = 406; - break; - } else { - var $dimension_tib2_024_i = 0; - var $1720 = $1709; - label = 405; - break; - } - case 404: - $1712 = $1711 + 8 | 0; - $1713 = $1712; - $1714 = HEAP32[$1713 >> 2] | 0; - $1715 = $dimension_tib1_029_i + 1 | 0; - $1716 = $1714 + 56 | 0; - $1717 = $1716; - $1718 = HEAP32[$1717 >> 2] | 0; - $1719 = ($1718 | 0) == 0; - if ($1719) { - label = 402; - break; - } else { - var $dimension_tib1_029_i = $1715; - var $1711 = $1718; - label = 404; - break; - } - case 405: - $1721 = $1720 + 8 | 0; - $1722 = $1721; - $1723 = HEAP32[$1722 >> 2] | 0; - $1724 = $dimension_tib2_024_i + 1 | 0; - $1725 = $1723 + 56 | 0; - $1726 = $1725; - $1727 = HEAP32[$1726 >> 2] | 0; - $1728 = ($1727 | 0) == 0; - if ($1728) { - var $dimension_tib2_0_lcssa_i = $1724; - var $tib2_0_lcssa_in_i = $1723; - label = 406; - break; - } else { - var $dimension_tib2_024_i = $1724; - var $1720 = $1727; - label = 405; - break; - } - case 406: - $tib2_0_lcssa_i = $tib2_0_lcssa_in_i; - $1729 = ($dimension_tib1_0_lcssa_i | 0) < ($dimension_tib2_0_lcssa_i | 0); - $1730 = ($tib1_0_lcssa_i | 0) == 0; - $or_cond_i = $1729 | $1730; - if ($or_cond_i) { - label = 412; - break; - } else { - $tib1_121_i = $tib1_0_lcssa_i; - label = 407; - break; - } - case 407: - $1731 = ($tib1_121_i | 0) == ($tib2_0_lcssa_i | 0); - if ($1731) { - label = 54; - break; - } else { - label = 408; - break; - } - case 408: - $1732 = $tib1_121_i + 108 | 0; - $1733 = HEAP32[$1732 >> 2] | 0; - $1734 = $tib1_121_i + 112 | 0; - $i_0_i = 0; - label = 409; - break; - case 409: - $1736 = ($i_0_i | 0) < ($1733 | 0); - if ($1736) { - label = 410; - break; - } else { - label = 411; - break; - } - case 410: - $1738 = HEAP32[$1734 >> 2] | 0; - $1739 = $1738 + ($i_0_i << 2) | 0; - $1740 = HEAP32[$1739 >> 2] | 0; - $1741 = ($1740 | 0) == ($tib2_0_lcssa_i | 0); - $1742 = $i_0_i + 1 | 0; - if ($1741) { - label = 54; - break; - } else { - $i_0_i = $1742; - label = 409; - break; - } - case 411: - $1744 = $tib1_121_i + 40 | 0; - $1745 = HEAP32[$1744 >> 2] | 0; - $1746 = ($1745 | 0) == 0; - if ($1746) { - label = 412; - break; - } else { - $tib1_121_i = $1745; - label = 407; - break; - } - case 412: - $1747 = HEAP32[$1643 >> 2] | 0; - $1748 = $1747; - invoke_vii(48, $1748 | 0, 0 | 0); - if ((__THREW__ | 0) != 0 & (threwValue | 0) != 0) { - setjmpLabel = _testSetjmp(HEAP32[__THREW__ >> 2] | 0, setjmpTable) | 0; - if ((setjmpLabel | 0) > 0) { - label = -1111; - break; - } else return 0 | 0; - } - __THREW__ = threwValue = 0; - return 0 | 0; - case -1111: - if ((setjmpLabel | 0) == 7) { - $25 = threwValue; - label = 413; - } else if ((setjmpLabel | 0) == 35) { - $159 = threwValue; - label = 414; - } else if ((setjmpLabel | 0) == 62) { - $290 = threwValue; - label = 415; - } else if ((setjmpLabel | 0) == 91) { - $401 = threwValue; - label = 416; - } else if ((setjmpLabel | 0) == 97) { - $433 = threwValue; - label = 417; - } else if ((setjmpLabel | 0) == 144) { - $629 = threwValue; - label = 418; - } else if ((setjmpLabel | 0) == 181) { - $789 = threwValue; - label = 419; - } else if ((setjmpLabel | 0) == 218) { - $954 = threwValue; - label = 420; - } else if ((setjmpLabel | 0) == 240) { - $1042 = threwValue; - label = 421; - } else if ((setjmpLabel | 0) == 251) { - $1073 = threwValue; - label = 422; - } else if ((setjmpLabel | 0) == 324) { - $1378 = threwValue; - label = 423; - } else if ((setjmpLabel | 0) == 363) { - $1545 = threwValue; - label = 424; - } else if ((setjmpLabel | 0) == 388) { - $1647 = threwValue; - label = 425; - } - __THREW__ = threwValue = 0; - break; - } -} function looop2() { var i = 0, helper = 0; while (1) { diff --git a/tools/js-optimizer.js b/tools/js-optimizer.js index e567ebff..e5e0d287 100644 --- a/tools/js-optimizer.js +++ b/tools/js-optimizer.js @@ -768,32 +768,11 @@ function simplifyExpressions(ast) { }); } - function asmOpts(fun) { - // Add final returns when necessary - var returnType = null; - traverse(fun, function(node, type) { - if (type === 'return' && node[1]) { - returnType = detectAsmCoercion(node[1]); - } - }); - // Add a final return if one is missing. - if (returnType !== null) { - var stats = getStatements(fun); - var last = stats[stats.length-1]; - if (last[0] != 'return') { - var returnValue = ['num', 0]; - if (returnType === ASM_DOUBLE) returnValue = ['unary-prefix', '+', returnValue]; - stats.push(['return', returnValue]); - } - } - } - traverseGeneratedFunctions(ast, function(func) { simplifyIntegerConversions(func); simplifyBitops(func); joinAdditions(func); // simplifyZeroComp(func); TODO: investigate performance - if (asm) asmOpts(func); simplifyNotComps(func); }); } @@ -1593,6 +1572,7 @@ function normalizeAsm(func) { data.vars[name] = detectAsmCoercion(value); v.length = 1; // make an un-assigning var } else { + assert(j === 0, 'cannot break in the middle'); break outer; } } @@ -1602,6 +1582,8 @@ function normalizeAsm(func) { while (i < stats.length) { traverse(stats[i], function(node, type) { if (type === 'var') { + assert(0, 'should be no vars to fix! ' + func[1] + ' : ' + JSON.stringify(node)); + /* for (var j = 0; j < node[1].length; j++) { var v = node[1][j]; var name = v[0]; @@ -1616,12 +1598,7 @@ function normalizeAsm(func) { } } unVarify(node[1], node); - } else if (type === 'dot') { - if (node[1][0] === 'name' && node[1][1] === 'Math') { - // transform Math.max to Math_max; we forward in the latter version - node[0] = 'name'; - node[1] = 'Math_' + node[2]; - } + */ } else if (type === 'call' && node[1][0] === 'function') { assert(!node[1][1]); // anonymous functions only data.inlines.push(node[1]); @@ -3863,8 +3840,8 @@ arguments_ = arguments_.filter(function (arg) { var src = read(arguments_[0]); var ast = srcToAst(src); //printErr(JSON.stringify(ast)); throw 1; -generatedFunctions = src.indexOf(GENERATED_FUNCTIONS_MARKER) >= 0; -var extraInfoStart = src.indexOf('// EXTRA_INFO:') +generatedFunctions = src.lastIndexOf(GENERATED_FUNCTIONS_MARKER) >= 0; +var extraInfoStart = src.lastIndexOf('// EXTRA_INFO:') if (extraInfoStart > 0) extraInfo = JSON.parse(src.substr(extraInfoStart + 14)); //printErr(JSON.stringify(extraInfo)); diff --git a/tools/shared.py b/tools/shared.py index c5df34f1..b3c3257b 100644 --- a/tools/shared.py +++ b/tools/shared.py @@ -758,7 +758,6 @@ class Settings2(type): self.attrs['ASM_JS'] = 1 self.attrs['ASSERTIONS'] = 0 self.attrs['DISABLE_EXCEPTION_CATCHING'] = 1 - self.attrs['EMIT_GENERATED_FUNCTIONS'] = 1 if opt_level >= 2: self.attrs['RELOOP'] = 1 self.attrs['ALIASING_FUNCTION_POINTERS'] = 1 diff --git a/tools/test-js-optimizer-asm-pre-output.js b/tools/test-js-optimizer-asm-pre-output.js index b31327f2..2e3db000 100644 --- a/tools/test-js-optimizer-asm-pre-output.js +++ b/tools/test-js-optimizer-asm-pre-output.js @@ -69,26 +69,6 @@ function b($this, $__n) { h(~~g ^ -1); return; } -function rett() { - if (f()) { - g(); - return 5; - } - return 0; -} -function ret2t() { - if (f()) { - g(); - return; - } -} -function retf() { - if (f()) { - g(); - return +h(); - } - return +0; -} function i32_8() { if ((HEAP8[$4 & 16777215] | 0) == 0) { print(5); diff --git a/tools/test-js-optimizer-asm-pre.js b/tools/test-js-optimizer-asm-pre.js index 5c004342..9e6edf0f 100644 --- a/tools/test-js-optimizer-asm-pre.js +++ b/tools/test-js-optimizer-asm-pre.js @@ -73,27 +73,6 @@ function b($this, $__n) { h((~~g) ^ -1); // do NOT convert this, as it would lead to ~~~ which is confusing in asm, given the role of ~~ return; } -function rett() { - if (f()) { - g(); - return 5; - } - // missing final return, need to add it -} -function ret2t() { - if (f()) { - g(); - return; - } - // missing final return, but no need -} -function retf() { - if (f()) { - g(); - return +h(); - } - // missing final return, need it as a float -} function i32_8() { if (((HEAP8[$4 & 16777215] | 0) << 24 >> 24) == 0) { print(5); diff --git a/tools/test-js-optimizer-asm-regs.js b/tools/test-js-optimizer-asm-regs.js index cfa7732d..b2d97afc 100644 --- a/tools/test-js-optimizer-asm-regs.js +++ b/tools/test-js-optimizer-asm-regs.js @@ -4,7 +4,7 @@ function asm(x, y) { var int1 = 0, int2 = 0; // do not mix the types! var double1 = +0, double2 = +0; int1 = (x+x)|0; - double1 = d(Math.max(10, Math_min(5, f()))); + double1 = d(Math_max(10, Math_min(5, f()))); int2 = (int1+2)|0; print(int2); double2 = double1*5; @@ -32,7 +32,7 @@ function switchey(x, y) { switch(x|0) { case 0: int1 = (x+x)|0; - double1 = d(Math.max(10, Math_min(5, f()))); + double1 = d(Math_max(10, Math_min(5, f()))); int2 = (int1+2)|0; print(int2); double2 = double1*5; |