diff options
Diffstat (limited to 'src/s2wasm-main.cpp')
-rw-r--r-- | src/s2wasm-main.cpp | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/src/s2wasm-main.cpp b/src/s2wasm-main.cpp index d7a18f547..40009cbc9 100644 --- a/src/s2wasm-main.cpp +++ b/src/s2wasm-main.cpp @@ -58,6 +58,16 @@ int main(int argc, const char *argv[]) { [](Options *o, const std::string &argument) { o->extra["stack-allocation"] = argument; }) + .add("--initial-memory", "-i", "Initial size of the linear memory", + Options::Arguments::One, + [](Options *o, const std::string &argument) { + o->extra["initial-memory"] = argument; + }) + .add("--max-memory", "-m", "Maximum size of the linear memory", + Options::Arguments::One, + [](Options *o, const std::string &argument) { + o->extra["max-memory"] = argument; + }) .add_positional("INFILE", Options::Arguments::One, [](Options *o, const std::string &argument) { o->extra["infile"] = argument; @@ -68,16 +78,25 @@ int main(int argc, const char *argv[]) { if (options.debug) std::cerr << "Parsing and wasming..." << std::endl; AllocatingModule wasm; - size_t globalBase = options.extra.find("global-base") != options.extra.end() + uint64_t globalBase = options.extra.find("global-base") != options.extra.end() ? std::stoull(options.extra["global-base"]) : 1; - size_t stackAllocation = + uint64_t stackAllocation = options.extra.find("stack-allocation") != options.extra.end() ? std::stoull(options.extra["stack-allocation"]) : 0; + uint64_t initialMem = + options.extra.find("initial-memory") != options.extra.end() + ? std::stoull(options.extra["initial-memory"]) + : 0; + uint64_t maxMem = + options.extra.find("max-memory") != options.extra.end() + ? std::stoull(options.extra["max-memory"]) + : 0; if (options.debug) std::cerr << "Global base " << globalBase << '\n'; S2WasmBuilder s2wasm(wasm, input.c_str(), options.debug, globalBase, - stackAllocation, ignoreUnknownSymbols, startFunction); + stackAllocation, initialMem, maxMem, ignoreUnknownSymbols, + startFunction); if (options.debug) std::cerr << "Emscripten gluing..." << std::endl; std::stringstream meta; |