diff options
Diffstat (limited to 'src/tools/asm2wasm.cpp')
-rw-r--r-- | src/tools/asm2wasm.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/tools/asm2wasm.cpp b/src/tools/asm2wasm.cpp index 455410cd6..4ec68283f 100644 --- a/src/tools/asm2wasm.cpp +++ b/src/tools/asm2wasm.cpp @@ -115,6 +115,9 @@ int main(int argc, const char *argv[]) { .add("--emit-text", "-S", "Emit text instead of binary for the output file", Options::Arguments::Zero, [&](Options *o, const std::string &argument) { emitBinary = false; }) + .add("--enable-threads", "-a", "Enable the Atomics wasm feature", + Options::Arguments::Zero, + [&](Options *o, const std::string &argument) { options.passOptions.features |= Feature::Atomics; }) .add_positional("INFILE", Options::Arguments::One, [](Options *o, const std::string &argument) { o->extra["infile"] = argument; @@ -176,6 +179,7 @@ int main(int argc, const char *argv[]) { wasm.memory.segments.emplace_back(init, data); if (options.runningDefaultOptimizationPasses()) { PassRunner runner(&wasm); + runner.setFeatures(options.features); runner.add("memory-packing"); runner.run(); } @@ -202,7 +206,7 @@ int main(int argc, const char *argv[]) { } } - if (!WasmValidator().validate(wasm)) { + if (!WasmValidator().validate(wasm, options.passOptions.features)) { Fatal() << "error in validating output"; } |