diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-01-25 16:43:23 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-01-25 16:43:23 -0800 |
commit | 513cfdc94d0b2e99c48fda4dbbbdfcff0aa97a0b (patch) | |
tree | 4c13bade4227d1a6d199076c51bca79550772c26 | |
parent | da726f060373d957704c51cdb019026e6c3c0a41 (diff) | |
parent | c0c72f2fed5cd7ef4512cffa8c18152658f20e2c (diff) | |
download | binaryen-513cfdc94d0b2e99c48fda4dbbbdfcff0aa97a0b.tar.gz binaryen-513cfdc94d0b2e99c48fda4dbbbdfcff0aa97a0b.tar.bz2 binaryen-513cfdc94d0b2e99c48fda4dbbbdfcff0aa97a0b.zip |
Merge pull request #140 from WebAssembly/alignment
Latest LLVM + http://reviews.llvm.org/D16534
64 files changed, 4604 insertions, 2812 deletions
diff --git a/src/s2wasm.h b/src/s2wasm.h index 8b34d6b03..13f424f7c 100644 --- a/src/s2wasm.h +++ b/src/s2wasm.h @@ -159,6 +159,7 @@ private: return cashew::IString(str.c_str(), false); } + // get an int int32_t getInt() { const char* loc = s; uint32_t value = 0; @@ -192,6 +193,15 @@ private: return value; } + // get an int from an arbitrary string, with our full error handling + int32_t getInt(const char *from) { + const char *before = s; + s = from; + auto ret = getInt(); + s = before; + return ret; + } + // gets a constant, which may be a relocation for later. // returns whether this is a relocation bool getConst(uint32_t* target) { @@ -492,6 +502,10 @@ private: inputs[i] = curr; } if (*s == ')') s++; // tolerate 0(argument) syntax, where we started at the 'a' + if (*s == ':') { // tolerate :attribute=value syntax (see getAttributes) + s++; + skipToSep(); + } if (i < num - 1) skipComma(); } for (int i = num-1; i >= 0; i--) { @@ -515,6 +529,24 @@ private: addToBlock(set); } }; + auto getAttributes = [&](int num) { + const char *before = s; + std::vector<const char*> attributes; // TODO: optimize (if .s format doesn't change) + attributes.resize(num); + for (int i = 0; i < num; i++) { + skipToSep(); + if (*s == ')') s++; // tolerate 0(argument) syntax, where we started at the 'a' + if (*s == ':') { + attributes[i] = s + 1; + } else { + attributes[i] = nullptr; + } + if (i < num - 1) skipComma(); + } + s = before; + return attributes; + }; + // auto makeBinary = [&](BinaryOp op, WasmType type) { Name assign = getAssign(); skipComma(); @@ -559,9 +591,14 @@ private: match("_u"); Name assign = getAssign(); getConst(&curr->offset); - curr->align = curr->bytes; // XXX mustMatch("("); + auto attributes = getAttributes(1); curr->ptr = getInput(); + curr->align = curr->bytes; + if (attributes[0]) { + assert(strncmp(attributes[0], "p2align=", 8) == 0); + curr->align = pow(2, getInt(attributes[0] + 8)); + } setOutput(curr, assign); }; auto makeStore = [&](WasmType type) { @@ -570,12 +607,17 @@ private: curr->type = type; int32_t bytes = getInt(); curr->bytes = bytes > 0 ? bytes : getWasmTypeSize(type); - curr->align = curr->bytes; // XXX Name assign = getAssign(); getConst(&curr->offset); mustMatch("("); + auto attributes = getAttributes(2); auto inputs = getInputs(2); curr->ptr = inputs[0]; + curr->align = curr->bytes; + if (attributes[0]) { + assert(strncmp(attributes[0], "p2align=", 8) == 0); + curr->align = pow(2, getInt(attributes[0] + 8)); + } curr->value = inputs[1]; setOutput(curr, assign); }; diff --git a/test/llvm_autogenerated/call.s b/test/llvm_autogenerated/call.s index 7081c43a8..52f99b2cf 100644 --- a/test/llvm_autogenerated/call.s +++ b/test/llvm_autogenerated/call.s @@ -6,6 +6,7 @@ call_i32_nullary: .result i32 i32.call $push0=, i32_nullary@FUNCTION return $pop0 + .endfunc .Lfunc_end0: .size call_i32_nullary, .Lfunc_end0-call_i32_nullary @@ -15,6 +16,7 @@ call_i64_nullary: .result i64 i64.call $push0=, i64_nullary@FUNCTION return $pop0 + .endfunc .Lfunc_end1: .size call_i64_nullary, .Lfunc_end1-call_i64_nullary @@ -24,6 +26,7 @@ call_float_nullary: .result f32 f32.call $push0=, float_nullary@FUNCTION return $pop0 + .endfunc .Lfunc_end2: .size call_float_nullary, .Lfunc_end2-call_float_nullary @@ -33,6 +36,7 @@ call_double_nullary: .result f64 f64.call $push0=, double_nullary@FUNCTION return $pop0 + .endfunc .Lfunc_end3: .size call_double_nullary, .Lfunc_end3-call_double_nullary @@ -41,6 +45,7 @@ call_double_nullary: call_void_nullary: call void_nullary@FUNCTION return + .endfunc .Lfunc_end4: .size call_void_nullary, .Lfunc_end4-call_void_nullary @@ -51,6 +56,7 @@ call_i32_unary: .result i32 i32.call $push0=, i32_unary@FUNCTION, $0 return $pop0 + .endfunc .Lfunc_end5: .size call_i32_unary, .Lfunc_end5-call_i32_unary @@ -61,6 +67,7 @@ call_i32_binary: .result i32 i32.call $push0=, i32_binary@FUNCTION, $0, $1 return $pop0 + .endfunc .Lfunc_end6: .size call_i32_binary, .Lfunc_end6-call_i32_binary @@ -70,6 +77,7 @@ call_indirect_void: .param i32 call_indirect $0 return + .endfunc .Lfunc_end7: .size call_indirect_void, .Lfunc_end7-call_indirect_void @@ -80,6 +88,7 @@ call_indirect_i32: .result i32 i32.call_indirect $push0=, $0 return $pop0 + .endfunc .Lfunc_end8: .size call_indirect_i32, .Lfunc_end8-call_indirect_i32 @@ -88,6 +97,7 @@ call_indirect_i32: tail_call_void_nullary: call void_nullary@FUNCTION return + .endfunc .Lfunc_end9: .size tail_call_void_nullary, .Lfunc_end9-tail_call_void_nullary @@ -96,6 +106,7 @@ tail_call_void_nullary: fastcc_tail_call_void_nullary: call void_nullary@FUNCTION return + .endfunc .Lfunc_end10: .size fastcc_tail_call_void_nullary, .Lfunc_end10-fastcc_tail_call_void_nullary @@ -104,8 +115,8 @@ fastcc_tail_call_void_nullary: coldcc_tail_call_void_nullary: call void_nullary@FUNCTION return + .endfunc .Lfunc_end11: .size coldcc_tail_call_void_nullary, .Lfunc_end11-coldcc_tail_call_void_nullary - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/cfg-stackify.s b/test/llvm_autogenerated/cfg-stackify.s index fcb9652d9..584c02adc 100644 --- a/test/llvm_autogenerated/cfg-stackify.s +++ b/test/llvm_autogenerated/cfg-stackify.s @@ -8,15 +8,16 @@ test0: i32.const $1=, 0 .LBB0_1: loop - i32.const $push0=, 1 - i32.add $1=, $1, $pop0 - i32.ge_s $push1=, $1, $0 - br_if $pop1, 1 + i32.const $push1=, 1 + i32.add $1=, $1, $pop1 + i32.ge_s $push0=, $1, $0 + br_if $pop0, 1 call something@FUNCTION br 0 .LBB0_3: end_loop return + .endfunc .Lfunc_end0: .size test0, .Lfunc_end0-test0 @@ -28,15 +29,16 @@ test1: i32.const $1=, 0 .LBB1_1: loop - i32.const $push0=, 1 - i32.add $1=, $1, $pop0 - i32.ge_s $push1=, $1, $0 - br_if $pop1, 1 + i32.const $push1=, 1 + i32.add $1=, $1, $pop1 + i32.ge_s $push0=, $1, $0 + br_if $pop0, 1 call something@FUNCTION br 0 .LBB1_3: end_loop return + .endfunc .Lfunc_end1: .size test1, .Lfunc_end1-test1 @@ -63,6 +65,7 @@ test2: end_loop end_block return + .endfunc .Lfunc_end2: .size test2, .Lfunc_end2-test2 @@ -71,11 +74,10 @@ test2: doublediamond: .param i32, i32, i32 .result i32 - .local i32 block block i32.const $push0=, 0 - i32.store $3=, 0($2), $pop0 + i32.store $discard=, 0($2), $pop0 br_if $0, 0 i32.const $push4=, 1 i32.store $discard=, 0($2), $pop4 @@ -97,7 +99,9 @@ doublediamond: end_block i32.const $push5=, 5 i32.store $discard=, 0($2), $pop5 - return $3 + i32.const $push6=, 0 + return $pop6 + .endfunc .Lfunc_end3: .size doublediamond, .Lfunc_end3-doublediamond @@ -118,6 +122,7 @@ triangle: i32.const $push2=, 2 i32.store $discard=, 0($0), $pop2 return $2 + .endfunc .Lfunc_end4: .size triangle, .Lfunc_end4-triangle @@ -126,11 +131,10 @@ triangle: diamond: .param i32, i32 .result i32 - .local i32 block block i32.const $push0=, 0 - i32.store $2=, 0($0), $pop0 + i32.store $discard=, 0($0), $pop0 br_if $1, 0 i32.const $push2=, 1 i32.store $discard=, 0($0), $pop2 @@ -143,7 +147,9 @@ diamond: end_block i32.const $push3=, 3 i32.store $discard=, 0($0), $pop3 - return $2 + i32.const $push4=, 0 + return $pop4 + .endfunc .Lfunc_end5: .size diamond, .Lfunc_end5-diamond @@ -155,6 +161,7 @@ single_block: i32.const $push0=, 0 i32.store $push1=, 0($0), $pop0 return $pop1 + .endfunc .Lfunc_end6: .size single_block, .Lfunc_end6-single_block @@ -172,6 +179,7 @@ minimal_loop: br 0 .LBB7_2: end_loop + .endfunc .Lfunc_end7: .size minimal_loop, .Lfunc_end7-minimal_loop @@ -180,20 +188,21 @@ minimal_loop: simple_loop: .param i32, i32 .result i32 - .local i32 i32.const $push0=, 0 - i32.store $2=, 0($0), $pop0 + i32.store $discard=, 0($0), $pop0 .LBB8_1: loop - i32.const $push1=, 1 - i32.store $discard=, 0($0), $pop1 - i32.const $push3=, 0 - i32.eq $push4=, $1, $pop3 - br_if $pop4, 0 + i32.const $push3=, 1 + i32.store $discard=, 0($0), $pop3 + i32.const $push4=, 0 + i32.eq $push5=, $1, $pop4 + br_if $pop5, 0 end_loop - i32.const $push2=, 2 - i32.store $discard=, 0($0), $pop2 - return $2 + i32.const $push1=, 2 + i32.store $discard=, 0($0), $pop1 + i32.const $push2=, 0 + return $pop2 + .endfunc .Lfunc_end8: .size simple_loop, .Lfunc_end8-simple_loop @@ -222,6 +231,7 @@ doubletriangle: i32.const $push4=, 5 i32.store $discard=, 0($2), $pop4 return $3 + .endfunc .Lfunc_end9: .size doubletriangle, .Lfunc_end9-doubletriangle @@ -230,11 +240,10 @@ doubletriangle: ifelse_earlyexits: .param i32, i32, i32 .result i32 - .local i32 block block i32.const $push0=, 0 - i32.store $3=, 0($2), $pop0 + i32.store $discard=, 0($2), $pop0 br_if $0, 0 i32.const $push3=, 1 i32.store $discard=, 0($2), $pop3 @@ -250,7 +259,9 @@ ifelse_earlyexits: end_block i32.const $push4=, 4 i32.store $discard=, 0($2), $pop4 - return $3 + i32.const $push5=, 0 + return $pop5 + .endfunc .Lfunc_end10: .size ifelse_earlyexits, .Lfunc_end10-ifelse_earlyexits @@ -266,22 +277,22 @@ doublediamond_in_a_loop: i32.const $push0=, 0 i32.store $discard=, 0($2), $pop0 br_if $0, 0 - i32.const $push4=, 1 - i32.store $discard=, 0($2), $pop4 + i32.const $push1=, 1 + i32.store $discard=, 0($2), $pop1 br 1 .LBB11_3: end_block block - i32.const $push1=, 2 - i32.store $discard=, 0($2), $pop1 + i32.const $push2=, 2 + i32.store $discard=, 0($2), $pop2 br_if $1, 0 i32.const $push3=, 3 i32.store $discard=, 0($2), $pop3 br 1 .LBB11_5: end_block - i32.const $push2=, 4 - i32.store $discard=, 0($2), $pop2 + i32.const $push4=, 4 + i32.store $discard=, 0($2), $pop4 .LBB11_6: end_block i32.const $push5=, 5 @@ -289,6 +300,7 @@ doublediamond_in_a_loop: br 0 .LBB11_7: end_loop + .endfunc .Lfunc_end11: .size doublediamond_in_a_loop, .Lfunc_end11-doublediamond_in_a_loop @@ -315,6 +327,7 @@ test3: .LBB12_5: end_block return + .endfunc .Lfunc_end12: .size test3, .Lfunc_end12-test3 @@ -353,6 +366,7 @@ test4: .LBB13_8: end_block return + .endfunc .Lfunc_end13: .size test4, .Lfunc_end13-test4 @@ -360,29 +374,35 @@ test4: .type test5,@function test5: .param i32, i32 - .local i32, i32 + .local i32 + i32.const $push5=, 1 + i32.and $0=, $0, $pop5 + i32.const $push4=, 1 + i32.and $2=, $1, $pop4 .LBB14_1: block loop - i32.const $2=, 0 - i32.store $3=, 0($2), $2 - i32.const $2=, 1 - i32.and $push0=, $0, $2 - i32.const $push5=, 0 - i32.eq $push6=, $pop0, $pop5 - br_if $pop6, 2 - i32.store $push2=, 0($3), $2 - i32.and $push3=, $1, $pop2 - br_if $pop3, 0 + i32.const $push7=, 0 + i32.const $push6=, 0 + i32.store $1=, 0($pop7), $pop6 + i32.const $push9=, 0 + i32.eq $push10=, $0, $pop9 + br_if $pop10, 2 + i32.const $push8=, 1 + i32.store $discard=, 0($1), $pop8 + br_if $2, 0 end_loop - i32.const $push4=, 3 - i32.store $discard=, 0($3), $pop4 + i32.const $push2=, 0 + i32.const $push3=, 3 + i32.store $discard=, 0($pop2), $pop3 return .LBB14_4: end_block + i32.const $push0=, 0 i32.const $push1=, 2 - i32.store $discard=, 0($3), $pop1 + i32.store $discard=, 0($pop0), $pop1 return + .endfunc .Lfunc_end14: .size test5, .Lfunc_end14-test5 @@ -391,37 +411,43 @@ test5: test6: .param i32, i32 .local i32, i32, i32 + i32.const $push6=, 1 + i32.and $2=, $0, $pop6 .LBB15_1: block block loop - i32.const $2=, 0 - i32.store $discard=, 0($2), $2 - i32.const $3=, 1 - i32.and $push0=, $0, $3 - i32.const $push4=, 0 - i32.eq $push5=, $pop0, $pop4 - br_if $pop5, 3 - i32.store $discard=, 0($2), $3 + i32.const $push8=, 0 + i32.const $push7=, 0 + i32.store $0=, 0($pop8), $pop7 + i32.const $push10=, 0 + i32.eq $push11=, $2, $pop10 + br_if $pop11, 3 + i32.const $push9=, 1 + i32.store $3=, 0($0), $pop9 i32.and $4=, $1, $3 - i32.const $push6=, 0 - i32.eq $push7=, $4, $pop6 - br_if $pop7, 2 - i32.store $discard=, 0($2), $3 + i32.const $push12=, 0 + i32.eq $push13=, $4, $pop12 + br_if $pop13, 2 + i32.store $discard=, 0($0), $3 br_if $4, 0 end_loop - i32.const $push3=, 2 - i32.store $discard=, 0($2), $pop3 + i32.const $push4=, 0 + i32.const $push5=, 2 + i32.store $discard=, 0($pop4), $pop5 return .LBB15_5: end_block + i32.const $push0=, 0 i32.const $push1=, 3 - i32.store $discard=, 0($2), $pop1 + i32.store $discard=, 0($pop0), $pop1 .LBB15_6: end_block - i32.const $push2=, 4 - i32.store $discard=, 0($2), $pop2 + i32.const $push2=, 0 + i32.const $push3=, 4 + i32.store $discard=, 0($pop2), $pop3 return + .endfunc .Lfunc_end15: .size test6, .Lfunc_end15-test6 @@ -430,32 +456,37 @@ test6: test7: .param i32, i32 .local i32, i32 - i32.const $3=, 0 - i32.store $2=, 0($3), $3 + i32.const $push0=, 0 + i32.const $push8=, 0 + i32.store $2=, 0($pop0), $pop8 + i32.const $push7=, 1 + i32.and $3=, $0, $pop7 .LBB16_1: loop block - i32.const $push0=, 1 - i32.store $3=, 0($2), $pop0 - i32.and $push1=, $0, $3 - br_if $pop1, 0 - i32.const $push2=, 2 - i32.store $discard=, 0($2), $pop2 - i32.and $push3=, $1, $3 - br_if $pop3, 1 - i32.const $push4=, 4 - i32.store $discard=, 0($2), $pop4 + i32.const $push9=, 1 + i32.store $0=, 0($2), $pop9 + br_if $3, 0 + i32.const $push10=, 2 + i32.store $discard=, 0($2), $pop10 + i32.and $push1=, $1, $0 + br_if $pop1, 1 + i32.const $push2=, 0 + i32.const $push3=, 4 + i32.store $discard=, 0($pop2), $pop3 unreachable .LBB16_4: end_block - i32.const $push5=, 3 - i32.store $discard=, 0($2), $pop5 - i32.and $push6=, $1, $3 - br_if $pop6, 0 + i32.const $push11=, 3 + i32.store $discard=, 0($2), $pop11 + i32.and $push4=, $1, $0 + br_if $pop4, 0 end_loop - i32.const $push7=, 5 - i32.store $discard=, 0($2), $pop7 + i32.const $push5=, 0 + i32.const $push6=, 5 + i32.store $discard=, 0($pop5), $pop6 unreachable + .endfunc .Lfunc_end16: .size test7, .Lfunc_end16-test7 @@ -463,25 +494,27 @@ test7: .type test8,@function test8: .result i32 - .local i32 - i32.const $0=, 0 .LBB17_1: loop block i32.const $push0=, 0 - i32.eq $push1=, $0, $pop0 - br_if $pop1, 0 + i32.const $push3=, 0 + i32.eq $push4=, $pop0, $pop3 + br_if $pop4, 0 i32.const $push2=, 0 - i32.eq $push3=, $0, $pop2 - br_if $pop3, 1 + i32.const $push5=, 0 + i32.eq $push6=, $pop2, $pop5 + br_if $pop6, 1 .LBB17_3: end_block loop - br_if $0, 0 + i32.const $push1=, 0 + br_if $pop1, 0 br 2 .LBB17_4: end_loop end_loop + .endfunc .Lfunc_end17: .size test8, .Lfunc_end17-test8 @@ -489,47 +522,50 @@ test8: .type test9,@function test9: .local i32, i32 - i32.const $1=, 0 - i32.store $0=, 0($1), $1 + i32.const $push0=, 0 + i32.const $push11=, 0 + i32.store $0=, 0($pop0), $pop11 .LBB18_1: loop - i32.const $push0=, 1 - i32.store $1=, 0($0), $pop0 + i32.const $push12=, 1 + i32.store $1=, 0($0), $pop12 i32.call $push1=, a@FUNCTION i32.and $push2=, $pop1, $1 - i32.const $push13=, 0 - i32.eq $push14=, $pop2, $pop13 - br_if $pop14, 1 + i32.const $push16=, 0 + i32.eq $push17=, $pop2, $pop16 + br_if $pop17, 1 .LBB18_2: loop block - i32.const $push4=, 2 - i32.store $discard=, 0($0), $pop4 + i32.const $push13=, 2 + i32.store $discard=, 0($0), $pop13 i32.call $push5=, a@FUNCTION i32.and $push6=, $pop5, $1 - i32.const $push15=, 0 - i32.eq $push16=, $pop6, $pop15 - br_if $pop16, 0 - i32.const $push10=, 3 - i32.store $discard=, 0($0), $pop10 - i32.call $push11=, a@FUNCTION - i32.and $push12=, $pop11, $1 - br_if $pop12, 1 + i32.const $push18=, 0 + i32.eq $push19=, $pop6, $pop18 + br_if $pop19, 0 + i32.const $push14=, 3 + i32.store $discard=, 0($0), $pop14 + i32.call $push9=, a@FUNCTION + i32.and $push10=, $pop9, $1 + br_if $pop10, 1 br 3 .LBB18_4: end_block - i32.const $push7=, 4 - i32.store $discard=, 0($0), $pop7 - i32.call $push8=, a@FUNCTION - i32.and $push9=, $pop8, $1 - br_if $pop9, 0 + i32.const $push15=, 4 + i32.store $discard=, 0($0), $pop15 + i32.call $push7=, a@FUNCTION + i32.and $push8=, $pop7, $1 + br_if $pop8, 0 br 2 .LBB18_5: end_loop end_loop - i32.const $push3=, 5 - i32.store $discard=, 0($0), $pop3 + i32.const $push3=, 0 + i32.const $push4=, 5 + i32.store $discard=, 0($pop3), $pop4 return + .endfunc .Lfunc_end18: .size test9, .Lfunc_end18-test9 @@ -554,9 +590,9 @@ test10: .LBB19_3: loop copy_local $2=, $4 - i32.const $push0=, 4 - i32.gt_u $push1=, $2, $pop0 - br_if $pop1, 5 + i32.const $push1=, 4 + i32.gt_u $push0=, $2, $pop1 + br_if $pop0, 5 copy_local $4=, $3 tableswitch $2, 0, 0, 1, 5, 2, 4 .LBB19_5: @@ -569,6 +605,7 @@ test10: br 0 .LBB19_7: end_loop + .endfunc .Lfunc_end19: .size test10, .Lfunc_end19-test10 @@ -576,50 +613,60 @@ test10: .type test11,@function test11: .local i32 - i32.const $0=, 0 - i32.store $discard=, 0($0), $0 block block block block + i32.const $push0=, 0 + i32.const $push13=, 0 + i32.store $0=, 0($pop0), $pop13 br_if $0, 0 block - i32.const $push4=, 1 - i32.store $discard=, 0($0), $pop4 + i32.const $push6=, 1 + i32.store $discard=, 0($0), $pop6 br_if $0, 0 - i32.const $push5=, 2 - i32.store $discard=, 0($0), $pop5 - br_if $0, 2 + i32.const $push8=, 0 + i32.const $push7=, 2 + i32.store $discard=, 0($pop8), $pop7 + i32.const $push14=, 0 + br_if $pop14, 2 .LBB20_3: end_block - i32.const $push7=, 3 - i32.store $discard=, 0($0), $pop7 + i32.const $push11=, 0 + i32.const $push12=, 3 + i32.store $discard=, 0($pop11), $pop12 return .LBB20_4: end_block - i32.const $push0=, 4 - i32.store $discard=, 0($0), $pop0 - br_if $0, 2 - i32.const $push1=, 5 + i32.const $push1=, 4 i32.store $discard=, 0($0), $pop1 - i32.const $push8=, 0 - i32.eq $push9=, $0, $pop8 - br_if $pop9, 1 + br_if $0, 2 + i32.const $push16=, 0 + i32.const $push2=, 5 + i32.store $discard=, 0($pop16), $pop2 + i32.const $push15=, 0 + i32.const $push18=, 0 + i32.eq $push19=, $pop15, $pop18 + br_if $pop19, 1 .LBB20_6: end_block - i32.const $push6=, 7 - i32.store $discard=, 0($0), $pop6 + i32.const $push9=, 0 + i32.const $push10=, 7 + i32.store $discard=, 0($pop9), $pop10 return .LBB20_7: end_block - i32.const $push2=, 6 - i32.store $discard=, 0($0), $pop2 + i32.const $push17=, 0 + i32.const $push3=, 6 + i32.store $discard=, 0($pop17), $pop3 return .LBB20_8: end_block - i32.const $push3=, 8 - i32.store $discard=, 0($0), $pop3 + i32.const $push4=, 0 + i32.const $push5=, 8 + i32.store $discard=, 0($pop4), $pop5 return + .endfunc .Lfunc_end20: .size test11, .Lfunc_end20-test11 @@ -634,24 +681,24 @@ test12: block block block - i32.const $push0=, 103 - i32.gt_s $push1=, $1, $pop0 - br_if $pop1, 0 + i32.const $push5=, 103 + i32.gt_s $push0=, $1, $pop5 + br_if $pop0, 0 i32.const $push6=, 42 - i32.eq $push7=, $1, $pop6 - br_if $pop7, 2 - i32.const $push8=, 76 - i32.eq $push9=, $1, $pop8 - br_if $pop9, 2 + i32.eq $push3=, $1, $pop6 + br_if $pop3, 2 + i32.const $push7=, 76 + i32.eq $push4=, $1, $pop7 + br_if $pop4, 2 br 1 .LBB21_4: end_block - i32.const $push2=, 108 - i32.eq $push3=, $1, $pop2 - br_if $pop3, 1 - i32.const $push4=, 104 - i32.eq $push5=, $1, $pop4 - br_if $pop5, 1 + i32.const $push8=, 108 + i32.eq $push1=, $1, $pop8 + br_if $pop1, 1 + i32.const $push9=, 104 + i32.eq $push2=, $1, $pop9 + br_if $pop2, 1 .LBB21_6: end_block return @@ -662,6 +709,7 @@ test12: br 0 .LBB21_8: end_loop + .endfunc .Lfunc_end21: .size test12, .Lfunc_end21-test12 @@ -691,25 +739,27 @@ test13: br_if $pop6, 0 end_block unreachable + .endfunc .Lfunc_end22: .size test13, .Lfunc_end22-test13 .globl test14 .type test14,@function test14: - .local i32 - i32.const $0=, 0 .LBB23_1: loop - br_if $0, 0 + i32.const $push0=, 0 + br_if $pop0, 0 .LBB23_2: end_loop loop - br_if $0, 0 + i32.const $discard=, 0 + i32.const $push1=, 0 + br_if $pop1, 0 end_loop return + .endfunc .Lfunc_end23: .size test14, .Lfunc_end23-test14 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/cfg-stackify.wast b/test/llvm_autogenerated/cfg-stackify.wast index b74e242d5..c3b2cef82 100644 --- a/test/llvm_autogenerated/cfg-stackify.wast +++ b/test/llvm_autogenerated/cfg-stackify.wast @@ -129,16 +129,13 @@ ) ) (func $doublediamond (param $$0 i32) (param $$1 i32) (param $$2 i32) (result i32) - (local $$3 i32) (block $fake_return_waka123 (block (block $label$0 (block $label$1 - (set_local $$3 - (i32.store align=4 - (get_local $$2) - (i32.const 0) - ) + (i32.store align=4 + (get_local $$2) + (i32.const 0) ) (br_if (get_local $$0) @@ -175,7 +172,7 @@ (i32.const 5) ) (br $fake_return_waka123 - (get_local $$3) + (i32.const 0) ) ) ) @@ -211,16 +208,13 @@ ) ) (func $diamond (param $$0 i32) (param $$1 i32) (result i32) - (local $$2 i32) (block $fake_return_waka123 (block (block $label$0 (block $label$1 - (set_local $$2 - (i32.store align=4 - (get_local $$0) - (i32.const 0) - ) + (i32.store align=4 + (get_local $$0) + (i32.const 0) ) (br_if (get_local $$1) @@ -242,7 +236,7 @@ (i32.const 3) ) (br $fake_return_waka123 - (get_local $$2) + (i32.const 0) ) ) ) @@ -273,14 +267,11 @@ ) ) (func $simple_loop (param $$0 i32) (param $$1 i32) (result i32) - (local $$2 i32) (block $fake_return_waka123 (block - (set_local $$2 - (i32.store align=4 - (get_local $$0) - (i32.const 0) - ) + (i32.store align=4 + (get_local $$0) + (i32.const 0) ) (loop $label$1 $label$0 (i32.store align=4 @@ -300,7 +291,7 @@ (i32.const 2) ) (br $fake_return_waka123 - (get_local $$2) + (i32.const 0) ) ) ) @@ -350,16 +341,13 @@ ) ) (func $ifelse_earlyexits (param $$0 i32) (param $$1 i32) (param $$2 i32) (result i32) - (local $$3 i32) (block $fake_return_waka123 (block (block $label$0 (block $label$1 - (set_local $$3 - (i32.store align=4 - (get_local $$2) - (i32.const 0) - ) + (i32.store align=4 + (get_local $$2) + (i32.const 0) ) (br_if (get_local $$0) @@ -389,7 +377,7 @@ (i32.const 4) ) (br $fake_return_waka123 - (get_local $$3) + (i32.const 0) ) ) ) @@ -525,52 +513,52 @@ ) (func $test5 (param $$0 i32) (param $$1 i32) (local $$2 i32) - (local $$3 i32) (block $fake_return_waka123 (block + (set_local $$0 + (i32.and + (get_local $$0) + (i32.const 1) + ) + ) + (set_local $$2 + (i32.and + (get_local $$1) + (i32.const 1) + ) + ) (block $label$0 (loop $label$2 $label$1 - (set_local $$2 - (i32.const 0) - ) - (set_local $$3 + (set_local $$1 (i32.store align=4 - (get_local $$2) - (get_local $$2) + (i32.const 0) + (i32.const 0) ) ) - (set_local $$2 - (i32.const 1) - ) (br_if (i32.eq - (i32.and - (get_local $$0) - (get_local $$2) - ) + (get_local $$0) (i32.const 0) ) $label$0 ) + (i32.store align=4 + (get_local $$1) + (i32.const 1) + ) (br_if - (i32.and - (get_local $$1) - (i32.store align=4 - (get_local $$3) - (get_local $$2) - ) - ) + (get_local $$2) $label$1 ) ) (i32.store align=4 - (get_local $$3) + (i32.const 0) (i32.const 3) ) (br $fake_return_waka123) ) (i32.store align=4 - (get_local $$3) + (i32.const 0) (i32.const 2) ) (br $fake_return_waka123) @@ -583,32 +571,33 @@ (local $$4 i32) (block $fake_return_waka123 (block + (set_local $$2 + (i32.and + (get_local $$0) + (i32.const 1) + ) + ) (block $label$0 (block $label$1 (loop $label$3 $label$2 - (set_local $$2 - (i32.const 0) - ) - (i32.store align=4 - (get_local $$2) - (get_local $$2) - ) - (set_local $$3 - (i32.const 1) + (set_local $$0 + (i32.store align=4 + (i32.const 0) + (i32.const 0) + ) ) (br_if (i32.eq - (i32.and - (get_local $$0) - (get_local $$3) - ) + (get_local $$2) (i32.const 0) ) $label$0 ) - (i32.store align=4 - (get_local $$2) - (get_local $$3) + (set_local $$3 + (i32.store align=4 + (get_local $$0) + (i32.const 1) + ) ) (set_local $$4 (i32.and @@ -624,7 +613,7 @@ $label$1 ) (i32.store align=4 - (get_local $$2) + (get_local $$0) (get_local $$3) ) (br_if @@ -633,18 +622,18 @@ ) ) (i32.store align=4 - (get_local $$2) + (i32.const 0) (i32.const 2) ) (br $fake_return_waka123) ) (i32.store align=4 - (get_local $$2) + (i32.const 0) (i32.const 3) ) ) (i32.store align=4 - (get_local $$2) + (i32.const 0) (i32.const 4) ) (br $fake_return_waka123) @@ -654,28 +643,28 @@ (func $test7 (param $$0 i32) (param $$1 i32) (local $$2 i32) (local $$3 i32) - (set_local $$3 - (i32.const 0) - ) (set_local $$2 (i32.store align=4 - (get_local $$3) - (get_local $$3) + (i32.const 0) + (i32.const 0) + ) + ) + (set_local $$3 + (i32.and + (get_local $$0) + (i32.const 1) ) ) (loop $label$1 $label$0 (block $label$2 - (set_local $$3 + (set_local $$0 (i32.store align=4 (get_local $$2) (i32.const 1) ) ) (br_if - (i32.and - (get_local $$0) - (get_local $$3) - ) + (get_local $$3) $label$2 ) (i32.store align=4 @@ -685,12 +674,12 @@ (br_if (i32.and (get_local $$1) - (get_local $$3) + (get_local $$0) ) $label$0 ) (i32.store align=4 - (get_local $$2) + (i32.const 0) (i32.const 4) ) (unreachable) @@ -702,34 +691,30 @@ (br_if (i32.and (get_local $$1) - (get_local $$3) + (get_local $$0) ) $label$0 ) ) (i32.store align=4 - (get_local $$2) + (i32.const 0) (i32.const 5) ) (unreachable) ) (func $test8 (result i32) - (local $$0 i32) - (set_local $$0 - (i32.const 0) - ) (loop $label$1 $label$0 (block $label$2 (br_if (i32.eq - (get_local $$0) + (i32.const 0) (i32.const 0) ) $label$2 ) (br_if (i32.eq - (get_local $$0) + (i32.const 0) (i32.const 0) ) $label$0 @@ -737,7 +722,7 @@ ) (loop $label$4 $label$3 (br_if - (get_local $$0) + (i32.const 0) $label$3 ) (br $label$0) @@ -749,13 +734,10 @@ (local $$1 i32) (block $fake_return_waka123 (block - (set_local $$1 - (i32.const 0) - ) (set_local $$0 (i32.store align=4 - (get_local $$1) - (get_local $$1) + (i32.const 0) + (i32.const 0) ) ) (loop $label$1 $label$0 @@ -819,7 +801,7 @@ ) ) (i32.store align=4 - (get_local $$0) + (i32.const 0) (i32.const 5) ) (br $fake_return_waka123) @@ -899,17 +881,16 @@ (local $$0 i32) (block $fake_return_waka123 (block - (set_local $$0 - (i32.const 0) - ) - (i32.store align=4 - (get_local $$0) - (get_local $$0) - ) (block $label$0 (block $label$1 (block $label$2 (block $label$3 + (set_local $$0 + (i32.store align=4 + (i32.const 0) + (i32.const 0) + ) + ) (br_if (get_local $$0) $label$3 @@ -924,16 +905,16 @@ $label$4 ) (i32.store align=4 - (get_local $$0) + (i32.const 0) (i32.const 2) ) (br_if - (get_local $$0) + (i32.const 0) $label$2 ) ) (i32.store align=4 - (get_local $$0) + (i32.const 0) (i32.const 3) ) (br $fake_return_waka123) @@ -947,31 +928,31 @@ $label$0 ) (i32.store align=4 - (get_local $$0) + (i32.const 0) (i32.const 5) ) (br_if (i32.eq - (get_local $$0) + (i32.const 0) (i32.const 0) ) $label$1 ) ) (i32.store align=4 - (get_local $$0) + (i32.const 0) (i32.const 7) ) (br $fake_return_waka123) ) (i32.store align=4 - (get_local $$0) + (i32.const 0) (i32.const 6) ) (br $fake_return_waka123) ) (i32.store align=4 - (get_local $$0) + (i32.const 0) (i32.const 8) ) (br $fake_return_waka123) @@ -1085,21 +1066,18 @@ ) ) (func $test14 - (local $$0 i32) (block $fake_return_waka123 (block - (set_local $$0 - (i32.const 0) - ) (loop $label$1 $label$0 (br_if - (get_local $$0) + (i32.const 0) $label$0 ) ) (loop $label$3 $label$2 + (i32.const 0) (br_if - (get_local $$0) + (i32.const 0) $label$2 ) ) diff --git a/test/llvm_autogenerated/comparisons_f32.s b/test/llvm_autogenerated/comparisons_f32.s index a527faa3d..b14d0d8bd 100644 --- a/test/llvm_autogenerated/comparisons_f32.s +++ b/test/llvm_autogenerated/comparisons_f32.s @@ -9,6 +9,7 @@ ord_f32: f32.eq $push0=, $1, $1 i32.and $push2=, $pop1, $pop0 return $pop2 + .endfunc .Lfunc_end0: .size ord_f32, .Lfunc_end0-ord_f32 @@ -21,6 +22,7 @@ uno_f32: f32.ne $push0=, $1, $1 i32.or $push2=, $pop1, $pop0 return $pop2 + .endfunc .Lfunc_end1: .size uno_f32, .Lfunc_end1-uno_f32 @@ -31,6 +33,7 @@ oeq_f32: .result i32 f32.eq $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end2: .size oeq_f32, .Lfunc_end2-oeq_f32 @@ -41,6 +44,7 @@ une_f32: .result i32 f32.ne $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end3: .size une_f32, .Lfunc_end3-une_f32 @@ -51,6 +55,7 @@ olt_f32: .result i32 f32.lt $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end4: .size olt_f32, .Lfunc_end4-olt_f32 @@ -61,6 +66,7 @@ ole_f32: .result i32 f32.le $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end5: .size ole_f32, .Lfunc_end5-ole_f32 @@ -71,6 +77,7 @@ ogt_f32: .result i32 f32.gt $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end6: .size ogt_f32, .Lfunc_end6-ogt_f32 @@ -81,6 +88,7 @@ oge_f32: .result i32 f32.ge $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end7: .size oge_f32, .Lfunc_end7-oge_f32 @@ -95,6 +103,7 @@ ueq_f32: i32.or $push3=, $pop2, $pop1 i32.or $push4=, $pop0, $pop3 return $pop4 + .endfunc .Lfunc_end8: .size ueq_f32, .Lfunc_end8-ueq_f32 @@ -109,6 +118,7 @@ one_f32: i32.and $push3=, $pop2, $pop1 i32.and $push4=, $pop0, $pop3 return $pop4 + .endfunc .Lfunc_end9: .size one_f32, .Lfunc_end9-one_f32 @@ -123,6 +133,7 @@ ult_f32: i32.or $push3=, $pop2, $pop1 i32.or $push4=, $pop0, $pop3 return $pop4 + .endfunc .Lfunc_end10: .size ult_f32, .Lfunc_end10-ult_f32 @@ -137,6 +148,7 @@ ule_f32: i32.or $push3=, $pop2, $pop1 i32.or $push4=, $pop0, $pop3 return $pop4 + .endfunc .Lfunc_end11: .size ule_f32, .Lfunc_end11-ule_f32 @@ -151,6 +163,7 @@ ugt_f32: i32.or $push3=, $pop2, $pop1 i32.or $push4=, $pop0, $pop3 return $pop4 + .endfunc .Lfunc_end12: .size ugt_f32, .Lfunc_end12-ugt_f32 @@ -165,8 +178,8 @@ uge_f32: i32.or $push3=, $pop2, $pop1 i32.or $push4=, $pop0, $pop3 return $pop4 + .endfunc .Lfunc_end13: .size uge_f32, .Lfunc_end13-uge_f32 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/comparisons_f64.s b/test/llvm_autogenerated/comparisons_f64.s index ab72bd46e..8bb75bcb6 100644 --- a/test/llvm_autogenerated/comparisons_f64.s +++ b/test/llvm_autogenerated/comparisons_f64.s @@ -9,6 +9,7 @@ ord_f64: f64.eq $push0=, $1, $1 i32.and $push2=, $pop1, $pop0 return $pop2 + .endfunc .Lfunc_end0: .size ord_f64, .Lfunc_end0-ord_f64 @@ -21,6 +22,7 @@ uno_f64: f64.ne $push0=, $1, $1 i32.or $push2=, $pop1, $pop0 return $pop2 + .endfunc .Lfunc_end1: .size uno_f64, .Lfunc_end1-uno_f64 @@ -31,6 +33,7 @@ oeq_f64: .result i32 f64.eq $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end2: .size oeq_f64, .Lfunc_end2-oeq_f64 @@ -41,6 +44,7 @@ une_f64: .result i32 f64.ne $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end3: .size une_f64, .Lfunc_end3-une_f64 @@ -51,6 +55,7 @@ olt_f64: .result i32 f64.lt $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end4: .size olt_f64, .Lfunc_end4-olt_f64 @@ -61,6 +66,7 @@ ole_f64: .result i32 f64.le $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end5: .size ole_f64, .Lfunc_end5-ole_f64 @@ -71,6 +77,7 @@ ogt_f64: .result i32 f64.gt $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end6: .size ogt_f64, .Lfunc_end6-ogt_f64 @@ -81,6 +88,7 @@ oge_f64: .result i32 f64.ge $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end7: .size oge_f64, .Lfunc_end7-oge_f64 @@ -95,6 +103,7 @@ ueq_f64: i32.or $push3=, $pop2, $pop1 i32.or $push4=, $pop0, $pop3 return $pop4 + .endfunc .Lfunc_end8: .size ueq_f64, .Lfunc_end8-ueq_f64 @@ -109,6 +118,7 @@ one_f64: i32.and $push3=, $pop2, $pop1 i32.and $push4=, $pop0, $pop3 return $pop4 + .endfunc .Lfunc_end9: .size one_f64, .Lfunc_end9-one_f64 @@ -123,6 +133,7 @@ ult_f64: i32.or $push3=, $pop2, $pop1 i32.or $push4=, $pop0, $pop3 return $pop4 + .endfunc .Lfunc_end10: .size ult_f64, .Lfunc_end10-ult_f64 @@ -137,6 +148,7 @@ ule_f64: i32.or $push3=, $pop2, $pop1 i32.or $push4=, $pop0, $pop3 return $pop4 + .endfunc .Lfunc_end11: .size ule_f64, .Lfunc_end11-ule_f64 @@ -151,6 +163,7 @@ ugt_f64: i32.or $push3=, $pop2, $pop1 i32.or $push4=, $pop0, $pop3 return $pop4 + .endfunc .Lfunc_end12: .size ugt_f64, .Lfunc_end12-ugt_f64 @@ -165,8 +178,8 @@ uge_f64: i32.or $push3=, $pop2, $pop1 i32.or $push4=, $pop0, $pop3 return $pop4 + .endfunc .Lfunc_end13: .size uge_f64, .Lfunc_end13-uge_f64 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/comparisons_i32.s b/test/llvm_autogenerated/comparisons_i32.s index a38bd77bd..340f6ae96 100644 --- a/test/llvm_autogenerated/comparisons_i32.s +++ b/test/llvm_autogenerated/comparisons_i32.s @@ -7,6 +7,7 @@ eq_i32: .result i32 i32.eq $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end0: .size eq_i32, .Lfunc_end0-eq_i32 @@ -17,6 +18,7 @@ ne_i32: .result i32 i32.ne $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end1: .size ne_i32, .Lfunc_end1-ne_i32 @@ -27,6 +29,7 @@ slt_i32: .result i32 i32.lt_s $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end2: .size slt_i32, .Lfunc_end2-slt_i32 @@ -37,6 +40,7 @@ sle_i32: .result i32 i32.le_s $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end3: .size sle_i32, .Lfunc_end3-sle_i32 @@ -47,6 +51,7 @@ ult_i32: .result i32 i32.lt_u $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end4: .size ult_i32, .Lfunc_end4-ult_i32 @@ -57,6 +62,7 @@ ule_i32: .result i32 i32.le_u $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end5: .size ule_i32, .Lfunc_end5-ule_i32 @@ -67,6 +73,7 @@ sgt_i32: .result i32 i32.gt_s $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end6: .size sgt_i32, .Lfunc_end6-sgt_i32 @@ -77,6 +84,7 @@ sge_i32: .result i32 i32.ge_s $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end7: .size sge_i32, .Lfunc_end7-sge_i32 @@ -87,6 +95,7 @@ ugt_i32: .result i32 i32.gt_u $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end8: .size ugt_i32, .Lfunc_end8-ugt_i32 @@ -97,8 +106,8 @@ uge_i32: .result i32 i32.ge_u $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end9: .size uge_i32, .Lfunc_end9-uge_i32 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/comparisons_i64.s b/test/llvm_autogenerated/comparisons_i64.s index 1b151c7bd..9a9fd6a3b 100644 --- a/test/llvm_autogenerated/comparisons_i64.s +++ b/test/llvm_autogenerated/comparisons_i64.s @@ -7,6 +7,7 @@ eq_i64: .result i32 i64.eq $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end0: .size eq_i64, .Lfunc_end0-eq_i64 @@ -17,6 +18,7 @@ ne_i64: .result i32 i64.ne $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end1: .size ne_i64, .Lfunc_end1-ne_i64 @@ -27,6 +29,7 @@ slt_i64: .result i32 i64.lt_s $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end2: .size slt_i64, .Lfunc_end2-slt_i64 @@ -37,6 +40,7 @@ sle_i64: .result i32 i64.le_s $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end3: .size sle_i64, .Lfunc_end3-sle_i64 @@ -47,6 +51,7 @@ ult_i64: .result i32 i64.lt_u $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end4: .size ult_i64, .Lfunc_end4-ult_i64 @@ -57,6 +62,7 @@ ule_i64: .result i32 i64.le_u $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end5: .size ule_i64, .Lfunc_end5-ule_i64 @@ -67,6 +73,7 @@ sgt_i64: .result i32 i64.gt_s $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end6: .size sgt_i64, .Lfunc_end6-sgt_i64 @@ -77,6 +84,7 @@ sge_i64: .result i32 i64.ge_s $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end7: .size sge_i64, .Lfunc_end7-sge_i64 @@ -87,6 +95,7 @@ ugt_i64: .result i32 i64.gt_u $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end8: .size ugt_i64, .Lfunc_end8-ugt_i64 @@ -97,8 +106,8 @@ uge_i64: .result i32 i64.ge_u $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end9: .size uge_i64, .Lfunc_end9-uge_i64 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/conv.s b/test/llvm_autogenerated/conv.s index 9bb08c906..339051b1c 100644 --- a/test/llvm_autogenerated/conv.s +++ b/test/llvm_autogenerated/conv.s @@ -7,6 +7,7 @@ i32_wrap_i64: .result i32 i32.wrap/i64 $push0=, $0 return $pop0 + .endfunc .Lfunc_end0: .size i32_wrap_i64, .Lfunc_end0-i32_wrap_i64 @@ -17,6 +18,7 @@ i64_extend_s_i32: .result i64 i64.extend_s/i32 $push0=, $0 return $pop0 + .endfunc .Lfunc_end1: .size i64_extend_s_i32, .Lfunc_end1-i64_extend_s_i32 @@ -27,6 +29,7 @@ i64_extend_u_i32: .result i64 i64.extend_u/i32 $push0=, $0 return $pop0 + .endfunc .Lfunc_end2: .size i64_extend_u_i32, .Lfunc_end2-i64_extend_u_i32 @@ -37,6 +40,7 @@ i32_trunc_s_f32: .result i32 i32.trunc_s/f32 $push0=, $0 return $pop0 + .endfunc .Lfunc_end3: .size i32_trunc_s_f32, .Lfunc_end3-i32_trunc_s_f32 @@ -47,6 +51,7 @@ i32_trunc_u_f32: .result i32 i32.trunc_u/f32 $push0=, $0 return $pop0 + .endfunc .Lfunc_end4: .size i32_trunc_u_f32, .Lfunc_end4-i32_trunc_u_f32 @@ -57,6 +62,7 @@ i32_trunc_s_f64: .result i32 i32.trunc_s/f64 $push0=, $0 return $pop0 + .endfunc .Lfunc_end5: .size i32_trunc_s_f64, .Lfunc_end5-i32_trunc_s_f64 @@ -67,6 +73,7 @@ i32_trunc_u_f64: .result i32 i32.trunc_u/f64 $push0=, $0 return $pop0 + .endfunc .Lfunc_end6: .size i32_trunc_u_f64, .Lfunc_end6-i32_trunc_u_f64 @@ -77,6 +84,7 @@ i64_trunc_s_f32: .result i64 i64.trunc_s/f32 $push0=, $0 return $pop0 + .endfunc .Lfunc_end7: .size i64_trunc_s_f32, .Lfunc_end7-i64_trunc_s_f32 @@ -87,6 +95,7 @@ i64_trunc_u_f32: .result i64 i64.trunc_u/f32 $push0=, $0 return $pop0 + .endfunc .Lfunc_end8: .size i64_trunc_u_f32, .Lfunc_end8-i64_trunc_u_f32 @@ -97,6 +106,7 @@ i64_trunc_s_f64: .result i64 i64.trunc_s/f64 $push0=, $0 return $pop0 + .endfunc .Lfunc_end9: .size i64_trunc_s_f64, .Lfunc_end9-i64_trunc_s_f64 @@ -107,6 +117,7 @@ i64_trunc_u_f64: .result i64 i64.trunc_u/f64 $push0=, $0 return $pop0 + .endfunc .Lfunc_end10: .size i64_trunc_u_f64, .Lfunc_end10-i64_trunc_u_f64 @@ -117,6 +128,7 @@ f32_convert_s_i32: .result f32 f32.convert_s/i32 $push0=, $0 return $pop0 + .endfunc .Lfunc_end11: .size f32_convert_s_i32, .Lfunc_end11-f32_convert_s_i32 @@ -127,6 +139,7 @@ f32_convert_u_i32: .result f32 f32.convert_u/i32 $push0=, $0 return $pop0 + .endfunc .Lfunc_end12: .size f32_convert_u_i32, .Lfunc_end12-f32_convert_u_i32 @@ -137,6 +150,7 @@ f64_convert_s_i32: .result f64 f64.convert_s/i32 $push0=, $0 return $pop0 + .endfunc .Lfunc_end13: .size f64_convert_s_i32, .Lfunc_end13-f64_convert_s_i32 @@ -147,6 +161,7 @@ f64_convert_u_i32: .result f64 f64.convert_u/i32 $push0=, $0 return $pop0 + .endfunc .Lfunc_end14: .size f64_convert_u_i32, .Lfunc_end14-f64_convert_u_i32 @@ -157,6 +172,7 @@ f32_convert_s_i64: .result f32 f32.convert_s/i64 $push0=, $0 return $pop0 + .endfunc .Lfunc_end15: .size f32_convert_s_i64, .Lfunc_end15-f32_convert_s_i64 @@ -167,6 +183,7 @@ f32_convert_u_i64: .result f32 f32.convert_u/i64 $push0=, $0 return $pop0 + .endfunc .Lfunc_end16: .size f32_convert_u_i64, .Lfunc_end16-f32_convert_u_i64 @@ -177,6 +194,7 @@ f64_convert_s_i64: .result f64 f64.convert_s/i64 $push0=, $0 return $pop0 + .endfunc .Lfunc_end17: .size f64_convert_s_i64, .Lfunc_end17-f64_convert_s_i64 @@ -187,6 +205,7 @@ f64_convert_u_i64: .result f64 f64.convert_u/i64 $push0=, $0 return $pop0 + .endfunc .Lfunc_end18: .size f64_convert_u_i64, .Lfunc_end18-f64_convert_u_i64 @@ -197,6 +216,7 @@ f64_promote_f32: .result f64 f64.promote/f32 $push0=, $0 return $pop0 + .endfunc .Lfunc_end19: .size f64_promote_f32, .Lfunc_end19-f64_promote_f32 @@ -207,6 +227,7 @@ f32_demote_f64: .result f32 f32.demote/f64 $push0=, $0 return $pop0 + .endfunc .Lfunc_end20: .size f32_demote_f64, .Lfunc_end20-f32_demote_f64 @@ -219,6 +240,7 @@ anyext: i64.const $push1=, 32 i64.shl $push2=, $pop0, $pop1 return $pop2 + .endfunc .Lfunc_end21: .size anyext, .Lfunc_end21-anyext @@ -229,6 +251,7 @@ bitcast_i32_to_float: .result f32 f32.reinterpret/i32 $push0=, $0 return $pop0 + .endfunc .Lfunc_end22: .size bitcast_i32_to_float, .Lfunc_end22-bitcast_i32_to_float @@ -239,6 +262,7 @@ bitcast_float_to_i32: .result i32 i32.reinterpret/f32 $push0=, $0 return $pop0 + .endfunc .Lfunc_end23: .size bitcast_float_to_i32, .Lfunc_end23-bitcast_float_to_i32 @@ -249,6 +273,7 @@ bitcast_i64_to_double: .result f64 f64.reinterpret/i64 $push0=, $0 return $pop0 + .endfunc .Lfunc_end24: .size bitcast_i64_to_double, .Lfunc_end24-bitcast_i64_to_double @@ -259,8 +284,8 @@ bitcast_double_to_i64: .result i64 i64.reinterpret/f64 $push0=, $0 return $pop0 + .endfunc .Lfunc_end25: .size bitcast_double_to_i64, .Lfunc_end25-bitcast_double_to_i64 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/copysign-casts.s b/test/llvm_autogenerated/copysign-casts.s index 64e7e354e..1b3db084c 100644 --- a/test/llvm_autogenerated/copysign-casts.s +++ b/test/llvm_autogenerated/copysign-casts.s @@ -8,6 +8,7 @@ fold_promote: f64.promote/f32 $push0=, $1 f64.copysign $push1=, $0, $pop0 return $pop1 + .endfunc .Lfunc_end0: .size fold_promote, .Lfunc_end0-fold_promote @@ -19,8 +20,8 @@ fold_demote: f32.demote/f64 $push0=, $1 f32.copysign $push1=, $0, $pop0 return $pop1 + .endfunc .Lfunc_end1: .size fold_demote, .Lfunc_end1-fold_demote - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/cpus.s b/test/llvm_autogenerated/cpus.s index 9e1d701d2..9ec96b578 100644 --- a/test/llvm_autogenerated/cpus.s +++ b/test/llvm_autogenerated/cpus.s @@ -6,8 +6,8 @@ f: .param i32 .result i32 return $0 + .endfunc .Lfunc_end0: .size f, .Lfunc_end0-f - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/dead-vreg.s b/test/llvm_autogenerated/dead-vreg.s index 83c484f36..8839c3011 100644 --- a/test/llvm_autogenerated/dead-vreg.s +++ b/test/llvm_autogenerated/dead-vreg.s @@ -4,45 +4,46 @@ .type foo,@function foo: .param i32, i32, i32 - .local i32, i32, i32, i32, i32, i32, i32 - i32.const $4=, 1 + .local i32, i32, i32, i32, i32, i32 block - i32.lt_s $push0=, $2, $4 + i32.const $push3=, 1 + i32.lt_s $push0=, $2, $pop3 br_if $pop0, 0 - i32.const $5=, 0 i32.const $push1=, 2 i32.shl $3=, $1, $pop1 - copy_local $6=, $5 + i32.const $5=, 0 + i32.const $push4=, 1 + i32.lt_s $4=, $1, $pop4 .LBB0_2: loop - copy_local $7=, $5 - copy_local $8=, $0 - copy_local $9=, $1 + i32.const $6=, 0 + copy_local $7=, $0 + copy_local $8=, $1 block - i32.lt_s $push2=, $1, $4 - br_if $pop2, 0 + br_if $4, 0 .LBB0_3: loop - i32.const $push3=, -1 - i32.add $9=, $9, $pop3 - i32.store $discard=, 0($8), $7 - i32.const $push4=, 4 - i32.add $8=, $8, $pop4 - i32.add $7=, $7, $6 - br_if $9, 0 + i32.store $discard=, 0($7), $6 + i32.const $push6=, -1 + i32.add $8=, $8, $pop6 + i32.const $push5=, 4 + i32.add $7=, $7, $pop5 + i32.add $6=, $6, $5 + br_if $8, 0 .LBB0_4: end_loop end_block - i32.add $6=, $6, $4 + i32.const $push7=, 1 + i32.add $5=, $5, $pop7 i32.add $0=, $0, $3 - i32.ne $push5=, $6, $2 - br_if $pop5, 0 + i32.ne $push2=, $5, $2 + br_if $pop2, 0 .LBB0_5: end_loop end_block return + .endfunc .Lfunc_end0: .size foo, .Lfunc_end0-foo - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/dead-vreg.wast b/test/llvm_autogenerated/dead-vreg.wast index 3eb4dd029..282cd8fe0 100644 --- a/test/llvm_autogenerated/dead-vreg.wast +++ b/test/llvm_autogenerated/dead-vreg.wast @@ -8,83 +8,79 @@ (local $$6 i32) (local $$7 i32) (local $$8 i32) - (local $$9 i32) (block $fake_return_waka123 (block - (set_local $$4 - (i32.const 1) - ) (block $label$0 (br_if (i32.lt_s (get_local $$2) - (get_local $$4) + (i32.const 1) ) $label$0 ) - (set_local $$5 - (i32.const 0) - ) (set_local $$3 (i32.shl (get_local $$1) (i32.const 2) ) ) - (set_local $$6 - (get_local $$5) + (set_local $$5 + (i32.const 0) + ) + (set_local $$4 + (i32.lt_s + (get_local $$1) + (i32.const 1) + ) ) (loop $label$2 $label$1 - (set_local $$7 - (get_local $$5) + (set_local $$6 + (i32.const 0) ) - (set_local $$8 + (set_local $$7 (get_local $$0) ) - (set_local $$9 + (set_local $$8 (get_local $$1) ) (block $label$3 (br_if - (i32.lt_s - (get_local $$1) - (get_local $$4) - ) + (get_local $$4) $label$3 ) (loop $label$5 $label$4 - (set_local $$9 - (i32.add - (get_local $$9) - (i32.const -1) - ) - ) (i32.store align=4 - (get_local $$8) (get_local $$7) + (get_local $$6) ) (set_local $$8 (i32.add (get_local $$8) - (i32.const 4) + (i32.const -1) ) ) (set_local $$7 (i32.add (get_local $$7) + (i32.const 4) + ) + ) + (set_local $$6 + (i32.add (get_local $$6) + (get_local $$5) ) ) (br_if - (get_local $$9) + (get_local $$8) $label$4 ) ) ) - (set_local $$6 + (set_local $$5 (i32.add - (get_local $$6) - (get_local $$4) + (get_local $$5) + (i32.const 1) ) ) (set_local $$0 @@ -95,7 +91,7 @@ ) (br_if (i32.ne - (get_local $$6) + (get_local $$5) (get_local $$2) ) $label$1 diff --git a/test/llvm_autogenerated/f32.s b/test/llvm_autogenerated/f32.s index 229f3f7dc..6eff47f4e 100644 --- a/test/llvm_autogenerated/f32.s +++ b/test/llvm_autogenerated/f32.s @@ -7,6 +7,7 @@ fadd32: .result f32 f32.add $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end0: .size fadd32, .Lfunc_end0-fadd32 @@ -17,6 +18,7 @@ fsub32: .result f32 f32.sub $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end1: .size fsub32, .Lfunc_end1-fsub32 @@ -27,6 +29,7 @@ fmul32: .result f32 f32.mul $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end2: .size fmul32, .Lfunc_end2-fmul32 @@ -37,6 +40,7 @@ fdiv32: .result f32 f32.div $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end3: .size fdiv32, .Lfunc_end3-fdiv32 @@ -47,6 +51,7 @@ fabs32: .result f32 f32.abs $push0=, $0 return $pop0 + .endfunc .Lfunc_end4: .size fabs32, .Lfunc_end4-fabs32 @@ -57,6 +62,7 @@ fneg32: .result f32 f32.neg $push0=, $0 return $pop0 + .endfunc .Lfunc_end5: .size fneg32, .Lfunc_end5-fneg32 @@ -67,6 +73,7 @@ copysign32: .result f32 f32.copysign $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end6: .size copysign32, .Lfunc_end6-copysign32 @@ -77,6 +84,7 @@ sqrt32: .result f32 f32.sqrt $push0=, $0 return $pop0 + .endfunc .Lfunc_end7: .size sqrt32, .Lfunc_end7-sqrt32 @@ -87,6 +95,7 @@ ceil32: .result f32 f32.ceil $push0=, $0 return $pop0 + .endfunc .Lfunc_end8: .size ceil32, .Lfunc_end8-ceil32 @@ -97,6 +106,7 @@ floor32: .result f32 f32.floor $push0=, $0 return $pop0 + .endfunc .Lfunc_end9: .size floor32, .Lfunc_end9-floor32 @@ -107,6 +117,7 @@ trunc32: .result f32 f32.trunc $push0=, $0 return $pop0 + .endfunc .Lfunc_end10: .size trunc32, .Lfunc_end10-trunc32 @@ -117,6 +128,7 @@ nearest32: .result f32 f32.nearest $push0=, $0 return $pop0 + .endfunc .Lfunc_end11: .size nearest32, .Lfunc_end11-nearest32 @@ -127,6 +139,7 @@ nearest32_via_rint: .result f32 f32.nearest $push0=, $0 return $pop0 + .endfunc .Lfunc_end12: .size nearest32_via_rint, .Lfunc_end12-nearest32_via_rint @@ -138,6 +151,7 @@ fmin32: f32.const $push0=, 0x0p0 f32.min $push1=, $0, $pop0 return $pop1 + .endfunc .Lfunc_end13: .size fmin32, .Lfunc_end13-fmin32 @@ -149,6 +163,7 @@ fmax32: f32.const $push0=, 0x0p0 f32.max $push1=, $0, $pop0 return $pop1 + .endfunc .Lfunc_end14: .size fmax32, .Lfunc_end14-fmax32 @@ -159,8 +174,8 @@ fma32: .result f32 f32.call $push0=, fmaf@FUNCTION, $0, $1, $2 return $pop0 + .endfunc .Lfunc_end15: .size fma32, .Lfunc_end15-fma32 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/f64.s b/test/llvm_autogenerated/f64.s index 520a1a68d..70b233ceb 100644 --- a/test/llvm_autogenerated/f64.s +++ b/test/llvm_autogenerated/f64.s @@ -7,6 +7,7 @@ fadd64: .result f64 f64.add $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end0: .size fadd64, .Lfunc_end0-fadd64 @@ -17,6 +18,7 @@ fsub64: .result f64 f64.sub $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end1: .size fsub64, .Lfunc_end1-fsub64 @@ -27,6 +29,7 @@ fmul64: .result f64 f64.mul $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end2: .size fmul64, .Lfunc_end2-fmul64 @@ -37,6 +40,7 @@ fdiv64: .result f64 f64.div $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end3: .size fdiv64, .Lfunc_end3-fdiv64 @@ -47,6 +51,7 @@ fabs64: .result f64 f64.abs $push0=, $0 return $pop0 + .endfunc .Lfunc_end4: .size fabs64, .Lfunc_end4-fabs64 @@ -57,6 +62,7 @@ fneg64: .result f64 f64.neg $push0=, $0 return $pop0 + .endfunc .Lfunc_end5: .size fneg64, .Lfunc_end5-fneg64 @@ -67,6 +73,7 @@ copysign64: .result f64 f64.copysign $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end6: .size copysign64, .Lfunc_end6-copysign64 @@ -77,6 +84,7 @@ sqrt64: .result f64 f64.sqrt $push0=, $0 return $pop0 + .endfunc .Lfunc_end7: .size sqrt64, .Lfunc_end7-sqrt64 @@ -87,6 +95,7 @@ ceil64: .result f64 f64.ceil $push0=, $0 return $pop0 + .endfunc .Lfunc_end8: .size ceil64, .Lfunc_end8-ceil64 @@ -97,6 +106,7 @@ floor64: .result f64 f64.floor $push0=, $0 return $pop0 + .endfunc .Lfunc_end9: .size floor64, .Lfunc_end9-floor64 @@ -107,6 +117,7 @@ trunc64: .result f64 f64.trunc $push0=, $0 return $pop0 + .endfunc .Lfunc_end10: .size trunc64, .Lfunc_end10-trunc64 @@ -117,6 +128,7 @@ nearest64: .result f64 f64.nearest $push0=, $0 return $pop0 + .endfunc .Lfunc_end11: .size nearest64, .Lfunc_end11-nearest64 @@ -127,6 +139,7 @@ nearest64_via_rint: .result f64 f64.nearest $push0=, $0 return $pop0 + .endfunc .Lfunc_end12: .size nearest64_via_rint, .Lfunc_end12-nearest64_via_rint @@ -138,6 +151,7 @@ fmin64: f64.const $push0=, 0x0p0 f64.min $push1=, $0, $pop0 return $pop1 + .endfunc .Lfunc_end13: .size fmin64, .Lfunc_end13-fmin64 @@ -149,6 +163,7 @@ fmax64: f64.const $push0=, 0x0p0 f64.max $push1=, $0, $pop0 return $pop1 + .endfunc .Lfunc_end14: .size fmax64, .Lfunc_end14-fmax64 @@ -159,8 +174,8 @@ fma64: .result f64 f64.call $push0=, fma@FUNCTION, $0, $1, $2 return $pop0 + .endfunc .Lfunc_end15: .size fma64, .Lfunc_end15-fma64 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/fast-isel.s b/test/llvm_autogenerated/fast-isel.s index e511c33a1..63a2718a3 100644 --- a/test/llvm_autogenerated/fast-isel.s +++ b/test/llvm_autogenerated/fast-isel.s @@ -6,6 +6,7 @@ immediate_f32: .result f32 f32.const $push0=, 0x1.4p1 return $pop0 + .endfunc .Lfunc_end0: .size immediate_f32, .Lfunc_end0-immediate_f32 @@ -15,8 +16,8 @@ immediate_f64: .result f64 f64.const $push0=, 0x1.4p1 return $pop0 + .endfunc .Lfunc_end1: .size immediate_f64, .Lfunc_end1-immediate_f64 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/frem.s b/test/llvm_autogenerated/frem.s index af01a9c2b..6ef9559ab 100644 --- a/test/llvm_autogenerated/frem.s +++ b/test/llvm_autogenerated/frem.s @@ -7,6 +7,7 @@ frem32: .result f32 f32.call $push0=, fmodf@FUNCTION, $0, $1 return $pop0 + .endfunc .Lfunc_end0: .size frem32, .Lfunc_end0-frem32 @@ -17,8 +18,8 @@ frem64: .result f64 f64.call $push0=, fmod@FUNCTION, $0, $1 return $pop0 + .endfunc .Lfunc_end1: .size frem64, .Lfunc_end1-frem64 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/func.s b/test/llvm_autogenerated/func.s index 49425e63c..fbe92c359 100644 --- a/test/llvm_autogenerated/func.s +++ b/test/llvm_autogenerated/func.s @@ -4,6 +4,7 @@ .type f0,@function f0: return + .endfunc .Lfunc_end0: .size f0, .Lfunc_end0-f0 @@ -13,6 +14,7 @@ f1: .result i32 i32.const $push0=, 0 return $pop0 + .endfunc .Lfunc_end1: .size f1, .Lfunc_end1-f1 @@ -23,6 +25,7 @@ f2: .result i32 i32.const $push0=, 0 return $pop0 + .endfunc .Lfunc_end2: .size f2, .Lfunc_end2-f2 @@ -31,6 +34,7 @@ f2: f3: .param i32, f32 return + .endfunc .Lfunc_end3: .size f3, .Lfunc_end3-f3 @@ -39,18 +43,19 @@ f3: f4: .param i32 .result i32 - .local i32 - i32.const $1=, 1 block - i32.and $push0=, $0, $1 - i32.const $push2=, 0 - i32.eq $push3=, $pop0, $pop2 - br_if $pop3, 0 + i32.const $push2=, 1 + i32.and $push0=, $0, $pop2 + i32.const $push4=, 0 + i32.eq $push5=, $pop0, $pop4 + br_if $pop5, 0 i32.const $push1=, 0 return $pop1 .LBB4_2: end_block - return $1 + i32.const $push3=, 1 + return $pop3 + .endfunc .Lfunc_end4: .size f4, .Lfunc_end4-f4 @@ -59,8 +64,8 @@ f4: f5: .result f32 unreachable + .endfunc .Lfunc_end5: .size f5, .Lfunc_end5-f5 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/func.wast b/test/llvm_autogenerated/func.wast index ae815c2e5..4ee2497f7 100644 --- a/test/llvm_autogenerated/func.wast +++ b/test/llvm_autogenerated/func.wast @@ -39,18 +39,14 @@ ) ) (func $f4 (param $$0 i32) (result i32) - (local $$1 i32) (block $fake_return_waka123 (block - (set_local $$1 - (i32.const 1) - ) (block $label$0 (br_if (i32.eq (i32.and (get_local $$0) - (get_local $$1) + (i32.const 1) ) (i32.const 0) ) @@ -61,7 +57,7 @@ ) ) (br $fake_return_waka123 - (get_local $$1) + (i32.const 1) ) ) ) diff --git a/test/llvm_autogenerated/global.s b/test/llvm_autogenerated/global.s index 3b2432998..0eaf572ec 100644 --- a/test/llvm_autogenerated/global.s +++ b/test/llvm_autogenerated/global.s @@ -7,6 +7,7 @@ foo: i32.const $push0=, 0 i32.load $push1=, answer($pop0) return $pop1 + .endfunc .Lfunc_end0: .size foo, .Lfunc_end0-foo @@ -15,8 +16,9 @@ foo: call_memcpy: .param i32, i32, i32 .result i32 - call memcpy@FUNCTION, $0, $1, $2 + i32.call $discard=, memcpy@FUNCTION, $0, $1, $2 return $0 + .endfunc .Lfunc_end1: .size call_memcpy, .Lfunc_end1-call_memcpy @@ -145,5 +147,17 @@ rom: .skip 512 .size rom, 512 + .type array,@object +array: + .skip 8 + .size array, 8 + + .type pointer_to_array,@object + .section .data.rel.ro,"aw",@progbits + .globl pointer_to_array + .align 2 +pointer_to_array: + .int32 array+4 + .size pointer_to_array, 4 + - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/global.wast b/test/llvm_autogenerated/global.wast index 6569b8376..6a9a6293d 100644 --- a/test/llvm_autogenerated/global.wast +++ b/test/llvm_autogenerated/global.wast @@ -1,7 +1,7 @@ (module - (memory 1184 4294967295 (segment 8 "9\05\00\00") (segment 24 "\01\00\00\00") (segment 28 "*\00\00\00") (segment 32 "\ff\ff\ff\ff") (segment 64 "\00\00\00\00\01\00\00\00") (segment 72 "\ff\ff\ff\ff\ff\ff\ff\ff") (segment 92 "\00\00\00\80") (segment 96 "\00\00\00@") (segment 128 "\00\00\00\00\00\00\00\80") (segment 136 "\00\00\00\00\00\00\00@") (segment 656 "\e0\00\00\00")) - (type $FUNCSIG$viii (func (param i32 i32 i32))) - (import $memcpy "env" "memcpy" (param i32 i32 i32)) + (memory 1196 4294967295 (segment 8 "9\05\00\00") (segment 24 "\01\00\00\00") (segment 28 "*\00\00\00") (segment 32 "\ff\ff\ff\ff") (segment 64 "\00\00\00\00\01\00\00\00") (segment 72 "\ff\ff\ff\ff\ff\ff\ff\ff") (segment 92 "\00\00\00\80") (segment 96 "\00\00\00@") (segment 128 "\00\00\00\00\00\00\00\80") (segment 136 "\00\00\00\00\00\00\00@") (segment 656 "\e0\00\00\00") (segment 1192 "\a4\04\00\00")) + (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) + (import $memcpy "env" "memcpy" (param i32 i32 i32) (result i32)) (export "foo" $foo) (export "call_memcpy" $call_memcpy) (func $foo (result i32) @@ -30,4 +30,4 @@ ) ) ) -;; METADATA: { "asmConsts": {},"staticBump": 1183 } +;; METADATA: { "asmConsts": {},"staticBump": 1195 } diff --git a/test/llvm_autogenerated/globl.s b/test/llvm_autogenerated/globl.s index 0453076f7..894ec0bf5 100644 --- a/test/llvm_autogenerated/globl.s +++ b/test/llvm_autogenerated/globl.s @@ -4,8 +4,8 @@ .type foo,@function foo: return + .endfunc .Lfunc_end0: .size foo, .Lfunc_end0-foo - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/i32-load-store-alignment.s b/test/llvm_autogenerated/i32-load-store-alignment.s new file mode 100644 index 000000000..9f02ec6bb --- /dev/null +++ b/test/llvm_autogenerated/i32-load-store-alignment.s @@ -0,0 +1,213 @@ + .text + .file "/s/llvm/llvm/test/CodeGen/WebAssembly/i32-load-store-alignment.ll" + .globl ldi32_a1 + .type ldi32_a1,@function +ldi32_a1: + .param i32 + .result i32 + i32.load $push0=, 0($0):p2align=0 + return $pop0 + .endfunc +.Lfunc_end0: + .size ldi32_a1, .Lfunc_end0-ldi32_a1 + + .globl ldi32_a2 + .type ldi32_a2,@function +ldi32_a2: + .param i32 + .result i32 + i32.load $push0=, 0($0):p2align=1 + return $pop0 + .endfunc +.Lfunc_end1: + .size ldi32_a2, .Lfunc_end1-ldi32_a2 + + .globl ldi32_a4 + .type ldi32_a4,@function +ldi32_a4: + .param i32 + .result i32 + i32.load $push0=, 0($0) + return $pop0 + .endfunc +.Lfunc_end2: + .size ldi32_a4, .Lfunc_end2-ldi32_a4 + + .globl ldi32 + .type ldi32,@function +ldi32: + .param i32 + .result i32 + i32.load $push0=, 0($0) + return $pop0 + .endfunc +.Lfunc_end3: + .size ldi32, .Lfunc_end3-ldi32 + + .globl ldi32_a8 + .type ldi32_a8,@function +ldi32_a8: + .param i32 + .result i32 + i32.load $push0=, 0($0):p2align=3 + return $pop0 + .endfunc +.Lfunc_end4: + .size ldi32_a8, .Lfunc_end4-ldi32_a8 + + .globl ldi8_a1 + .type ldi8_a1,@function +ldi8_a1: + .param i32 + .result i32 + i32.load8_u $push0=, 0($0) + return $pop0 + .endfunc +.Lfunc_end5: + .size ldi8_a1, .Lfunc_end5-ldi8_a1 + + .globl ldi8_a2 + .type ldi8_a2,@function +ldi8_a2: + .param i32 + .result i32 + i32.load8_u $push0=, 0($0):p2align=1 + return $pop0 + .endfunc +.Lfunc_end6: + .size ldi8_a2, .Lfunc_end6-ldi8_a2 + + .globl ldi16_a1 + .type ldi16_a1,@function +ldi16_a1: + .param i32 + .result i32 + i32.load16_u $push0=, 0($0):p2align=0 + return $pop0 + .endfunc +.Lfunc_end7: + .size ldi16_a1, .Lfunc_end7-ldi16_a1 + + .globl ldi16_a2 + .type ldi16_a2,@function +ldi16_a2: + .param i32 + .result i32 + i32.load16_u $push0=, 0($0) + return $pop0 + .endfunc +.Lfunc_end8: + .size ldi16_a2, .Lfunc_end8-ldi16_a2 + + .globl ldi16_a4 + .type ldi16_a4,@function +ldi16_a4: + .param i32 + .result i32 + i32.load16_u $push0=, 0($0):p2align=2 + return $pop0 + .endfunc +.Lfunc_end9: + .size ldi16_a4, .Lfunc_end9-ldi16_a4 + + .globl sti32_a1 + .type sti32_a1,@function +sti32_a1: + .param i32, i32 + i32.store $discard=, 0($0):p2align=0, $1 + return + .endfunc +.Lfunc_end10: + .size sti32_a1, .Lfunc_end10-sti32_a1 + + .globl sti32_a2 + .type sti32_a2,@function +sti32_a2: + .param i32, i32 + i32.store $discard=, 0($0):p2align=1, $1 + return + .endfunc +.Lfunc_end11: + .size sti32_a2, .Lfunc_end11-sti32_a2 + + .globl sti32_a4 + .type sti32_a4,@function +sti32_a4: + .param i32, i32 + i32.store $discard=, 0($0), $1 + return + .endfunc +.Lfunc_end12: + .size sti32_a4, .Lfunc_end12-sti32_a4 + + .globl sti32 + .type sti32,@function +sti32: + .param i32, i32 + i32.store $discard=, 0($0), $1 + return + .endfunc +.Lfunc_end13: + .size sti32, .Lfunc_end13-sti32 + + .globl sti32_a8 + .type sti32_a8,@function +sti32_a8: + .param i32, i32 + i32.store $discard=, 0($0):p2align=3, $1 + return + .endfunc +.Lfunc_end14: + .size sti32_a8, .Lfunc_end14-sti32_a8 + + .globl sti8_a1 + .type sti8_a1,@function +sti8_a1: + .param i32, i32 + i32.store8 $discard=, 0($0), $1 + return + .endfunc +.Lfunc_end15: + .size sti8_a1, .Lfunc_end15-sti8_a1 + + .globl sti8_a2 + .type sti8_a2,@function +sti8_a2: + .param i32, i32 + i32.store8 $discard=, 0($0):p2align=1, $1 + return + .endfunc +.Lfunc_end16: + .size sti8_a2, .Lfunc_end16-sti8_a2 + + .globl sti16_a1 + .type sti16_a1,@function +sti16_a1: + .param i32, i32 + i32.store16 $discard=, 0($0):p2align=0, $1 + return + .endfunc +.Lfunc_end17: + .size sti16_a1, .Lfunc_end17-sti16_a1 + + .globl sti16_a2 + .type sti16_a2,@function +sti16_a2: + .param i32, i32 + i32.store16 $discard=, 0($0), $1 + return + .endfunc +.Lfunc_end18: + .size sti16_a2, .Lfunc_end18-sti16_a2 + + .globl sti16_a4 + .type sti16_a4,@function +sti16_a4: + .param i32, i32 + i32.store16 $discard=, 0($0):p2align=2, $1 + return + .endfunc +.Lfunc_end19: + .size sti16_a4, .Lfunc_end19-sti16_a4 + + diff --git a/test/llvm_autogenerated/i32-load-store-alignment.wast b/test/llvm_autogenerated/i32-load-store-alignment.wast new file mode 100644 index 000000000..b0ed4951a --- /dev/null +++ b/test/llvm_autogenerated/i32-load-store-alignment.wast @@ -0,0 +1,244 @@ +(module + (memory 0 4294967295) + (export "ldi32_a1" $ldi32_a1) + (export "ldi32_a2" $ldi32_a2) + (export "ldi32_a4" $ldi32_a4) + (export "ldi32" $ldi32) + (export "ldi32_a8" $ldi32_a8) + (export "ldi8_a1" $ldi8_a1) + (export "ldi8_a2" $ldi8_a2) + (export "ldi16_a1" $ldi16_a1) + (export "ldi16_a2" $ldi16_a2) + (export "ldi16_a4" $ldi16_a4) + (export "sti32_a1" $sti32_a1) + (export "sti32_a2" $sti32_a2) + (export "sti32_a4" $sti32_a4) + (export "sti32" $sti32) + (export "sti32_a8" $sti32_a8) + (export "sti8_a1" $sti8_a1) + (export "sti8_a2" $sti8_a2) + (export "sti16_a1" $sti16_a1) + (export "sti16_a2" $sti16_a2) + (export "sti16_a4" $sti16_a4) + (func $ldi32_a1 (param $$0 i32) (result i32) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i32.load align=1 + (get_local $$0) + ) + ) + ) + ) + ) + (func $ldi32_a2 (param $$0 i32) (result i32) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i32.load align=2 + (get_local $$0) + ) + ) + ) + ) + ) + (func $ldi32_a4 (param $$0 i32) (result i32) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i32.load align=4 + (get_local $$0) + ) + ) + ) + ) + ) + (func $ldi32 (param $$0 i32) (result i32) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i32.load align=4 + (get_local $$0) + ) + ) + ) + ) + ) + (func $ldi32_a8 (param $$0 i32) (result i32) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i32.load align=8 + (get_local $$0) + ) + ) + ) + ) + ) + (func $ldi8_a1 (param $$0 i32) (result i32) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i32.load8_u align=1 + (get_local $$0) + ) + ) + ) + ) + ) + (func $ldi8_a2 (param $$0 i32) (result i32) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i32.load8_u align=2 + (get_local $$0) + ) + ) + ) + ) + ) + (func $ldi16_a1 (param $$0 i32) (result i32) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i32.load16_u align=1 + (get_local $$0) + ) + ) + ) + ) + ) + (func $ldi16_a2 (param $$0 i32) (result i32) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i32.load16_u align=2 + (get_local $$0) + ) + ) + ) + ) + ) + (func $ldi16_a4 (param $$0 i32) (result i32) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i32.load16_u align=4 + (get_local $$0) + ) + ) + ) + ) + ) + (func $sti32_a1 (param $$0 i32) (param $$1 i32) + (block $fake_return_waka123 + (block + (i32.store align=1 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $sti32_a2 (param $$0 i32) (param $$1 i32) + (block $fake_return_waka123 + (block + (i32.store align=2 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $sti32_a4 (param $$0 i32) (param $$1 i32) + (block $fake_return_waka123 + (block + (i32.store align=4 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $sti32 (param $$0 i32) (param $$1 i32) + (block $fake_return_waka123 + (block + (i32.store align=4 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $sti32_a8 (param $$0 i32) (param $$1 i32) + (block $fake_return_waka123 + (block + (i32.store align=8 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $sti8_a1 (param $$0 i32) (param $$1 i32) + (block $fake_return_waka123 + (block + (i32.store align=8 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $sti8_a2 (param $$0 i32) (param $$1 i32) + (block $fake_return_waka123 + (block + (i32.store align=2 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $sti16_a1 (param $$0 i32) (param $$1 i32) + (block $fake_return_waka123 + (block + (i32.store align=1 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $sti16_a2 (param $$0 i32) (param $$1 i32) + (block $fake_return_waka123 + (block + (i32.store align=16 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $sti16_a4 (param $$0 i32) (param $$1 i32) + (block $fake_return_waka123 + (block + (i32.store align=4 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) +) +;; METADATA: { "asmConsts": {},"staticBump": 4 } diff --git a/test/llvm_autogenerated/i32.s b/test/llvm_autogenerated/i32.s index c214cac8f..66128cd2e 100644 --- a/test/llvm_autogenerated/i32.s +++ b/test/llvm_autogenerated/i32.s @@ -7,6 +7,7 @@ add32: .result i32 i32.add $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end0: .size add32, .Lfunc_end0-add32 @@ -17,6 +18,7 @@ sub32: .result i32 i32.sub $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end1: .size sub32, .Lfunc_end1-sub32 @@ -27,6 +29,7 @@ mul32: .result i32 i32.mul $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end2: .size mul32, .Lfunc_end2-mul32 @@ -37,6 +40,7 @@ sdiv32: .result i32 i32.div_s $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end3: .size sdiv32, .Lfunc_end3-sdiv32 @@ -47,6 +51,7 @@ udiv32: .result i32 i32.div_u $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end4: .size udiv32, .Lfunc_end4-udiv32 @@ -57,6 +62,7 @@ srem32: .result i32 i32.rem_s $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end5: .size srem32, .Lfunc_end5-srem32 @@ -67,6 +73,7 @@ urem32: .result i32 i32.rem_u $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end6: .size urem32, .Lfunc_end6-urem32 @@ -77,6 +84,7 @@ and32: .result i32 i32.and $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end7: .size and32, .Lfunc_end7-and32 @@ -87,6 +95,7 @@ or32: .result i32 i32.or $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end8: .size or32, .Lfunc_end8-or32 @@ -97,6 +106,7 @@ xor32: .result i32 i32.xor $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end9: .size xor32, .Lfunc_end9-xor32 @@ -107,6 +117,7 @@ shl32: .result i32 i32.shl $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end10: .size shl32, .Lfunc_end10-shl32 @@ -117,6 +128,7 @@ shr32: .result i32 i32.shr_u $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end11: .size shr32, .Lfunc_end11-shr32 @@ -127,6 +139,7 @@ sar32: .result i32 i32.shr_s $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end12: .size sar32, .Lfunc_end12-sar32 @@ -137,6 +150,7 @@ clz32: .result i32 i32.clz $push0=, $0 return $pop0 + .endfunc .Lfunc_end13: .size clz32, .Lfunc_end13-clz32 @@ -147,6 +161,7 @@ clz32_zero_undef: .result i32 i32.clz $push0=, $0 return $pop0 + .endfunc .Lfunc_end14: .size clz32_zero_undef, .Lfunc_end14-clz32_zero_undef @@ -157,6 +172,7 @@ ctz32: .result i32 i32.ctz $push0=, $0 return $pop0 + .endfunc .Lfunc_end15: .size ctz32, .Lfunc_end15-ctz32 @@ -167,6 +183,7 @@ ctz32_zero_undef: .result i32 i32.ctz $push0=, $0 return $pop0 + .endfunc .Lfunc_end16: .size ctz32_zero_undef, .Lfunc_end16-ctz32_zero_undef @@ -177,8 +194,8 @@ popcnt32: .result i32 i32.popcnt $push0=, $0 return $pop0 + .endfunc .Lfunc_end17: .size popcnt32, .Lfunc_end17-popcnt32 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/i64-load-store-alignment.s b/test/llvm_autogenerated/i64-load-store-alignment.s new file mode 100644 index 000000000..a61aa2965 --- /dev/null +++ b/test/llvm_autogenerated/i64-load-store-alignment.s @@ -0,0 +1,318 @@ + .text + .file "/s/llvm/llvm/test/CodeGen/WebAssembly/i64-load-store-alignment.ll" + .globl ldi64_a1 + .type ldi64_a1,@function +ldi64_a1: + .param i32 + .result i64 + i64.load $push0=, 0($0):p2align=0 + return $pop0 + .endfunc +.Lfunc_end0: + .size ldi64_a1, .Lfunc_end0-ldi64_a1 + + .globl ldi64_a2 + .type ldi64_a2,@function +ldi64_a2: + .param i32 + .result i64 + i64.load $push0=, 0($0):p2align=1 + return $pop0 + .endfunc +.Lfunc_end1: + .size ldi64_a2, .Lfunc_end1-ldi64_a2 + + .globl ldi64_a4 + .type ldi64_a4,@function +ldi64_a4: + .param i32 + .result i64 + i64.load $push0=, 0($0):p2align=2 + return $pop0 + .endfunc +.Lfunc_end2: + .size ldi64_a4, .Lfunc_end2-ldi64_a4 + + .globl ldi64_a8 + .type ldi64_a8,@function +ldi64_a8: + .param i32 + .result i64 + i64.load $push0=, 0($0) + return $pop0 + .endfunc +.Lfunc_end3: + .size ldi64_a8, .Lfunc_end3-ldi64_a8 + + .globl ldi64 + .type ldi64,@function +ldi64: + .param i32 + .result i64 + i64.load $push0=, 0($0) + return $pop0 + .endfunc +.Lfunc_end4: + .size ldi64, .Lfunc_end4-ldi64 + + .globl ldi64_a16 + .type ldi64_a16,@function +ldi64_a16: + .param i32 + .result i64 + i64.load $push0=, 0($0):p2align=4 + return $pop0 + .endfunc +.Lfunc_end5: + .size ldi64_a16, .Lfunc_end5-ldi64_a16 + + .globl ldi8_a1 + .type ldi8_a1,@function +ldi8_a1: + .param i32 + .result i64 + i64.load8_u $push0=, 0($0) + return $pop0 + .endfunc +.Lfunc_end6: + .size ldi8_a1, .Lfunc_end6-ldi8_a1 + + .globl ldi8_a2 + .type ldi8_a2,@function +ldi8_a2: + .param i32 + .result i64 + i64.load8_u $push0=, 0($0):p2align=1 + return $pop0 + .endfunc +.Lfunc_end7: + .size ldi8_a2, .Lfunc_end7-ldi8_a2 + + .globl ldi16_a1 + .type ldi16_a1,@function +ldi16_a1: + .param i32 + .result i64 + i64.load16_u $push0=, 0($0):p2align=0 + return $pop0 + .endfunc +.Lfunc_end8: + .size ldi16_a1, .Lfunc_end8-ldi16_a1 + + .globl ldi16_a2 + .type ldi16_a2,@function +ldi16_a2: + .param i32 + .result i64 + i64.load16_u $push0=, 0($0) + return $pop0 + .endfunc +.Lfunc_end9: + .size ldi16_a2, .Lfunc_end9-ldi16_a2 + + .globl ldi16_a4 + .type ldi16_a4,@function +ldi16_a4: + .param i32 + .result i64 + i64.load16_u $push0=, 0($0):p2align=2 + return $pop0 + .endfunc +.Lfunc_end10: + .size ldi16_a4, .Lfunc_end10-ldi16_a4 + + .globl ldi32_a1 + .type ldi32_a1,@function +ldi32_a1: + .param i32 + .result i64 + i64.load32_u $push0=, 0($0):p2align=0 + return $pop0 + .endfunc +.Lfunc_end11: + .size ldi32_a1, .Lfunc_end11-ldi32_a1 + + .globl ldi32_a2 + .type ldi32_a2,@function +ldi32_a2: + .param i32 + .result i64 + i64.load32_u $push0=, 0($0):p2align=1 + return $pop0 + .endfunc +.Lfunc_end12: + .size ldi32_a2, .Lfunc_end12-ldi32_a2 + + .globl ldi32_a4 + .type ldi32_a4,@function +ldi32_a4: + .param i32 + .result i64 + i64.load32_u $push0=, 0($0) + return $pop0 + .endfunc +.Lfunc_end13: + .size ldi32_a4, .Lfunc_end13-ldi32_a4 + + .globl ldi32_a8 + .type ldi32_a8,@function +ldi32_a8: + .param i32 + .result i64 + i64.load32_u $push0=, 0($0):p2align=3 + return $pop0 + .endfunc +.Lfunc_end14: + .size ldi32_a8, .Lfunc_end14-ldi32_a8 + + .globl sti64_a1 + .type sti64_a1,@function +sti64_a1: + .param i32, i64 + i64.store $discard=, 0($0):p2align=0, $1 + return + .endfunc +.Lfunc_end15: + .size sti64_a1, .Lfunc_end15-sti64_a1 + + .globl sti64_a2 + .type sti64_a2,@function +sti64_a2: + .param i32, i64 + i64.store $discard=, 0($0):p2align=1, $1 + return + .endfunc +.Lfunc_end16: + .size sti64_a2, .Lfunc_end16-sti64_a2 + + .globl sti64_a4 + .type sti64_a4,@function +sti64_a4: + .param i32, i64 + i64.store $discard=, 0($0):p2align=2, $1 + return + .endfunc +.Lfunc_end17: + .size sti64_a4, .Lfunc_end17-sti64_a4 + + .globl sti64_a8 + .type sti64_a8,@function +sti64_a8: + .param i32, i64 + i64.store $discard=, 0($0), $1 + return + .endfunc +.Lfunc_end18: + .size sti64_a8, .Lfunc_end18-sti64_a8 + + .globl sti64 + .type sti64,@function +sti64: + .param i32, i64 + i64.store $discard=, 0($0), $1 + return + .endfunc +.Lfunc_end19: + .size sti64, .Lfunc_end19-sti64 + + .globl sti64_a16 + .type sti64_a16,@function +sti64_a16: + .param i32, i64 + i64.store $discard=, 0($0):p2align=4, $1 + return + .endfunc +.Lfunc_end20: + .size sti64_a16, .Lfunc_end20-sti64_a16 + + .globl sti8_a1 + .type sti8_a1,@function +sti8_a1: + .param i32, i64 + i64.store8 $discard=, 0($0), $1 + return + .endfunc +.Lfunc_end21: + .size sti8_a1, .Lfunc_end21-sti8_a1 + + .globl sti8_a2 + .type sti8_a2,@function +sti8_a2: + .param i32, i64 + i64.store8 $discard=, 0($0):p2align=1, $1 + return + .endfunc +.Lfunc_end22: + .size sti8_a2, .Lfunc_end22-sti8_a2 + + .globl sti16_a1 + .type sti16_a1,@function +sti16_a1: + .param i32, i64 + i64.store16 $discard=, 0($0):p2align=0, $1 + return + .endfunc +.Lfunc_end23: + .size sti16_a1, .Lfunc_end23-sti16_a1 + + .globl sti16_a2 + .type sti16_a2,@function +sti16_a2: + .param i32, i64 + i64.store16 $discard=, 0($0), $1 + return + .endfunc +.Lfunc_end24: + .size sti16_a2, .Lfunc_end24-sti16_a2 + + .globl sti16_a4 + .type sti16_a4,@function +sti16_a4: + .param i32, i64 + i64.store16 $discard=, 0($0):p2align=2, $1 + return + .endfunc +.Lfunc_end25: + .size sti16_a4, .Lfunc_end25-sti16_a4 + + .globl sti32_a1 + .type sti32_a1,@function +sti32_a1: + .param i32, i64 + i64.store32 $discard=, 0($0):p2align=0, $1 + return + .endfunc +.Lfunc_end26: + .size sti32_a1, .Lfunc_end26-sti32_a1 + + .globl sti32_a2 + .type sti32_a2,@function +sti32_a2: + .param i32, i64 + i64.store32 $discard=, 0($0):p2align=1, $1 + return + .endfunc +.Lfunc_end27: + .size sti32_a2, .Lfunc_end27-sti32_a2 + + .globl sti32_a4 + .type sti32_a4,@function +sti32_a4: + .param i32, i64 + i64.store32 $discard=, 0($0), $1 + return + .endfunc +.Lfunc_end28: + .size sti32_a4, .Lfunc_end28-sti32_a4 + + .globl sti32_a8 + .type sti32_a8,@function +sti32_a8: + .param i32, i64 + i64.store32 $discard=, 0($0):p2align=3, $1 + return + .endfunc +.Lfunc_end29: + .size sti32_a8, .Lfunc_end29-sti32_a8 + + diff --git a/test/llvm_autogenerated/i64-load-store-alignment.wast b/test/llvm_autogenerated/i64-load-store-alignment.wast new file mode 100644 index 000000000..7f6903240 --- /dev/null +++ b/test/llvm_autogenerated/i64-load-store-alignment.wast @@ -0,0 +1,364 @@ +(module + (memory 0 4294967295) + (export "ldi64_a1" $ldi64_a1) + (export "ldi64_a2" $ldi64_a2) + (export "ldi64_a4" $ldi64_a4) + (export "ldi64_a8" $ldi64_a8) + (export "ldi64" $ldi64) + (export "ldi64_a16" $ldi64_a16) + (export "ldi8_a1" $ldi8_a1) + (export "ldi8_a2" $ldi8_a2) + (export "ldi16_a1" $ldi16_a1) + (export "ldi16_a2" $ldi16_a2) + (export "ldi16_a4" $ldi16_a4) + (export "ldi32_a1" $ldi32_a1) + (export "ldi32_a2" $ldi32_a2) + (export "ldi32_a4" $ldi32_a4) + (export "ldi32_a8" $ldi32_a8) + (export "sti64_a1" $sti64_a1) + (export "sti64_a2" $sti64_a2) + (export "sti64_a4" $sti64_a4) + (export "sti64_a8" $sti64_a8) + (export "sti64" $sti64) + (export "sti64_a16" $sti64_a16) + (export "sti8_a1" $sti8_a1) + (export "sti8_a2" $sti8_a2) + (export "sti16_a1" $sti16_a1) + (export "sti16_a2" $sti16_a2) + (export "sti16_a4" $sti16_a4) + (export "sti32_a1" $sti32_a1) + (export "sti32_a2" $sti32_a2) + (export "sti32_a4" $sti32_a4) + (export "sti32_a8" $sti32_a8) + (func $ldi64_a1 (param $$0 i32) (result i64) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i64.load align=1 + (get_local $$0) + ) + ) + ) + ) + ) + (func $ldi64_a2 (param $$0 i32) (result i64) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i64.load align=2 + (get_local $$0) + ) + ) + ) + ) + ) + (func $ldi64_a4 (param $$0 i32) (result i64) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i64.load align=4 + (get_local $$0) + ) + ) + ) + ) + ) + (func $ldi64_a8 (param $$0 i32) (result i64) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i64.load align=8 + (get_local $$0) + ) + ) + ) + ) + ) + (func $ldi64 (param $$0 i32) (result i64) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i64.load align=8 + (get_local $$0) + ) + ) + ) + ) + ) + (func $ldi64_a16 (param $$0 i32) (result i64) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i64.load align=16 + (get_local $$0) + ) + ) + ) + ) + ) + (func $ldi8_a1 (param $$0 i32) (result i64) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i64.load8_u align=1 + (get_local $$0) + ) + ) + ) + ) + ) + (func $ldi8_a2 (param $$0 i32) (result i64) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i64.load8_u align=2 + (get_local $$0) + ) + ) + ) + ) + ) + (func $ldi16_a1 (param $$0 i32) (result i64) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i64.load16_u align=1 + (get_local $$0) + ) + ) + ) + ) + ) + (func $ldi16_a2 (param $$0 i32) (result i64) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i64.load16_u align=2 + (get_local $$0) + ) + ) + ) + ) + ) + (func $ldi16_a4 (param $$0 i32) (result i64) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i64.load16_u align=4 + (get_local $$0) + ) + ) + ) + ) + ) + (func $ldi32_a1 (param $$0 i32) (result i64) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i64.load align=1 + (get_local $$0) + ) + ) + ) + ) + ) + (func $ldi32_a2 (param $$0 i32) (result i64) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i64.load align=2 + (get_local $$0) + ) + ) + ) + ) + ) + (func $ldi32_a4 (param $$0 i32) (result i64) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i64.load align=4 + (get_local $$0) + ) + ) + ) + ) + ) + (func $ldi32_a8 (param $$0 i32) (result i64) + (block $fake_return_waka123 + (block + (br $fake_return_waka123 + (i64.load align=8 + (get_local $$0) + ) + ) + ) + ) + ) + (func $sti64_a1 (param $$0 i32) (param $$1 i64) + (block $fake_return_waka123 + (block + (i64.store align=1 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $sti64_a2 (param $$0 i32) (param $$1 i64) + (block $fake_return_waka123 + (block + (i64.store align=2 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $sti64_a4 (param $$0 i32) (param $$1 i64) + (block $fake_return_waka123 + (block + (i64.store align=4 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $sti64_a8 (param $$0 i32) (param $$1 i64) + (block $fake_return_waka123 + (block + (i64.store align=8 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $sti64 (param $$0 i32) (param $$1 i64) + (block $fake_return_waka123 + (block + (i64.store align=8 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $sti64_a16 (param $$0 i32) (param $$1 i64) + (block $fake_return_waka123 + (block + (i64.store align=16 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $sti8_a1 (param $$0 i32) (param $$1 i64) + (block $fake_return_waka123 + (block + (i64.store align=8 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $sti8_a2 (param $$0 i32) (param $$1 i64) + (block $fake_return_waka123 + (block + (i64.store align=2 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $sti16_a1 (param $$0 i32) (param $$1 i64) + (block $fake_return_waka123 + (block + (i64.store align=1 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $sti16_a2 (param $$0 i32) (param $$1 i64) + (block $fake_return_waka123 + (block + (i64.store align=16 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $sti16_a4 (param $$0 i32) (param $$1 i64) + (block $fake_return_waka123 + (block + (i64.store align=4 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $sti32_a1 (param $$0 i32) (param $$1 i64) + (block $fake_return_waka123 + (block + (i64.store align=1 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $sti32_a2 (param $$0 i32) (param $$1 i64) + (block $fake_return_waka123 + (block + (i64.store align=2 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $sti32_a4 (param $$0 i32) (param $$1 i64) + (block $fake_return_waka123 + (block + (i64.store align=32 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $sti32_a8 (param $$0 i32) (param $$1 i64) + (block $fake_return_waka123 + (block + (i64.store align=8 + (get_local $$0) + (get_local $$1) + ) + (br $fake_return_waka123) + ) + ) + ) +) +;; METADATA: { "asmConsts": {},"staticBump": 4 } diff --git a/test/llvm_autogenerated/i64.s b/test/llvm_autogenerated/i64.s index a6a96e6f7..a095f0245 100644 --- a/test/llvm_autogenerated/i64.s +++ b/test/llvm_autogenerated/i64.s @@ -7,6 +7,7 @@ add64: .result i64 i64.add $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end0: .size add64, .Lfunc_end0-add64 @@ -17,6 +18,7 @@ sub64: .result i64 i64.sub $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end1: .size sub64, .Lfunc_end1-sub64 @@ -27,6 +29,7 @@ mul64: .result i64 i64.mul $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end2: .size mul64, .Lfunc_end2-mul64 @@ -37,6 +40,7 @@ sdiv64: .result i64 i64.div_s $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end3: .size sdiv64, .Lfunc_end3-sdiv64 @@ -47,6 +51,7 @@ udiv64: .result i64 i64.div_u $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end4: .size udiv64, .Lfunc_end4-udiv64 @@ -57,6 +62,7 @@ srem64: .result i64 i64.rem_s $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end5: .size srem64, .Lfunc_end5-srem64 @@ -67,6 +73,7 @@ urem64: .result i64 i64.rem_u $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end6: .size urem64, .Lfunc_end6-urem64 @@ -77,6 +84,7 @@ and64: .result i64 i64.and $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end7: .size and64, .Lfunc_end7-and64 @@ -87,6 +95,7 @@ or64: .result i64 i64.or $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end8: .size or64, .Lfunc_end8-or64 @@ -97,6 +106,7 @@ xor64: .result i64 i64.xor $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end9: .size xor64, .Lfunc_end9-xor64 @@ -107,6 +117,7 @@ shl64: .result i64 i64.shl $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end10: .size shl64, .Lfunc_end10-shl64 @@ -117,6 +128,7 @@ shr64: .result i64 i64.shr_u $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end11: .size shr64, .Lfunc_end11-shr64 @@ -127,6 +139,7 @@ sar64: .result i64 i64.shr_s $push0=, $0, $1 return $pop0 + .endfunc .Lfunc_end12: .size sar64, .Lfunc_end12-sar64 @@ -137,6 +150,7 @@ clz64: .result i64 i64.clz $push0=, $0 return $pop0 + .endfunc .Lfunc_end13: .size clz64, .Lfunc_end13-clz64 @@ -147,6 +161,7 @@ clz64_zero_undef: .result i64 i64.clz $push0=, $0 return $pop0 + .endfunc .Lfunc_end14: .size clz64_zero_undef, .Lfunc_end14-clz64_zero_undef @@ -157,6 +172,7 @@ ctz64: .result i64 i64.ctz $push0=, $0 return $pop0 + .endfunc .Lfunc_end15: .size ctz64, .Lfunc_end15-ctz64 @@ -167,6 +183,7 @@ ctz64_zero_undef: .result i64 i64.ctz $push0=, $0 return $pop0 + .endfunc .Lfunc_end16: .size ctz64_zero_undef, .Lfunc_end16-ctz64_zero_undef @@ -177,8 +194,8 @@ popcnt64: .result i64 i64.popcnt $push0=, $0 return $pop0 + .endfunc .Lfunc_end17: .size popcnt64, .Lfunc_end17-popcnt64 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/ident.s b/test/llvm_autogenerated/ident.s index 46a08c7e7..782ec8812 100644 --- a/test/llvm_autogenerated/ident.s +++ b/test/llvm_autogenerated/ident.s @@ -2,4 +2,3 @@ .file "/s/llvm/llvm/test/CodeGen/WebAssembly/ident.ll" .ident "hello world" - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/immediates.s b/test/llvm_autogenerated/immediates.s index e1cf622a3..bba1d13e8 100644 --- a/test/llvm_autogenerated/immediates.s +++ b/test/llvm_autogenerated/immediates.s @@ -6,6 +6,7 @@ zero_i32: .result i32 i32.const $push0=, 0 return $pop0 + .endfunc .Lfunc_end0: .size zero_i32, .Lfunc_end0-zero_i32 @@ -15,6 +16,7 @@ one_i32: .result i32 i32.const $push0=, 1 return $pop0 + .endfunc .Lfunc_end1: .size one_i32, .Lfunc_end1-one_i32 @@ -24,6 +26,7 @@ max_i32: .result i32 i32.const $push0=, 2147483647 return $pop0 + .endfunc .Lfunc_end2: .size max_i32, .Lfunc_end2-max_i32 @@ -33,6 +36,7 @@ min_i32: .result i32 i32.const $push0=, -2147483648 return $pop0 + .endfunc .Lfunc_end3: .size min_i32, .Lfunc_end3-min_i32 @@ -42,6 +46,7 @@ zero_i64: .result i64 i64.const $push0=, 0 return $pop0 + .endfunc .Lfunc_end4: .size zero_i64, .Lfunc_end4-zero_i64 @@ -51,6 +56,7 @@ one_i64: .result i64 i64.const $push0=, 1 return $pop0 + .endfunc .Lfunc_end5: .size one_i64, .Lfunc_end5-one_i64 @@ -60,6 +66,7 @@ max_i64: .result i64 i64.const $push0=, 9223372036854775807 return $pop0 + .endfunc .Lfunc_end6: .size max_i64, .Lfunc_end6-max_i64 @@ -69,6 +76,7 @@ min_i64: .result i64 i64.const $push0=, -9223372036854775808 return $pop0 + .endfunc .Lfunc_end7: .size min_i64, .Lfunc_end7-min_i64 @@ -78,6 +86,7 @@ negzero_f32: .result f32 f32.const $push0=, -0x0p0 return $pop0 + .endfunc .Lfunc_end8: .size negzero_f32, .Lfunc_end8-negzero_f32 @@ -87,6 +96,7 @@ zero_f32: .result f32 f32.const $push0=, 0x0p0 return $pop0 + .endfunc .Lfunc_end9: .size zero_f32, .Lfunc_end9-zero_f32 @@ -96,6 +106,7 @@ one_f32: .result f32 f32.const $push0=, 0x1p0 return $pop0 + .endfunc .Lfunc_end10: .size one_f32, .Lfunc_end10-one_f32 @@ -105,6 +116,7 @@ two_f32: .result f32 f32.const $push0=, 0x1p1 return $pop0 + .endfunc .Lfunc_end11: .size two_f32, .Lfunc_end11-two_f32 @@ -114,6 +126,7 @@ nan_f32: .result f32 f32.const $push0=, nan return $pop0 + .endfunc .Lfunc_end12: .size nan_f32, .Lfunc_end12-nan_f32 @@ -123,6 +136,7 @@ negnan_f32: .result f32 f32.const $push0=, -nan return $pop0 + .endfunc .Lfunc_end13: .size negnan_f32, .Lfunc_end13-negnan_f32 @@ -132,6 +146,7 @@ inf_f32: .result f32 f32.const $push0=, infinity return $pop0 + .endfunc .Lfunc_end14: .size inf_f32, .Lfunc_end14-inf_f32 @@ -141,6 +156,7 @@ neginf_f32: .result f32 f32.const $push0=, -infinity return $pop0 + .endfunc .Lfunc_end15: .size neginf_f32, .Lfunc_end15-neginf_f32 @@ -150,6 +166,7 @@ negzero_f64: .result f64 f64.const $push0=, -0x0p0 return $pop0 + .endfunc .Lfunc_end16: .size negzero_f64, .Lfunc_end16-negzero_f64 @@ -159,6 +176,7 @@ zero_f64: .result f64 f64.const $push0=, 0x0p0 return $pop0 + .endfunc .Lfunc_end17: .size zero_f64, .Lfunc_end17-zero_f64 @@ -168,6 +186,7 @@ one_f64: .result f64 f64.const $push0=, 0x1p0 return $pop0 + .endfunc .Lfunc_end18: .size one_f64, .Lfunc_end18-one_f64 @@ -177,6 +196,7 @@ two_f64: .result f64 f64.const $push0=, 0x1p1 return $pop0 + .endfunc .Lfunc_end19: .size two_f64, .Lfunc_end19-two_f64 @@ -186,6 +206,7 @@ nan_f64: .result f64 f64.const $push0=, nan return $pop0 + .endfunc .Lfunc_end20: .size nan_f64, .Lfunc_end20-nan_f64 @@ -195,6 +216,7 @@ negnan_f64: .result f64 f64.const $push0=, -nan return $pop0 + .endfunc .Lfunc_end21: .size negnan_f64, .Lfunc_end21-negnan_f64 @@ -204,6 +226,7 @@ inf_f64: .result f64 f64.const $push0=, infinity return $pop0 + .endfunc .Lfunc_end22: .size inf_f64, .Lfunc_end22-inf_f64 @@ -213,8 +236,8 @@ neginf_f64: .result f64 f64.const $push0=, -infinity return $pop0 + .endfunc .Lfunc_end23: .size neginf_f64, .Lfunc_end23-neginf_f64 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/legalize.s b/test/llvm_autogenerated/legalize.s index 53bd6c1ed..79855c4df 100644 --- a/test/llvm_autogenerated/legalize.s +++ b/test/llvm_autogenerated/legalize.s @@ -9,6 +9,7 @@ shl_i3: i32.and $push1=, $1, $pop0 i32.shl $push2=, $0, $pop1 return $pop2 + .endfunc .Lfunc_end0: .size shl_i3, .Lfunc_end0-shl_i3 @@ -21,6 +22,7 @@ shl_i53: i64.and $push1=, $1, $pop0 i64.shl $push2=, $0, $pop1 return $pop2 + .endfunc .Lfunc_end1: .size shl_i53, .Lfunc_end1-shl_i53 @@ -29,11 +31,12 @@ shl_i53: sext_in_reg_i32_i64: .param i64 .result i64 - .local i64 - i64.const $1=, 32 - i64.shl $push0=, $0, $1 - i64.shr_s $push1=, $pop0, $1 - return $pop1 + i64.const $push0=, 32 + i64.shl $push1=, $0, $pop0 + i64.const $push3=, 32 + i64.shr_s $push2=, $pop1, $pop3 + return $pop2 + .endfunc .Lfunc_end2: .size sext_in_reg_i32_i64, .Lfunc_end2-sext_in_reg_i32_i64 @@ -45,6 +48,7 @@ fpext_f32_f64: f32.load $push0=, 0($0) f64.promote/f32 $push1=, $pop0 return $pop1 + .endfunc .Lfunc_end3: .size fpext_f32_f64, .Lfunc_end3-fpext_f32_f64 @@ -56,6 +60,7 @@ fpconv_f64_f32: f64.load $push0=, 0($0) f32.demote/f64 $push1=, $pop0 return $pop1 + .endfunc .Lfunc_end4: .size fpconv_f64_f32, .Lfunc_end4-fpconv_f64_f32 @@ -63,857 +68,1002 @@ fpconv_f64_f32: .type bigshift,@function bigshift: .param i32, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 - .local i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i64, i32, i32, i64, i64, i64, i32, i32, i64, i32, i32, i64, i64, i64, i32, i32, i64, i64, i64, i32, i32, i64, i32, i32, i64, i32, i32, i32, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i64, i64, i64, i32, i64, i64, i32, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 - i32.const $181=, __stack_pointer - i32.load $181=, 0($181) - i32.const $182=, 1024 - i32.sub $279=, $181, $182 - i32.const $182=, __stack_pointer - i32.store $279=, 0($182), $279 + .local i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i32, i32, i64, i64, i64, i32, i32, i64, i32, i32, i64, i64, i64, i32, i32, i64, i64, i64, i32, i32, i64, i32, i32, i64, i32, i32, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i64, i64, i64, i32, i64, i64, i32, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 + i32.const $179=, __stack_pointer + i32.load $179=, 0($179) + i32.const $180=, 1024 + i32.sub $310=, $179, $180 + i32.const $180=, __stack_pointer + i32.store $310=, 0($180), $310 i64.const $push0=, 896 i64.sub $push1=, $pop0, $17 - i32.const $184=, 480 - i32.add $184=, $279, $184 - call __lshrti3@FUNCTION, $184, $1, $2, $pop1 + i32.const $182=, 480 + i32.add $182=, $310, $182 + call __lshrti3@FUNCTION, $182, $1, $2, $pop1 i64.const $push2=, -768 i64.add $33=, $17, $pop2 - i32.const $185=, 464 - i32.add $185=, $279, $185 - call __ashlti3@FUNCTION, $185, $3, $4, $33 + i32.const $183=, 464 + i32.add $183=, $310, $183 + call __ashlti3@FUNCTION, $183, $3, $4, $33 i64.const $push3=, -896 i64.add $push4=, $17, $pop3 - i32.const $186=, 496 - i32.add $186=, $279, $186 - call __ashlti3@FUNCTION, $186, $1, $2, $pop4 + i32.const $184=, 496 + i32.add $184=, $310, $184 + call __ashlti3@FUNCTION, $184, $1, $2, $pop4 i64.const $push5=, 640 i64.sub $34=, $pop5, $17 - i32.const $187=, 352 - i32.add $187=, $279, $187 - call __lshrti3@FUNCTION, $187, $5, $6, $34 + i32.const $185=, 352 + i32.add $185=, $310, $185 + call __lshrti3@FUNCTION, $185, $5, $6, $34 i64.const $push6=, -512 i64.add $35=, $17, $pop6 - i32.const $188=, 336 - i32.add $188=, $279, $188 - call __ashlti3@FUNCTION, $188, $7, $8, $35 + i32.const $186=, 336 + i32.add $186=, $310, $186 + call __ashlti3@FUNCTION, $186, $7, $8, $35 i64.const $push7=, -640 i64.add $36=, $17, $pop7 - i32.const $189=, 368 - i32.add $189=, $279, $189 - call __ashlti3@FUNCTION, $189, $5, $6, $36 + i32.const $187=, 368 + i32.add $187=, $310, $187 + call __ashlti3@FUNCTION, $187, $5, $6, $36 i64.const $push8=, 768 i64.sub $37=, $pop8, $17 - i32.const $190=, 432 - i32.add $190=, $279, $190 - call __lshrti3@FUNCTION, $190, $3, $4, $37 - i64.const $38=, 384 - i64.sub $39=, $38, $17 - i32.const $191=, 864 - i32.add $191=, $279, $191 - call __lshrti3@FUNCTION, $191, $9, $10, $39 - i64.const $push9=, -256 - i64.add $40=, $17, $pop9 - i32.const $192=, 848 - i32.add $192=, $279, $192 - call __ashlti3@FUNCTION, $192, $11, $12, $40 - i64.const $push10=, -384 - i64.add $41=, $17, $pop10 - i32.const $193=, 880 - i32.add $193=, $279, $193 - call __ashlti3@FUNCTION, $193, $9, $10, $41 - i32.const $194=, 1008 - i32.add $194=, $279, $194 - call __ashlti3@FUNCTION, $194, $15, $16, $17 - i64.const $42=, 128 - i64.sub $51=, $42, $17 - i32.const $195=, 960 - i32.add $195=, $279, $195 - call __lshrti3@FUNCTION, $195, $13, $14, $51 - i64.const $push11=, -128 - i64.add $43=, $17, $pop11 - i32.const $196=, 976 - i32.add $196=, $279, $196 - call __ashlti3@FUNCTION, $196, $13, $14, $43 - i64.const $44=, 256 - i64.sub $45=, $44, $17 - i32.const $197=, 816 - i32.add $197=, $279, $197 - call __lshrti3@FUNCTION, $197, $11, $12, $45 - i64.const $46=, 512 - i64.sub $47=, $46, $17 - i32.const $198=, 240 - i32.add $198=, $279, $198 - call __lshrti3@FUNCTION, $198, $7, $8, $47 - i32.const $199=, 912 - i32.add $199=, $279, $199 - call __ashlti3@FUNCTION, $199, $11, $12, $17 - i32.const $200=, 928 - i32.add $200=, $279, $200 - call __lshrti3@FUNCTION, $200, $9, $10, $51 - i32.const $201=, 944 - i32.add $201=, $279, $201 - call __ashlti3@FUNCTION, $201, $9, $10, $43 - i64.sub $48=, $44, $47 - i32.const $202=, 80 - i32.add $202=, $279, $202 - call __ashlti3@FUNCTION, $202, $7, $8, $48 - i64.sub $push12=, $42, $48 - i32.const $203=, 96 - i32.add $203=, $279, $203 - call __lshrti3@FUNCTION, $203, $5, $6, $pop12 - i64.sub $49=, $42, $47 - i32.const $204=, 112 - i32.add $204=, $279, $204 - call __ashlti3@FUNCTION, $204, $5, $6, $49 - i32.const $205=, 48 - i32.add $205=, $279, $205 - call __lshrti3@FUNCTION, $205, $3, $4, $47 - i32.const $206=, 176 - i32.add $206=, $279, $206 - call __lshrti3@FUNCTION, $206, $7, $8, $45 - i32.const $207=, 288 - i32.add $207=, $279, $207 - call __lshrti3@FUNCTION, $207, $1, $2, $34 - i32.const $208=, 272 - i32.add $208=, $279, $208 - call __ashlti3@FUNCTION, $208, $3, $4, $35 - i32.const $209=, 304 - i32.add $209=, $279, $209 - call __ashlti3@FUNCTION, $209, $1, $2, $36 - i32.const $210=, 128 - i32.add $210=, $279, $210 - call __lshrti3@FUNCTION, $210, $5, $6, $45 - i64.sub $push13=, $38, $47 - i32.const $211=, 144 - i32.add $211=, $279, $211 - call __ashlti3@FUNCTION, $211, $7, $8, $pop13 - i32.const $212=, 160 - i32.add $212=, $279, $212 - call __lshrti3@FUNCTION, $212, $7, $8, $51 - i32.const $213=, 0 - i32.add $213=, $279, $213 - call __lshrti3@FUNCTION, $213, $1, $2, $47 - i32.const $214=, 16 - i32.add $214=, $279, $214 - call __ashlti3@FUNCTION, $214, $3, $4, $49 - i32.const $215=, 32 - i32.add $215=, $279, $215 - call __lshrti3@FUNCTION, $215, $3, $4, $39 - i32.const $216=, 64 - i32.add $216=, $279, $216 - call __ashlti3@FUNCTION, $216, $5, $6, $48 - i32.const $217=, 896 - i32.add $217=, $279, $217 - call __ashlti3@FUNCTION, $217, $9, $10, $17 - i32.const $218=, 256 - i32.add $218=, $279, $218 - call __ashlti3@FUNCTION, $218, $1, $2, $35 - i32.const $219=, 192 - i32.add $219=, $279, $219 - call __lshrti3@FUNCTION, $219, $5, $6, $47 - i32.const $220=, 208 - i32.add $220=, $279, $220 - call __ashlti3@FUNCTION, $220, $7, $8, $49 - i32.const $221=, 224 - i32.add $221=, $279, $221 - call __lshrti3@FUNCTION, $221, $7, $8, $39 - i32.const $222=, 768 - i32.add $222=, $279, $222 - call __lshrti3@FUNCTION, $222, $9, $10, $45 - i64.sub $49=, $42, $45 - i32.const $223=, 784 - i32.add $223=, $279, $223 - call __ashlti3@FUNCTION, $223, $11, $12, $49 - i32.const $224=, 800 - i32.add $224=, $279, $224 - call __lshrti3@FUNCTION, $224, $11, $12, $51 - i32.const $225=, 992 - i32.add $225=, $279, $225 - call __ashlti3@FUNCTION, $225, $13, $14, $17 - i32.const $226=, 832 - i32.add $226=, $279, $226 - call __ashlti3@FUNCTION, $226, $9, $10, $40 - i32.const $227=, 384 - i32.add $227=, $279, $227 - call __lshrti3@FUNCTION, $227, $1, $2, $37 - i64.sub $push14=, $42, $37 - i32.const $228=, 400 - i32.add $228=, $279, $228 - call __ashlti3@FUNCTION, $228, $3, $4, $pop14 - i32.const $229=, 416 - i32.add $229=, $279, $229 - call __lshrti3@FUNCTION, $229, $3, $4, $34 - i32.const $230=, 320 - i32.add $230=, $279, $230 - call __ashlti3@FUNCTION, $230, $5, $6, $35 - i32.const $231=, 448 - i32.add $231=, $279, $231 - call __ashlti3@FUNCTION, $231, $1, $2, $33 - i32.const $232=, 736 - i32.add $232=, $279, $232 - call __lshrti3@FUNCTION, $232, $1, $2, $39 - i32.const $233=, 720 - i32.add $233=, $279, $233 - call __ashlti3@FUNCTION, $233, $3, $4, $40 - i32.const $234=, 752 - i32.add $234=, $279, $234 - call __ashlti3@FUNCTION, $234, $1, $2, $41 - i32.const $235=, 592 - i32.add $235=, $279, $235 - call __ashlti3@FUNCTION, $235, $7, $8, $17 - i32.const $236=, 608 - i32.add $236=, $279, $236 - call __lshrti3@FUNCTION, $236, $5, $6, $51 - i32.const $237=, 624 - i32.add $237=, $279, $237 - call __ashlti3@FUNCTION, $237, $5, $6, $43 - i32.const $238=, 688 - i32.add $238=, $279, $238 - call __lshrti3@FUNCTION, $238, $3, $4, $45 - i32.const $239=, 640 - i32.add $239=, $279, $239 - call __lshrti3@FUNCTION, $239, $1, $2, $45 - i32.const $240=, 656 - i32.add $240=, $279, $240 - call __ashlti3@FUNCTION, $240, $3, $4, $49 - i32.const $241=, 672 - i32.add $241=, $279, $241 - call __lshrti3@FUNCTION, $241, $3, $4, $51 - i32.const $242=, 576 - i32.add $242=, $279, $242 - call __ashlti3@FUNCTION, $242, $5, $6, $17 - i32.const $243=, 704 - i32.add $243=, $279, $243 - call __ashlti3@FUNCTION, $243, $1, $2, $40 - i32.const $244=, 528 - i32.add $244=, $279, $244 - call __ashlti3@FUNCTION, $244, $3, $4, $17 - i32.const $245=, 544 - i32.add $245=, $279, $245 - call __lshrti3@FUNCTION, $245, $1, $2, $51 - i32.const $246=, 560 - i32.add $246=, $279, $246 - call __ashlti3@FUNCTION, $246, $1, $2, $43 - i32.const $247=, 512 - i32.add $247=, $279, $247 - call __ashlti3@FUNCTION, $247, $1, $2, $17 - i32.const $78=, 8 - i32.const $248=, 480 - i32.add $248=, $279, $248 - i32.add $push40=, $248, $78 - i64.load $39=, 0($pop40) - i32.const $249=, 464 - i32.add $249=, $279, $249 - i32.add $push41=, $249, $78 - i64.load $43=, 0($pop41) - i64.load $34=, 480($279) - i64.load $49=, 464($279) - i64.load $36=, 496($279) - i32.const $250=, 496 - i32.add $250=, $279, $250 - i32.add $push43=, $250, $78 - i64.load $38=, 0($pop43) - i64.lt_u $50=, $33, $42 - i64.const $51=, 0 - i64.eq $52=, $33, $51 - i32.const $251=, 352 - i32.add $251=, $279, $251 - i32.add $push46=, $251, $78 - i64.load $33=, 0($pop46) - i32.const $252=, 336 - i32.add $252=, $279, $252 - i32.add $push47=, $252, $78 - i64.load $41=, 0($pop47) - i32.const $253=, 368 - i32.add $253=, $279, $253 - i32.add $push49=, $253, $78 - i64.load $79=, 0($pop49) - i32.const $254=, 432 - i32.add $254=, $279, $254 - i32.add $push52=, $254, $78 - i64.load $80=, 0($pop52) - i32.const $255=, 864 - i32.add $255=, $279, $255 - i32.add $push57=, $255, $78 - i64.load $81=, 0($pop57) - i32.const $256=, 848 - i32.add $256=, $279, $256 - i32.add $push58=, $256, $78 - i64.load $82=, 0($pop58) - i32.const $257=, 880 - i32.add $257=, $279, $257 - i32.add $push60=, $257, $78 - i64.load $83=, 0($pop60) - i32.const $258=, 1008 - i32.add $258=, $279, $258 - i32.add $push63=, $258, $78 - i64.load $84=, 0($pop63) - i32.const $259=, 960 - i32.add $259=, $279, $259 - i32.add $push64=, $259, $78 - i64.load $85=, 0($pop64) - i32.const $260=, 976 - i32.add $260=, $279, $260 - i32.add $push66=, $260, $78 - i64.load $86=, 0($pop66) - i32.const $261=, 816 - i32.add $261=, $279, $261 - i32.add $push69=, $261, $78 - i64.load $87=, 0($pop69) - i32.const $262=, 240 - i32.add $262=, $279, $262 - i32.add $push74=, $262, $78 - i64.load $88=, 0($pop74) - i32.const $263=, 912 - i32.add $263=, $279, $263 - i32.add $push99=, $263, $78 - i64.load $100=, 0($pop99) - i32.const $264=, 928 - i32.add $264=, $279, $264 - i32.add $push100=, $264, $78 - i64.load $101=, 0($pop100) - i32.const $265=, 944 - i32.add $265=, $279, $265 - i32.add $push102=, $265, $78 - i64.load $102=, 0($pop102) - i32.const $266=, 80 - i32.add $266=, $279, $266 - i32.add $push106=, $266, $78 - i64.load $103=, 0($pop106) - i32.const $267=, 96 - i32.add $267=, $279, $267 - i32.add $push107=, $267, $78 - i64.load $104=, 0($pop107) - i64.load $90=, 80($279) - i64.load $91=, 96($279) - i64.load $92=, 112($279) - i32.const $268=, 112 - i32.add $268=, $279, $268 - i32.add $push109=, $268, $78 - i64.load $105=, 0($pop109) - i64.lt_u $89=, $48, $42 - i64.eq $93=, $48, $51 - i32.const $269=, 48 - i32.add $269=, $279, $269 - i32.add $push112=, $269, $78 - i64.load $48=, 0($pop112) - i32.const $270=, 176 - i32.add $270=, $279, $270 - i32.add $push115=, $270, $78 - i64.load $106=, 0($pop115) - i32.const $271=, 288 - i32.add $271=, $279, $271 - i32.add $push120=, $271, $78 - i64.load $107=, 0($pop120) - i32.const $272=, 272 - i32.add $272=, $279, $272 - i32.add $push121=, $272, $78 - i64.load $108=, 0($pop121) - i32.const $273=, 304 - i32.add $273=, $279, $273 - i32.add $push123=, $273, $78 - i64.load $109=, 0($pop123) - i32.const $274=, 128 - i32.add $274=, $279, $274 - i32.add $push146=, $274, $78 - i64.load $119=, 0($pop146) - i32.const $275=, 144 - i32.add $275=, $279, $275 - i32.add $push147=, $275, $78 - i64.load $120=, 0($pop147) - i32.const $276=, 160 - i32.add $276=, $279, $276 - i32.add $push149=, $276, $78 - i64.load $121=, 0($pop149) - i32.const $277=, 0 - i32.add $277=, $279, $277 - i32.add $push152=, $277, $78 - i64.load $122=, 0($pop152) - i32.const $278=, 16 - i32.add $278=, $279, $278 - i32.add $push153=, $278, $78 - i64.load $123=, 0($pop153) - i64.load $117=, 64($279) - i32.const $279=, 64 - i32.add $279=, $279, $279 - i32.add $push158=, $279, $78 - i64.load $125=, 0($pop158) - i32.const $280=, 32 - i32.add $280=, $279, $280 - i32.add $push155=, $280, $78 - i64.load $124=, 0($pop155) - i32.const $281=, 896 - i32.add $281=, $279, $281 - i32.add $push163=, $281, $78 - i64.load $126=, 0($pop163) - i32.const $282=, 256 - i32.add $282=, $279, $282 - i32.add $push167=, $282, $78 - i64.load $127=, 0($pop167) - i32.const $283=, 192 - i32.add $283=, $279, $283 - i32.add $push195=, $283, $78 - i64.load $142=, 0($pop195) - i32.const $284=, 208 - i32.add $284=, $279, $284 - i32.add $push196=, $284, $78 - i64.load $143=, 0($pop196) - i64.load $114=, 0($279) - i64.load $115=, 16($279) - i64.load $116=, 32($279) - i32.const $285=, 224 - i32.add $285=, $279, $285 - i32.add $push198=, $285, $78 - i64.load $144=, 0($pop198) - i64.lt_u $74=, $47, $42 - i64.load $128=, 192($279) - i64.load $129=, 208($279) - i64.load $130=, 224($279) - i64.load $75=, 240($279) - i64.load $94=, 48($279) - i64.load $95=, 176($279) - i64.lt_u $71=, $45, $42 - i64.lt_u $76=, $47, $44 - i64.load $110=, 128($279) - i64.load $111=, 144($279) - i64.load $112=, 160($279) - i64.eq $96=, $47, $51 - i64.eq $113=, $45, $51 - i32.const $286=, 768 - i32.add $286=, $279, $286 - i32.add $push202=, $286, $78 - i64.load $47=, 0($pop202) - i32.const $287=, 784 - i32.add $287=, $279, $287 - i32.add $push203=, $287, $78 - i64.load $45=, 0($pop203) - i32.const $288=, 800 - i32.add $288=, $279, $288 - i32.add $push205=, $288, $78 - i64.load $145=, 0($pop205) - i32.const $289=, 992 - i32.add $289=, $279, $289 - i32.add $push208=, $289, $78 - i64.load $146=, 0($pop208) - i32.const $290=, 832 - i32.add $290=, $279, $290 - i32.add $push211=, $290, $78 - i64.load $147=, 0($pop211) - i32.const $291=, 384 - i32.add $291=, $279, $291 - i32.add $push216=, $291, $78 - i64.load $148=, 0($pop216) - i32.const $292=, 400 - i32.add $292=, $279, $292 - i32.add $push217=, $292, $78 - i64.load $149=, 0($pop217) - i64.load $136=, 384($279) - i64.load $137=, 400($279) - i32.const $293=, 416 - i32.add $293=, $279, $293 - i32.add $push219=, $293, $78 - i64.load $150=, 0($pop219) - i64.load $138=, 416($279) - i64.load $59=, 432($279) - i64.lt_u $58=, $37, $42 - i64.eq $139=, $37, $51 - i32.const $294=, 320 - i32.add $294=, $279, $294 - i32.add $push222=, $294, $78 - i64.load $37=, 0($pop222) - i64.load $54=, 352($279) - i64.load $55=, 336($279) - i64.load $56=, 368($279) - i32.const $295=, 448 - i32.add $295=, $279, $295 - i32.add $push225=, $295, $78 - i64.load $151=, 0($pop225) - i64.lt_u $53=, $35, $42 - i64.load $97=, 288($279) - i64.load $98=, 272($279) - i64.load $99=, 304($279) - i64.load $118=, 256($279) - i64.load $140=, 320($279) - i64.load $141=, 448($279) - i64.eq $57=, $35, $51 - i64.lt_u $60=, $35, $44 - i32.const $296=, 736 - i32.add $296=, $279, $296 - i32.add $push242=, $296, $78 - i64.load $35=, 0($pop242) - i32.const $297=, 720 - i32.add $297=, $279, $297 - i32.add $push243=, $297, $78 - i64.load $159=, 0($pop243) - i64.load $62=, 864($279) - i64.load $63=, 848($279) - i64.load $64=, 880($279) - i32.const $298=, 752 - i32.add $298=, $279, $298 - i32.add $push245=, $298, $78 - i64.load $160=, 0($pop245) - i64.lt_u $61=, $40, $42 - i64.load $152=, 736($279) - i64.load $153=, 720($279) - i64.load $154=, 752($279) - i64.eq $65=, $40, $51 - i32.const $299=, 592 - i32.add $299=, $279, $299 - i32.add $push248=, $299, $78 - i64.load $40=, 0($pop248) - i32.const $300=, 608 - i32.add $300=, $279, $300 - i32.add $push249=, $300, $78 - i64.load $161=, 0($pop249) - i32.const $301=, 624 - i32.add $301=, $279, $301 - i32.add $push251=, $301, $78 - i64.load $162=, 0($pop251) - i32.const $302=, 688 - i32.add $302=, $279, $302 - i32.add $push254=, $302, $78 - i64.load $163=, 0($pop254) - i32.const $303=, 640 - i32.add $303=, $279, $303 - i32.add $push269=, $303, $78 - i64.load $169=, 0($pop269) - i32.const $304=, 656 - i32.add $304=, $279, $304 - i32.add $push270=, $304, $78 - i64.load $170=, 0($pop270) - i64.load $131=, 768($279) - i64.load $132=, 784($279) - i64.load $133=, 800($279) - i32.const $305=, 672 - i32.add $305=, $279, $305 - i32.add $push272=, $305, $78 - i64.load $171=, 0($pop272) - i64.load $164=, 640($279) - i64.load $165=, 656($279) - i64.load $166=, 672($279) - i64.load $72=, 816($279) - i64.load $158=, 688($279) - i32.const $306=, 576 - i32.add $306=, $279, $306 - i32.add $push275=, $306, $78 - i64.load $172=, 0($pop275) - i64.load $135=, 832($279) - i64.load $168=, 704($279) - i32.const $307=, 704 - i32.add $307=, $279, $307 - i32.add $push278=, $307, $78 - i64.load $173=, 0($pop278) - i32.const $308=, 528 - i32.add $308=, $279, $308 - i32.add $push288=, $308, $78 - i64.load $177=, 0($pop288) - i32.const $309=, 544 - i32.add $309=, $279, $309 - i32.add $push289=, $309, $78 - i64.load $178=, 0($pop289) - i32.const $310=, 560 - i32.add $310=, $279, $310 - i32.add $push291=, $310, $78 - i64.load $179=, 0($pop291) - i64.load $67=, 1008($279) - i64.load $68=, 960($279) - i64.load $69=, 976($279) - i64.lt_u $66=, $17, $42 - i64.eq $70=, $17, $51 - i64.lt_u $73=, $17, $44 - i64.lt_u $77=, $17, $46 - i64.load $17=, 912($279) - i64.load $42=, 928($279) - i64.load $44=, 944($279) - i64.load $46=, 896($279) - i64.load $134=, 992($279) - i64.load $155=, 592($279) - i64.load $156=, 608($279) - i64.load $157=, 624($279) - i64.load $167=, 576($279) - i64.load $174=, 528($279) - i64.load $175=, 544($279) - i64.load $176=, 560($279) - i64.load $180=, 512($279) - i32.add $push304=, $0, $78 - i32.const $311=, 512 - i32.add $311=, $279, $311 - i32.add $push299=, $311, $78 - i64.load $push300=, 0($pop299) - i64.select $push301=, $66, $pop300, $51 - i64.select $push302=, $73, $pop301, $51 - i64.select $push303=, $77, $pop302, $51 - i64.store $discard=, 0($pop304), $pop303 - i64.select $push296=, $66, $180, $51 - i64.select $push297=, $73, $pop296, $51 - i64.select $push298=, $77, $pop297, $51 - i64.store $discard=, 0($0), $pop298 - i32.const $push305=, 24 - i32.add $push306=, $0, $pop305 - i64.or $push290=, $177, $178 - i64.select $push292=, $66, $pop290, $179 - i64.select $push293=, $70, $4, $pop292 - i64.select $push294=, $73, $pop293, $51 - i64.select $push295=, $77, $pop294, $51 - i64.store $discard=, 0($pop306), $pop295 - i32.const $push307=, 16 - i32.add $push308=, $0, $pop307 - i64.or $push283=, $174, $175 - i64.select $push284=, $66, $pop283, $176 - i64.select $push285=, $70, $3, $pop284 - i64.select $push286=, $73, $pop285, $51 - i64.select $push287=, $77, $pop286, $51 - i64.store $discard=, 0($pop308), $pop287 - i32.const $push309=, 56 - i32.add $push310=, $0, $pop309 - i64.or $push250=, $40, $161 - i64.select $push252=, $66, $pop250, $162 - i64.select $push253=, $70, $8, $pop252 - i64.select $push255=, $71, $163, $51 - i64.or $push256=, $pop253, $pop255 - i64.or $push244=, $159, $35 - i64.select $push246=, $61, $pop244, $160 - i64.select $push247=, $65, $4, $pop246 - i64.select $push257=, $73, $pop256, $pop247 - i64.select $push258=, $70, $8, $pop257 - i64.select $push259=, $77, $pop258, $51 - i64.store $discard=, 0($pop310), $pop259 - i32.const $push311=, 48 + i32.const $188=, 432 + i32.add $188=, $310, $188 + call __lshrti3@FUNCTION, $188, $3, $4, $37 + i64.const $push9=, 384 + i64.sub $38=, $pop9, $17 + i32.const $189=, 864 + i32.add $189=, $310, $189 + call __lshrti3@FUNCTION, $189, $9, $10, $38 + i64.const $push10=, -256 + i64.add $39=, $17, $pop10 + i32.const $190=, 848 + i32.add $190=, $310, $190 + call __ashlti3@FUNCTION, $190, $11, $12, $39 + i64.const $push11=, -384 + i64.add $40=, $17, $pop11 + i32.const $191=, 880 + i32.add $191=, $310, $191 + call __ashlti3@FUNCTION, $191, $9, $10, $40 + i32.const $192=, 1008 + i32.add $192=, $310, $192 + call __ashlti3@FUNCTION, $192, $15, $16, $17 + i64.const $push12=, 128 + i64.sub $41=, $pop12, $17 + i32.const $193=, 960 + i32.add $193=, $310, $193 + call __lshrti3@FUNCTION, $193, $13, $14, $41 + i64.const $push13=, -128 + i64.add $42=, $17, $pop13 + i32.const $194=, 976 + i32.add $194=, $310, $194 + call __ashlti3@FUNCTION, $194, $13, $14, $42 + i64.const $push14=, 256 + i64.sub $43=, $pop14, $17 + i32.const $195=, 816 + i32.add $195=, $310, $195 + call __lshrti3@FUNCTION, $195, $11, $12, $43 + i64.const $push15=, 512 + i64.sub $44=, $pop15, $17 + i32.const $196=, 240 + i32.add $196=, $310, $196 + call __lshrti3@FUNCTION, $196, $7, $8, $44 + i32.const $197=, 912 + i32.add $197=, $310, $197 + call __ashlti3@FUNCTION, $197, $11, $12, $17 + i32.const $198=, 928 + i32.add $198=, $310, $198 + call __lshrti3@FUNCTION, $198, $9, $10, $41 + i32.const $199=, 944 + i32.add $199=, $310, $199 + call __ashlti3@FUNCTION, $199, $9, $10, $42 + i64.const $push483=, 256 + i64.sub $45=, $pop483, $44 + i32.const $200=, 80 + i32.add $200=, $310, $200 + call __ashlti3@FUNCTION, $200, $7, $8, $45 + i64.const $push482=, 128 + i64.sub $push16=, $pop482, $45 + i32.const $201=, 96 + i32.add $201=, $310, $201 + call __lshrti3@FUNCTION, $201, $5, $6, $pop16 + i64.const $push481=, 128 + i64.sub $46=, $pop481, $44 + i32.const $202=, 112 + i32.add $202=, $310, $202 + call __ashlti3@FUNCTION, $202, $5, $6, $46 + i32.const $203=, 48 + i32.add $203=, $310, $203 + call __lshrti3@FUNCTION, $203, $3, $4, $44 + i32.const $204=, 176 + i32.add $204=, $310, $204 + call __lshrti3@FUNCTION, $204, $7, $8, $43 + i32.const $205=, 288 + i32.add $205=, $310, $205 + call __lshrti3@FUNCTION, $205, $1, $2, $34 + i32.const $206=, 272 + i32.add $206=, $310, $206 + call __ashlti3@FUNCTION, $206, $3, $4, $35 + i32.const $207=, 304 + i32.add $207=, $310, $207 + call __ashlti3@FUNCTION, $207, $1, $2, $36 + i32.const $208=, 128 + i32.add $208=, $310, $208 + call __lshrti3@FUNCTION, $208, $5, $6, $43 + i64.const $push480=, 384 + i64.sub $push17=, $pop480, $44 + i32.const $209=, 144 + i32.add $209=, $310, $209 + call __ashlti3@FUNCTION, $209, $7, $8, $pop17 + i32.const $210=, 160 + i32.add $210=, $310, $210 + call __lshrti3@FUNCTION, $210, $7, $8, $41 + i32.const $211=, 0 + i32.add $211=, $310, $211 + call __lshrti3@FUNCTION, $211, $1, $2, $44 + i32.const $212=, 16 + i32.add $212=, $310, $212 + call __ashlti3@FUNCTION, $212, $3, $4, $46 + i32.const $213=, 32 + i32.add $213=, $310, $213 + call __lshrti3@FUNCTION, $213, $3, $4, $38 + i32.const $214=, 64 + i32.add $214=, $310, $214 + call __ashlti3@FUNCTION, $214, $5, $6, $45 + i32.const $215=, 896 + i32.add $215=, $310, $215 + call __ashlti3@FUNCTION, $215, $9, $10, $17 + i32.const $216=, 256 + i32.add $216=, $310, $216 + call __ashlti3@FUNCTION, $216, $1, $2, $35 + i32.const $217=, 192 + i32.add $217=, $310, $217 + call __lshrti3@FUNCTION, $217, $5, $6, $44 + i32.const $218=, 208 + i32.add $218=, $310, $218 + call __ashlti3@FUNCTION, $218, $7, $8, $46 + i32.const $219=, 224 + i32.add $219=, $310, $219 + call __lshrti3@FUNCTION, $219, $7, $8, $38 + i32.const $220=, 768 + i32.add $220=, $310, $220 + call __lshrti3@FUNCTION, $220, $9, $10, $43 + i64.const $push479=, 128 + i64.sub $46=, $pop479, $43 + i32.const $221=, 784 + i32.add $221=, $310, $221 + call __ashlti3@FUNCTION, $221, $11, $12, $46 + i32.const $222=, 800 + i32.add $222=, $310, $222 + call __lshrti3@FUNCTION, $222, $11, $12, $41 + i32.const $223=, 992 + i32.add $223=, $310, $223 + call __ashlti3@FUNCTION, $223, $13, $14, $17 + i32.const $224=, 832 + i32.add $224=, $310, $224 + call __ashlti3@FUNCTION, $224, $9, $10, $39 + i32.const $225=, 384 + i32.add $225=, $310, $225 + call __lshrti3@FUNCTION, $225, $1, $2, $37 + i64.const $push478=, 128 + i64.sub $push18=, $pop478, $37 + i32.const $226=, 400 + i32.add $226=, $310, $226 + call __ashlti3@FUNCTION, $226, $3, $4, $pop18 + i32.const $227=, 416 + i32.add $227=, $310, $227 + call __lshrti3@FUNCTION, $227, $3, $4, $34 + i32.const $228=, 320 + i32.add $228=, $310, $228 + call __ashlti3@FUNCTION, $228, $5, $6, $35 + i32.const $229=, 448 + i32.add $229=, $310, $229 + call __ashlti3@FUNCTION, $229, $1, $2, $33 + i32.const $230=, 736 + i32.add $230=, $310, $230 + call __lshrti3@FUNCTION, $230, $1, $2, $38 + i32.const $231=, 720 + i32.add $231=, $310, $231 + call __ashlti3@FUNCTION, $231, $3, $4, $39 + i32.const $232=, 752 + i32.add $232=, $310, $232 + call __ashlti3@FUNCTION, $232, $1, $2, $40 + i32.const $233=, 592 + i32.add $233=, $310, $233 + call __ashlti3@FUNCTION, $233, $7, $8, $17 + i32.const $234=, 608 + i32.add $234=, $310, $234 + call __lshrti3@FUNCTION, $234, $5, $6, $41 + i32.const $235=, 624 + i32.add $235=, $310, $235 + call __ashlti3@FUNCTION, $235, $5, $6, $42 + i32.const $236=, 688 + i32.add $236=, $310, $236 + call __lshrti3@FUNCTION, $236, $3, $4, $43 + i32.const $237=, 640 + i32.add $237=, $310, $237 + call __lshrti3@FUNCTION, $237, $1, $2, $43 + i32.const $238=, 656 + i32.add $238=, $310, $238 + call __ashlti3@FUNCTION, $238, $3, $4, $46 + i32.const $239=, 672 + i32.add $239=, $310, $239 + call __lshrti3@FUNCTION, $239, $3, $4, $41 + i32.const $240=, 576 + i32.add $240=, $310, $240 + call __ashlti3@FUNCTION, $240, $5, $6, $17 + i32.const $241=, 704 + i32.add $241=, $310, $241 + call __ashlti3@FUNCTION, $241, $1, $2, $39 + i32.const $242=, 528 + i32.add $242=, $310, $242 + call __ashlti3@FUNCTION, $242, $3, $4, $17 + i32.const $243=, 544 + i32.add $243=, $310, $243 + call __lshrti3@FUNCTION, $243, $1, $2, $41 + i32.const $244=, 560 + i32.add $244=, $310, $244 + call __ashlti3@FUNCTION, $244, $1, $2, $42 + i32.const $245=, 512 + i32.add $245=, $310, $245 + call __ashlti3@FUNCTION, $245, $1, $2, $17 + i32.const $push45=, 8 + i32.const $246=, 480 + i32.add $246=, $310, $246 + i32.add $push46=, $246, $pop45 + i64.load $41=, 0($pop46) + i32.const $push477=, 8 + i32.const $247=, 464 + i32.add $247=, $310, $247 + i32.add $push47=, $247, $pop477 + i64.load $38=, 0($pop47) + i64.load $42=, 480($310) + i64.load $34=, 464($310) + i64.load $46=, 496($310) + i32.const $push476=, 8 + i32.const $248=, 496 + i32.add $248=, $310, $248 + i32.add $push49=, $248, $pop476 + i64.load $36=, 0($pop49) + i64.const $push475=, 128 + i64.lt_u $47=, $33, $pop475 + i64.const $push21=, 0 + i64.eq $48=, $33, $pop21 + i32.const $push474=, 8 + i32.const $249=, 352 + i32.add $249=, $310, $249 + i32.add $push52=, $249, $pop474 + i64.load $33=, 0($pop52) + i32.const $push473=, 8 + i32.const $250=, 336 + i32.add $250=, $310, $250 + i32.add $push53=, $250, $pop473 + i64.load $40=, 0($pop53) + i32.const $push472=, 8 + i32.const $251=, 368 + i32.add $251=, $310, $251 + i32.add $push55=, $251, $pop472 + i64.load $74=, 0($pop55) + i32.const $push471=, 8 + i32.const $252=, 432 + i32.add $252=, $310, $252 + i32.add $push58=, $252, $pop471 + i64.load $75=, 0($pop58) + i32.const $push470=, 8 + i32.const $253=, 864 + i32.add $253=, $310, $253 + i32.add $push63=, $253, $pop470 + i64.load $76=, 0($pop63) + i32.const $push469=, 8 + i32.const $254=, 848 + i32.add $254=, $310, $254 + i32.add $push64=, $254, $pop469 + i64.load $77=, 0($pop64) + i32.const $push468=, 8 + i32.const $255=, 880 + i32.add $255=, $310, $255 + i32.add $push66=, $255, $pop468 + i64.load $78=, 0($pop66) + i32.const $push467=, 8 + i32.const $256=, 1008 + i32.add $256=, $310, $256 + i32.add $push69=, $256, $pop467 + i64.load $79=, 0($pop69) + i32.const $push466=, 8 + i32.const $257=, 960 + i32.add $257=, $310, $257 + i32.add $push70=, $257, $pop466 + i64.load $80=, 0($pop70) + i32.const $push465=, 8 + i32.const $258=, 976 + i32.add $258=, $310, $258 + i32.add $push72=, $258, $pop465 + i64.load $81=, 0($pop72) + i32.const $push464=, 8 + i32.const $259=, 816 + i32.add $259=, $310, $259 + i32.add $push75=, $259, $pop464 + i64.load $82=, 0($pop75) + i32.const $push463=, 8 + i32.const $260=, 240 + i32.add $260=, $310, $260 + i32.add $push80=, $260, $pop463 + i64.load $83=, 0($pop80) + i32.const $push462=, 8 + i32.const $261=, 912 + i32.add $261=, $310, $261 + i32.add $push105=, $261, $pop462 + i64.load $97=, 0($pop105) + i32.const $push461=, 8 + i32.const $262=, 928 + i32.add $262=, $310, $262 + i32.add $push106=, $262, $pop461 + i64.load $98=, 0($pop106) + i32.const $push460=, 8 + i32.const $263=, 944 + i32.add $263=, $310, $263 + i32.add $push108=, $263, $pop460 + i64.load $99=, 0($pop108) + i32.const $push459=, 8 + i32.const $264=, 80 + i32.add $264=, $310, $264 + i32.add $push112=, $264, $pop459 + i64.load $100=, 0($pop112) + i32.const $push458=, 8 + i32.const $265=, 96 + i32.add $265=, $310, $265 + i32.add $push113=, $265, $pop458 + i64.load $101=, 0($pop113) + i64.load $87=, 80($310) + i64.load $88=, 96($310) + i64.load $89=, 112($310) + i32.const $push457=, 8 + i32.const $266=, 112 + i32.add $266=, $310, $266 + i32.add $push115=, $266, $pop457 + i64.load $102=, 0($pop115) + i64.const $push456=, 128 + i64.lt_u $86=, $45, $pop456 + i64.const $push455=, 0 + i64.eq $90=, $45, $pop455 + i32.const $push454=, 8 + i32.const $267=, 48 + i32.add $267=, $310, $267 + i32.add $push118=, $267, $pop454 + i64.load $45=, 0($pop118) + i32.const $push453=, 8 + i32.const $268=, 176 + i32.add $268=, $310, $268 + i32.add $push121=, $268, $pop453 + i64.load $103=, 0($pop121) + i32.const $push452=, 8 + i32.const $269=, 288 + i32.add $269=, $310, $269 + i32.add $push126=, $269, $pop452 + i64.load $104=, 0($pop126) + i32.const $push451=, 8 + i32.const $270=, 272 + i32.add $270=, $310, $270 + i32.add $push127=, $270, $pop451 + i64.load $105=, 0($pop127) + i32.const $push450=, 8 + i32.const $271=, 304 + i32.add $271=, $310, $271 + i32.add $push129=, $271, $pop450 + i64.load $106=, 0($pop129) + i32.const $push449=, 8 + i32.const $272=, 128 + i32.add $272=, $310, $272 + i32.add $push152=, $272, $pop449 + i64.load $117=, 0($pop152) + i32.const $push448=, 8 + i32.const $273=, 144 + i32.add $273=, $310, $273 + i32.add $push153=, $273, $pop448 + i64.load $118=, 0($pop153) + i32.const $push447=, 8 + i32.const $274=, 160 + i32.add $274=, $310, $274 + i32.add $push155=, $274, $pop447 + i64.load $119=, 0($pop155) + i32.const $push446=, 8 + i32.const $275=, 0 + i32.add $275=, $310, $275 + i32.add $push158=, $275, $pop446 + i64.load $120=, 0($pop158) + i32.const $push445=, 8 + i32.const $276=, 16 + i32.add $276=, $310, $276 + i32.add $push159=, $276, $pop445 + i64.load $121=, 0($pop159) + i64.load $114=, 64($310) + i32.const $push444=, 8 + i32.const $277=, 64 + i32.add $277=, $310, $277 + i32.add $push164=, $277, $pop444 + i64.load $123=, 0($pop164) + i32.const $push443=, 8 + i32.const $278=, 32 + i32.add $278=, $310, $278 + i32.add $push161=, $278, $pop443 + i64.load $122=, 0($pop161) + i32.const $push442=, 8 + i32.const $279=, 896 + i32.add $279=, $310, $279 + i32.add $push169=, $279, $pop442 + i64.load $124=, 0($pop169) + i32.const $push441=, 8 + i32.const $280=, 256 + i32.add $280=, $310, $280 + i32.add $push173=, $280, $pop441 + i64.load $125=, 0($pop173) + i32.const $push440=, 8 + i32.const $281=, 192 + i32.add $281=, $310, $281 + i32.add $push201=, $281, $pop440 + i64.load $140=, 0($pop201) + i32.const $push439=, 8 + i32.const $282=, 208 + i32.add $282=, $310, $282 + i32.add $push202=, $282, $pop439 + i64.load $141=, 0($pop202) + i64.load $111=, 0($310) + i64.load $112=, 16($310) + i64.load $113=, 32($310) + i32.const $push438=, 8 + i32.const $283=, 224 + i32.add $283=, $310, $283 + i32.add $push204=, $283, $pop438 + i64.load $142=, 0($pop204) + i64.const $push437=, 128 + i64.lt_u $70=, $44, $pop437 + i64.load $126=, 192($310) + i64.load $127=, 208($310) + i64.load $128=, 224($310) + i64.load $71=, 240($310) + i64.load $91=, 48($310) + i64.load $92=, 176($310) + i64.const $push436=, 128 + i64.lt_u $67=, $43, $pop436 + i64.const $push435=, 256 + i64.lt_u $72=, $44, $pop435 + i64.load $107=, 128($310) + i64.load $108=, 144($310) + i64.load $109=, 160($310) + i64.const $push434=, 0 + i64.eq $93=, $44, $pop434 + i64.const $push433=, 0 + i64.eq $110=, $43, $pop433 + i32.const $push432=, 8 + i32.const $284=, 768 + i32.add $284=, $310, $284 + i32.add $push208=, $284, $pop432 + i64.load $44=, 0($pop208) + i32.const $push431=, 8 + i32.const $285=, 784 + i32.add $285=, $310, $285 + i32.add $push209=, $285, $pop431 + i64.load $43=, 0($pop209) + i32.const $push430=, 8 + i32.const $286=, 800 + i32.add $286=, $310, $286 + i32.add $push211=, $286, $pop430 + i64.load $143=, 0($pop211) + i32.const $push429=, 8 + i32.const $287=, 992 + i32.add $287=, $310, $287 + i32.add $push214=, $287, $pop429 + i64.load $144=, 0($pop214) + i32.const $push428=, 8 + i32.const $288=, 832 + i32.add $288=, $310, $288 + i32.add $push217=, $288, $pop428 + i64.load $145=, 0($pop217) + i32.const $push427=, 8 + i32.const $289=, 384 + i32.add $289=, $310, $289 + i32.add $push222=, $289, $pop427 + i64.load $146=, 0($pop222) + i32.const $push426=, 8 + i32.const $290=, 400 + i32.add $290=, $310, $290 + i32.add $push223=, $290, $pop426 + i64.load $147=, 0($pop223) + i64.load $134=, 384($310) + i64.load $135=, 400($310) + i32.const $push425=, 8 + i32.const $291=, 416 + i32.add $291=, $310, $291 + i32.add $push225=, $291, $pop425 + i64.load $148=, 0($pop225) + i64.load $136=, 416($310) + i64.load $55=, 432($310) + i64.const $push424=, 128 + i64.lt_u $54=, $37, $pop424 + i64.const $push423=, 0 + i64.eq $137=, $37, $pop423 + i32.const $push422=, 8 + i32.const $292=, 320 + i32.add $292=, $310, $292 + i32.add $push228=, $292, $pop422 + i64.load $37=, 0($pop228) + i64.load $50=, 352($310) + i64.load $51=, 336($310) + i64.load $52=, 368($310) + i32.const $push421=, 8 + i32.const $293=, 448 + i32.add $293=, $310, $293 + i32.add $push231=, $293, $pop421 + i64.load $149=, 0($pop231) + i64.const $push420=, 128 + i64.lt_u $49=, $35, $pop420 + i64.load $94=, 288($310) + i64.load $95=, 272($310) + i64.load $96=, 304($310) + i64.load $116=, 256($310) + i64.load $138=, 320($310) + i64.load $139=, 448($310) + i64.const $push419=, 0 + i64.eq $53=, $35, $pop419 + i64.const $push418=, 256 + i64.lt_u $56=, $35, $pop418 + i32.const $push417=, 8 + i32.const $294=, 736 + i32.add $294=, $310, $294 + i32.add $push248=, $294, $pop417 + i64.load $35=, 0($pop248) + i32.const $push416=, 8 + i32.const $295=, 720 + i32.add $295=, $310, $295 + i32.add $push249=, $295, $pop416 + i64.load $157=, 0($pop249) + i64.load $58=, 864($310) + i64.load $59=, 848($310) + i64.load $60=, 880($310) + i32.const $push415=, 8 + i32.const $296=, 752 + i32.add $296=, $310, $296 + i32.add $push251=, $296, $pop415 + i64.load $158=, 0($pop251) + i64.const $push414=, 128 + i64.lt_u $57=, $39, $pop414 + i64.load $150=, 736($310) + i64.load $151=, 720($310) + i64.load $152=, 752($310) + i64.const $push413=, 0 + i64.eq $61=, $39, $pop413 + i32.const $push412=, 8 + i32.const $297=, 592 + i32.add $297=, $310, $297 + i32.add $push254=, $297, $pop412 + i64.load $39=, 0($pop254) + i32.const $push411=, 8 + i32.const $298=, 608 + i32.add $298=, $310, $298 + i32.add $push255=, $298, $pop411 + i64.load $159=, 0($pop255) + i32.const $push410=, 8 + i32.const $299=, 624 + i32.add $299=, $310, $299 + i32.add $push257=, $299, $pop410 + i64.load $160=, 0($pop257) + i32.const $push409=, 8 + i32.const $300=, 688 + i32.add $300=, $310, $300 + i32.add $push260=, $300, $pop409 + i64.load $161=, 0($pop260) + i32.const $push408=, 8 + i32.const $301=, 640 + i32.add $301=, $310, $301 + i32.add $push275=, $301, $pop408 + i64.load $167=, 0($pop275) + i32.const $push407=, 8 + i32.const $302=, 656 + i32.add $302=, $310, $302 + i32.add $push276=, $302, $pop407 + i64.load $168=, 0($pop276) + i64.load $129=, 768($310) + i64.load $130=, 784($310) + i64.load $131=, 800($310) + i32.const $push406=, 8 + i32.const $303=, 672 + i32.add $303=, $310, $303 + i32.add $push278=, $303, $pop406 + i64.load $169=, 0($pop278) + i64.load $162=, 640($310) + i64.load $163=, 656($310) + i64.load $164=, 672($310) + i64.load $68=, 816($310) + i64.load $156=, 688($310) + i32.const $push405=, 8 + i32.const $304=, 576 + i32.add $304=, $310, $304 + i32.add $push281=, $304, $pop405 + i64.load $170=, 0($pop281) + i64.load $133=, 832($310) + i64.load $166=, 704($310) + i32.const $push404=, 8 + i32.const $305=, 704 + i32.add $305=, $310, $305 + i32.add $push284=, $305, $pop404 + i64.load $171=, 0($pop284) + i32.const $push403=, 8 + i32.const $306=, 528 + i32.add $306=, $310, $306 + i32.add $push294=, $306, $pop403 + i64.load $175=, 0($pop294) + i32.const $push402=, 8 + i32.const $307=, 544 + i32.add $307=, $310, $307 + i32.add $push295=, $307, $pop402 + i64.load $176=, 0($pop295) + i32.const $push401=, 8 + i32.const $308=, 560 + i32.add $308=, $310, $308 + i32.add $push297=, $308, $pop401 + i64.load $177=, 0($pop297) + i64.load $63=, 1008($310) + i64.load $64=, 960($310) + i64.load $65=, 976($310) + i64.const $push400=, 128 + i64.lt_u $62=, $17, $pop400 + i64.const $push399=, 0 + i64.eq $66=, $17, $pop399 + i64.const $push398=, 256 + i64.lt_u $69=, $17, $pop398 + i64.const $push397=, 512 + i64.lt_u $73=, $17, $pop397 + i64.load $17=, 912($310) + i64.load $84=, 928($310) + i64.load $85=, 944($310) + i64.load $115=, 896($310) + i64.load $132=, 992($310) + i64.load $153=, 592($310) + i64.load $154=, 608($310) + i64.load $155=, 624($310) + i64.load $165=, 576($310) + i64.load $172=, 528($310) + i64.load $173=, 544($310) + i64.load $174=, 560($310) + i64.load $178=, 512($310) + i32.const $push396=, 8 + i32.add $push310=, $0, $pop396 + i32.const $push395=, 8 + i32.const $309=, 512 + i32.add $309=, $310, $309 + i32.add $push305=, $309, $pop395 + i64.load $push306=, 0($pop305) + i64.const $push394=, 0 + i64.select $push307=, $62, $pop306, $pop394 + i64.const $push393=, 0 + i64.select $push308=, $69, $pop307, $pop393 + i64.const $push392=, 0 + i64.select $push309=, $73, $pop308, $pop392 + i64.store $discard=, 0($pop310), $pop309 + i64.const $push391=, 0 + i64.select $push302=, $62, $178, $pop391 + i64.const $push390=, 0 + i64.select $push303=, $69, $pop302, $pop390 + i64.const $push389=, 0 + i64.select $push304=, $73, $pop303, $pop389 + i64.store $discard=, 0($0), $pop304 + i32.const $push311=, 24 i32.add $push312=, $0, $pop311 - i64.or $push234=, $155, $156 - i64.select $push235=, $66, $pop234, $157 - i64.select $push236=, $70, $7, $pop235 - i64.select $push237=, $71, $158, $51 - i64.or $push238=, $pop236, $pop237 - i64.or $push231=, $153, $152 - i64.select $push232=, $61, $pop231, $154 - i64.select $push233=, $65, $3, $pop232 - i64.select $push239=, $73, $pop238, $pop233 - i64.select $push240=, $70, $7, $pop239 - i64.select $push241=, $77, $pop240, $51 - i64.store $discard=, 0($pop312), $pop241 - i32.const $push313=, 40 + i64.or $push296=, $175, $176 + i64.select $push298=, $62, $pop296, $177 + i64.select $push299=, $66, $4, $pop298 + i64.const $push388=, 0 + i64.select $push300=, $69, $pop299, $pop388 + i64.const $push387=, 0 + i64.select $push301=, $73, $pop300, $pop387 + i64.store $discard=, 0($pop312), $pop301 + i32.const $push313=, 16 i32.add $push314=, $0, $pop313 - i64.select $push276=, $66, $172, $51 - i64.or $push271=, $169, $170 - i64.select $push273=, $71, $pop271, $171 - i64.select $push274=, $113, $2, $pop273 - i64.or $push277=, $pop276, $pop274 - i64.select $push279=, $61, $173, $51 - i64.select $push280=, $73, $pop277, $pop279 - i64.select $push281=, $70, $6, $pop280 - i64.select $push282=, $77, $pop281, $51 - i64.store $discard=, 0($pop314), $pop282 - i32.const $push315=, 32 + i64.or $push289=, $172, $173 + i64.select $push290=, $62, $pop289, $174 + i64.select $push291=, $66, $3, $pop290 + i64.const $push386=, 0 + i64.select $push292=, $69, $pop291, $pop386 + i64.const $push385=, 0 + i64.select $push293=, $73, $pop292, $pop385 + i64.store $discard=, 0($pop314), $pop293 + i32.const $push315=, 56 i32.add $push316=, $0, $pop315 - i64.select $push263=, $66, $167, $51 - i64.or $push260=, $164, $165 - i64.select $push261=, $71, $pop260, $166 - i64.select $push262=, $113, $1, $pop261 - i64.or $push264=, $pop263, $pop262 - i64.select $push265=, $61, $168, $51 - i64.select $push266=, $73, $pop264, $pop265 - i64.select $push267=, $70, $5, $pop266 - i64.select $push268=, $77, $pop267, $51 - i64.store $discard=, 0($pop316), $pop268 - i32.const $push317=, 120 + i64.or $push256=, $39, $159 + i64.select $push258=, $62, $pop256, $160 + i64.select $push259=, $66, $8, $pop258 + i64.const $push384=, 0 + i64.select $push261=, $67, $161, $pop384 + i64.or $push262=, $pop259, $pop261 + i64.or $push250=, $157, $35 + i64.select $push252=, $57, $pop250, $158 + i64.select $push253=, $61, $4, $pop252 + i64.select $push263=, $69, $pop262, $pop253 + i64.select $push264=, $66, $8, $pop263 + i64.const $push383=, 0 + i64.select $push265=, $73, $pop264, $pop383 + i64.store $discard=, 0($pop316), $pop265 + i32.const $push317=, 48 i32.add $push318=, $0, $pop317 - i64.or $push65=, $84, $85 - i64.select $push67=, $66, $pop65, $86 - i64.select $push68=, $70, $16, $pop67 - i64.select $push70=, $71, $87, $51 - i64.or $push71=, $pop68, $pop70 - i64.or $push59=, $82, $81 - i64.select $push61=, $61, $pop59, $83 - i64.select $push62=, $65, $12, $pop61 - i64.select $push72=, $73, $pop71, $pop62 - i64.select $push73=, $70, $16, $pop72 - i64.select $push75=, $74, $88, $51 - i64.select $push76=, $76, $pop75, $51 - i64.or $push77=, $pop73, $pop76 - i64.or $push48=, $41, $33 - i64.select $push50=, $53, $pop48, $79 - i64.select $push51=, $57, $8, $pop50 - i64.select $push53=, $58, $80, $51 - i64.or $push54=, $pop51, $pop53 - i64.or $push42=, $43, $39 - i64.select $push44=, $50, $pop42, $38 - i64.select $push45=, $52, $4, $pop44 - i64.select $push55=, $60, $pop54, $pop45 - i64.select $push56=, $57, $8, $pop55 - i64.select $push78=, $77, $pop77, $pop56 - i64.select $push79=, $70, $16, $pop78 - i64.store $discard=, 0($pop318), $pop79 - i32.const $push319=, 112 + i64.or $push240=, $153, $154 + i64.select $push241=, $62, $pop240, $155 + i64.select $push242=, $66, $7, $pop241 + i64.const $push382=, 0 + i64.select $push243=, $67, $156, $pop382 + i64.or $push244=, $pop242, $pop243 + i64.or $push237=, $151, $150 + i64.select $push238=, $57, $pop237, $152 + i64.select $push239=, $61, $3, $pop238 + i64.select $push245=, $69, $pop244, $pop239 + i64.select $push246=, $66, $7, $pop245 + i64.const $push381=, 0 + i64.select $push247=, $73, $pop246, $pop381 + i64.store $discard=, 0($pop318), $pop247 + i32.const $push319=, 40 i32.add $push320=, $0, $pop319 - i64.or $push28=, $67, $68 - i64.select $push29=, $66, $pop28, $69 - i64.select $push30=, $70, $15, $pop29 - i64.select $push31=, $71, $72, $51 - i64.or $push32=, $pop30, $pop31 - i64.or $push25=, $63, $62 - i64.select $push26=, $61, $pop25, $64 - i64.select $push27=, $65, $11, $pop26 - i64.select $push33=, $73, $pop32, $pop27 - i64.select $push34=, $70, $15, $pop33 - i64.select $push35=, $74, $75, $51 - i64.select $push36=, $76, $pop35, $51 - i64.or $push37=, $pop34, $pop36 - i64.or $push18=, $55, $54 - i64.select $push19=, $53, $pop18, $56 - i64.select $push20=, $57, $7, $pop19 - i64.select $push21=, $58, $59, $51 - i64.or $push22=, $pop20, $pop21 - i64.or $push15=, $49, $34 - i64.select $push16=, $50, $pop15, $36 - i64.select $push17=, $52, $3, $pop16 - i64.select $push23=, $60, $pop22, $pop17 - i64.select $push24=, $57, $7, $pop23 - i64.select $push38=, $77, $pop37, $pop24 - i64.select $push39=, $70, $15, $pop38 - i64.store $discard=, 0($pop320), $pop39 - i32.const $push321=, 104 + i64.const $push380=, 0 + i64.select $push282=, $62, $170, $pop380 + i64.or $push277=, $167, $168 + i64.select $push279=, $67, $pop277, $169 + i64.select $push280=, $110, $2, $pop279 + i64.or $push283=, $pop282, $pop280 + i64.const $push379=, 0 + i64.select $push285=, $57, $171, $pop379 + i64.select $push286=, $69, $pop283, $pop285 + i64.select $push287=, $66, $6, $pop286 + i64.const $push378=, 0 + i64.select $push288=, $73, $pop287, $pop378 + i64.store $discard=, 0($pop320), $pop288 + i32.const $push321=, 32 i32.add $push322=, $0, $pop321 - i64.select $push209=, $66, $146, $51 - i64.or $push204=, $47, $45 - i64.select $push206=, $71, $pop204, $145 - i64.select $push207=, $113, $10, $pop206 - i64.or $push210=, $pop209, $pop207 - i64.select $push212=, $61, $147, $51 - i64.select $push213=, $73, $pop210, $pop212 - i64.select $push214=, $70, $14, $pop213 - i64.or $push197=, $142, $143 - i64.select $push199=, $74, $pop197, $144 - i64.select $push200=, $96, $6, $pop199 - i64.select $push201=, $76, $pop200, $51 - i64.or $push215=, $pop214, $pop201 - i64.select $push223=, $53, $37, $51 - i64.or $push218=, $148, $149 - i64.select $push220=, $58, $pop218, $150 - i64.select $push221=, $139, $2, $pop220 - i64.or $push224=, $pop223, $pop221 - i64.select $push226=, $50, $151, $51 - i64.select $push227=, $60, $pop224, $pop226 - i64.select $push228=, $57, $6, $pop227 - i64.select $push229=, $77, $pop215, $pop228 - i64.select $push230=, $70, $14, $pop229 - i64.store $discard=, 0($pop322), $pop230 - i32.const $push323=, 96 + i64.const $push377=, 0 + i64.select $push269=, $62, $165, $pop377 + i64.or $push266=, $162, $163 + i64.select $push267=, $67, $pop266, $164 + i64.select $push268=, $110, $1, $pop267 + i64.or $push270=, $pop269, $pop268 + i64.const $push376=, 0 + i64.select $push271=, $57, $166, $pop376 + i64.select $push272=, $69, $pop270, $pop271 + i64.select $push273=, $66, $5, $pop272 + i64.const $push375=, 0 + i64.select $push274=, $73, $pop273, $pop375 + i64.store $discard=, 0($pop322), $pop274 + i32.const $push323=, 120 i32.add $push324=, $0, $pop323 - i64.select $push179=, $66, $134, $51 - i64.or $push176=, $131, $132 - i64.select $push177=, $71, $pop176, $133 - i64.select $push178=, $113, $9, $pop177 - i64.or $push180=, $pop179, $pop178 - i64.select $push181=, $61, $135, $51 - i64.select $push182=, $73, $pop180, $pop181 - i64.select $push183=, $70, $13, $pop182 - i64.or $push172=, $128, $129 - i64.select $push173=, $74, $pop172, $130 - i64.select $push174=, $96, $5, $pop173 - i64.select $push175=, $76, $pop174, $51 - i64.or $push184=, $pop183, $pop175 - i64.select $push188=, $53, $140, $51 - i64.or $push185=, $136, $137 - i64.select $push186=, $58, $pop185, $138 - i64.select $push187=, $139, $1, $pop186 - i64.or $push189=, $pop188, $pop187 - i64.select $push190=, $50, $141, $51 - i64.select $push191=, $60, $pop189, $pop190 - i64.select $push192=, $57, $5, $pop191 - i64.select $push193=, $77, $pop184, $pop192 - i64.select $push194=, $70, $13, $pop193 - i64.store $discard=, 0($pop324), $pop194 - i32.const $push325=, 72 + i64.or $push71=, $79, $80 + i64.select $push73=, $62, $pop71, $81 + i64.select $push74=, $66, $16, $pop73 + i64.const $push374=, 0 + i64.select $push76=, $67, $82, $pop374 + i64.or $push77=, $pop74, $pop76 + i64.or $push65=, $77, $76 + i64.select $push67=, $57, $pop65, $78 + i64.select $push68=, $61, $12, $pop67 + i64.select $push78=, $69, $pop77, $pop68 + i64.select $push79=, $66, $16, $pop78 + i64.const $push373=, 0 + i64.select $push81=, $70, $83, $pop373 + i64.const $push372=, 0 + i64.select $push82=, $72, $pop81, $pop372 + i64.or $push83=, $pop79, $pop82 + i64.or $push54=, $40, $33 + i64.select $push56=, $49, $pop54, $74 + i64.select $push57=, $53, $8, $pop56 + i64.const $push371=, 0 + i64.select $push59=, $54, $75, $pop371 + i64.or $push60=, $pop57, $pop59 + i64.or $push48=, $38, $41 + i64.select $push50=, $47, $pop48, $36 + i64.select $push51=, $48, $4, $pop50 + i64.select $push61=, $56, $pop60, $pop51 + i64.select $push62=, $53, $8, $pop61 + i64.select $push84=, $73, $pop83, $pop62 + i64.select $push85=, $66, $16, $pop84 + i64.store $discard=, 0($pop324), $pop85 + i32.const $push325=, 112 i32.add $push326=, $0, $pop325 - i64.select $push164=, $66, $126, $51 - i64.select $push165=, $73, $pop164, $51 - i64.or $push154=, $122, $123 - i64.select $push156=, $74, $pop154, $124 - i64.select $push157=, $96, $2, $pop156 - i64.select $push159=, $89, $125, $51 - i64.or $push160=, $pop157, $pop159 - i64.or $push148=, $119, $120 - i64.select $push150=, $71, $pop148, $121 - i64.select $push151=, $113, $6, $pop150 - i64.select $push161=, $76, $pop160, $pop151 - i64.select $push162=, $96, $2, $pop161 - i64.or $push166=, $pop165, $pop162 - i64.select $push168=, $53, $127, $51 - i64.select $push169=, $60, $pop168, $51 - i64.select $push170=, $77, $pop166, $pop169 - i64.select $push171=, $70, $10, $pop170 - i64.store $discard=, 0($pop326), $pop171 - i32.const $push327=, 64 + i64.or $push33=, $63, $64 + i64.select $push34=, $62, $pop33, $65 + i64.select $push35=, $66, $15, $pop34 + i64.const $push370=, 0 + i64.select $push36=, $67, $68, $pop370 + i64.or $push37=, $pop35, $pop36 + i64.or $push30=, $59, $58 + i64.select $push31=, $57, $pop30, $60 + i64.select $push32=, $61, $11, $pop31 + i64.select $push38=, $69, $pop37, $pop32 + i64.select $push39=, $66, $15, $pop38 + i64.const $push369=, 0 + i64.select $push40=, $70, $71, $pop369 + i64.const $push368=, 0 + i64.select $push41=, $72, $pop40, $pop368 + i64.or $push42=, $pop39, $pop41 + i64.or $push23=, $51, $50 + i64.select $push24=, $49, $pop23, $52 + i64.select $push25=, $53, $7, $pop24 + i64.const $push367=, 0 + i64.select $push26=, $54, $55, $pop367 + i64.or $push27=, $pop25, $pop26 + i64.or $push19=, $34, $42 + i64.select $push20=, $47, $pop19, $46 + i64.select $push22=, $48, $3, $pop20 + i64.select $push28=, $56, $pop27, $pop22 + i64.select $push29=, $53, $7, $pop28 + i64.select $push43=, $73, $pop42, $pop29 + i64.select $push44=, $66, $15, $pop43 + i64.store $discard=, 0($pop326), $pop44 + i32.const $push327=, 104 i32.add $push328=, $0, $pop327 - i64.select $push139=, $66, $46, $51 - i64.select $push140=, $73, $pop139, $51 - i64.or $push132=, $114, $115 - i64.select $push133=, $74, $pop132, $116 - i64.select $push134=, $96, $1, $pop133 - i64.select $push135=, $89, $117, $51 - i64.or $push136=, $pop134, $pop135 - i64.or $push129=, $110, $111 - i64.select $push130=, $71, $pop129, $112 - i64.select $push131=, $113, $5, $pop130 - i64.select $push137=, $76, $pop136, $pop131 - i64.select $push138=, $96, $1, $pop137 - i64.or $push141=, $pop140, $pop138 - i64.select $push142=, $53, $118, $51 - i64.select $push143=, $60, $pop142, $51 - i64.select $push144=, $77, $pop141, $pop143 - i64.select $push145=, $70, $9, $pop144 - i64.store $discard=, 0($pop328), $pop145 - i32.const $push329=, 88 + i64.const $push366=, 0 + i64.select $push215=, $62, $144, $pop366 + i64.or $push210=, $44, $43 + i64.select $push212=, $67, $pop210, $143 + i64.select $push213=, $110, $10, $pop212 + i64.or $push216=, $pop215, $pop213 + i64.const $push365=, 0 + i64.select $push218=, $57, $145, $pop365 + i64.select $push219=, $69, $pop216, $pop218 + i64.select $push220=, $66, $14, $pop219 + i64.or $push203=, $140, $141 + i64.select $push205=, $70, $pop203, $142 + i64.select $push206=, $93, $6, $pop205 + i64.const $push364=, 0 + i64.select $push207=, $72, $pop206, $pop364 + i64.or $push221=, $pop220, $pop207 + i64.const $push363=, 0 + i64.select $push229=, $49, $37, $pop363 + i64.or $push224=, $146, $147 + i64.select $push226=, $54, $pop224, $148 + i64.select $push227=, $137, $2, $pop226 + i64.or $push230=, $pop229, $pop227 + i64.const $push362=, 0 + i64.select $push232=, $47, $149, $pop362 + i64.select $push233=, $56, $pop230, $pop232 + i64.select $push234=, $53, $6, $pop233 + i64.select $push235=, $73, $pop221, $pop234 + i64.select $push236=, $66, $14, $pop235 + i64.store $discard=, 0($pop328), $pop236 + i32.const $push329=, 96 i32.add $push330=, $0, $pop329 - i64.or $push101=, $100, $101 - i64.select $push103=, $66, $pop101, $102 - i64.select $push104=, $70, $12, $pop103 - i64.select $push105=, $73, $pop104, $51 - i64.select $push113=, $74, $48, $51 - i64.or $push108=, $103, $104 - i64.select $push110=, $89, $pop108, $105 - i64.select $push111=, $93, $8, $pop110 - i64.or $push114=, $pop113, $pop111 - i64.select $push116=, $71, $106, $51 - i64.select $push117=, $76, $pop114, $pop116 - i64.select $push118=, $96, $4, $pop117 - i64.or $push119=, $pop105, $pop118 - i64.or $push122=, $108, $107 - i64.select $push124=, $53, $pop122, $109 - i64.select $push125=, $57, $4, $pop124 - i64.select $push126=, $60, $pop125, $51 - i64.select $push127=, $77, $pop119, $pop126 - i64.select $push128=, $70, $12, $pop127 - i64.store $discard=, 0($pop330), $pop128 - i32.const $push331=, 80 + i64.const $push361=, 0 + i64.select $push185=, $62, $132, $pop361 + i64.or $push182=, $129, $130 + i64.select $push183=, $67, $pop182, $131 + i64.select $push184=, $110, $9, $pop183 + i64.or $push186=, $pop185, $pop184 + i64.const $push360=, 0 + i64.select $push187=, $57, $133, $pop360 + i64.select $push188=, $69, $pop186, $pop187 + i64.select $push189=, $66, $13, $pop188 + i64.or $push178=, $126, $127 + i64.select $push179=, $70, $pop178, $128 + i64.select $push180=, $93, $5, $pop179 + i64.const $push359=, 0 + i64.select $push181=, $72, $pop180, $pop359 + i64.or $push190=, $pop189, $pop181 + i64.const $push358=, 0 + i64.select $push194=, $49, $138, $pop358 + i64.or $push191=, $134, $135 + i64.select $push192=, $54, $pop191, $136 + i64.select $push193=, $137, $1, $pop192 + i64.or $push195=, $pop194, $pop193 + i64.const $push357=, 0 + i64.select $push196=, $47, $139, $pop357 + i64.select $push197=, $56, $pop195, $pop196 + i64.select $push198=, $53, $5, $pop197 + i64.select $push199=, $73, $pop190, $pop198 + i64.select $push200=, $66, $13, $pop199 + i64.store $discard=, 0($pop330), $pop200 + i32.const $push331=, 72 i32.add $push332=, $0, $pop331 - i64.or $push80=, $17, $42 - i64.select $push81=, $66, $pop80, $44 - i64.select $push82=, $70, $11, $pop81 - i64.select $push83=, $73, $pop82, $51 - i64.select $push87=, $74, $94, $51 - i64.or $push84=, $90, $91 - i64.select $push85=, $89, $pop84, $92 - i64.select $push86=, $93, $7, $pop85 - i64.or $push88=, $pop87, $pop86 - i64.select $push89=, $71, $95, $51 - i64.select $push90=, $76, $pop88, $pop89 - i64.select $push91=, $96, $3, $pop90 - i64.or $push92=, $pop83, $pop91 - i64.or $push93=, $98, $97 - i64.select $push94=, $53, $pop93, $99 - i64.select $push95=, $57, $3, $pop94 - i64.select $push96=, $60, $pop95, $51 - i64.select $push97=, $77, $pop92, $pop96 - i64.select $push98=, $70, $11, $pop97 - i64.store $discard=, 0($pop332), $pop98 - i32.const $183=, 1024 - i32.add $279=, $279, $183 - i32.const $183=, __stack_pointer - i32.store $279=, 0($183), $279 + i64.const $push356=, 0 + i64.select $push170=, $62, $124, $pop356 + i64.const $push355=, 0 + i64.select $push171=, $69, $pop170, $pop355 + i64.or $push160=, $120, $121 + i64.select $push162=, $70, $pop160, $122 + i64.select $push163=, $93, $2, $pop162 + i64.const $push354=, 0 + i64.select $push165=, $86, $123, $pop354 + i64.or $push166=, $pop163, $pop165 + i64.or $push154=, $117, $118 + i64.select $push156=, $67, $pop154, $119 + i64.select $push157=, $110, $6, $pop156 + i64.select $push167=, $72, $pop166, $pop157 + i64.select $push168=, $93, $2, $pop167 + i64.or $push172=, $pop171, $pop168 + i64.const $push353=, 0 + i64.select $push174=, $49, $125, $pop353 + i64.const $push352=, 0 + i64.select $push175=, $56, $pop174, $pop352 + i64.select $push176=, $73, $pop172, $pop175 + i64.select $push177=, $66, $10, $pop176 + i64.store $discard=, 0($pop332), $pop177 + i32.const $push333=, 64 + i32.add $push334=, $0, $pop333 + i64.const $push351=, 0 + i64.select $push145=, $62, $115, $pop351 + i64.const $push350=, 0 + i64.select $push146=, $69, $pop145, $pop350 + i64.or $push138=, $111, $112 + i64.select $push139=, $70, $pop138, $113 + i64.select $push140=, $93, $1, $pop139 + i64.const $push349=, 0 + i64.select $push141=, $86, $114, $pop349 + i64.or $push142=, $pop140, $pop141 + i64.or $push135=, $107, $108 + i64.select $push136=, $67, $pop135, $109 + i64.select $push137=, $110, $5, $pop136 + i64.select $push143=, $72, $pop142, $pop137 + i64.select $push144=, $93, $1, $pop143 + i64.or $push147=, $pop146, $pop144 + i64.const $push348=, 0 + i64.select $push148=, $49, $116, $pop348 + i64.const $push347=, 0 + i64.select $push149=, $56, $pop148, $pop347 + i64.select $push150=, $73, $pop147, $pop149 + i64.select $push151=, $66, $9, $pop150 + i64.store $discard=, 0($pop334), $pop151 + i32.const $push335=, 88 + i32.add $push336=, $0, $pop335 + i64.or $push107=, $97, $98 + i64.select $push109=, $62, $pop107, $99 + i64.select $push110=, $66, $12, $pop109 + i64.const $push346=, 0 + i64.select $push111=, $69, $pop110, $pop346 + i64.const $push345=, 0 + i64.select $push119=, $70, $45, $pop345 + i64.or $push114=, $100, $101 + i64.select $push116=, $86, $pop114, $102 + i64.select $push117=, $90, $8, $pop116 + i64.or $push120=, $pop119, $pop117 + i64.const $push344=, 0 + i64.select $push122=, $67, $103, $pop344 + i64.select $push123=, $72, $pop120, $pop122 + i64.select $push124=, $93, $4, $pop123 + i64.or $push125=, $pop111, $pop124 + i64.or $push128=, $105, $104 + i64.select $push130=, $49, $pop128, $106 + i64.select $push131=, $53, $4, $pop130 + i64.const $push343=, 0 + i64.select $push132=, $56, $pop131, $pop343 + i64.select $push133=, $73, $pop125, $pop132 + i64.select $push134=, $66, $12, $pop133 + i64.store $discard=, 0($pop336), $pop134 + i32.const $push337=, 80 + i32.add $push338=, $0, $pop337 + i64.or $push86=, $17, $84 + i64.select $push87=, $62, $pop86, $85 + i64.select $push88=, $66, $11, $pop87 + i64.const $push342=, 0 + i64.select $push89=, $69, $pop88, $pop342 + i64.const $push341=, 0 + i64.select $push93=, $70, $91, $pop341 + i64.or $push90=, $87, $88 + i64.select $push91=, $86, $pop90, $89 + i64.select $push92=, $90, $7, $pop91 + i64.or $push94=, $pop93, $pop92 + i64.const $push340=, 0 + i64.select $push95=, $67, $92, $pop340 + i64.select $push96=, $72, $pop94, $pop95 + i64.select $push97=, $93, $3, $pop96 + i64.or $push98=, $pop89, $pop97 + i64.or $push99=, $95, $94 + i64.select $push100=, $49, $pop99, $96 + i64.select $push101=, $53, $3, $pop100 + i64.const $push339=, 0 + i64.select $push102=, $56, $pop101, $pop339 + i64.select $push103=, $73, $pop98, $pop102 + i64.select $push104=, $66, $11, $pop103 + i64.store $discard=, 0($pop338), $pop104 + i32.const $181=, 1024 + i32.add $310=, $310, $181 + i32.const $181=, __stack_pointer + i32.store $310=, 0($181), $310 return + .endfunc .Lfunc_end5: .size bigshift, .Lfunc_end5-bigshift - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/legalize.wast b/test/llvm_autogenerated/legalize.wast index 6a6c87461..6feec29d4 100644 --- a/test/llvm_autogenerated/legalize.wast +++ b/test/llvm_autogenerated/legalize.wast @@ -40,19 +40,15 @@ ) ) (func $sext_in_reg_i32_i64 (param $$0 i64) (result i64) - (local $$1 i64) (block $fake_return_waka123 (block - (set_local $$1 - (i64.const 32) - ) (br $fake_return_waka123 (i64.shr_s (i64.shl (get_local $$0) - (get_local $$1) + (i64.const 32) ) - (get_local $$1) + (i64.const 32) ) ) ) @@ -99,38 +95,38 @@ (local $$44 i64) (local $$45 i64) (local $$46 i64) - (local $$47 i64) - (local $$48 i64) - (local $$49 i64) - (local $$50 i32) + (local $$47 i32) + (local $$48 i32) + (local $$49 i32) + (local $$50 i64) (local $$51 i64) - (local $$52 i32) + (local $$52 i64) (local $$53 i32) - (local $$54 i64) + (local $$54 i32) (local $$55 i64) - (local $$56 i64) + (local $$56 i32) (local $$57 i32) - (local $$58 i32) + (local $$58 i64) (local $$59 i64) - (local $$60 i32) + (local $$60 i64) (local $$61 i32) - (local $$62 i64) + (local $$62 i32) (local $$63 i64) (local $$64 i64) - (local $$65 i32) + (local $$65 i64) (local $$66 i32) - (local $$67 i64) + (local $$67 i32) (local $$68 i64) - (local $$69 i64) + (local $$69 i32) (local $$70 i32) - (local $$71 i32) - (local $$72 i64) + (local $$71 i64) + (local $$72 i32) (local $$73 i32) - (local $$74 i32) + (local $$74 i64) (local $$75 i64) - (local $$76 i32) - (local $$77 i32) - (local $$78 i32) + (local $$76 i64) + (local $$77 i64) + (local $$78 i64) (local $$79 i64) (local $$80 i64) (local $$81 i64) @@ -138,17 +134,17 @@ (local $$83 i64) (local $$84 i64) (local $$85 i64) - (local $$86 i64) + (local $$86 i32) (local $$87 i64) (local $$88 i64) - (local $$89 i32) - (local $$90 i64) + (local $$89 i64) + (local $$90 i32) (local $$91 i64) (local $$92 i64) (local $$93 i32) (local $$94 i64) (local $$95 i64) - (local $$96 i32) + (local $$96 i64) (local $$97 i64) (local $$98 i64) (local $$99 i64) @@ -162,10 +158,10 @@ (local $$107 i64) (local $$108 i64) (local $$109 i64) - (local $$110 i64) + (local $$110 i32) (local $$111 i64) (local $$112 i64) - (local $$113 i32) + (local $$113 i64) (local $$114 i64) (local $$115 i64) (local $$116 i64) @@ -189,9 +185,9 @@ (local $$134 i64) (local $$135 i64) (local $$136 i64) - (local $$137 i64) + (local $$137 i32) (local $$138 i64) - (local $$139 i32) + (local $$139 i64) (local $$140 i64) (local $$141 i64) (local $$142 i64) @@ -231,8 +227,8 @@ (local $$176 i64) (local $$177 i64) (local $$178 i64) - (local $$179 i64) - (local $$180 i64) + (local $$179 i32) + (local $$180 i32) (local $$181 i32) (local $$182 i32) (local $$183 i32) @@ -363,47 +359,45 @@ (local $$308 i32) (local $$309 i32) (local $$310 i32) - (local $$311 i32) - (local $$312 i32) (block $fake_return_waka123 (block - (set_local $$181 + (set_local $$179 (i32.const 1) ) - (set_local $$181 + (set_local $$179 (i32.load align=4 - (get_local $$181) + (get_local $$179) ) ) - (set_local $$182 + (set_local $$180 (i32.const 1024) ) - (set_local $$279 + (set_local $$310 (i32.sub - (get_local $$181) - (get_local $$182) + (get_local $$179) + (get_local $$180) ) ) - (set_local $$182 + (set_local $$180 (i32.const 1) ) - (set_local $$279 + (set_local $$310 (i32.store align=4 - (get_local $$182) - (get_local $$279) + (get_local $$180) + (get_local $$310) ) ) - (set_local $$184 + (set_local $$182 (i32.const 480) ) - (set_local $$184 + (set_local $$182 (i32.add - (get_local $$279) - (get_local $$184) + (get_local $$310) + (get_local $$182) ) ) (call_import $__lshrti3 - (get_local $$184) + (get_local $$182) (get_local $$1) (get_local $$2) (i64.sub @@ -417,32 +411,32 @@ (i64.const -768) ) ) - (set_local $$185 + (set_local $$183 (i32.const 464) ) - (set_local $$185 + (set_local $$183 (i32.add - (get_local $$279) - (get_local $$185) + (get_local $$310) + (get_local $$183) ) ) (call_import $__ashlti3 - (get_local $$185) + (get_local $$183) (get_local $$3) (get_local $$4) (get_local $$33) ) - (set_local $$186 + (set_local $$184 (i32.const 496) ) - (set_local $$186 + (set_local $$184 (i32.add - (get_local $$279) - (get_local $$186) + (get_local $$310) + (get_local $$184) ) ) (call_import $__ashlti3 - (get_local $$186) + (get_local $$184) (get_local $$1) (get_local $$2) (i64.add @@ -456,17 +450,17 @@ (get_local $$17) ) ) - (set_local $$187 + (set_local $$185 (i32.const 352) ) - (set_local $$187 + (set_local $$185 (i32.add - (get_local $$279) - (get_local $$187) + (get_local $$310) + (get_local $$185) ) ) (call_import $__lshrti3 - (get_local $$187) + (get_local $$185) (get_local $$5) (get_local $$6) (get_local $$34) @@ -477,17 +471,17 @@ (i64.const -512) ) ) - (set_local $$188 + (set_local $$186 (i32.const 336) ) - (set_local $$188 + (set_local $$186 (i32.add - (get_local $$279) - (get_local $$188) + (get_local $$310) + (get_local $$186) ) ) (call_import $__ashlti3 - (get_local $$188) + (get_local $$186) (get_local $$7) (get_local $$8) (get_local $$35) @@ -498,17 +492,17 @@ (i64.const -640) ) ) - (set_local $$189 + (set_local $$187 (i32.const 368) ) - (set_local $$189 + (set_local $$187 (i32.add - (get_local $$279) - (get_local $$189) + (get_local $$310) + (get_local $$187) ) ) (call_import $__ashlti3 - (get_local $$189) + (get_local $$187) (get_local $$5) (get_local $$6) (get_local $$36) @@ -519,1465 +513,1481 @@ (get_local $$17) ) ) - (set_local $$190 + (set_local $$188 (i32.const 432) ) - (set_local $$190 + (set_local $$188 (i32.add - (get_local $$279) - (get_local $$190) + (get_local $$310) + (get_local $$188) ) ) (call_import $__lshrti3 - (get_local $$190) + (get_local $$188) (get_local $$3) (get_local $$4) (get_local $$37) ) (set_local $$38 - (i64.const 384) - ) - (set_local $$39 (i64.sub - (get_local $$38) + (i64.const 384) (get_local $$17) ) ) - (set_local $$191 + (set_local $$189 (i32.const 864) ) - (set_local $$191 + (set_local $$189 (i32.add - (get_local $$279) - (get_local $$191) + (get_local $$310) + (get_local $$189) ) ) (call_import $__lshrti3 - (get_local $$191) + (get_local $$189) (get_local $$9) (get_local $$10) - (get_local $$39) + (get_local $$38) ) - (set_local $$40 + (set_local $$39 (i64.add (get_local $$17) (i64.const -256) ) ) - (set_local $$192 + (set_local $$190 (i32.const 848) ) - (set_local $$192 + (set_local $$190 (i32.add - (get_local $$279) - (get_local $$192) + (get_local $$310) + (get_local $$190) ) ) (call_import $__ashlti3 - (get_local $$192) + (get_local $$190) (get_local $$11) (get_local $$12) - (get_local $$40) + (get_local $$39) ) - (set_local $$41 + (set_local $$40 (i64.add (get_local $$17) (i64.const -384) ) ) - (set_local $$193 + (set_local $$191 (i32.const 880) ) - (set_local $$193 + (set_local $$191 (i32.add - (get_local $$279) - (get_local $$193) + (get_local $$310) + (get_local $$191) ) ) (call_import $__ashlti3 - (get_local $$193) + (get_local $$191) (get_local $$9) (get_local $$10) - (get_local $$41) + (get_local $$40) ) - (set_local $$194 + (set_local $$192 (i32.const 1008) ) - (set_local $$194 + (set_local $$192 (i32.add - (get_local $$279) - (get_local $$194) + (get_local $$310) + (get_local $$192) ) ) (call_import $__ashlti3 - (get_local $$194) + (get_local $$192) (get_local $$15) (get_local $$16) (get_local $$17) ) - (set_local $$42 - (i64.const 128) - ) - (set_local $$51 + (set_local $$41 (i64.sub - (get_local $$42) + (i64.const 128) (get_local $$17) ) ) - (set_local $$195 + (set_local $$193 (i32.const 960) ) - (set_local $$195 + (set_local $$193 (i32.add - (get_local $$279) - (get_local $$195) + (get_local $$310) + (get_local $$193) ) ) (call_import $__lshrti3 - (get_local $$195) + (get_local $$193) (get_local $$13) (get_local $$14) - (get_local $$51) + (get_local $$41) ) - (set_local $$43 + (set_local $$42 (i64.add (get_local $$17) (i64.const -128) ) ) - (set_local $$196 + (set_local $$194 (i32.const 976) ) - (set_local $$196 + (set_local $$194 (i32.add - (get_local $$279) - (get_local $$196) + (get_local $$310) + (get_local $$194) ) ) (call_import $__ashlti3 - (get_local $$196) + (get_local $$194) (get_local $$13) (get_local $$14) - (get_local $$43) + (get_local $$42) ) - (set_local $$44 - (i64.const 256) - ) - (set_local $$45 + (set_local $$43 (i64.sub - (get_local $$44) + (i64.const 256) (get_local $$17) ) ) - (set_local $$197 + (set_local $$195 (i32.const 816) ) - (set_local $$197 + (set_local $$195 (i32.add - (get_local $$279) - (get_local $$197) + (get_local $$310) + (get_local $$195) ) ) (call_import $__lshrti3 - (get_local $$197) + (get_local $$195) (get_local $$11) (get_local $$12) - (get_local $$45) - ) - (set_local $$46 - (i64.const 512) + (get_local $$43) ) - (set_local $$47 + (set_local $$44 (i64.sub - (get_local $$46) + (i64.const 512) (get_local $$17) ) ) - (set_local $$198 + (set_local $$196 (i32.const 240) ) - (set_local $$198 + (set_local $$196 (i32.add - (get_local $$279) - (get_local $$198) + (get_local $$310) + (get_local $$196) ) ) (call_import $__lshrti3 - (get_local $$198) + (get_local $$196) (get_local $$7) (get_local $$8) - (get_local $$47) + (get_local $$44) ) - (set_local $$199 + (set_local $$197 (i32.const 912) ) - (set_local $$199 + (set_local $$197 (i32.add - (get_local $$279) - (get_local $$199) + (get_local $$310) + (get_local $$197) ) ) (call_import $__ashlti3 - (get_local $$199) + (get_local $$197) (get_local $$11) (get_local $$12) (get_local $$17) ) - (set_local $$200 + (set_local $$198 (i32.const 928) ) - (set_local $$200 + (set_local $$198 (i32.add - (get_local $$279) - (get_local $$200) + (get_local $$310) + (get_local $$198) ) ) (call_import $__lshrti3 - (get_local $$200) + (get_local $$198) (get_local $$9) (get_local $$10) - (get_local $$51) + (get_local $$41) ) - (set_local $$201 + (set_local $$199 (i32.const 944) ) - (set_local $$201 + (set_local $$199 (i32.add - (get_local $$279) - (get_local $$201) + (get_local $$310) + (get_local $$199) ) ) (call_import $__ashlti3 - (get_local $$201) + (get_local $$199) (get_local $$9) (get_local $$10) - (get_local $$43) + (get_local $$42) ) - (set_local $$48 + (set_local $$45 (i64.sub + (i64.const 256) (get_local $$44) - (get_local $$47) ) ) - (set_local $$202 + (set_local $$200 (i32.const 80) ) - (set_local $$202 + (set_local $$200 (i32.add - (get_local $$279) - (get_local $$202) + (get_local $$310) + (get_local $$200) ) ) (call_import $__ashlti3 - (get_local $$202) + (get_local $$200) (get_local $$7) (get_local $$8) - (get_local $$48) + (get_local $$45) ) - (set_local $$203 + (set_local $$201 (i32.const 96) ) - (set_local $$203 + (set_local $$201 (i32.add - (get_local $$279) - (get_local $$203) + (get_local $$310) + (get_local $$201) ) ) (call_import $__lshrti3 - (get_local $$203) + (get_local $$201) (get_local $$5) (get_local $$6) (i64.sub - (get_local $$42) - (get_local $$48) + (i64.const 128) + (get_local $$45) ) ) - (set_local $$49 + (set_local $$46 (i64.sub - (get_local $$42) - (get_local $$47) + (i64.const 128) + (get_local $$44) ) ) - (set_local $$204 + (set_local $$202 (i32.const 112) ) - (set_local $$204 + (set_local $$202 (i32.add - (get_local $$279) - (get_local $$204) + (get_local $$310) + (get_local $$202) ) ) (call_import $__ashlti3 - (get_local $$204) + (get_local $$202) (get_local $$5) (get_local $$6) - (get_local $$49) + (get_local $$46) ) - (set_local $$205 + (set_local $$203 (i32.const 48) ) - (set_local $$205 + (set_local $$203 (i32.add - (get_local $$279) - (get_local $$205) + (get_local $$310) + (get_local $$203) ) ) (call_import $__lshrti3 - (get_local $$205) + (get_local $$203) (get_local $$3) (get_local $$4) - (get_local $$47) + (get_local $$44) ) - (set_local $$206 + (set_local $$204 (i32.const 176) ) - (set_local $$206 + (set_local $$204 (i32.add - (get_local $$279) - (get_local $$206) + (get_local $$310) + (get_local $$204) ) ) (call_import $__lshrti3 - (get_local $$206) + (get_local $$204) (get_local $$7) (get_local $$8) - (get_local $$45) + (get_local $$43) ) - (set_local $$207 + (set_local $$205 (i32.const 288) ) - (set_local $$207 + (set_local $$205 (i32.add - (get_local $$279) - (get_local $$207) + (get_local $$310) + (get_local $$205) ) ) (call_import $__lshrti3 - (get_local $$207) + (get_local $$205) (get_local $$1) (get_local $$2) (get_local $$34) ) - (set_local $$208 + (set_local $$206 (i32.const 272) ) - (set_local $$208 + (set_local $$206 (i32.add - (get_local $$279) - (get_local $$208) + (get_local $$310) + (get_local $$206) ) ) (call_import $__ashlti3 - (get_local $$208) + (get_local $$206) (get_local $$3) (get_local $$4) (get_local $$35) ) - (set_local $$209 + (set_local $$207 (i32.const 304) ) - (set_local $$209 + (set_local $$207 (i32.add - (get_local $$279) - (get_local $$209) + (get_local $$310) + (get_local $$207) ) ) (call_import $__ashlti3 - (get_local $$209) + (get_local $$207) (get_local $$1) (get_local $$2) (get_local $$36) ) - (set_local $$210 + (set_local $$208 (i32.const 128) ) - (set_local $$210 + (set_local $$208 (i32.add - (get_local $$279) - (get_local $$210) + (get_local $$310) + (get_local $$208) ) ) (call_import $__lshrti3 - (get_local $$210) + (get_local $$208) (get_local $$5) (get_local $$6) - (get_local $$45) + (get_local $$43) ) - (set_local $$211 + (set_local $$209 (i32.const 144) ) - (set_local $$211 + (set_local $$209 (i32.add - (get_local $$279) - (get_local $$211) + (get_local $$310) + (get_local $$209) ) ) (call_import $__ashlti3 - (get_local $$211) + (get_local $$209) (get_local $$7) (get_local $$8) (i64.sub - (get_local $$38) - (get_local $$47) + (i64.const 384) + (get_local $$44) ) ) - (set_local $$212 + (set_local $$210 (i32.const 160) ) - (set_local $$212 + (set_local $$210 (i32.add - (get_local $$279) - (get_local $$212) + (get_local $$310) + (get_local $$210) ) ) (call_import $__lshrti3 - (get_local $$212) + (get_local $$210) (get_local $$7) (get_local $$8) - (get_local $$51) + (get_local $$41) ) - (set_local $$213 + (set_local $$211 (i32.const 0) ) - (set_local $$213 + (set_local $$211 (i32.add - (get_local $$279) - (get_local $$213) + (get_local $$310) + (get_local $$211) ) ) (call_import $__lshrti3 - (get_local $$213) + (get_local $$211) (get_local $$1) (get_local $$2) - (get_local $$47) + (get_local $$44) ) - (set_local $$214 + (set_local $$212 (i32.const 16) ) - (set_local $$214 + (set_local $$212 (i32.add - (get_local $$279) - (get_local $$214) + (get_local $$310) + (get_local $$212) ) ) (call_import $__ashlti3 - (get_local $$214) + (get_local $$212) (get_local $$3) (get_local $$4) - (get_local $$49) + (get_local $$46) ) - (set_local $$215 + (set_local $$213 (i32.const 32) ) - (set_local $$215 + (set_local $$213 (i32.add - (get_local $$279) - (get_local $$215) + (get_local $$310) + (get_local $$213) ) ) (call_import $__lshrti3 - (get_local $$215) + (get_local $$213) (get_local $$3) (get_local $$4) - (get_local $$39) + (get_local $$38) ) - (set_local $$216 + (set_local $$214 (i32.const 64) ) - (set_local $$216 + (set_local $$214 (i32.add - (get_local $$279) - (get_local $$216) + (get_local $$310) + (get_local $$214) ) ) (call_import $__ashlti3 - (get_local $$216) + (get_local $$214) (get_local $$5) (get_local $$6) - (get_local $$48) + (get_local $$45) ) - (set_local $$217 + (set_local $$215 (i32.const 896) ) - (set_local $$217 + (set_local $$215 (i32.add - (get_local $$279) - (get_local $$217) + (get_local $$310) + (get_local $$215) ) ) (call_import $__ashlti3 - (get_local $$217) + (get_local $$215) (get_local $$9) (get_local $$10) (get_local $$17) ) - (set_local $$218 + (set_local $$216 (i32.const 256) ) - (set_local $$218 + (set_local $$216 (i32.add - (get_local $$279) - (get_local $$218) + (get_local $$310) + (get_local $$216) ) ) (call_import $__ashlti3 - (get_local $$218) + (get_local $$216) (get_local $$1) (get_local $$2) (get_local $$35) ) - (set_local $$219 + (set_local $$217 (i32.const 192) ) - (set_local $$219 + (set_local $$217 (i32.add - (get_local $$279) - (get_local $$219) + (get_local $$310) + (get_local $$217) ) ) (call_import $__lshrti3 - (get_local $$219) + (get_local $$217) (get_local $$5) (get_local $$6) - (get_local $$47) + (get_local $$44) ) - (set_local $$220 + (set_local $$218 (i32.const 208) ) - (set_local $$220 + (set_local $$218 (i32.add - (get_local $$279) - (get_local $$220) + (get_local $$310) + (get_local $$218) ) ) (call_import $__ashlti3 - (get_local $$220) + (get_local $$218) (get_local $$7) (get_local $$8) - (get_local $$49) + (get_local $$46) ) - (set_local $$221 + (set_local $$219 (i32.const 224) ) - (set_local $$221 + (set_local $$219 (i32.add - (get_local $$279) - (get_local $$221) + (get_local $$310) + (get_local $$219) ) ) (call_import $__lshrti3 - (get_local $$221) + (get_local $$219) (get_local $$7) (get_local $$8) - (get_local $$39) + (get_local $$38) ) - (set_local $$222 + (set_local $$220 (i32.const 768) ) - (set_local $$222 + (set_local $$220 (i32.add - (get_local $$279) - (get_local $$222) + (get_local $$310) + (get_local $$220) ) ) (call_import $__lshrti3 - (get_local $$222) + (get_local $$220) (get_local $$9) (get_local $$10) - (get_local $$45) + (get_local $$43) ) - (set_local $$49 + (set_local $$46 (i64.sub - (get_local $$42) - (get_local $$45) + (i64.const 128) + (get_local $$43) ) ) - (set_local $$223 + (set_local $$221 (i32.const 784) ) - (set_local $$223 + (set_local $$221 (i32.add - (get_local $$279) - (get_local $$223) + (get_local $$310) + (get_local $$221) ) ) (call_import $__ashlti3 - (get_local $$223) + (get_local $$221) (get_local $$11) (get_local $$12) - (get_local $$49) + (get_local $$46) ) - (set_local $$224 + (set_local $$222 (i32.const 800) ) - (set_local $$224 + (set_local $$222 (i32.add - (get_local $$279) - (get_local $$224) + (get_local $$310) + (get_local $$222) ) ) (call_import $__lshrti3 - (get_local $$224) + (get_local $$222) (get_local $$11) (get_local $$12) - (get_local $$51) + (get_local $$41) ) - (set_local $$225 + (set_local $$223 (i32.const 992) ) - (set_local $$225 + (set_local $$223 (i32.add - (get_local $$279) - (get_local $$225) + (get_local $$310) + (get_local $$223) ) ) (call_import $__ashlti3 - (get_local $$225) + (get_local $$223) (get_local $$13) (get_local $$14) (get_local $$17) ) - (set_local $$226 + (set_local $$224 (i32.const 832) ) - (set_local $$226 + (set_local $$224 (i32.add - (get_local $$279) - (get_local $$226) + (get_local $$310) + (get_local $$224) ) ) (call_import $__ashlti3 - (get_local $$226) + (get_local $$224) (get_local $$9) (get_local $$10) - (get_local $$40) + (get_local $$39) ) - (set_local $$227 + (set_local $$225 (i32.const 384) ) - (set_local $$227 + (set_local $$225 (i32.add - (get_local $$279) - (get_local $$227) + (get_local $$310) + (get_local $$225) ) ) (call_import $__lshrti3 - (get_local $$227) + (get_local $$225) (get_local $$1) (get_local $$2) (get_local $$37) ) - (set_local $$228 + (set_local $$226 (i32.const 400) ) - (set_local $$228 + (set_local $$226 (i32.add - (get_local $$279) - (get_local $$228) + (get_local $$310) + (get_local $$226) ) ) (call_import $__ashlti3 - (get_local $$228) + (get_local $$226) (get_local $$3) (get_local $$4) (i64.sub - (get_local $$42) + (i64.const 128) (get_local $$37) ) ) - (set_local $$229 + (set_local $$227 (i32.const 416) ) - (set_local $$229 + (set_local $$227 (i32.add - (get_local $$279) - (get_local $$229) + (get_local $$310) + (get_local $$227) ) ) (call_import $__lshrti3 - (get_local $$229) + (get_local $$227) (get_local $$3) (get_local $$4) (get_local $$34) ) - (set_local $$230 + (set_local $$228 (i32.const 320) ) - (set_local $$230 + (set_local $$228 (i32.add - (get_local $$279) - (get_local $$230) + (get_local $$310) + (get_local $$228) ) ) (call_import $__ashlti3 - (get_local $$230) + (get_local $$228) (get_local $$5) (get_local $$6) (get_local $$35) ) - (set_local $$231 + (set_local $$229 (i32.const 448) ) - (set_local $$231 + (set_local $$229 (i32.add - (get_local $$279) - (get_local $$231) + (get_local $$310) + (get_local $$229) ) ) (call_import $__ashlti3 - (get_local $$231) + (get_local $$229) (get_local $$1) (get_local $$2) (get_local $$33) ) - (set_local $$232 + (set_local $$230 (i32.const 736) ) + (set_local $$230 + (i32.add + (get_local $$310) + (get_local $$230) + ) + ) + (call_import $__lshrti3 + (get_local $$230) + (get_local $$1) + (get_local $$2) + (get_local $$38) + ) + (set_local $$231 + (i32.const 720) + ) + (set_local $$231 + (i32.add + (get_local $$310) + (get_local $$231) + ) + ) + (call_import $__ashlti3 + (get_local $$231) + (get_local $$3) + (get_local $$4) + (get_local $$39) + ) + (set_local $$232 + (i32.const 752) + ) (set_local $$232 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$232) ) ) - (call_import $__lshrti3 + (call_import $__ashlti3 (get_local $$232) (get_local $$1) (get_local $$2) - (get_local $$39) + (get_local $$40) ) (set_local $$233 - (i32.const 720) + (i32.const 592) ) (set_local $$233 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$233) ) ) (call_import $__ashlti3 (get_local $$233) - (get_local $$3) - (get_local $$4) - (get_local $$40) + (get_local $$7) + (get_local $$8) + (get_local $$17) ) (set_local $$234 - (i32.const 752) + (i32.const 608) ) (set_local $$234 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$234) ) ) - (call_import $__ashlti3 + (call_import $__lshrti3 (get_local $$234) - (get_local $$1) - (get_local $$2) + (get_local $$5) + (get_local $$6) (get_local $$41) ) (set_local $$235 - (i32.const 592) + (i32.const 624) ) (set_local $$235 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$235) ) ) (call_import $__ashlti3 (get_local $$235) - (get_local $$7) - (get_local $$8) - (get_local $$17) + (get_local $$5) + (get_local $$6) + (get_local $$42) ) (set_local $$236 - (i32.const 608) + (i32.const 688) ) (set_local $$236 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$236) ) ) (call_import $__lshrti3 (get_local $$236) - (get_local $$5) - (get_local $$6) - (get_local $$51) + (get_local $$3) + (get_local $$4) + (get_local $$43) ) (set_local $$237 - (i32.const 624) + (i32.const 640) ) (set_local $$237 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$237) ) ) - (call_import $__ashlti3 + (call_import $__lshrti3 (get_local $$237) - (get_local $$5) - (get_local $$6) + (get_local $$1) + (get_local $$2) (get_local $$43) ) (set_local $$238 - (i32.const 688) + (i32.const 656) ) (set_local $$238 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$238) ) ) - (call_import $__lshrti3 + (call_import $__ashlti3 (get_local $$238) (get_local $$3) (get_local $$4) - (get_local $$45) + (get_local $$46) ) (set_local $$239 - (i32.const 640) + (i32.const 672) ) (set_local $$239 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$239) ) ) (call_import $__lshrti3 (get_local $$239) - (get_local $$1) - (get_local $$2) - (get_local $$45) + (get_local $$3) + (get_local $$4) + (get_local $$41) ) (set_local $$240 - (i32.const 656) + (i32.const 576) ) (set_local $$240 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$240) ) ) (call_import $__ashlti3 (get_local $$240) - (get_local $$3) - (get_local $$4) - (get_local $$49) + (get_local $$5) + (get_local $$6) + (get_local $$17) ) (set_local $$241 - (i32.const 672) + (i32.const 704) ) (set_local $$241 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$241) ) ) - (call_import $__lshrti3 + (call_import $__ashlti3 (get_local $$241) - (get_local $$3) - (get_local $$4) - (get_local $$51) + (get_local $$1) + (get_local $$2) + (get_local $$39) ) (set_local $$242 - (i32.const 576) + (i32.const 528) ) (set_local $$242 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$242) ) ) (call_import $__ashlti3 (get_local $$242) - (get_local $$5) - (get_local $$6) + (get_local $$3) + (get_local $$4) (get_local $$17) ) (set_local $$243 - (i32.const 704) + (i32.const 544) ) (set_local $$243 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$243) ) ) - (call_import $__ashlti3 + (call_import $__lshrti3 (get_local $$243) (get_local $$1) (get_local $$2) - (get_local $$40) + (get_local $$41) ) (set_local $$244 - (i32.const 528) + (i32.const 560) ) (set_local $$244 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$244) ) ) (call_import $__ashlti3 (get_local $$244) - (get_local $$3) - (get_local $$4) - (get_local $$17) + (get_local $$1) + (get_local $$2) + (get_local $$42) ) (set_local $$245 - (i32.const 544) + (i32.const 512) ) (set_local $$245 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$245) ) ) - (call_import $__lshrti3 + (call_import $__ashlti3 (get_local $$245) (get_local $$1) (get_local $$2) - (get_local $$51) + (get_local $$17) ) (set_local $$246 - (i32.const 560) + (i32.const 480) ) (set_local $$246 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$246) ) ) - (call_import $__ashlti3 - (get_local $$246) - (get_local $$1) - (get_local $$2) - (get_local $$43) + (set_local $$41 + (i64.load align=8 + (i32.add + (get_local $$246) + (i32.const 8) + ) + ) ) (set_local $$247 - (i32.const 512) + (i32.const 464) ) (set_local $$247 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$247) ) ) - (call_import $__ashlti3 - (get_local $$247) - (get_local $$1) - (get_local $$2) - (get_local $$17) + (set_local $$38 + (i64.load align=8 + (i32.add + (get_local $$247) + (i32.const 8) + ) + ) ) - (set_local $$78 - (i32.const 8) + (set_local $$42 + (i64.load offset=480 align=8 + (get_local $$310) + ) + ) + (set_local $$34 + (i64.load offset=464 align=8 + (get_local $$310) + ) + ) + (set_local $$46 + (i64.load offset=496 align=8 + (get_local $$310) + ) ) (set_local $$248 - (i32.const 480) + (i32.const 496) ) (set_local $$248 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$248) ) ) - (set_local $$39 + (set_local $$36 (i64.load align=8 (i32.add (get_local $$248) - (get_local $$78) + (i32.const 8) ) ) ) + (set_local $$47 + (i64.lt_u + (get_local $$33) + (i64.const 128) + ) + ) + (set_local $$48 + (i64.eq + (get_local $$33) + (i64.const 0) + ) + ) (set_local $$249 - (i32.const 464) + (i32.const 352) ) (set_local $$249 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$249) ) ) - (set_local $$43 + (set_local $$33 (i64.load align=8 (i32.add (get_local $$249) - (get_local $$78) + (i32.const 8) ) ) ) - (set_local $$34 - (i64.load offset=480 align=8 - (get_local $$279) - ) - ) - (set_local $$49 - (i64.load offset=464 align=8 - (get_local $$279) - ) - ) - (set_local $$36 - (i64.load offset=496 align=8 - (get_local $$279) - ) - ) (set_local $$250 - (i32.const 496) + (i32.const 336) ) (set_local $$250 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$250) ) ) - (set_local $$38 + (set_local $$40 (i64.load align=8 (i32.add (get_local $$250) - (get_local $$78) + (i32.const 8) ) ) ) - (set_local $$50 - (i64.lt_u - (get_local $$33) - (get_local $$42) - ) - ) - (set_local $$51 - (i64.const 0) - ) - (set_local $$52 - (i64.eq - (get_local $$33) - (get_local $$51) - ) - ) (set_local $$251 - (i32.const 352) + (i32.const 368) ) (set_local $$251 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$251) ) ) - (set_local $$33 + (set_local $$74 (i64.load align=8 (i32.add (get_local $$251) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$252 - (i32.const 336) + (i32.const 432) ) (set_local $$252 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$252) ) ) - (set_local $$41 + (set_local $$75 (i64.load align=8 (i32.add (get_local $$252) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$253 - (i32.const 368) + (i32.const 864) ) (set_local $$253 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$253) ) ) - (set_local $$79 + (set_local $$76 (i64.load align=8 (i32.add (get_local $$253) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$254 - (i32.const 432) + (i32.const 848) ) (set_local $$254 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$254) ) ) - (set_local $$80 + (set_local $$77 (i64.load align=8 (i32.add (get_local $$254) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$255 - (i32.const 864) + (i32.const 880) ) (set_local $$255 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$255) ) ) - (set_local $$81 + (set_local $$78 (i64.load align=8 (i32.add (get_local $$255) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$256 - (i32.const 848) + (i32.const 1008) ) (set_local $$256 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$256) ) ) - (set_local $$82 + (set_local $$79 (i64.load align=8 (i32.add (get_local $$256) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$257 - (i32.const 880) + (i32.const 960) ) (set_local $$257 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$257) ) ) - (set_local $$83 + (set_local $$80 (i64.load align=8 (i32.add (get_local $$257) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$258 - (i32.const 1008) + (i32.const 976) ) (set_local $$258 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$258) ) ) - (set_local $$84 + (set_local $$81 (i64.load align=8 (i32.add (get_local $$258) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$259 - (i32.const 960) + (i32.const 816) ) (set_local $$259 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$259) ) ) - (set_local $$85 + (set_local $$82 (i64.load align=8 (i32.add (get_local $$259) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$260 - (i32.const 976) + (i32.const 240) ) (set_local $$260 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$260) ) ) - (set_local $$86 + (set_local $$83 (i64.load align=8 (i32.add (get_local $$260) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$261 - (i32.const 816) + (i32.const 912) ) (set_local $$261 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$261) ) ) - (set_local $$87 + (set_local $$97 (i64.load align=8 (i32.add (get_local $$261) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$262 - (i32.const 240) + (i32.const 928) ) (set_local $$262 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$262) ) ) - (set_local $$88 + (set_local $$98 (i64.load align=8 (i32.add (get_local $$262) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$263 - (i32.const 912) + (i32.const 944) ) (set_local $$263 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$263) ) ) - (set_local $$100 + (set_local $$99 (i64.load align=8 (i32.add (get_local $$263) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$264 - (i32.const 928) + (i32.const 80) ) (set_local $$264 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$264) ) ) - (set_local $$101 + (set_local $$100 (i64.load align=8 (i32.add (get_local $$264) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$265 - (i32.const 944) + (i32.const 96) ) (set_local $$265 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$265) ) ) - (set_local $$102 + (set_local $$101 (i64.load align=8 (i32.add (get_local $$265) - (get_local $$78) + (i32.const 8) ) ) ) + (set_local $$87 + (i64.load offset=80 align=8 + (get_local $$310) + ) + ) + (set_local $$88 + (i64.load offset=96 align=8 + (get_local $$310) + ) + ) + (set_local $$89 + (i64.load offset=112 align=8 + (get_local $$310) + ) + ) (set_local $$266 - (i32.const 80) + (i32.const 112) ) (set_local $$266 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$266) ) ) - (set_local $$103 + (set_local $$102 (i64.load align=8 (i32.add (get_local $$266) - (get_local $$78) + (i32.const 8) ) ) ) + (set_local $$86 + (i64.lt_u + (get_local $$45) + (i64.const 128) + ) + ) + (set_local $$90 + (i64.eq + (get_local $$45) + (i64.const 0) + ) + ) (set_local $$267 - (i32.const 96) + (i32.const 48) ) (set_local $$267 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$267) ) ) - (set_local $$104 + (set_local $$45 (i64.load align=8 (i32.add (get_local $$267) - (get_local $$78) + (i32.const 8) ) ) ) - (set_local $$90 - (i64.load offset=80 align=8 - (get_local $$279) - ) - ) - (set_local $$91 - (i64.load offset=96 align=8 - (get_local $$279) - ) - ) - (set_local $$92 - (i64.load offset=112 align=8 - (get_local $$279) - ) - ) (set_local $$268 - (i32.const 112) + (i32.const 176) ) (set_local $$268 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$268) ) ) - (set_local $$105 + (set_local $$103 (i64.load align=8 (i32.add (get_local $$268) - (get_local $$78) + (i32.const 8) ) ) ) - (set_local $$89 - (i64.lt_u - (get_local $$48) - (get_local $$42) - ) - ) - (set_local $$93 - (i64.eq - (get_local $$48) - (get_local $$51) - ) - ) (set_local $$269 - (i32.const 48) + (i32.const 288) ) (set_local $$269 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$269) ) ) - (set_local $$48 + (set_local $$104 (i64.load align=8 (i32.add (get_local $$269) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$270 - (i32.const 176) + (i32.const 272) ) (set_local $$270 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$270) ) ) - (set_local $$106 + (set_local $$105 (i64.load align=8 (i32.add (get_local $$270) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$271 - (i32.const 288) + (i32.const 304) ) (set_local $$271 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$271) ) ) - (set_local $$107 + (set_local $$106 (i64.load align=8 (i32.add (get_local $$271) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$272 - (i32.const 272) + (i32.const 128) ) (set_local $$272 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$272) ) ) - (set_local $$108 + (set_local $$117 (i64.load align=8 (i32.add (get_local $$272) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$273 - (i32.const 304) + (i32.const 144) ) (set_local $$273 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$273) ) ) - (set_local $$109 + (set_local $$118 (i64.load align=8 (i32.add (get_local $$273) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$274 - (i32.const 128) + (i32.const 160) ) (set_local $$274 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$274) ) ) @@ -1985,16 +1995,16 @@ (i64.load align=8 (i32.add (get_local $$274) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$275 - (i32.const 144) + (i32.const 0) ) (set_local $$275 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$275) ) ) @@ -2002,16 +2012,16 @@ (i64.load align=8 (i32.add (get_local $$275) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$276 - (i32.const 160) + (i32.const 16) ) (set_local $$276 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$276) ) ) @@ -2019,1021 +2029,987 @@ (i64.load align=8 (i32.add (get_local $$276) - (get_local $$78) + (i32.const 8) ) ) ) + (set_local $$114 + (i64.load offset=64 align=8 + (get_local $$310) + ) + ) (set_local $$277 - (i32.const 0) + (i32.const 64) ) (set_local $$277 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$277) ) ) - (set_local $$122 + (set_local $$123 (i64.load align=8 (i32.add (get_local $$277) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$278 - (i32.const 16) + (i32.const 32) ) (set_local $$278 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$278) ) ) - (set_local $$123 + (set_local $$122 (i64.load align=8 (i32.add (get_local $$278) - (get_local $$78) + (i32.const 8) ) ) ) - (set_local $$117 - (i64.load offset=64 align=8 - (get_local $$279) - ) - ) (set_local $$279 - (i32.const 64) + (i32.const 896) ) (set_local $$279 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$279) ) ) - (set_local $$125 + (set_local $$124 (i64.load align=8 (i32.add (get_local $$279) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$280 - (i32.const 32) + (i32.const 256) ) (set_local $$280 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$280) ) ) - (set_local $$124 + (set_local $$125 (i64.load align=8 (i32.add (get_local $$280) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$281 - (i32.const 896) + (i32.const 192) ) (set_local $$281 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$281) ) ) - (set_local $$126 + (set_local $$140 (i64.load align=8 (i32.add (get_local $$281) - (get_local $$78) + (i32.const 8) ) ) ) (set_local $$282 - (i32.const 256) + (i32.const 208) ) (set_local $$282 (i32.add - (get_local $$279) + (get_local $$310) (get_local $$282) ) ) - (set_local $$127 + (set_local $$141 (i64.load align=8 (i32.add (get_local $$282) - (get_local $$78) + (i32.const 8) ) ) ) - (set_local $$283 - (i32.const 192) - ) - (set_local $$283 - (i32.add - (get_local $$279) - (get_local $$283) - ) - ) - (set_local $$142 - (i64.load align=8 - (i32.add - (get_local $$283) - (get_local $$78) - ) - ) - ) - (set_local $$284 - (i32.const 208) - ) - (set_local $$284 - (i32.add - (get_local $$279) - (get_local $$284) - ) - ) - (set_local $$143 - (i64.load align=8 - (i32.add - (get_local $$284) - (get_local $$78) - ) - ) - ) - (set_local $$114 + (set_local $$111 (i64.load align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$115 + (set_local $$112 (i64.load offset=16 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$116 + (set_local $$113 (i64.load offset=32 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$285 + (set_local $$283 (i32.const 224) ) - (set_local $$285 + (set_local $$283 (i32.add - (get_local $$279) - (get_local $$285) + (get_local $$310) + (get_local $$283) ) ) - (set_local $$144 + (set_local $$142 (i64.load align=8 (i32.add - (get_local $$285) - (get_local $$78) + (get_local $$283) + (i32.const 8) ) ) ) - (set_local $$74 + (set_local $$70 (i64.lt_u - (get_local $$47) - (get_local $$42) + (get_local $$44) + (i64.const 128) ) ) - (set_local $$128 + (set_local $$126 (i64.load offset=192 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$129 + (set_local $$127 (i64.load offset=208 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$130 + (set_local $$128 (i64.load offset=224 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$75 + (set_local $$71 (i64.load offset=240 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$94 + (set_local $$91 (i64.load offset=48 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$95 + (set_local $$92 (i64.load offset=176 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$71 + (set_local $$67 (i64.lt_u - (get_local $$45) - (get_local $$42) + (get_local $$43) + (i64.const 128) ) ) - (set_local $$76 + (set_local $$72 (i64.lt_u - (get_local $$47) (get_local $$44) + (i64.const 256) ) ) - (set_local $$110 + (set_local $$107 (i64.load offset=128 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$111 + (set_local $$108 (i64.load offset=144 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$112 + (set_local $$109 (i64.load offset=160 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$96 + (set_local $$93 (i64.eq - (get_local $$47) - (get_local $$51) + (get_local $$44) + (i64.const 0) ) ) - (set_local $$113 + (set_local $$110 (i64.eq - (get_local $$45) - (get_local $$51) + (get_local $$43) + (i64.const 0) ) ) - (set_local $$286 + (set_local $$284 (i32.const 768) ) - (set_local $$286 + (set_local $$284 (i32.add - (get_local $$279) - (get_local $$286) + (get_local $$310) + (get_local $$284) ) ) - (set_local $$47 + (set_local $$44 (i64.load align=8 (i32.add - (get_local $$286) - (get_local $$78) + (get_local $$284) + (i32.const 8) ) ) ) - (set_local $$287 + (set_local $$285 (i32.const 784) ) - (set_local $$287 + (set_local $$285 (i32.add - (get_local $$279) - (get_local $$287) + (get_local $$310) + (get_local $$285) ) ) - (set_local $$45 + (set_local $$43 (i64.load align=8 (i32.add - (get_local $$287) - (get_local $$78) + (get_local $$285) + (i32.const 8) ) ) ) - (set_local $$288 + (set_local $$286 (i32.const 800) ) - (set_local $$288 + (set_local $$286 (i32.add - (get_local $$279) - (get_local $$288) + (get_local $$310) + (get_local $$286) ) ) - (set_local $$145 + (set_local $$143 (i64.load align=8 (i32.add - (get_local $$288) - (get_local $$78) + (get_local $$286) + (i32.const 8) ) ) ) - (set_local $$289 + (set_local $$287 (i32.const 992) ) - (set_local $$289 + (set_local $$287 (i32.add - (get_local $$279) - (get_local $$289) + (get_local $$310) + (get_local $$287) ) ) - (set_local $$146 + (set_local $$144 (i64.load align=8 (i32.add - (get_local $$289) - (get_local $$78) + (get_local $$287) + (i32.const 8) ) ) ) - (set_local $$290 + (set_local $$288 (i32.const 832) ) - (set_local $$290 + (set_local $$288 (i32.add - (get_local $$279) - (get_local $$290) + (get_local $$310) + (get_local $$288) ) ) - (set_local $$147 + (set_local $$145 (i64.load align=8 (i32.add - (get_local $$290) - (get_local $$78) + (get_local $$288) + (i32.const 8) ) ) ) - (set_local $$291 + (set_local $$289 (i32.const 384) ) - (set_local $$291 + (set_local $$289 (i32.add - (get_local $$279) - (get_local $$291) + (get_local $$310) + (get_local $$289) ) ) - (set_local $$148 + (set_local $$146 (i64.load align=8 (i32.add - (get_local $$291) - (get_local $$78) + (get_local $$289) + (i32.const 8) ) ) ) - (set_local $$292 + (set_local $$290 (i32.const 400) ) - (set_local $$292 + (set_local $$290 (i32.add - (get_local $$279) - (get_local $$292) + (get_local $$310) + (get_local $$290) ) ) - (set_local $$149 + (set_local $$147 (i64.load align=8 (i32.add - (get_local $$292) - (get_local $$78) + (get_local $$290) + (i32.const 8) ) ) ) - (set_local $$136 + (set_local $$134 (i64.load offset=384 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$137 + (set_local $$135 (i64.load offset=400 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$293 + (set_local $$291 (i32.const 416) ) - (set_local $$293 + (set_local $$291 (i32.add - (get_local $$279) - (get_local $$293) + (get_local $$310) + (get_local $$291) ) ) - (set_local $$150 + (set_local $$148 (i64.load align=8 (i32.add - (get_local $$293) - (get_local $$78) + (get_local $$291) + (i32.const 8) ) ) ) - (set_local $$138 + (set_local $$136 (i64.load offset=416 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$59 + (set_local $$55 (i64.load offset=432 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$58 + (set_local $$54 (i64.lt_u (get_local $$37) - (get_local $$42) + (i64.const 128) ) ) - (set_local $$139 + (set_local $$137 (i64.eq (get_local $$37) - (get_local $$51) + (i64.const 0) ) ) - (set_local $$294 + (set_local $$292 (i32.const 320) ) - (set_local $$294 + (set_local $$292 (i32.add - (get_local $$279) - (get_local $$294) + (get_local $$310) + (get_local $$292) ) ) (set_local $$37 (i64.load align=8 (i32.add - (get_local $$294) - (get_local $$78) + (get_local $$292) + (i32.const 8) ) ) ) - (set_local $$54 + (set_local $$50 (i64.load offset=352 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$55 + (set_local $$51 (i64.load offset=336 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$56 + (set_local $$52 (i64.load offset=368 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$295 + (set_local $$293 (i32.const 448) ) - (set_local $$295 + (set_local $$293 (i32.add - (get_local $$279) - (get_local $$295) + (get_local $$310) + (get_local $$293) ) ) - (set_local $$151 + (set_local $$149 (i64.load align=8 (i32.add - (get_local $$295) - (get_local $$78) + (get_local $$293) + (i32.const 8) ) ) ) - (set_local $$53 + (set_local $$49 (i64.lt_u (get_local $$35) - (get_local $$42) + (i64.const 128) ) ) - (set_local $$97 + (set_local $$94 (i64.load offset=288 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$98 + (set_local $$95 (i64.load offset=272 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$99 + (set_local $$96 (i64.load offset=304 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$118 + (set_local $$116 (i64.load offset=256 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$140 + (set_local $$138 (i64.load offset=320 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$141 + (set_local $$139 (i64.load offset=448 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$57 + (set_local $$53 (i64.eq (get_local $$35) - (get_local $$51) + (i64.const 0) ) ) - (set_local $$60 + (set_local $$56 (i64.lt_u (get_local $$35) - (get_local $$44) + (i64.const 256) ) ) - (set_local $$296 + (set_local $$294 (i32.const 736) ) - (set_local $$296 + (set_local $$294 (i32.add - (get_local $$279) - (get_local $$296) + (get_local $$310) + (get_local $$294) ) ) (set_local $$35 (i64.load align=8 (i32.add - (get_local $$296) - (get_local $$78) + (get_local $$294) + (i32.const 8) ) ) ) - (set_local $$297 + (set_local $$295 (i32.const 720) ) - (set_local $$297 + (set_local $$295 (i32.add - (get_local $$279) - (get_local $$297) + (get_local $$310) + (get_local $$295) ) ) - (set_local $$159 + (set_local $$157 (i64.load align=8 (i32.add - (get_local $$297) - (get_local $$78) + (get_local $$295) + (i32.const 8) ) ) ) - (set_local $$62 + (set_local $$58 (i64.load offset=864 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$63 + (set_local $$59 (i64.load offset=848 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$64 + (set_local $$60 (i64.load offset=880 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$298 + (set_local $$296 (i32.const 752) ) - (set_local $$298 + (set_local $$296 (i32.add - (get_local $$279) - (get_local $$298) + (get_local $$310) + (get_local $$296) ) ) - (set_local $$160 + (set_local $$158 (i64.load align=8 (i32.add - (get_local $$298) - (get_local $$78) + (get_local $$296) + (i32.const 8) ) ) ) - (set_local $$61 + (set_local $$57 (i64.lt_u - (get_local $$40) - (get_local $$42) + (get_local $$39) + (i64.const 128) ) ) - (set_local $$152 + (set_local $$150 (i64.load offset=736 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$153 + (set_local $$151 (i64.load offset=720 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$154 + (set_local $$152 (i64.load offset=752 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$65 + (set_local $$61 (i64.eq - (get_local $$40) - (get_local $$51) + (get_local $$39) + (i64.const 0) ) ) - (set_local $$299 + (set_local $$297 (i32.const 592) ) - (set_local $$299 + (set_local $$297 (i32.add - (get_local $$279) - (get_local $$299) + (get_local $$310) + (get_local $$297) ) ) - (set_local $$40 + (set_local $$39 (i64.load align=8 (i32.add - (get_local $$299) - (get_local $$78) + (get_local $$297) + (i32.const 8) ) ) ) - (set_local $$300 + (set_local $$298 (i32.const 608) ) - (set_local $$300 + (set_local $$298 (i32.add - (get_local $$279) - (get_local $$300) + (get_local $$310) + (get_local $$298) ) ) - (set_local $$161 + (set_local $$159 (i64.load align=8 (i32.add - (get_local $$300) - (get_local $$78) + (get_local $$298) + (i32.const 8) ) ) ) - (set_local $$301 + (set_local $$299 (i32.const 624) ) - (set_local $$301 + (set_local $$299 (i32.add - (get_local $$279) - (get_local $$301) + (get_local $$310) + (get_local $$299) ) ) - (set_local $$162 + (set_local $$160 (i64.load align=8 (i32.add - (get_local $$301) - (get_local $$78) + (get_local $$299) + (i32.const 8) ) ) ) - (set_local $$302 + (set_local $$300 (i32.const 688) ) - (set_local $$302 + (set_local $$300 (i32.add - (get_local $$279) - (get_local $$302) + (get_local $$310) + (get_local $$300) ) ) - (set_local $$163 + (set_local $$161 (i64.load align=8 (i32.add - (get_local $$302) - (get_local $$78) + (get_local $$300) + (i32.const 8) ) ) ) - (set_local $$303 + (set_local $$301 (i32.const 640) ) - (set_local $$303 + (set_local $$301 (i32.add - (get_local $$279) - (get_local $$303) + (get_local $$310) + (get_local $$301) ) ) - (set_local $$169 + (set_local $$167 (i64.load align=8 (i32.add - (get_local $$303) - (get_local $$78) + (get_local $$301) + (i32.const 8) ) ) ) - (set_local $$304 + (set_local $$302 (i32.const 656) ) - (set_local $$304 + (set_local $$302 (i32.add - (get_local $$279) - (get_local $$304) + (get_local $$310) + (get_local $$302) ) ) - (set_local $$170 + (set_local $$168 (i64.load align=8 (i32.add - (get_local $$304) - (get_local $$78) + (get_local $$302) + (i32.const 8) ) ) ) - (set_local $$131 + (set_local $$129 (i64.load offset=768 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$132 + (set_local $$130 (i64.load offset=784 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$133 + (set_local $$131 (i64.load offset=800 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$305 + (set_local $$303 (i32.const 672) ) - (set_local $$305 + (set_local $$303 (i32.add - (get_local $$279) - (get_local $$305) + (get_local $$310) + (get_local $$303) ) ) - (set_local $$171 + (set_local $$169 (i64.load align=8 (i32.add - (get_local $$305) - (get_local $$78) + (get_local $$303) + (i32.const 8) ) ) ) - (set_local $$164 + (set_local $$162 (i64.load offset=640 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$165 + (set_local $$163 (i64.load offset=656 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$166 + (set_local $$164 (i64.load offset=672 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$72 + (set_local $$68 (i64.load offset=816 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$158 + (set_local $$156 (i64.load offset=688 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$306 + (set_local $$304 (i32.const 576) ) - (set_local $$306 + (set_local $$304 (i32.add - (get_local $$279) - (get_local $$306) + (get_local $$310) + (get_local $$304) ) ) - (set_local $$172 + (set_local $$170 (i64.load align=8 (i32.add - (get_local $$306) - (get_local $$78) + (get_local $$304) + (i32.const 8) ) ) ) - (set_local $$135 + (set_local $$133 (i64.load offset=832 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$168 + (set_local $$166 (i64.load offset=704 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$307 + (set_local $$305 (i32.const 704) ) - (set_local $$307 + (set_local $$305 (i32.add - (get_local $$279) - (get_local $$307) + (get_local $$310) + (get_local $$305) ) ) - (set_local $$173 + (set_local $$171 (i64.load align=8 (i32.add - (get_local $$307) - (get_local $$78) + (get_local $$305) + (i32.const 8) ) ) ) - (set_local $$308 + (set_local $$306 (i32.const 528) ) - (set_local $$308 + (set_local $$306 (i32.add - (get_local $$279) - (get_local $$308) + (get_local $$310) + (get_local $$306) ) ) - (set_local $$177 + (set_local $$175 (i64.load align=8 (i32.add - (get_local $$308) - (get_local $$78) + (get_local $$306) + (i32.const 8) ) ) ) - (set_local $$309 + (set_local $$307 (i32.const 544) ) - (set_local $$309 + (set_local $$307 (i32.add - (get_local $$279) - (get_local $$309) + (get_local $$310) + (get_local $$307) ) ) - (set_local $$178 + (set_local $$176 (i64.load align=8 (i32.add - (get_local $$309) - (get_local $$78) + (get_local $$307) + (i32.const 8) ) ) ) - (set_local $$310 + (set_local $$308 (i32.const 560) ) - (set_local $$310 + (set_local $$308 (i32.add - (get_local $$279) (get_local $$310) + (get_local $$308) ) ) - (set_local $$179 + (set_local $$177 (i64.load align=8 (i32.add - (get_local $$310) - (get_local $$78) + (get_local $$308) + (i32.const 8) ) ) ) - (set_local $$67 + (set_local $$63 (i64.load offset=1008 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$68 + (set_local $$64 (i64.load offset=960 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$69 + (set_local $$65 (i64.load offset=976 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$66 + (set_local $$62 (i64.lt_u (get_local $$17) - (get_local $$42) + (i64.const 128) ) ) - (set_local $$70 + (set_local $$66 (i64.eq (get_local $$17) - (get_local $$51) + (i64.const 0) ) ) - (set_local $$73 + (set_local $$69 (i64.lt_u (get_local $$17) - (get_local $$44) + (i64.const 256) ) ) - (set_local $$77 + (set_local $$73 (i64.lt_u (get_local $$17) - (get_local $$46) + (i64.const 512) ) ) (set_local $$17 (i64.load offset=912 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$42 + (set_local $$84 (i64.load offset=928 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$44 + (set_local $$85 (i64.load offset=944 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$46 + (set_local $$115 (i64.load offset=896 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$134 + (set_local $$132 (i64.load offset=992 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$155 + (set_local $$153 (i64.load offset=592 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$156 + (set_local $$154 (i64.load offset=608 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$157 + (set_local $$155 (i64.load offset=624 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$167 + (set_local $$165 (i64.load offset=576 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$174 + (set_local $$172 (i64.load offset=528 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$175 + (set_local $$173 (i64.load offset=544 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$176 + (set_local $$174 (i64.load offset=560 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$180 + (set_local $$178 (i64.load offset=512 align=8 - (get_local $$279) + (get_local $$310) ) ) - (set_local $$311 + (set_local $$309 (i32.const 512) ) - (set_local $$311 + (set_local $$309 (i32.add - (get_local $$279) - (get_local $$311) + (get_local $$310) + (get_local $$309) ) ) (i64.store align=8 (i32.add (get_local $$0) - (get_local $$78) + (i32.const 8) ) (i64.select - (get_local $$77) + (get_local $$73) (i64.select - (get_local $$73) + (get_local $$69) (i64.select - (get_local $$66) + (get_local $$62) (i64.load align=8 (i32.add - (get_local $$311) - (get_local $$78) + (get_local $$309) + (i32.const 8) ) ) - (get_local $$51) + (i64.const 0) ) - (get_local $$51) + (i64.const 0) ) - (get_local $$51) + (i64.const 0) ) ) (i64.store align=8 (get_local $$0) (i64.select - (get_local $$77) + (get_local $$73) (i64.select - (get_local $$73) + (get_local $$69) (i64.select - (get_local $$66) - (get_local $$180) - (get_local $$51) + (get_local $$62) + (get_local $$178) + (i64.const 0) ) - (get_local $$51) + (i64.const 0) ) - (get_local $$51) + (i64.const 0) ) ) (i64.store align=8 @@ -3042,24 +3018,24 @@ (i32.const 24) ) (i64.select - (get_local $$77) + (get_local $$73) (i64.select - (get_local $$73) + (get_local $$69) (i64.select - (get_local $$70) + (get_local $$66) (get_local $$4) (i64.select - (get_local $$66) + (get_local $$62) (i64.or - (get_local $$177) - (get_local $$178) + (get_local $$175) + (get_local $$176) ) - (get_local $$179) + (get_local $$177) ) ) - (get_local $$51) + (i64.const 0) ) - (get_local $$51) + (i64.const 0) ) ) (i64.store align=8 @@ -3068,24 +3044,24 @@ (i32.const 16) ) (i64.select - (get_local $$77) + (get_local $$73) (i64.select - (get_local $$73) + (get_local $$69) (i64.select - (get_local $$70) + (get_local $$66) (get_local $$3) (i64.select - (get_local $$66) + (get_local $$62) (i64.or - (get_local $$174) - (get_local $$175) + (get_local $$172) + (get_local $$173) ) - (get_local $$176) + (get_local $$174) ) ) - (get_local $$51) + (i64.const 0) ) - (get_local $$51) + (i64.const 0) ) ) (i64.store align=8 @@ -3094,46 +3070,46 @@ (i32.const 56) ) (i64.select - (get_local $$77) + (get_local $$73) (i64.select - (get_local $$70) + (get_local $$66) (get_local $$8) (i64.select - (get_local $$73) + (get_local $$69) (i64.or (i64.select - (get_local $$70) + (get_local $$66) (get_local $$8) (i64.select - (get_local $$66) + (get_local $$62) (i64.or - (get_local $$40) - (get_local $$161) + (get_local $$39) + (get_local $$159) ) - (get_local $$162) + (get_local $$160) ) ) (i64.select - (get_local $$71) - (get_local $$163) - (get_local $$51) + (get_local $$67) + (get_local $$161) + (i64.const 0) ) ) (i64.select - (get_local $$65) + (get_local $$61) (get_local $$4) (i64.select - (get_local $$61) + (get_local $$57) (i64.or - (get_local $$159) + (get_local $$157) (get_local $$35) ) - (get_local $$160) + (get_local $$158) ) ) ) ) - (get_local $$51) + (i64.const 0) ) ) (i64.store align=8 @@ -3142,46 +3118,46 @@ (i32.const 48) ) (i64.select - (get_local $$77) + (get_local $$73) (i64.select - (get_local $$70) + (get_local $$66) (get_local $$7) (i64.select - (get_local $$73) + (get_local $$69) (i64.or (i64.select - (get_local $$70) + (get_local $$66) (get_local $$7) (i64.select - (get_local $$66) + (get_local $$62) (i64.or - (get_local $$155) - (get_local $$156) + (get_local $$153) + (get_local $$154) ) - (get_local $$157) + (get_local $$155) ) ) (i64.select - (get_local $$71) - (get_local $$158) - (get_local $$51) + (get_local $$67) + (get_local $$156) + (i64.const 0) ) ) (i64.select - (get_local $$65) + (get_local $$61) (get_local $$3) (i64.select - (get_local $$61) + (get_local $$57) (i64.or - (get_local $$153) - (get_local $$152) + (get_local $$151) + (get_local $$150) ) - (get_local $$154) + (get_local $$152) ) ) ) ) - (get_local $$51) + (i64.const 0) ) ) (i64.store align=8 @@ -3190,39 +3166,39 @@ (i32.const 40) ) (i64.select - (get_local $$77) + (get_local $$73) (i64.select - (get_local $$70) + (get_local $$66) (get_local $$6) (i64.select - (get_local $$73) + (get_local $$69) (i64.or (i64.select - (get_local $$66) - (get_local $$172) - (get_local $$51) + (get_local $$62) + (get_local $$170) + (i64.const 0) ) (i64.select - (get_local $$113) + (get_local $$110) (get_local $$2) (i64.select - (get_local $$71) + (get_local $$67) (i64.or - (get_local $$169) - (get_local $$170) + (get_local $$167) + (get_local $$168) ) - (get_local $$171) + (get_local $$169) ) ) ) (i64.select - (get_local $$61) - (get_local $$173) - (get_local $$51) + (get_local $$57) + (get_local $$171) + (i64.const 0) ) ) ) - (get_local $$51) + (i64.const 0) ) ) (i64.store align=8 @@ -3231,39 +3207,39 @@ (i32.const 32) ) (i64.select - (get_local $$77) + (get_local $$73) (i64.select - (get_local $$70) + (get_local $$66) (get_local $$5) (i64.select - (get_local $$73) + (get_local $$69) (i64.or (i64.select - (get_local $$66) - (get_local $$167) - (get_local $$51) + (get_local $$62) + (get_local $$165) + (i64.const 0) ) (i64.select - (get_local $$113) + (get_local $$110) (get_local $$1) (i64.select - (get_local $$71) + (get_local $$67) (i64.or - (get_local $$164) - (get_local $$165) + (get_local $$162) + (get_local $$163) ) - (get_local $$166) + (get_local $$164) ) ) ) (i64.select - (get_local $$61) - (get_local $$168) - (get_local $$51) + (get_local $$57) + (get_local $$166) + (i64.const 0) ) ) ) - (get_local $$51) + (i64.const 0) ) ) (i64.store align=8 @@ -3272,93 +3248,93 @@ (i32.const 120) ) (i64.select - (get_local $$70) + (get_local $$66) (get_local $$16) (i64.select - (get_local $$77) + (get_local $$73) (i64.or (i64.select - (get_local $$70) + (get_local $$66) (get_local $$16) (i64.select - (get_local $$73) + (get_local $$69) (i64.or (i64.select - (get_local $$70) + (get_local $$66) (get_local $$16) (i64.select - (get_local $$66) + (get_local $$62) (i64.or - (get_local $$84) - (get_local $$85) + (get_local $$79) + (get_local $$80) ) - (get_local $$86) + (get_local $$81) ) ) (i64.select - (get_local $$71) - (get_local $$87) - (get_local $$51) + (get_local $$67) + (get_local $$82) + (i64.const 0) ) ) (i64.select - (get_local $$65) + (get_local $$61) (get_local $$12) (i64.select - (get_local $$61) + (get_local $$57) (i64.or - (get_local $$82) - (get_local $$81) + (get_local $$77) + (get_local $$76) ) - (get_local $$83) + (get_local $$78) ) ) ) ) (i64.select - (get_local $$76) + (get_local $$72) (i64.select - (get_local $$74) - (get_local $$88) - (get_local $$51) + (get_local $$70) + (get_local $$83) + (i64.const 0) ) - (get_local $$51) + (i64.const 0) ) ) (i64.select - (get_local $$57) + (get_local $$53) (get_local $$8) (i64.select - (get_local $$60) + (get_local $$56) (i64.or (i64.select - (get_local $$57) + (get_local $$53) (get_local $$8) (i64.select - (get_local $$53) + (get_local $$49) (i64.or - (get_local $$41) + (get_local $$40) (get_local $$33) ) - (get_local $$79) + (get_local $$74) ) ) (i64.select - (get_local $$58) - (get_local $$80) - (get_local $$51) + (get_local $$54) + (get_local $$75) + (i64.const 0) ) ) (i64.select - (get_local $$52) + (get_local $$48) (get_local $$4) (i64.select - (get_local $$50) + (get_local $$47) (i64.or - (get_local $$43) - (get_local $$39) + (get_local $$38) + (get_local $$41) ) - (get_local $$38) + (get_local $$36) ) ) ) @@ -3372,93 +3348,93 @@ (i32.const 112) ) (i64.select - (get_local $$70) + (get_local $$66) (get_local $$15) (i64.select - (get_local $$77) + (get_local $$73) (i64.or (i64.select - (get_local $$70) + (get_local $$66) (get_local $$15) (i64.select - (get_local $$73) + (get_local $$69) (i64.or (i64.select - (get_local $$70) + (get_local $$66) (get_local $$15) (i64.select - (get_local $$66) + (get_local $$62) (i64.or - (get_local $$67) - (get_local $$68) + (get_local $$63) + (get_local $$64) ) - (get_local $$69) + (get_local $$65) ) ) (i64.select - (get_local $$71) - (get_local $$72) - (get_local $$51) + (get_local $$67) + (get_local $$68) + (i64.const 0) ) ) (i64.select - (get_local $$65) + (get_local $$61) (get_local $$11) (i64.select - (get_local $$61) + (get_local $$57) (i64.or - (get_local $$63) - (get_local $$62) + (get_local $$59) + (get_local $$58) ) - (get_local $$64) + (get_local $$60) ) ) ) ) (i64.select - (get_local $$76) + (get_local $$72) (i64.select - (get_local $$74) - (get_local $$75) - (get_local $$51) + (get_local $$70) + (get_local $$71) + (i64.const 0) ) - (get_local $$51) + (i64.const 0) ) ) (i64.select - (get_local $$57) + (get_local $$53) (get_local $$7) (i64.select - (get_local $$60) + (get_local $$56) (i64.or (i64.select - (get_local $$57) + (get_local $$53) (get_local $$7) (i64.select - (get_local $$53) + (get_local $$49) (i64.or - (get_local $$55) - (get_local $$54) + (get_local $$51) + (get_local $$50) ) - (get_local $$56) + (get_local $$52) ) ) (i64.select - (get_local $$58) - (get_local $$59) - (get_local $$51) + (get_local $$54) + (get_local $$55) + (i64.const 0) ) ) (i64.select - (get_local $$52) + (get_local $$48) (get_local $$3) (i64.select - (get_local $$50) + (get_local $$47) (i64.or - (get_local $$49) (get_local $$34) + (get_local $$42) ) - (get_local $$36) + (get_local $$46) ) ) ) @@ -3472,87 +3448,87 @@ (i32.const 104) ) (i64.select - (get_local $$70) + (get_local $$66) (get_local $$14) (i64.select - (get_local $$77) + (get_local $$73) (i64.or (i64.select - (get_local $$70) + (get_local $$66) (get_local $$14) (i64.select - (get_local $$73) + (get_local $$69) (i64.or (i64.select - (get_local $$66) - (get_local $$146) - (get_local $$51) + (get_local $$62) + (get_local $$144) + (i64.const 0) ) (i64.select - (get_local $$113) + (get_local $$110) (get_local $$10) (i64.select - (get_local $$71) + (get_local $$67) (i64.or - (get_local $$47) - (get_local $$45) + (get_local $$44) + (get_local $$43) ) - (get_local $$145) + (get_local $$143) ) ) ) (i64.select - (get_local $$61) - (get_local $$147) - (get_local $$51) + (get_local $$57) + (get_local $$145) + (i64.const 0) ) ) ) (i64.select - (get_local $$76) + (get_local $$72) (i64.select - (get_local $$96) + (get_local $$93) (get_local $$6) (i64.select - (get_local $$74) + (get_local $$70) (i64.or - (get_local $$142) - (get_local $$143) + (get_local $$140) + (get_local $$141) ) - (get_local $$144) + (get_local $$142) ) ) - (get_local $$51) + (i64.const 0) ) ) (i64.select - (get_local $$57) + (get_local $$53) (get_local $$6) (i64.select - (get_local $$60) + (get_local $$56) (i64.or (i64.select - (get_local $$53) + (get_local $$49) (get_local $$37) - (get_local $$51) + (i64.const 0) ) (i64.select - (get_local $$139) + (get_local $$137) (get_local $$2) (i64.select - (get_local $$58) + (get_local $$54) (i64.or - (get_local $$148) - (get_local $$149) + (get_local $$146) + (get_local $$147) ) - (get_local $$150) + (get_local $$148) ) ) ) (i64.select - (get_local $$50) - (get_local $$151) - (get_local $$51) + (get_local $$47) + (get_local $$149) + (i64.const 0) ) ) ) @@ -3565,87 +3541,87 @@ (i32.const 96) ) (i64.select - (get_local $$70) + (get_local $$66) (get_local $$13) (i64.select - (get_local $$77) + (get_local $$73) (i64.or (i64.select - (get_local $$70) + (get_local $$66) (get_local $$13) (i64.select - (get_local $$73) + (get_local $$69) (i64.or (i64.select - (get_local $$66) - (get_local $$134) - (get_local $$51) + (get_local $$62) + (get_local $$132) + (i64.const 0) ) (i64.select - (get_local $$113) + (get_local $$110) (get_local $$9) (i64.select - (get_local $$71) + (get_local $$67) (i64.or - (get_local $$131) - (get_local $$132) + (get_local $$129) + (get_local $$130) ) - (get_local $$133) + (get_local $$131) ) ) ) (i64.select - (get_local $$61) - (get_local $$135) - (get_local $$51) + (get_local $$57) + (get_local $$133) + (i64.const 0) ) ) ) (i64.select - (get_local $$76) + (get_local $$72) (i64.select - (get_local $$96) + (get_local $$93) (get_local $$5) (i64.select - (get_local $$74) + (get_local $$70) (i64.or - (get_local $$128) - (get_local $$129) + (get_local $$126) + (get_local $$127) ) - (get_local $$130) + (get_local $$128) ) ) - (get_local $$51) + (i64.const 0) ) ) (i64.select - (get_local $$57) + (get_local $$53) (get_local $$5) (i64.select - (get_local $$60) + (get_local $$56) (i64.or (i64.select - (get_local $$53) - (get_local $$140) - (get_local $$51) + (get_local $$49) + (get_local $$138) + (i64.const 0) ) (i64.select - (get_local $$139) + (get_local $$137) (get_local $$1) (i64.select - (get_local $$58) + (get_local $$54) (i64.or - (get_local $$136) - (get_local $$137) + (get_local $$134) + (get_local $$135) ) - (get_local $$138) + (get_local $$136) ) ) ) (i64.select - (get_local $$50) - (get_local $$141) - (get_local $$51) + (get_local $$47) + (get_local $$139) + (i64.const 0) ) ) ) @@ -3658,67 +3634,67 @@ (i32.const 72) ) (i64.select - (get_local $$70) + (get_local $$66) (get_local $$10) (i64.select - (get_local $$77) + (get_local $$73) (i64.or (i64.select - (get_local $$73) + (get_local $$69) (i64.select - (get_local $$66) - (get_local $$126) - (get_local $$51) + (get_local $$62) + (get_local $$124) + (i64.const 0) ) - (get_local $$51) + (i64.const 0) ) (i64.select - (get_local $$96) + (get_local $$93) (get_local $$2) (i64.select - (get_local $$76) + (get_local $$72) (i64.or (i64.select - (get_local $$96) + (get_local $$93) (get_local $$2) (i64.select - (get_local $$74) + (get_local $$70) (i64.or - (get_local $$122) - (get_local $$123) + (get_local $$120) + (get_local $$121) ) - (get_local $$124) + (get_local $$122) ) ) (i64.select - (get_local $$89) - (get_local $$125) - (get_local $$51) + (get_local $$86) + (get_local $$123) + (i64.const 0) ) ) (i64.select - (get_local $$113) + (get_local $$110) (get_local $$6) (i64.select - (get_local $$71) + (get_local $$67) (i64.or - (get_local $$119) - (get_local $$120) + (get_local $$117) + (get_local $$118) ) - (get_local $$121) + (get_local $$119) ) ) ) ) ) (i64.select - (get_local $$60) + (get_local $$56) (i64.select - (get_local $$53) - (get_local $$127) - (get_local $$51) + (get_local $$49) + (get_local $$125) + (i64.const 0) ) - (get_local $$51) + (i64.const 0) ) ) ) @@ -3729,67 +3705,67 @@ (i32.const 64) ) (i64.select - (get_local $$70) + (get_local $$66) (get_local $$9) (i64.select - (get_local $$77) + (get_local $$73) (i64.or (i64.select - (get_local $$73) + (get_local $$69) (i64.select - (get_local $$66) - (get_local $$46) - (get_local $$51) + (get_local $$62) + (get_local $$115) + (i64.const 0) ) - (get_local $$51) + (i64.const 0) ) (i64.select - (get_local $$96) + (get_local $$93) (get_local $$1) (i64.select - (get_local $$76) + (get_local $$72) (i64.or (i64.select - (get_local $$96) + (get_local $$93) (get_local $$1) (i64.select - (get_local $$74) + (get_local $$70) (i64.or - (get_local $$114) - (get_local $$115) + (get_local $$111) + (get_local $$112) ) - (get_local $$116) + (get_local $$113) ) ) (i64.select - (get_local $$89) - (get_local $$117) - (get_local $$51) + (get_local $$86) + (get_local $$114) + (i64.const 0) ) ) (i64.select - (get_local $$113) + (get_local $$110) (get_local $$5) (i64.select - (get_local $$71) + (get_local $$67) (i64.or - (get_local $$110) - (get_local $$111) + (get_local $$107) + (get_local $$108) ) - (get_local $$112) + (get_local $$109) ) ) ) ) ) (i64.select - (get_local $$60) + (get_local $$56) (i64.select - (get_local $$53) - (get_local $$118) - (get_local $$51) + (get_local $$49) + (get_local $$116) + (i64.const 0) ) - (get_local $$51) + (i64.const 0) ) ) ) @@ -3800,74 +3776,74 @@ (i32.const 88) ) (i64.select - (get_local $$70) + (get_local $$66) (get_local $$12) (i64.select - (get_local $$77) + (get_local $$73) (i64.or (i64.select - (get_local $$73) + (get_local $$69) (i64.select - (get_local $$70) + (get_local $$66) (get_local $$12) (i64.select - (get_local $$66) + (get_local $$62) (i64.or - (get_local $$100) - (get_local $$101) + (get_local $$97) + (get_local $$98) ) - (get_local $$102) + (get_local $$99) ) ) - (get_local $$51) + (i64.const 0) ) (i64.select - (get_local $$96) + (get_local $$93) (get_local $$4) (i64.select - (get_local $$76) + (get_local $$72) (i64.or (i64.select - (get_local $$74) - (get_local $$48) - (get_local $$51) + (get_local $$70) + (get_local $$45) + (i64.const 0) ) (i64.select - (get_local $$93) + (get_local $$90) (get_local $$8) (i64.select - (get_local $$89) + (get_local $$86) (i64.or - (get_local $$103) - (get_local $$104) + (get_local $$100) + (get_local $$101) ) - (get_local $$105) + (get_local $$102) ) ) ) (i64.select - (get_local $$71) - (get_local $$106) - (get_local $$51) + (get_local $$67) + (get_local $$103) + (i64.const 0) ) ) ) ) (i64.select - (get_local $$60) + (get_local $$56) (i64.select - (get_local $$57) + (get_local $$53) (get_local $$4) (i64.select - (get_local $$53) + (get_local $$49) (i64.or - (get_local $$108) - (get_local $$107) + (get_local $$105) + (get_local $$104) ) - (get_local $$109) + (get_local $$106) ) ) - (get_local $$51) + (i64.const 0) ) ) ) @@ -3878,94 +3854,94 @@ (i32.const 80) ) (i64.select - (get_local $$70) + (get_local $$66) (get_local $$11) (i64.select - (get_local $$77) + (get_local $$73) (i64.or (i64.select - (get_local $$73) + (get_local $$69) (i64.select - (get_local $$70) + (get_local $$66) (get_local $$11) (i64.select - (get_local $$66) + (get_local $$62) (i64.or (get_local $$17) - (get_local $$42) + (get_local $$84) ) - (get_local $$44) + (get_local $$85) ) ) - (get_local $$51) + (i64.const 0) ) (i64.select - (get_local $$96) + (get_local $$93) (get_local $$3) (i64.select - (get_local $$76) + (get_local $$72) (i64.or (i64.select - (get_local $$74) - (get_local $$94) - (get_local $$51) + (get_local $$70) + (get_local $$91) + (i64.const 0) ) (i64.select - (get_local $$93) + (get_local $$90) (get_local $$7) (i64.select - (get_local $$89) + (get_local $$86) (i64.or - (get_local $$90) - (get_local $$91) + (get_local $$87) + (get_local $$88) ) - (get_local $$92) + (get_local $$89) ) ) ) (i64.select - (get_local $$71) - (get_local $$95) - (get_local $$51) + (get_local $$67) + (get_local $$92) + (i64.const 0) ) ) ) ) (i64.select - (get_local $$60) + (get_local $$56) (i64.select - (get_local $$57) + (get_local $$53) (get_local $$3) (i64.select - (get_local $$53) + (get_local $$49) (i64.or - (get_local $$98) - (get_local $$97) + (get_local $$95) + (get_local $$94) ) - (get_local $$99) + (get_local $$96) ) ) - (get_local $$51) + (i64.const 0) ) ) ) ) - (set_local $$183 + (set_local $$181 (i32.const 1024) ) - (set_local $$279 + (set_local $$310 (i32.add - (get_local $$279) - (get_local $$183) + (get_local $$310) + (get_local $$181) ) ) - (set_local $$183 + (set_local $$181 (i32.const 1) ) - (set_local $$279 + (set_local $$310 (i32.store align=4 - (get_local $$183) - (get_local $$279) + (get_local $$181) + (get_local $$310) ) ) (br $fake_return_waka123) diff --git a/test/llvm_autogenerated/llvm-to-s.py b/test/llvm_autogenerated/llvm-to-s.py index aea7d722c..05a03da2b 100755 --- a/test/llvm_autogenerated/llvm-to-s.py +++ b/test/llvm_autogenerated/llvm-to-s.py @@ -57,6 +57,7 @@ def main(args): 'returned', # external global symbol 'vtable', # external global symbol 'offset-folding', # external global symbol + 'address-offsets', # external global symbol ] if name_noext in BLACKLIST: continue diff --git a/test/llvm_autogenerated/load-ext.s b/test/llvm_autogenerated/load-ext.s index a7c4e6810..1bda3b4f7 100644 --- a/test/llvm_autogenerated/load-ext.s +++ b/test/llvm_autogenerated/load-ext.s @@ -7,6 +7,7 @@ sext_i8_i32: .result i32 i32.load8_s $push0=, 0($0) return $pop0 + .endfunc .Lfunc_end0: .size sext_i8_i32, .Lfunc_end0-sext_i8_i32 @@ -17,6 +18,7 @@ zext_i8_i32: .result i32 i32.load8_u $push0=, 0($0) return $pop0 + .endfunc .Lfunc_end1: .size zext_i8_i32, .Lfunc_end1-zext_i8_i32 @@ -27,6 +29,7 @@ sext_i16_i32: .result i32 i32.load16_s $push0=, 0($0) return $pop0 + .endfunc .Lfunc_end2: .size sext_i16_i32, .Lfunc_end2-sext_i16_i32 @@ -37,6 +40,7 @@ zext_i16_i32: .result i32 i32.load16_u $push0=, 0($0) return $pop0 + .endfunc .Lfunc_end3: .size zext_i16_i32, .Lfunc_end3-zext_i16_i32 @@ -47,6 +51,7 @@ sext_i8_i64: .result i64 i64.load8_s $push0=, 0($0) return $pop0 + .endfunc .Lfunc_end4: .size sext_i8_i64, .Lfunc_end4-sext_i8_i64 @@ -57,6 +62,7 @@ zext_i8_i64: .result i64 i64.load8_u $push0=, 0($0) return $pop0 + .endfunc .Lfunc_end5: .size zext_i8_i64, .Lfunc_end5-zext_i8_i64 @@ -67,6 +73,7 @@ sext_i16_i64: .result i64 i64.load16_s $push0=, 0($0) return $pop0 + .endfunc .Lfunc_end6: .size sext_i16_i64, .Lfunc_end6-sext_i16_i64 @@ -77,6 +84,7 @@ zext_i16_i64: .result i64 i64.load16_u $push0=, 0($0) return $pop0 + .endfunc .Lfunc_end7: .size zext_i16_i64, .Lfunc_end7-zext_i16_i64 @@ -87,6 +95,7 @@ sext_i32_i64: .result i64 i64.load32_s $push0=, 0($0) return $pop0 + .endfunc .Lfunc_end8: .size sext_i32_i64, .Lfunc_end8-sext_i32_i64 @@ -97,8 +106,8 @@ zext_i32_i64: .result i64 i64.load32_u $push0=, 0($0) return $pop0 + .endfunc .Lfunc_end9: .size zext_i32_i64, .Lfunc_end9-zext_i32_i64 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/load-store-i1.s b/test/llvm_autogenerated/load-store-i1.s index 0deb7b440..f5557b6b9 100644 --- a/test/llvm_autogenerated/load-store-i1.s +++ b/test/llvm_autogenerated/load-store-i1.s @@ -7,6 +7,7 @@ load_u_i1_i32: .result i32 i32.load8_u $push0=, 0($0) return $pop0 + .endfunc .Lfunc_end0: .size load_u_i1_i32, .Lfunc_end0-load_u_i1_i32 @@ -15,12 +16,13 @@ load_u_i1_i32: load_s_i1_i32: .param i32 .result i32 - .local i32 - i32.const $1=, 31 i32.load8_u $push0=, 0($0) - i32.shl $push1=, $pop0, $1 - i32.shr_s $push2=, $pop1, $1 - return $pop2 + i32.const $push1=, 31 + i32.shl $push2=, $pop0, $pop1 + i32.const $push4=, 31 + i32.shr_s $push3=, $pop2, $pop4 + return $pop3 + .endfunc .Lfunc_end1: .size load_s_i1_i32, .Lfunc_end1-load_s_i1_i32 @@ -31,6 +33,7 @@ load_u_i1_i64: .result i64 i64.load8_u $push0=, 0($0) return $pop0 + .endfunc .Lfunc_end2: .size load_u_i1_i64, .Lfunc_end2-load_u_i1_i64 @@ -39,12 +42,13 @@ load_u_i1_i64: load_s_i1_i64: .param i32 .result i64 - .local i64 - i64.const $1=, 63 i64.load8_u $push0=, 0($0) - i64.shl $push1=, $pop0, $1 - i64.shr_s $push2=, $pop1, $1 - return $pop2 + i64.const $push1=, 63 + i64.shl $push2=, $pop0, $pop1 + i64.const $push4=, 63 + i64.shr_s $push3=, $pop2, $pop4 + return $pop3 + .endfunc .Lfunc_end3: .size load_s_i1_i64, .Lfunc_end3-load_s_i1_i64 @@ -56,6 +60,7 @@ store_i32_i1: i32.and $push1=, $1, $pop0 i32.store8 $discard=, 0($0), $pop1 return + .endfunc .Lfunc_end4: .size store_i32_i1, .Lfunc_end4-store_i32_i1 @@ -67,8 +72,8 @@ store_i64_i1: i64.and $push1=, $1, $pop0 i64.store8 $discard=, 0($0), $pop1 return + .endfunc .Lfunc_end5: .size store_i64_i1, .Lfunc_end5-store_i64_i1 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/load-store-i1.wast b/test/llvm_autogenerated/load-store-i1.wast index 863384950..63156af87 100644 --- a/test/llvm_autogenerated/load-store-i1.wast +++ b/test/llvm_autogenerated/load-store-i1.wast @@ -18,21 +18,17 @@ ) ) (func $load_s_i1_i32 (param $$0 i32) (result i32) - (local $$1 i32) (block $fake_return_waka123 (block - (set_local $$1 - (i32.const 31) - ) (br $fake_return_waka123 (i32.shr_s (i32.shl (i32.load8_u align=1 (get_local $$0) ) - (get_local $$1) + (i32.const 31) ) - (get_local $$1) + (i32.const 31) ) ) ) @@ -50,21 +46,17 @@ ) ) (func $load_s_i1_i64 (param $$0 i32) (result i64) - (local $$1 i64) (block $fake_return_waka123 (block - (set_local $$1 - (i64.const 63) - ) (br $fake_return_waka123 (i64.shr_s (i64.shl (i64.load8_u align=1 (get_local $$0) ) - (get_local $$1) + (i64.const 63) ) - (get_local $$1) + (i64.const 63) ) ) ) diff --git a/test/llvm_autogenerated/load.s b/test/llvm_autogenerated/load.s index 98a078c05..f00f83985 100644 --- a/test/llvm_autogenerated/load.s +++ b/test/llvm_autogenerated/load.s @@ -7,6 +7,7 @@ ldi32: .result i32 i32.load $push0=, 0($0) return $pop0 + .endfunc .Lfunc_end0: .size ldi32, .Lfunc_end0-ldi32 @@ -17,6 +18,7 @@ ldi64: .result i64 i64.load $push0=, 0($0) return $pop0 + .endfunc .Lfunc_end1: .size ldi64, .Lfunc_end1-ldi64 @@ -27,6 +29,7 @@ ldf32: .result f32 f32.load $push0=, 0($0) return $pop0 + .endfunc .Lfunc_end2: .size ldf32, .Lfunc_end2-ldf32 @@ -37,8 +40,8 @@ ldf64: .result f64 f64.load $push0=, 0($0) return $pop0 + .endfunc .Lfunc_end3: .size ldf64, .Lfunc_end3-ldf64 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/memory-addr32.s b/test/llvm_autogenerated/memory-addr32.s index 7cc7655bc..f693e4769 100644 --- a/test/llvm_autogenerated/memory-addr32.s +++ b/test/llvm_autogenerated/memory-addr32.s @@ -6,6 +6,7 @@ memory_size: .result i32 memory_size $push0= return $pop0 + .endfunc .Lfunc_end0: .size memory_size, .Lfunc_end0-memory_size @@ -15,8 +16,8 @@ grow_memory: .param i32 grow_memory $0 return + .endfunc .Lfunc_end1: .size grow_memory, .Lfunc_end1-grow_memory - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/memory-addr64.s b/test/llvm_autogenerated/memory-addr64.s index 8f42acc5e..7a8ca3e8e 100644 --- a/test/llvm_autogenerated/memory-addr64.s +++ b/test/llvm_autogenerated/memory-addr64.s @@ -6,6 +6,7 @@ memory_size: .result i64 memory_size $push0= return $pop0 + .endfunc .Lfunc_end0: .size memory_size, .Lfunc_end0-memory_size @@ -15,8 +16,8 @@ grow_memory: .param i64 grow_memory $0 return + .endfunc .Lfunc_end1: .size grow_memory, .Lfunc_end1-grow_memory - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/non-executable-stack.s b/test/llvm_autogenerated/non-executable-stack.s new file mode 100644 index 000000000..a331dc616 --- /dev/null +++ b/test/llvm_autogenerated/non-executable-stack.s @@ -0,0 +1,3 @@ + .text + .file "/s/llvm/llvm/test/CodeGen/WebAssembly/non-executable-stack.ll" + diff --git a/test/llvm_autogenerated/non-executable-stack.wast b/test/llvm_autogenerated/non-executable-stack.wast new file mode 100644 index 000000000..62e304e84 --- /dev/null +++ b/test/llvm_autogenerated/non-executable-stack.wast @@ -0,0 +1,4 @@ +(module + (memory 0 4294967295) +) +;; METADATA: { "asmConsts": {},"staticBump": 4 } diff --git a/test/llvm_autogenerated/offset.s b/test/llvm_autogenerated/offset.s index e1252c121..46f3173de 100644 --- a/test/llvm_autogenerated/offset.s +++ b/test/llvm_autogenerated/offset.s @@ -7,6 +7,7 @@ load_i32_with_folded_offset: .result i32 i32.load $push0=, 24($0) return $pop0 + .endfunc .Lfunc_end0: .size load_i32_with_folded_offset, .Lfunc_end0-load_i32_with_folded_offset @@ -17,6 +18,7 @@ load_i32_with_folded_gep_offset: .result i32 i32.load $push0=, 24($0) return $pop0 + .endfunc .Lfunc_end1: .size load_i32_with_folded_gep_offset, .Lfunc_end1-load_i32_with_folded_gep_offset @@ -29,6 +31,7 @@ load_i32_with_unfolded_gep_negative_offset: i32.add $push1=, $0, $pop0 i32.load $push2=, 0($pop1) return $pop2 + .endfunc .Lfunc_end2: .size load_i32_with_unfolded_gep_negative_offset, .Lfunc_end2-load_i32_with_unfolded_gep_negative_offset @@ -41,6 +44,7 @@ load_i32_with_unfolded_offset: i32.add $push1=, $0, $pop0 i32.load $push2=, 0($pop1) return $pop2 + .endfunc .Lfunc_end3: .size load_i32_with_unfolded_offset, .Lfunc_end3-load_i32_with_unfolded_offset @@ -53,6 +57,7 @@ load_i32_with_unfolded_gep_offset: i32.add $push1=, $0, $pop0 i32.load $push2=, 0($pop1) return $pop2 + .endfunc .Lfunc_end4: .size load_i32_with_unfolded_gep_offset, .Lfunc_end4-load_i32_with_unfolded_gep_offset @@ -63,6 +68,7 @@ load_i64_with_folded_offset: .result i64 i64.load $push0=, 24($0) return $pop0 + .endfunc .Lfunc_end5: .size load_i64_with_folded_offset, .Lfunc_end5-load_i64_with_folded_offset @@ -73,6 +79,7 @@ load_i64_with_folded_gep_offset: .result i64 i64.load $push0=, 24($0) return $pop0 + .endfunc .Lfunc_end6: .size load_i64_with_folded_gep_offset, .Lfunc_end6-load_i64_with_folded_gep_offset @@ -85,6 +92,7 @@ load_i64_with_unfolded_gep_negative_offset: i32.add $push1=, $0, $pop0 i64.load $push2=, 0($pop1) return $pop2 + .endfunc .Lfunc_end7: .size load_i64_with_unfolded_gep_negative_offset, .Lfunc_end7-load_i64_with_unfolded_gep_negative_offset @@ -97,6 +105,7 @@ load_i64_with_unfolded_offset: i32.add $push1=, $0, $pop0 i64.load $push2=, 0($pop1) return $pop2 + .endfunc .Lfunc_end8: .size load_i64_with_unfolded_offset, .Lfunc_end8-load_i64_with_unfolded_offset @@ -109,6 +118,7 @@ load_i64_with_unfolded_gep_offset: i32.add $push1=, $0, $pop0 i64.load $push2=, 0($pop1) return $pop2 + .endfunc .Lfunc_end9: .size load_i64_with_unfolded_gep_offset, .Lfunc_end9-load_i64_with_unfolded_gep_offset @@ -119,6 +129,7 @@ store_i32_with_folded_offset: i32.const $push0=, 0 i32.store $discard=, 24($0), $pop0 return + .endfunc .Lfunc_end10: .size store_i32_with_folded_offset, .Lfunc_end10-store_i32_with_folded_offset @@ -129,6 +140,7 @@ store_i32_with_folded_gep_offset: i32.const $push0=, 0 i32.store $discard=, 24($0), $pop0 return + .endfunc .Lfunc_end11: .size store_i32_with_folded_gep_offset, .Lfunc_end11-store_i32_with_folded_gep_offset @@ -141,6 +153,7 @@ store_i32_with_unfolded_gep_negative_offset: i32.const $push2=, 0 i32.store $discard=, 0($pop1), $pop2 return + .endfunc .Lfunc_end12: .size store_i32_with_unfolded_gep_negative_offset, .Lfunc_end12-store_i32_with_unfolded_gep_negative_offset @@ -153,6 +166,7 @@ store_i32_with_unfolded_offset: i32.const $push2=, 0 i32.store $discard=, 0($pop1), $pop2 return + .endfunc .Lfunc_end13: .size store_i32_with_unfolded_offset, .Lfunc_end13-store_i32_with_unfolded_offset @@ -165,6 +179,7 @@ store_i32_with_unfolded_gep_offset: i32.const $push2=, 0 i32.store $discard=, 0($pop1), $pop2 return + .endfunc .Lfunc_end14: .size store_i32_with_unfolded_gep_offset, .Lfunc_end14-store_i32_with_unfolded_gep_offset @@ -175,6 +190,7 @@ store_i64_with_folded_offset: i64.const $push0=, 0 i64.store $discard=, 24($0), $pop0 return + .endfunc .Lfunc_end15: .size store_i64_with_folded_offset, .Lfunc_end15-store_i64_with_folded_offset @@ -185,6 +201,7 @@ store_i64_with_folded_gep_offset: i64.const $push0=, 0 i64.store $discard=, 24($0), $pop0 return + .endfunc .Lfunc_end16: .size store_i64_with_folded_gep_offset, .Lfunc_end16-store_i64_with_folded_gep_offset @@ -197,6 +214,7 @@ store_i64_with_unfolded_gep_negative_offset: i64.const $push2=, 0 i64.store $discard=, 0($pop1), $pop2 return + .endfunc .Lfunc_end17: .size store_i64_with_unfolded_gep_negative_offset, .Lfunc_end17-store_i64_with_unfolded_gep_negative_offset @@ -209,6 +227,7 @@ store_i64_with_unfolded_offset: i64.const $push2=, 0 i64.store $discard=, 0($pop1), $pop2 return + .endfunc .Lfunc_end18: .size store_i64_with_unfolded_offset, .Lfunc_end18-store_i64_with_unfolded_offset @@ -221,6 +240,7 @@ store_i64_with_unfolded_gep_offset: i64.const $push2=, 0 i64.store $discard=, 0($pop1), $pop2 return + .endfunc .Lfunc_end19: .size store_i64_with_unfolded_gep_offset, .Lfunc_end19-store_i64_with_unfolded_gep_offset @@ -231,6 +251,7 @@ load_i32_from_numeric_address: i32.const $push0=, 0 i32.load $push1=, 42($pop0) return $pop1 + .endfunc .Lfunc_end20: .size load_i32_from_numeric_address, .Lfunc_end20-load_i32_from_numeric_address @@ -241,26 +262,29 @@ load_i32_from_global_address: i32.const $push0=, 0 i32.load $push1=, gv($pop0) return $pop1 + .endfunc .Lfunc_end21: .size load_i32_from_global_address, .Lfunc_end21-load_i32_from_global_address .globl store_i32_to_numeric_address .type store_i32_to_numeric_address,@function store_i32_to_numeric_address: - .local i32 - i32.const $0=, 0 - i32.store $discard=, 42($0), $0 + i32.const $push0=, 0 + i32.const $push1=, 0 + i32.store $discard=, 42($pop0), $pop1 return + .endfunc .Lfunc_end22: .size store_i32_to_numeric_address, .Lfunc_end22-store_i32_to_numeric_address .globl store_i32_to_global_address .type store_i32_to_global_address,@function store_i32_to_global_address: - .local i32 - i32.const $0=, 0 - i32.store $discard=, gv($0), $0 + i32.const $push0=, 0 + i32.const $push1=, 0 + i32.store $discard=, gv($pop0), $pop1 return + .endfunc .Lfunc_end23: .size store_i32_to_global_address, .Lfunc_end23-store_i32_to_global_address @@ -271,6 +295,7 @@ load_i8_s_with_folded_offset: .result i32 i32.load8_s $push0=, 24($0) return $pop0 + .endfunc .Lfunc_end24: .size load_i8_s_with_folded_offset, .Lfunc_end24-load_i8_s_with_folded_offset @@ -281,6 +306,7 @@ load_i8_s_with_folded_gep_offset: .result i32 i32.load8_s $push0=, 24($0) return $pop0 + .endfunc .Lfunc_end25: .size load_i8_s_with_folded_gep_offset, .Lfunc_end25-load_i8_s_with_folded_gep_offset @@ -291,6 +317,7 @@ load_i8_u_with_folded_offset: .result i32 i32.load8_u $push0=, 24($0) return $pop0 + .endfunc .Lfunc_end26: .size load_i8_u_with_folded_offset, .Lfunc_end26-load_i8_u_with_folded_offset @@ -301,6 +328,7 @@ load_i8_u_with_folded_gep_offset: .result i32 i32.load8_u $push0=, 24($0) return $pop0 + .endfunc .Lfunc_end27: .size load_i8_u_with_folded_gep_offset, .Lfunc_end27-load_i8_u_with_folded_gep_offset @@ -311,6 +339,7 @@ store_i8_with_folded_offset: i32.const $push0=, 0 i32.store8 $discard=, 24($0), $pop0 return + .endfunc .Lfunc_end28: .size store_i8_with_folded_offset, .Lfunc_end28-store_i8_with_folded_offset @@ -321,6 +350,7 @@ store_i8_with_folded_gep_offset: i32.const $push0=, 0 i32.store8 $discard=, 24($0), $pop0 return + .endfunc .Lfunc_end29: .size store_i8_with_folded_gep_offset, .Lfunc_end29-store_i8_with_folded_gep_offset @@ -338,6 +368,7 @@ aggregate_load_store: i32.store $discard=, 4($1), $3 i32.store $discard=, 0($1), $2 return + .endfunc .Lfunc_end30: .size aggregate_load_store, .Lfunc_end30-aggregate_load_store @@ -345,15 +376,29 @@ aggregate_load_store: .type aggregate_return,@function aggregate_return: .param i32 - i32.const $push0=, 0 - i32.store $push1=, 12($0), $pop0 - i32.store $push2=, 8($0), $pop1 - i32.store $push3=, 4($0), $pop2 - i32.store $discard=, 0($0), $pop3 + i64.const $push0=, 0 + i64.store $push1=, 8($0):p2align=2, $pop0 + i64.store $discard=, 0($0):p2align=2, $pop1 return + .endfunc .Lfunc_end31: .size aggregate_return, .Lfunc_end31-aggregate_return + .globl aggregate_return_without_merge + .type aggregate_return_without_merge,@function +aggregate_return_without_merge: + .param i32 + i32.const $push0=, 0 + i32.store8 $push1=, 14($0), $pop0 + i32.store16 $push2=, 12($0), $pop1 + i32.store $discard=, 8($0), $pop2 + i64.const $push3=, 0 + i64.store $discard=, 0($0), $pop3 + return + .endfunc +.Lfunc_end32: + .size aggregate_return_without_merge, .Lfunc_end32-aggregate_return_without_merge + .type gv,@object .bss .globl gv @@ -363,4 +408,3 @@ gv: .size gv, 4 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/offset.wast b/test/llvm_autogenerated/offset.wast index 5dea41ca3..759830ffd 100644 --- a/test/llvm_autogenerated/offset.wast +++ b/test/llvm_autogenerated/offset.wast @@ -32,6 +32,7 @@ (export "store_i8_with_folded_gep_offset" $store_i8_with_folded_gep_offset) (export "aggregate_load_store" $aggregate_load_store) (export "aggregate_return" $aggregate_return) + (export "aggregate_return_without_merge" $aggregate_return_without_merge) (func $load_i32_with_folded_offset (param $$0 i32) (result i32) (block $fake_return_waka123 (block @@ -311,30 +312,22 @@ ) ) (func $store_i32_to_numeric_address - (local $$0 i32) (block $fake_return_waka123 (block - (set_local $$0 - (i32.const 0) - ) (i32.store offset=42 align=4 - (get_local $$0) - (get_local $$0) + (i32.const 0) + (i32.const 0) ) (br $fake_return_waka123) ) ) ) (func $store_i32_to_global_address - (local $$0 i32) (block $fake_return_waka123 (block - (set_local $$0 - (i32.const 0) - ) (i32.store offset=8 align=4 - (get_local $$0) - (get_local $$0) + (i32.const 0) + (i32.const 0) ) (br $fake_return_waka123) ) @@ -452,19 +445,34 @@ (func $aggregate_return (param $$0 i32) (block $fake_return_waka123 (block - (i32.store align=4 + (i64.store align=4 + (get_local $$0) + (i64.store offset=8 align=4 + (get_local $$0) + (i64.const 0) + ) + ) + (br $fake_return_waka123) + ) + ) + ) + (func $aggregate_return_without_merge (param $$0 i32) + (block $fake_return_waka123 + (block + (i32.store offset=8 align=4 (get_local $$0) - (i32.store offset=4 align=4 + (i32.store offset=12 align=16 (get_local $$0) - (i32.store offset=8 align=4 + (i32.store offset=14 align=8 (get_local $$0) - (i32.store offset=12 align=4 - (get_local $$0) - (i32.const 0) - ) + (i32.const 0) ) ) ) + (i64.store align=8 + (get_local $$0) + (i64.const 0) + ) (br $fake_return_waka123) ) ) diff --git a/test/llvm_autogenerated/phi.s b/test/llvm_autogenerated/phi.s index b29451aaf..4a3a6d522 100644 --- a/test/llvm_autogenerated/phi.s +++ b/test/llvm_autogenerated/phi.s @@ -14,6 +14,7 @@ test0: .LBB0_2: end_block return $0 + .endfunc .Lfunc_end0: .size test0, .Lfunc_end0-test0 @@ -22,23 +23,23 @@ test0: test1: .param i32 .result i32 - .local i32, i32, i32, i32, i32 - i32.const $2=, 1 - i32.const $3=, 0 - copy_local $4=, $2 - copy_local $5=, $3 + .local i32, i32, i32, i32 + i32.const $2=, 0 + i32.const $3=, 1 + i32.const $4=, 0 .LBB1_1: loop - copy_local $1=, $4 - copy_local $4=, $3 - i32.add $5=, $5, $2 - copy_local $3=, $1 - i32.lt_s $push0=, $5, $0 + copy_local $1=, $3 + copy_local $3=, $2 + i32.const $push1=, 1 + i32.add $4=, $4, $pop1 + copy_local $2=, $1 + i32.lt_s $push0=, $4, $0 br_if $pop0, 0 end_loop - return $4 + return $3 + .endfunc .Lfunc_end1: .size test1, .Lfunc_end1-test1 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/phi.wast b/test/llvm_autogenerated/phi.wast index 65bd501d8..c1d4d5c2c 100644 --- a/test/llvm_autogenerated/phi.wast +++ b/test/llvm_autogenerated/phi.wast @@ -31,47 +31,43 @@ (local $$2 i32) (local $$3 i32) (local $$4 i32) - (local $$5 i32) (block $fake_return_waka123 (block (set_local $$2 - (i32.const 1) + (i32.const 0) ) (set_local $$3 - (i32.const 0) + (i32.const 1) ) (set_local $$4 - (get_local $$2) - ) - (set_local $$5 - (get_local $$3) + (i32.const 0) ) (loop $label$1 $label$0 (set_local $$1 - (get_local $$4) - ) - (set_local $$4 (get_local $$3) ) - (set_local $$5 + (set_local $$3 + (get_local $$2) + ) + (set_local $$4 (i32.add - (get_local $$5) - (get_local $$2) + (get_local $$4) + (i32.const 1) ) ) - (set_local $$3 + (set_local $$2 (get_local $$1) ) (br_if (i32.lt_s - (get_local $$5) + (get_local $$4) (get_local $$0) ) $label$0 ) ) (br $fake_return_waka123 - (get_local $$4) + (get_local $$3) ) ) ) diff --git a/test/llvm_autogenerated/reg-stackify.s b/test/llvm_autogenerated/reg-stackify.s index 1fffec602..38ebc93f4 100644 --- a/test/llvm_autogenerated/reg-stackify.s +++ b/test/llvm_autogenerated/reg-stackify.s @@ -9,6 +9,7 @@ no0: i32.const $push0=, 0 i32.store $discard=, 0($0), $pop0 return $1 + .endfunc .Lfunc_end0: .size no0, .Lfunc_end0-no0 @@ -21,6 +22,7 @@ no1: i32.const $push0=, 0 i32.store $discard=, 0($0), $pop0 return $1 + .endfunc .Lfunc_end1: .size no1, .Lfunc_end1-no1 @@ -33,6 +35,7 @@ yes0: i32.store $discard=, 0($0), $pop1 i32.load $push0=, 0($1) return $pop0 + .endfunc .Lfunc_end2: .size yes0, .Lfunc_end2-yes0 @@ -43,6 +46,7 @@ yes1: .result i32 i32.load $push0=, 0($0) return $pop0 + .endfunc .Lfunc_end3: .size yes1, .Lfunc_end3-yes1 @@ -51,24 +55,28 @@ yes1: stack_uses: .param i32, i32, i32, i32 .result i32 - .local i32, i32 - i32.const $5=, 2 - i32.const $4=, 1 block - i32.lt_s $push0=, $0, $4 - i32.lt_s $push1=, $1, $5 - i32.xor $push4=, $pop0, $pop1 - i32.lt_s $push2=, $2, $4 - i32.lt_s $push3=, $3, $5 - i32.xor $push5=, $pop2, $pop3 - i32.xor $push6=, $pop4, $pop5 - i32.ne $push7=, $pop6, $4 - br_if $pop7, 0 - i32.const $push8=, 0 - return $pop8 + i32.const $push13=, 1 + i32.lt_s $push0=, $0, $pop13 + i32.const $push1=, 2 + i32.lt_s $push2=, $1, $pop1 + i32.xor $push5=, $pop0, $pop2 + i32.const $push12=, 1 + i32.lt_s $push3=, $2, $pop12 + i32.const $push11=, 2 + i32.lt_s $push4=, $3, $pop11 + i32.xor $push6=, $pop3, $pop4 + i32.xor $push7=, $pop5, $pop6 + i32.const $push10=, 1 + i32.ne $push8=, $pop7, $pop10 + br_if $pop8, 0 + i32.const $push9=, 0 + return $pop9 .LBB4_2: end_block - return $4 + i32.const $push14=, 1 + return $pop14 + .endfunc .Lfunc_end4: .size stack_uses, .Lfunc_end4-stack_uses @@ -87,8 +95,24 @@ multiple_uses: .LBB5_3: end_block return + .endfunc .Lfunc_end5: .size multiple_uses, .Lfunc_end5-multiple_uses + .hidden stackify_store_across_side_effects + .globl stackify_store_across_side_effects + .type stackify_store_across_side_effects,@function +stackify_store_across_side_effects: + .param i32 + .local i64 + i64.const $push0=, 4611686018427387904 + i64.store $1=, 0($0), $pop0 + call evoke_side_effects@FUNCTION + i64.store $discard=, 0($0), $1 + call evoke_side_effects@FUNCTION + return + .endfunc +.Lfunc_end6: + .size stackify_store_across_side_effects, .Lfunc_end6-stackify_store_across_side_effects + - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/reg-stackify.wast b/test/llvm_autogenerated/reg-stackify.wast index 2952ef1be..3a367ac52 100644 --- a/test/llvm_autogenerated/reg-stackify.wast +++ b/test/llvm_autogenerated/reg-stackify.wast @@ -1,11 +1,14 @@ (module (memory 0 4294967295) + (type $FUNCSIG$v (func)) + (import $evoke_side_effects "env" "evoke_side_effects") (export "no0" $no0) (export "no1" $no1) (export "yes0" $yes0) (export "yes1" $yes1) (export "stack_uses" $stack_uses) (export "multiple_uses" $multiple_uses) + (export "stackify_store_across_side_effects" $stackify_store_across_side_effects) (func $no0 (param $$0 i32) (param $$1 i32) (result i32) (block $fake_return_waka123 (block @@ -69,16 +72,8 @@ ) ) (func $stack_uses (param $$0 i32) (param $$1 i32) (param $$2 i32) (param $$3 i32) (result i32) - (local $$4 i32) - (local $$5 i32) (block $fake_return_waka123 (block - (set_local $$5 - (i32.const 2) - ) - (set_local $$4 - (i32.const 1) - ) (block $label$0 (br_if (i32.ne @@ -86,25 +81,25 @@ (i32.xor (i32.lt_s (get_local $$0) - (get_local $$4) + (i32.const 1) ) (i32.lt_s (get_local $$1) - (get_local $$5) + (i32.const 2) ) ) (i32.xor (i32.lt_s (get_local $$2) - (get_local $$4) + (i32.const 1) ) (i32.lt_s (get_local $$3) - (get_local $$5) + (i32.const 2) ) ) ) - (get_local $$4) + (i32.const 1) ) $label$0 ) @@ -113,7 +108,7 @@ ) ) (br $fake_return_waka123 - (get_local $$4) + (i32.const 1) ) ) ) @@ -151,5 +146,25 @@ ) ) ) + (func $stackify_store_across_side_effects (param $$0 i32) + (local $$1 i64) + (block $fake_return_waka123 + (block + (set_local $$1 + (i64.store align=8 + (get_local $$0) + (i64.const 4611686018427387904) + ) + ) + (call_import $evoke_side_effects) + (i64.store align=8 + (get_local $$0) + (get_local $$1) + ) + (call_import $evoke_side_effects) + (br $fake_return_waka123) + ) + ) + ) ) ;; METADATA: { "asmConsts": {},"staticBump": 4 } diff --git a/test/llvm_autogenerated/return-int32.s b/test/llvm_autogenerated/return-int32.s index ebe7a1af2..1083e3a1d 100644 --- a/test/llvm_autogenerated/return-int32.s +++ b/test/llvm_autogenerated/return-int32.s @@ -6,8 +6,8 @@ return_i32: .param i32 .result i32 return $0 + .endfunc .Lfunc_end0: .size return_i32, .Lfunc_end0-return_i32 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/return-void.s b/test/llvm_autogenerated/return-void.s index 638de33fb..2293d11fc 100644 --- a/test/llvm_autogenerated/return-void.s +++ b/test/llvm_autogenerated/return-void.s @@ -4,8 +4,8 @@ .type return_void,@function return_void: return + .endfunc .Lfunc_end0: .size return_void, .Lfunc_end0-return_void - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/select.s b/test/llvm_autogenerated/select.s index fc5c7bac3..c353bd99d 100644 --- a/test/llvm_autogenerated/select.s +++ b/test/llvm_autogenerated/select.s @@ -7,6 +7,7 @@ select_i32_bool: .result i32 i32.select $push0=, $0, $1, $2 return $pop0 + .endfunc .Lfunc_end0: .size select_i32_bool, .Lfunc_end0-select_i32_bool @@ -17,6 +18,7 @@ select_i32_eq: .result i32 i32.select $push0=, $0, $2, $1 return $pop0 + .endfunc .Lfunc_end1: .size select_i32_eq, .Lfunc_end1-select_i32_eq @@ -27,6 +29,7 @@ select_i32_ne: .result i32 i32.select $push0=, $0, $1, $2 return $pop0 + .endfunc .Lfunc_end2: .size select_i32_ne, .Lfunc_end2-select_i32_ne @@ -37,6 +40,7 @@ select_i64_bool: .result i64 i64.select $push0=, $0, $1, $2 return $pop0 + .endfunc .Lfunc_end3: .size select_i64_bool, .Lfunc_end3-select_i64_bool @@ -47,6 +51,7 @@ select_i64_eq: .result i64 i64.select $push0=, $0, $2, $1 return $pop0 + .endfunc .Lfunc_end4: .size select_i64_eq, .Lfunc_end4-select_i64_eq @@ -57,6 +62,7 @@ select_i64_ne: .result i64 i64.select $push0=, $0, $1, $2 return $pop0 + .endfunc .Lfunc_end5: .size select_i64_ne, .Lfunc_end5-select_i64_ne @@ -67,6 +73,7 @@ select_f32_bool: .result f32 f32.select $push0=, $0, $1, $2 return $pop0 + .endfunc .Lfunc_end6: .size select_f32_bool, .Lfunc_end6-select_f32_bool @@ -77,6 +84,7 @@ select_f32_eq: .result f32 f32.select $push0=, $0, $2, $1 return $pop0 + .endfunc .Lfunc_end7: .size select_f32_eq, .Lfunc_end7-select_f32_eq @@ -87,6 +95,7 @@ select_f32_ne: .result f32 f32.select $push0=, $0, $1, $2 return $pop0 + .endfunc .Lfunc_end8: .size select_f32_ne, .Lfunc_end8-select_f32_ne @@ -97,6 +106,7 @@ select_f64_bool: .result f64 f64.select $push0=, $0, $1, $2 return $pop0 + .endfunc .Lfunc_end9: .size select_f64_bool, .Lfunc_end9-select_f64_bool @@ -107,6 +117,7 @@ select_f64_eq: .result f64 f64.select $push0=, $0, $2, $1 return $pop0 + .endfunc .Lfunc_end10: .size select_f64_eq, .Lfunc_end10-select_f64_eq @@ -117,8 +128,8 @@ select_f64_ne: .result f64 f64.select $push0=, $0, $1, $2 return $pop0 + .endfunc .Lfunc_end11: .size select_f64_ne, .Lfunc_end11-select_f64_ne - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/signext-zeroext.s b/test/llvm_autogenerated/signext-zeroext.s index 395166900..6a35e7461 100644 --- a/test/llvm_autogenerated/signext-zeroext.s +++ b/test/llvm_autogenerated/signext-zeroext.s @@ -5,11 +5,12 @@ z2s_func: .param i32 .result i32 - .local i32 - i32.const $1=, 24 - i32.shl $push0=, $0, $1 - i32.shr_s $push1=, $pop0, $1 - return $pop1 + i32.const $push0=, 24 + i32.shl $push1=, $0, $pop0 + i32.const $push3=, 24 + i32.shr_s $push2=, $pop1, $pop3 + return $pop2 + .endfunc .Lfunc_end0: .size z2s_func, .Lfunc_end0-z2s_func @@ -21,6 +22,7 @@ s2z_func: i32.const $push0=, 255 i32.and $push1=, $0, $pop0 return $pop1 + .endfunc .Lfunc_end1: .size s2z_func, .Lfunc_end1-s2z_func @@ -33,6 +35,7 @@ z2s_call: i32.and $push1=, $0, $pop0 i32.call $push2=, z2s_func@FUNCTION, $pop1 return $pop2 + .endfunc .Lfunc_end2: .size z2s_call, .Lfunc_end2-z2s_call @@ -41,16 +44,18 @@ z2s_call: s2z_call: .param i32 .result i32 - .local i32 - i32.const $1=, 24 - i32.shl $push0=, $0, $1 - i32.shr_s $push1=, $pop0, $1 - i32.call $push2=, s2z_func@FUNCTION, $pop1 - i32.shl $push3=, $pop2, $1 - i32.shr_s $push4=, $pop3, $1 - return $pop4 + i32.const $push0=, 24 + i32.shl $push1=, $0, $pop0 + i32.const $push8=, 24 + i32.shr_s $push2=, $pop1, $pop8 + i32.call $push3=, s2z_func@FUNCTION, $pop2 + i32.const $push7=, 24 + i32.shl $push4=, $pop3, $pop7 + i32.const $push6=, 24 + i32.shr_s $push5=, $pop4, $pop6 + return $pop5 + .endfunc .Lfunc_end3: .size s2z_call, .Lfunc_end3-s2z_call - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/signext-zeroext.wast b/test/llvm_autogenerated/signext-zeroext.wast index 2344c33be..31f6fe75c 100644 --- a/test/llvm_autogenerated/signext-zeroext.wast +++ b/test/llvm_autogenerated/signext-zeroext.wast @@ -5,19 +5,15 @@ (export "z2s_call" $z2s_call) (export "s2z_call" $s2z_call) (func $z2s_func (param $$0 i32) (result i32) - (local $$1 i32) (block $fake_return_waka123 (block - (set_local $$1 - (i32.const 24) - ) (br $fake_return_waka123 (i32.shr_s (i32.shl (get_local $$0) - (get_local $$1) + (i32.const 24) ) - (get_local $$1) + (i32.const 24) ) ) ) @@ -50,12 +46,8 @@ ) ) (func $s2z_call (param $$0 i32) (result i32) - (local $$1 i32) (block $fake_return_waka123 (block - (set_local $$1 - (i32.const 24) - ) (br $fake_return_waka123 (i32.shr_s (i32.shl @@ -63,14 +55,14 @@ (i32.shr_s (i32.shl (get_local $$0) - (get_local $$1) + (i32.const 24) ) - (get_local $$1) + (i32.const 24) ) ) - (get_local $$1) + (i32.const 24) ) - (get_local $$1) + (i32.const 24) ) ) ) diff --git a/test/llvm_autogenerated/store-results.s b/test/llvm_autogenerated/store-results.s index f574cf7a7..dcb525654 100644 --- a/test/llvm_autogenerated/store-results.s +++ b/test/llvm_autogenerated/store-results.s @@ -8,44 +8,49 @@ single_block: i32.const $push0=, 0 i32.store $push1=, 0($0), $pop0 return $pop1 + .endfunc .Lfunc_end0: .size single_block, .Lfunc_end0-single_block .globl foo .type foo,@function foo: - .local i32, i32 + .local i32 i32.const $0=, 0 - copy_local $1=, $0 .LBB1_1: loop - i32.const $push0=, 1 - i32.add $1=, $1, $pop0 - i32.store $discard=, pos($0), $0 + i32.const $push4=, 0 + i32.const $push3=, 0 + i32.store $discard=, pos($pop4), $pop3 + i32.const $push2=, 1 + i32.add $0=, $0, $pop2 i32.const $push1=, 256 - i32.ne $push2=, $1, $pop1 - br_if $pop2, 0 + i32.ne $push0=, $0, $pop1 + br_if $pop0, 0 end_loop return + .endfunc .Lfunc_end1: .size foo, .Lfunc_end1-foo .globl bar .type bar,@function bar: - .local i32, f32 - f32.const $1=, 0x0p0 - i32.const $0=, 0 + .local f32 + f32.const $0=, 0x0p0 .LBB2_1: loop - i32.store $discard=, pos($0), $0 - f32.const $push0=, 0x1p0 - f32.add $1=, $1, $pop0 + i32.const $push4=, 0 + i32.const $push3=, 0 + i32.store $discard=, pos($pop4), $pop3 + f32.const $push2=, 0x1p0 + f32.add $0=, $0, $pop2 f32.const $push1=, 0x1p8 - f32.ne $push2=, $1, $pop1 - br_if $pop2, 0 + f32.ne $push0=, $0, $pop1 + br_if $pop0, 0 end_loop return + .endfunc .Lfunc_end2: .size bar, .Lfunc_end2-bar @@ -58,4 +63,3 @@ pos: .size pos, 12 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/store-results.wast b/test/llvm_autogenerated/store-results.wast index 544a8c30a..17ca8effa 100644 --- a/test/llvm_autogenerated/store-results.wast +++ b/test/llvm_autogenerated/store-results.wast @@ -17,29 +17,25 @@ ) (func $foo (local $$0 i32) - (local $$1 i32) (block $fake_return_waka123 (block (set_local $$0 (i32.const 0) ) - (set_local $$1 - (get_local $$0) - ) (loop $label$1 $label$0 - (set_local $$1 + (i32.store offset=8 align=4 + (i32.const 0) + (i32.const 0) + ) + (set_local $$0 (i32.add - (get_local $$1) + (get_local $$0) (i32.const 1) ) ) - (i32.store offset=8 align=4 - (get_local $$0) - (get_local $$0) - ) (br_if (i32.ne - (get_local $$1) + (get_local $$0) (i32.const 256) ) $label$0 @@ -50,30 +46,26 @@ ) ) (func $bar - (local $$0 i32) - (local $$1 f32) + (local $$0 f32) (block $fake_return_waka123 (block - (set_local $$1 - (f32.const 0) - ) (set_local $$0 - (i32.const 0) + (f32.const 0) ) (loop $label$1 $label$0 (i32.store offset=8 align=4 - (get_local $$0) - (get_local $$0) + (i32.const 0) + (i32.const 0) ) - (set_local $$1 + (set_local $$0 (f32.add - (get_local $$1) + (get_local $$0) (f32.const 1) ) ) (br_if (f32.ne - (get_local $$1) + (get_local $$0) (f32.const 256) ) $label$0 diff --git a/test/llvm_autogenerated/store-trunc.s b/test/llvm_autogenerated/store-trunc.s index fd5e43b71..423e3ac6b 100644 --- a/test/llvm_autogenerated/store-trunc.s +++ b/test/llvm_autogenerated/store-trunc.s @@ -6,6 +6,7 @@ trunc_i8_i32: .param i32, i32 i32.store8 $discard=, 0($0), $1 return + .endfunc .Lfunc_end0: .size trunc_i8_i32, .Lfunc_end0-trunc_i8_i32 @@ -15,6 +16,7 @@ trunc_i16_i32: .param i32, i32 i32.store16 $discard=, 0($0), $1 return + .endfunc .Lfunc_end1: .size trunc_i16_i32, .Lfunc_end1-trunc_i16_i32 @@ -24,6 +26,7 @@ trunc_i8_i64: .param i32, i64 i64.store8 $discard=, 0($0), $1 return + .endfunc .Lfunc_end2: .size trunc_i8_i64, .Lfunc_end2-trunc_i8_i64 @@ -33,6 +36,7 @@ trunc_i16_i64: .param i32, i64 i64.store16 $discard=, 0($0), $1 return + .endfunc .Lfunc_end3: .size trunc_i16_i64, .Lfunc_end3-trunc_i16_i64 @@ -42,8 +46,8 @@ trunc_i32_i64: .param i32, i64 i64.store32 $discard=, 0($0), $1 return + .endfunc .Lfunc_end4: .size trunc_i32_i64, .Lfunc_end4-trunc_i32_i64 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/store.s b/test/llvm_autogenerated/store.s index 9e66aea62..52371d905 100644 --- a/test/llvm_autogenerated/store.s +++ b/test/llvm_autogenerated/store.s @@ -6,6 +6,7 @@ sti32: .param i32, i32 i32.store $discard=, 0($0), $1 return + .endfunc .Lfunc_end0: .size sti32, .Lfunc_end0-sti32 @@ -15,6 +16,7 @@ sti64: .param i32, i64 i64.store $discard=, 0($0), $1 return + .endfunc .Lfunc_end1: .size sti64, .Lfunc_end1-sti64 @@ -24,6 +26,7 @@ stf32: .param i32, f32 f32.store $discard=, 0($0), $1 return + .endfunc .Lfunc_end2: .size stf32, .Lfunc_end2-stf32 @@ -33,8 +36,8 @@ stf64: .param i32, f64 f64.store $discard=, 0($0), $1 return + .endfunc .Lfunc_end3: .size stf64, .Lfunc_end3-stf64 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/switch.s b/test/llvm_autogenerated/switch.s index d64cfd92b..24438e83b 100644 --- a/test/llvm_autogenerated/switch.s +++ b/test/llvm_autogenerated/switch.s @@ -41,6 +41,7 @@ bar32: .LBB0_8: end_block return + .endfunc .Lfunc_end0: .size bar32, .Lfunc_end0-bar32 @@ -86,8 +87,8 @@ bar64: .LBB1_8: end_block return + .endfunc .Lfunc_end1: .size bar64, .Lfunc_end1-bar64 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/unreachable.s b/test/llvm_autogenerated/unreachable.s index 83ec5b4b1..94c5dff17 100644 --- a/test/llvm_autogenerated/unreachable.s +++ b/test/llvm_autogenerated/unreachable.s @@ -6,6 +6,7 @@ f1: .result i32 call abort@FUNCTION unreachable + .endfunc .Lfunc_end0: .size f1, .Lfunc_end0-f1 @@ -14,6 +15,7 @@ f1: f2: unreachable return + .endfunc .Lfunc_end1: .size f2, .Lfunc_end1-f2 @@ -22,8 +24,8 @@ f2: f3: unreachable return + .endfunc .Lfunc_end2: .size f3, .Lfunc_end2-f3 - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/unused-argument.s b/test/llvm_autogenerated/unused-argument.s index 48ab32e38..00d57fba8 100644 --- a/test/llvm_autogenerated/unused-argument.s +++ b/test/llvm_autogenerated/unused-argument.s @@ -6,6 +6,7 @@ unused_first: .param i32, i32 .result i32 return $1 + .endfunc .Lfunc_end0: .size unused_first, .Lfunc_end0-unused_first @@ -15,6 +16,7 @@ unused_second: .param i32, i32 .result i32 return $0 + .endfunc .Lfunc_end1: .size unused_second, .Lfunc_end1-unused_second @@ -23,8 +25,8 @@ unused_second: call_something: i32.call $discard=, return_something@FUNCTION return + .endfunc .Lfunc_end2: .size call_something, .Lfunc_end2-call_something - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/userstack.s b/test/llvm_autogenerated/userstack.s index d77c7bc81..f7916e37c 100644 --- a/test/llvm_autogenerated/userstack.s +++ b/test/llvm_autogenerated/userstack.s @@ -17,6 +17,7 @@ alloca32: i32.const $2=, __stack_pointer i32.store $3=, 0($2), $3 return + .endfunc .Lfunc_end0: .size alloca32, .Lfunc_end0-alloca32 @@ -39,31 +40,33 @@ alloca3264: i32.const $2=, __stack_pointer i32.store $3=, 0($2), $3 return + .endfunc .Lfunc_end1: .size alloca3264, .Lfunc_end1-alloca3264 .globl allocarray .type allocarray,@function allocarray: - .local i32, i32, i32, i32, i32, i32 + .local i32, i32, i32, i32, i32 + i32.const $0=, __stack_pointer + i32.load $0=, 0($0) + i32.const $1=, 32 + i32.sub $4=, $0, $1 i32.const $1=, __stack_pointer - i32.load $1=, 0($1) + i32.store $4=, 0($1), $4 + i32.const $push2=, 12 + i32.const $3=, 12 + i32.add $3=, $4, $3 + i32.add $push3=, $3, $pop2 + i32.const $push0=, 1 + i32.store $push1=, 12($4), $pop0 + i32.store $discard=, 0($pop3), $pop1 i32.const $2=, 32 - i32.sub $5=, $1, $2 + i32.add $4=, $4, $2 i32.const $2=, __stack_pointer - i32.store $5=, 0($2), $5 - i32.const $push0=, 1 - i32.store $0=, 12($5), $pop0 - i32.const $push1=, 4 - i32.const $4=, 12 - i32.add $4=, $5, $4 - i32.add $push2=, $4, $pop1 - i32.store $discard=, 0($pop2), $0 - i32.const $3=, 32 - i32.add $5=, $5, $3 - i32.const $3=, __stack_pointer - i32.store $5=, 0($3), $5 + i32.store $4=, 0($2), $4 return + .endfunc .Lfunc_end2: .size allocarray, .Lfunc_end2-allocarray @@ -79,12 +82,13 @@ allocarray_inbounds: i32.store $3=, 0($1), $3 i32.const $push0=, 1 i32.store $push1=, 12($3), $pop0 - i32.store $discard=, 16($3), $pop1 + i32.store $discard=, 24($3), $pop1 i32.const $2=, 32 i32.add $3=, $3, $2 i32.const $2=, __stack_pointer i32.store $3=, 0($2), $3 return + .endfunc .Lfunc_end3: .size allocarray_inbounds, .Lfunc_end3-allocarray_inbounds @@ -93,8 +97,8 @@ allocarray_inbounds: dynamic_alloca: .param i32 return + .endfunc .Lfunc_end4: .size dynamic_alloca, .Lfunc_end4-dynamic_alloca - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/userstack.wast b/test/llvm_autogenerated/userstack.wast index c0e032e93..df8788cfb 100644 --- a/test/llvm_autogenerated/userstack.wast +++ b/test/llvm_autogenerated/userstack.wast @@ -133,73 +133,69 @@ (local $$2 i32) (local $$3 i32) (local $$4 i32) - (local $$5 i32) (block $fake_return_waka123 (block - (set_local $$1 + (set_local $$0 (i32.const 1) ) - (set_local $$1 + (set_local $$0 (i32.load align=4 - (get_local $$1) + (get_local $$0) ) ) - (set_local $$2 + (set_local $$1 (i32.const 32) ) - (set_local $$5 + (set_local $$4 (i32.sub + (get_local $$0) (get_local $$1) - (get_local $$2) ) ) - (set_local $$2 + (set_local $$1 (i32.const 1) ) - (set_local $$5 + (set_local $$4 (i32.store align=4 - (get_local $$2) - (get_local $$5) - ) - ) - (set_local $$0 - (i32.store offset=12 align=4 - (get_local $$5) - (i32.const 1) + (get_local $$1) + (get_local $$4) ) ) - (set_local $$4 + (set_local $$3 (i32.const 12) ) - (set_local $$4 + (set_local $$3 (i32.add - (get_local $$5) (get_local $$4) + (get_local $$3) ) ) (i32.store align=4 (i32.add + (get_local $$3) + (i32.const 12) + ) + (i32.store offset=12 align=4 (get_local $$4) - (i32.const 4) + (i32.const 1) ) - (get_local $$0) ) - (set_local $$3 + (set_local $$2 (i32.const 32) ) - (set_local $$5 + (set_local $$4 (i32.add - (get_local $$5) - (get_local $$3) + (get_local $$4) + (get_local $$2) ) ) - (set_local $$3 + (set_local $$2 (i32.const 1) ) - (set_local $$5 + (set_local $$4 (i32.store align=4 - (get_local $$3) - (get_local $$5) + (get_local $$2) + (get_local $$4) ) ) (br $fake_return_waka123) @@ -239,7 +235,7 @@ (get_local $$3) ) ) - (i32.store offset=16 align=4 + (i32.store offset=24 align=4 (get_local $$3) (i32.store offset=12 align=4 (get_local $$3) diff --git a/test/llvm_autogenerated/varargs.s b/test/llvm_autogenerated/varargs.s index feb0a2659..2d29fe3de 100644 --- a/test/llvm_autogenerated/varargs.s +++ b/test/llvm_autogenerated/varargs.s @@ -5,6 +5,7 @@ end: .param i32 return + .endfunc .Lfunc_end0: .size end, .Lfunc_end0-end @@ -15,6 +16,7 @@ copy: i32.load $push0=, 0($1) i32.store $discard=, 0($0), $pop0 return + .endfunc .Lfunc_end1: .size copy, .Lfunc_end1-copy @@ -30,6 +32,7 @@ arg_i8: i32.store $discard=, 0($0), $pop1 i32.load $push2=, 0($1) return $pop2 + .endfunc .Lfunc_end2: .size arg_i8, .Lfunc_end2-arg_i8 @@ -49,6 +52,7 @@ arg_i32: i32.store $discard=, 0($0), $pop5 i32.load $push6=, 0($1) return $pop6 + .endfunc .Lfunc_end3: .size arg_i32, .Lfunc_end3-arg_i32 @@ -56,24 +60,26 @@ arg_i32: .type arg_i128,@function arg_i128: .param i32, i32 - .local i32, i32, i32, i64 + .local i32, i32, i64 i32.load $push0=, 0($1) i32.const $push1=, 7 i32.add $push2=, $pop0, $pop1 i32.const $push3=, -8 i32.and $2=, $pop2, $pop3 - i32.const $3=, 8 - i32.add $push4=, $2, $3 - i32.store $4=, 0($1), $pop4 - i64.load $5=, 0($2) - i32.const $push5=, 16 - i32.add $push6=, $2, $pop5 - i32.store $discard=, 0($1), $pop6 - i32.add $push8=, $0, $3 - i64.load $push7=, 0($4) - i64.store $discard=, 0($pop8), $pop7 - i64.store $discard=, 0($0), $5 + i32.const $push4=, 8 + i32.add $push5=, $2, $pop4 + i32.store $3=, 0($1), $pop5 + i64.load $4=, 0($2) + i32.const $push6=, 16 + i32.add $push7=, $2, $pop6 + i32.store $discard=, 0($1), $pop7 + i32.const $push10=, 8 + i32.add $push9=, $0, $pop10 + i64.load $push8=, 0($3) + i64.store $discard=, 0($pop9), $pop8 + i64.store $discard=, 0($0), $4 return + .endfunc .Lfunc_end4: .size arg_i128, .Lfunc_end4-arg_i128 @@ -82,15 +88,46 @@ arg_i128: caller_none: call callee@FUNCTION return + .endfunc .Lfunc_end5: .size caller_none, .Lfunc_end5-caller_none .globl caller_some .type caller_some,@function caller_some: + .local i32, i32, i32, i32, i32, i32, i32, i32, i32 + i32.const $5=, __stack_pointer + i32.load $5=, 0($5) + i32.const $6=, 16 + i32.sub $8=, $5, $6 + i32.const $6=, __stack_pointer + i32.store $8=, 0($6), $8 + i32.const $1=, __stack_pointer + i32.load $1=, 0($1) + i32.const $2=, 16 + i32.sub $8=, $1, $2 + i32.const $2=, __stack_pointer + i32.store $8=, 0($2), $8 + i32.const $push0=, 0 + i32.store $discard=, 0($8), $pop0 + i32.const $push1=, 8 + i32.add $0=, $8, $pop1 + i64.const $push2=, 4611686018427387904 + i64.store $discard=, 0($0), $pop2 + call callee@FUNCTION + i32.const $3=, __stack_pointer + i32.load $3=, 0($3) + i32.const $4=, 16 + i32.add $8=, $3, $4 + i32.const $4=, __stack_pointer + i32.store $8=, 0($4), $8 + i32.const $7=, 16 + i32.add $8=, $8, $7 + i32.const $7=, __stack_pointer + i32.store $8=, 0($7), $8 return + .endfunc .Lfunc_end6: .size caller_some, .Lfunc_end6-caller_some - .section ".note.GNU-stack","",@progbits diff --git a/test/llvm_autogenerated/varargs.wast b/test/llvm_autogenerated/varargs.wast index aaa15d36c..15a5fff1d 100644 --- a/test/llvm_autogenerated/varargs.wast +++ b/test/llvm_autogenerated/varargs.wast @@ -86,8 +86,7 @@ (func $arg_i128 (param $$0 i32) (param $$1 i32) (local $$2 i32) (local $$3 i32) - (local $$4 i32) - (local $$5 i64) + (local $$4 i64) (block $fake_return_waka123 (block (set_local $$2 @@ -102,18 +101,15 @@ ) ) (set_local $$3 - (i32.const 8) - ) - (set_local $$4 (i32.store align=4 (get_local $$1) (i32.add (get_local $$2) - (get_local $$3) + (i32.const 8) ) ) ) - (set_local $$5 + (set_local $$4 (i64.load align=8 (get_local $$2) ) @@ -128,15 +124,15 @@ (i64.store align=8 (i32.add (get_local $$0) - (get_local $$3) + (i32.const 8) ) (i64.load align=8 - (get_local $$4) + (get_local $$3) ) ) (i64.store align=8 (get_local $$0) - (get_local $$5) + (get_local $$4) ) (br $fake_return_waka123) ) @@ -151,8 +147,128 @@ ) ) (func $caller_some + (local $$0 i32) + (local $$1 i32) + (local $$2 i32) + (local $$3 i32) + (local $$4 i32) + (local $$5 i32) + (local $$6 i32) + (local $$7 i32) + (local $$8 i32) (block $fake_return_waka123 (block + (set_local $$5 + (i32.const 1) + ) + (set_local $$5 + (i32.load align=4 + (get_local $$5) + ) + ) + (set_local $$6 + (i32.const 16) + ) + (set_local $$8 + (i32.sub + (get_local $$5) + (get_local $$6) + ) + ) + (set_local $$6 + (i32.const 1) + ) + (set_local $$8 + (i32.store align=4 + (get_local $$6) + (get_local $$8) + ) + ) + (set_local $$1 + (i32.const 1) + ) + (set_local $$1 + (i32.load align=4 + (get_local $$1) + ) + ) + (set_local $$2 + (i32.const 16) + ) + (set_local $$8 + (i32.sub + (get_local $$1) + (get_local $$2) + ) + ) + (set_local $$2 + (i32.const 1) + ) + (set_local $$8 + (i32.store align=4 + (get_local $$2) + (get_local $$8) + ) + ) + (i32.store align=4 + (get_local $$8) + (i32.const 0) + ) + (set_local $$0 + (i32.add + (get_local $$8) + (i32.const 8) + ) + ) + (i64.store align=8 + (get_local $$0) + (i64.const 4611686018427387904) + ) + (call_import $callee) + (set_local $$3 + (i32.const 1) + ) + (set_local $$3 + (i32.load align=4 + (get_local $$3) + ) + ) + (set_local $$4 + (i32.const 16) + ) + (set_local $$8 + (i32.add + (get_local $$3) + (get_local $$4) + ) + ) + (set_local $$4 + (i32.const 1) + ) + (set_local $$8 + (i32.store align=4 + (get_local $$4) + (get_local $$8) + ) + ) + (set_local $$7 + (i32.const 16) + ) + (set_local $$8 + (i32.add + (get_local $$8) + (get_local $$7) + ) + ) + (set_local $$7 + (i32.const 1) + ) + (set_local $$8 + (i32.store align=4 + (get_local $$7) + (get_local $$8) + ) + ) (br $fake_return_waka123) ) ) diff --git a/test/spec b/test/spec -Subproject 60afe7437286317f0926236cef2587dd4aa5d4d +Subproject de27ac1b9f0cdf2b80aa4a26392d2cede1dfdfc |