diff options
Diffstat (limited to 'src/wasm/wasm-emscripten.cpp')
-rw-r--r-- | src/wasm/wasm-emscripten.cpp | 38 |
1 files changed, 12 insertions, 26 deletions
diff --git a/src/wasm/wasm-emscripten.cpp b/src/wasm/wasm-emscripten.cpp index 9236fd24c..c70069e76 100644 --- a/src/wasm/wasm-emscripten.cpp +++ b/src/wasm/wasm-emscripten.cpp @@ -22,7 +22,6 @@ #include "asmjs/shared-constants.h" #include "shared-constants.h" #include "wasm-builder.h" -#include "wasm-linker.h" #include "wasm-traversal.h" #include "wasm.h" @@ -159,6 +158,18 @@ static bool hasI64ResultOrParam(FunctionType* ft) { return false; } +inline void exportFunction(Module& wasm, Name name, bool must_export) { + if (!wasm.getFunctionOrNull(name)) { + assert(!must_export); + return; + } + if (wasm.getExportOrNull(name)) return; // Already exported + auto exp = new Export; + exp->name = exp->value = name; + exp->kind = ExternalKind::Function; + wasm.addExport(exp); +} + void EmscriptenGlueGenerator::generateDynCallThunks() { std::unordered_set<std::string> sigs; Builder builder(wasm); @@ -768,29 +779,4 @@ std::string EmscriptenGlueGenerator::generateEmscriptenMetadata( return meta.str(); } -std::string emscriptenGlue( - Module& wasm, - bool allowMemoryGrowth, - Address stackPointer, - Address staticBump, - std::vector<Name> const& initializerFunctions, - unsigned numReservedFunctionPointers) { - EmscriptenGlueGenerator generator(wasm, stackPointer); - generator.fixInvokeFunctionNames(); - generator.generateRuntimeFunctions(); - - if (allowMemoryGrowth) { - generator.generateMemoryGrowthFunction(); - } - - generator.generateDynCallThunks(); - - if (numReservedFunctionPointers) { - generator.generateJSCallThunks(numReservedFunctionPointers); - } - - return generator.generateEmscriptenMetadata(staticBump, initializerFunctions, - numReservedFunctionPointers); -} - } // namespace wasm |