diff options
author | Alon Zakai <alonzakai@gmail.com> | 2015-12-14 19:02:47 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2015-12-14 19:02:47 -0800 |
commit | 89e0212e5cb1824dc936a5994176de85f259df0b (patch) | |
tree | fc27aa4cad9b6d37fae78b4162a4ba6c2374abce | |
parent | 76617512d2bbffb6abf0a1b3ba13da433c194425 (diff) | |
download | binaryen-89e0212e5cb1824dc936a5994176de85f259df0b.tar.gz binaryen-89e0212e5cb1824dc936a5994176de85f259df0b.tar.bz2 binaryen-89e0212e5cb1824dc936a5994176de85f259df0b.zip |
start to emit metadata from s2wasm
53 files changed, 154 insertions, 2 deletions
diff --git a/auto_update_tests.py b/auto_update_tests.py index 1dee81ea1..b4355329b 100755 --- a/auto_update_tests.py +++ b/auto_update_tests.py @@ -32,7 +32,7 @@ for t in sorted(os.listdir('test')): open(t, 'w').write(actual) -for s in ['minimal.s', 'basics.s', 'call.s', 'conv.s', 'fast-isel.s', 'i64.s', 'load.s', 'phi.s', 'select.s', 'unreachable.s', 'cpus.s', 'frem.s', 'immediates.s', 'load-store-i1.s', 'reg-stackify.s', 'unused-argument.s', 'comparisons_f32.s', 'dead-vreg.s', 'func.s', 'import.s', 'memory-addr32.s', 'store-results.s', 'varargs.s', 'comparisons_f64.s', 'exit.s', 'global.s', 'memory-addr64.s', 'returned.s', 'store.s', 'comparisons_i32.s', 'f32.s', 'globl.s', 'legalize.s', 'offset-folding.s', 'return-int32.s', 'store-trunc.s', 'comparisons_i64.s', 'f64.s', 'i32.s', 'load-ext.s', 'permute.s', 'return-void.s', 'signext-zeroext.s', 'cfg-stackify.s', 'switch.s', 'relocation.s']: # TODO: 'inline-asm.s' +for s in ['minimal.s', 'basics.s', 'asm_const.s', 'call.s', 'conv.s', 'fast-isel.s', 'i64.s', 'load.s', 'phi.s', 'select.s', 'unreachable.s', 'cpus.s', 'frem.s', 'immediates.s', 'load-store-i1.s', 'reg-stackify.s', 'unused-argument.s', 'comparisons_f32.s', 'dead-vreg.s', 'func.s', 'import.s', 'memory-addr32.s', 'store-results.s', 'varargs.s', 'comparisons_f64.s', 'exit.s', 'global.s', 'memory-addr64.s', 'returned.s', 'store.s', 'comparisons_i32.s', 'f32.s', 'globl.s', 'legalize.s', 'offset-folding.s', 'return-int32.s', 'store-trunc.s', 'comparisons_i64.s', 'f64.s', 'i32.s', 'load-ext.s', 'permute.s', 'return-void.s', 'signext-zeroext.s', 'cfg-stackify.s', 'switch.s', 'relocation.s']: # TODO: 'inline-asm.s' print '..', s wasm = s.replace('.s', '.wast') full = os.path.join('test', 'dot_s', s) @@ -214,7 +214,7 @@ for t in spec_tests: print '\n[ checking .s testcases... ]\n' -for s in ['minimal.s', 'basics.s', 'call.s', 'conv.s', 'fast-isel.s', 'i64.s', 'load.s', 'phi.s', 'select.s', 'unreachable.s', 'cpus.s', 'frem.s', 'immediates.s', 'load-store-i1.s', 'reg-stackify.s', 'unused-argument.s', 'comparisons_f32.s', 'dead-vreg.s', 'func.s', 'import.s', 'memory-addr32.s', 'store-results.s', 'varargs.s', 'comparisons_f64.s', 'exit.s', 'global.s', 'memory-addr64.s', 'returned.s', 'store.s', 'comparisons_i32.s', 'f32.s', 'globl.s', 'legalize.s', 'offset-folding.s', 'return-int32.s', 'store-trunc.s', 'comparisons_i64.s', 'f64.s', 'i32.s', 'load-ext.s', 'permute.s', 'return-void.s', 'signext-zeroext.s', 'cfg-stackify.s', 'switch.s', 'relocation.s']: # TODO: 'inline-asm.s' +for s in ['minimal.s', 'basics.s', 'asm_const.s', 'call.s', 'conv.s', 'fast-isel.s', 'i64.s', 'load.s', 'phi.s', 'select.s', 'unreachable.s', 'cpus.s', 'frem.s', 'immediates.s', 'load-store-i1.s', 'reg-stackify.s', 'unused-argument.s', 'comparisons_f32.s', 'dead-vreg.s', 'func.s', 'import.s', 'memory-addr32.s', 'store-results.s', 'varargs.s', 'comparisons_f64.s', 'exit.s', 'global.s', 'memory-addr64.s', 'returned.s', 'store.s', 'comparisons_i32.s', 'f32.s', 'globl.s', 'legalize.s', 'offset-folding.s', 'return-int32.s', 'store-trunc.s', 'comparisons_i64.s', 'f64.s', 'i32.s', 'load-ext.s', 'permute.s', 'return-void.s', 'signext-zeroext.s', 'cfg-stackify.s', 'switch.s', 'relocation.s']: # TODO: 'inline-asm.s' print '..', s wasm = s.replace('.s', '.wast') full = os.path.join('test', 'dot_s', s) diff --git a/src/s2wasm-main.cpp b/src/s2wasm-main.cpp index 78f158509..694dc4a08 100644 --- a/src/s2wasm-main.cpp +++ b/src/s2wasm-main.cpp @@ -37,6 +37,7 @@ int main(int argc, char **argv) { if (debug) std::cerr << "printing...\n"; std::cout << wasm; + s2wasm.printMeta(std::cout); if (debug) std::cerr << "done.\n"; } diff --git a/src/s2wasm.h b/src/s2wasm.h index c21a8b0f8..bdeb78fdd 100644 --- a/src/s2wasm.h +++ b/src/s2wasm.h @@ -11,6 +11,8 @@ namespace wasm { extern int debug; // wasm::debug is set in main(), typically from an env var +cashew::IString EMSCRIPTEN_ASM_CONST("emscripten_asm_const"); + // // S2WasmBuilder - parses a .s file into WebAssembly // @@ -43,6 +45,8 @@ private: std::set<Name> implementedFunctions; + std::map<size_t, size_t> addressSegments; // address => segment index + // utilities void skipWhitespace() { @@ -815,6 +819,7 @@ private: while (nextStatic % align) nextStatic++; // assign the address, add to memory staticAddresses[name] = nextStatic; + addressSegments[nextStatic] = wasm.memory.segments.size(); wasm.memory.segments.emplace_back(nextStatic, (const char*)&(*raw)[0], seenSize); nextStatic += seenSize; } @@ -844,6 +849,59 @@ private: (*(int32_t*)(&(*raw)[0])) = staticAddresses[name]; } } + + template<class C> + void printSet(std::ostream& o, C& c) { + o << "["; + bool first = true; + for (auto& item : c) { + if (first) first = false; + else o << ","; + o << '"' << item << '"'; + } + o << "]"; + } + +public: + + // emit metadata for emscripten integration + void printMeta(std::ostream& o) { + o << "; METADATA: { "; + // find asmConst calls, and emit their metadata + struct AsmConstWalker : public WasmWalker { + S2WasmBuilder* parent; + std::ostream& o; + + std::map<std::string, std::set<std::string>> sigsForCode; + + AsmConstWalker(S2WasmBuilder* parent) : parent(parent), o(o) {} + + void visitCallImport(CallImport* curr) override { + if (curr->target == EMSCRIPTEN_ASM_CONST) { + auto arg = curr->operands[0]->cast<Const>(); + size_t segmentIndex = parent->addressSegments[arg->value.geti32()]; + std::string code = parent->wasm.memory.segments[segmentIndex].data; + std::string sig = getSig(curr); + sigsForCode[code].insert(sig); + } + } + }; + AsmConstWalker walker(this); + walker.startWalk(&wasm); + o << "\"asmConsts\": {"; + bool first = true; + for (auto& pair : walker.sigsForCode) { + auto& code = pair.first; + auto& sigs = pair.second; + if (first) first = false; + else o << ","; + o << '"' << code << '"' << ":"; + printSet(o, sigs); + } + o << "}"; + + o << " }"; + } }; } // namespace wasm diff --git a/src/wasm.h b/src/wasm.h index 37aa495db..afc2cf88c 100644 --- a/src/wasm.h +++ b/src/wasm.h @@ -298,6 +298,12 @@ public: return _id == T()._id ? (T*)this : nullptr; } + template<class T> + T* cast() { + assert(_id == T()._id); + return (T*)this; + } + inline std::ostream& print(std::ostream &o, unsigned indent); // avoid virtual here, for performance friend std::ostream& operator<<(std::ostream &o, Expression* expression) { diff --git a/test/dot_s/asm_const.s b/test/dot_s/asm_const.s new file mode 100644 index 000000000..39df173c4 --- /dev/null +++ b/test/dot_s/asm_const.s @@ -0,0 +1,23 @@ + .text + .file "/tmp/tmpkxUaTH/a.out.bc" + .globl main + .type main,@function +main: # @main + .result i32 +# BB#0: + i32.const $push0=, .str + call emscripten_asm_const, $pop0 + i32.const $push1=, 0 + return $pop1 +func_end0: + .size main, func_end0-main + + .type .str,@object # @.str + .data +.str: + .asciz "{ Module.print(\"hello, world!\"); }" + .size .str, 35 + + + .imports + .import emscripten_asm_const "" emscripten_asm_const (param i32) diff --git a/test/dot_s/asm_const.wast b/test/dot_s/asm_const.wast new file mode 100644 index 000000000..695c480b3 --- /dev/null +++ b/test/dot_s/asm_const.wast @@ -0,0 +1,18 @@ +(module + (memory 0 4294967295 (segment 16 "{ Module.print(\"hello, world!\"); }\00")) + (import $emscripten_asm_const "env" "emscripten_asm_const") + (export "main" $main) + (func $main (result i32) + (block $fake_return_waka123 + (block + (call_import $emscripten_asm_const + (i32.const 16) + ) + (br $fake_return_waka123 + (i32.const 0) + ) + ) + ) + ) +) +; METADATA: { "asmConsts": {"{ Module.print("hello, world!"); }":["vi"]} }
\ No newline at end of file diff --git a/test/dot_s/basics.wast b/test/dot_s/basics.wast index ddae9af5e..1a6af338c 100644 --- a/test/dot_s/basics.wast +++ b/test/dot_s/basics.wast @@ -92,3 +92,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/call.wast b/test/dot_s/call.wast index da72e6a48..527fb34c1 100644 --- a/test/dot_s/call.wast +++ b/test/dot_s/call.wast @@ -134,3 +134,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/cfg-stackify.wast b/test/dot_s/cfg-stackify.wast index 8f583aa90..84440a122 100644 --- a/test/dot_s/cfg-stackify.wast +++ b/test/dot_s/cfg-stackify.wast @@ -1085,3 +1085,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/comparisons_f32.wast b/test/dot_s/comparisons_f32.wast index 238e7d518..75e3af9e5 100644 --- a/test/dot_s/comparisons_f32.wast +++ b/test/dot_s/comparisons_f32.wast @@ -267,3 +267,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/comparisons_f64.wast b/test/dot_s/comparisons_f64.wast index 6d0989994..487d1f298 100644 --- a/test/dot_s/comparisons_f64.wast +++ b/test/dot_s/comparisons_f64.wast @@ -267,3 +267,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/comparisons_i32.wast b/test/dot_s/comparisons_i32.wast index 36b78c85e..84eed3086 100644 --- a/test/dot_s/comparisons_i32.wast +++ b/test/dot_s/comparisons_i32.wast @@ -131,3 +131,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/comparisons_i64.wast b/test/dot_s/comparisons_i64.wast index 6518261fc..c14dca3c8 100644 --- a/test/dot_s/comparisons_i64.wast +++ b/test/dot_s/comparisons_i64.wast @@ -131,3 +131,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/conv.wast b/test/dot_s/conv.wast index 3030b6283..aced20e91 100644 --- a/test/dot_s/conv.wast +++ b/test/dot_s/conv.wast @@ -316,3 +316,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/cpus.wast b/test/dot_s/cpus.wast index 970969f1f..c867c77fb 100644 --- a/test/dot_s/cpus.wast +++ b/test/dot_s/cpus.wast @@ -11,3 +11,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/dead-vreg.wast b/test/dot_s/dead-vreg.wast index ccba272ef..b5559e1ed 100644 --- a/test/dot_s/dead-vreg.wast +++ b/test/dot_s/dead-vreg.wast @@ -111,3 +111,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/exit.wast b/test/dot_s/exit.wast index 423dcfa7b..a79355b67 100644 --- a/test/dot_s/exit.wast +++ b/test/dot_s/exit.wast @@ -11,3 +11,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/f32.wast b/test/dot_s/f32.wast index c51a57de7..21141a396 100644 --- a/test/dot_s/f32.wast +++ b/test/dot_s/f32.wast @@ -203,3 +203,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/f64.wast b/test/dot_s/f64.wast index 093b276af..20866426f 100644 --- a/test/dot_s/f64.wast +++ b/test/dot_s/f64.wast @@ -203,3 +203,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/fast-isel.wast b/test/dot_s/fast-isel.wast index 3254e1013..967ff7776 100644 --- a/test/dot_s/fast-isel.wast +++ b/test/dot_s/fast-isel.wast @@ -21,3 +21,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/frem.wast b/test/dot_s/frem.wast index 5a300f8e3..08622a65a 100644 --- a/test/dot_s/frem.wast +++ b/test/dot_s/frem.wast @@ -29,3 +29,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/func.wast b/test/dot_s/func.wast index b9f62a88c..d0f20d61c 100644 --- a/test/dot_s/func.wast +++ b/test/dot_s/func.wast @@ -72,3 +72,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/global.wast b/test/dot_s/global.wast index 2ae897647..19122c5ed 100644 --- a/test/dot_s/global.wast +++ b/test/dot_s/global.wast @@ -29,3 +29,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/globl.wast b/test/dot_s/globl.wast index 9c57c8f85..571f3d27e 100644 --- a/test/dot_s/globl.wast +++ b/test/dot_s/globl.wast @@ -9,3 +9,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/i32.wast b/test/dot_s/i32.wast index ae9e51085..827ba8725 100644 --- a/test/dot_s/i32.wast +++ b/test/dot_s/i32.wast @@ -230,3 +230,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/i64.wast b/test/dot_s/i64.wast index 58b849db3..a3befb718 100644 --- a/test/dot_s/i64.wast +++ b/test/dot_s/i64.wast @@ -230,3 +230,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/immediates.wast b/test/dot_s/immediates.wast index e326d3d4a..03d4b5b85 100644 --- a/test/dot_s/immediates.wast +++ b/test/dot_s/immediates.wast @@ -241,3 +241,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/import.wast b/test/dot_s/import.wast index f3760ca81..ce68592f1 100644 --- a/test/dot_s/import.wast +++ b/test/dot_s/import.wast @@ -30,3 +30,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/legalize.wast b/test/dot_s/legalize.wast index c7c6263f1..97ba128ab 100644 --- a/test/dot_s/legalize.wast +++ b/test/dot_s/legalize.wast @@ -81,3 +81,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/load-ext.wast b/test/dot_s/load-ext.wast index f640ad7d4..2505adea4 100644 --- a/test/dot_s/load-ext.wast +++ b/test/dot_s/load-ext.wast @@ -121,3 +121,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/load-store-i1.wast b/test/dot_s/load-store-i1.wast index f5f89a2b7..c8728f0ce 100644 --- a/test/dot_s/load-store-i1.wast +++ b/test/dot_s/load-store-i1.wast @@ -99,3 +99,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/load.wast b/test/dot_s/load.wast index 575641c22..9f367eed6 100644 --- a/test/dot_s/load.wast +++ b/test/dot_s/load.wast @@ -61,3 +61,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/memory-addr32.wast b/test/dot_s/memory-addr32.wast index 7acf89d44..d38b88a75 100644 --- a/test/dot_s/memory-addr32.wast +++ b/test/dot_s/memory-addr32.wast @@ -20,3 +20,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/memory-addr64.wast b/test/dot_s/memory-addr64.wast index c8039090d..e95e08681 100644 --- a/test/dot_s/memory-addr64.wast +++ b/test/dot_s/memory-addr64.wast @@ -20,3 +20,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/minimal.wast b/test/dot_s/minimal.wast index 4a098f657..630873c36 100644 --- a/test/dot_s/minimal.wast +++ b/test/dot_s/minimal.wast @@ -11,3 +11,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/offset-folding.wast b/test/dot_s/offset-folding.wast index c20c35565..8cd7dd618 100644 --- a/test/dot_s/offset-folding.wast +++ b/test/dot_s/offset-folding.wast @@ -41,3 +41,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/permute.wast b/test/dot_s/permute.wast index 332d4769b..0f147811f 100644 --- a/test/dot_s/permute.wast +++ b/test/dot_s/permute.wast @@ -1,3 +1,4 @@ (module (memory 0 4294967295 (segment 4 "hE?\8ds\0e7\db[g\8f\955it\c4k\0b\e2\ef\bcld\e0\fd\8c\9e\86&~\d8\94\89+\c8\a4\c2\f2\fb\12\1cej\d99\b7\b3W\c6w\af\ae\caM>\92ub\96\84\b6\b0N\ec;q\11\f7\bf\e31\e6\a7\90\fc\03\e4\aa\d7\cc- \15\83DH\80r\fa\01X\eb:_\00A\cd\e9o`n\ac(\ad\ba0\dcyS#\f4$\"\82\7f}\8e\f6\93L\'\bb\bdZ\ed4\18\f3\c0\cf\ff\a3\f8\07\05\9c\d3\0f\a0\06m%\\\f9^B<\e7\b1\17\98]\0c\dd\c5\f5p\e5\fezJ\ab,F\a5@\08R\85!\b8\1a\ce\d5\04\nI\a6\d1\9f\8a\c9\a9|\97\9aG\be8Y\8b\c1\1b\d4\ea\b9\19\14\9b\9163\d0\1d\d2\df=C\1f\0dc\e1\c7QUv\02\b5aK\b4\tV\c3x\e8\a1\1e\81\de/{\da\d6Pf\10T\f0)\88\16\ee\a8\9d\f1\cbO*\b2\99\132\87.\a2")) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/phi.wast b/test/dot_s/phi.wast index 786277d86..896aad133 100644 --- a/test/dot_s/phi.wast +++ b/test/dot_s/phi.wast @@ -79,3 +79,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/reg-stackify.wast b/test/dot_s/reg-stackify.wast index a9f270574..cb9b720d9 100644 --- a/test/dot_s/reg-stackify.wast +++ b/test/dot_s/reg-stackify.wast @@ -118,3 +118,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/relocation.wast b/test/dot_s/relocation.wast index 8949247bc..6a5fb576d 100644 --- a/test/dot_s/relocation.wast +++ b/test/dot_s/relocation.wast @@ -14,3 +14,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/return-int32.wast b/test/dot_s/return-int32.wast index 7e1255781..3cc667d36 100644 --- a/test/dot_s/return-int32.wast +++ b/test/dot_s/return-int32.wast @@ -11,3 +11,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/return-void.wast b/test/dot_s/return-void.wast index 7e5193fa1..54d604547 100644 --- a/test/dot_s/return-void.wast +++ b/test/dot_s/return-void.wast @@ -9,3 +9,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/returned.wast b/test/dot_s/returned.wast index d85228de9..6b1c58735 100644 --- a/test/dot_s/returned.wast +++ b/test/dot_s/returned.wast @@ -32,3 +32,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/select.wast b/test/dot_s/select.wast index d383aa6e1..7c8d32c37 100644 --- a/test/dot_s/select.wast +++ b/test/dot_s/select.wast @@ -169,3 +169,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/signext-zeroext.wast b/test/dot_s/signext-zeroext.wast index 162f5bed7..4db88e8ea 100644 --- a/test/dot_s/signext-zeroext.wast +++ b/test/dot_s/signext-zeroext.wast @@ -77,3 +77,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/store-results.wast b/test/dot_s/store-results.wast index e447dcaac..190e18a92 100644 --- a/test/dot_s/store-results.wast +++ b/test/dot_s/store-results.wast @@ -88,3 +88,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/store-trunc.wast b/test/dot_s/store-trunc.wast index 6aabfef98..7496b0ee8 100644 --- a/test/dot_s/store-trunc.wast +++ b/test/dot_s/store-trunc.wast @@ -73,3 +73,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/store.wast b/test/dot_s/store.wast index 8acb75f77..ddff6f633 100644 --- a/test/dot_s/store.wast +++ b/test/dot_s/store.wast @@ -61,3 +61,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/switch.wast b/test/dot_s/switch.wast index a34266478..23d276092 100644 --- a/test/dot_s/switch.wast +++ b/test/dot_s/switch.wast @@ -97,3 +97,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/unreachable.wast b/test/dot_s/unreachable.wast index 93063828e..1d402392f 100644 --- a/test/dot_s/unreachable.wast +++ b/test/dot_s/unreachable.wast @@ -27,3 +27,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/unused-argument.wast b/test/dot_s/unused-argument.wast index 2c93e0f52..9b3ba16ab 100644 --- a/test/dot_s/unused-argument.wast +++ b/test/dot_s/unused-argument.wast @@ -31,3 +31,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file diff --git a/test/dot_s/varargs.wast b/test/dot_s/varargs.wast index 691b82dee..3b455386e 100644 --- a/test/dot_s/varargs.wast +++ b/test/dot_s/varargs.wast @@ -149,3 +149,4 @@ ) ) ) +; METADATA: { "asmConsts": {} }
\ No newline at end of file |