summaryrefslogtreecommitdiff
path: root/src/wasm-emscripten.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm-emscripten.h')
-rw-r--r--src/wasm-emscripten.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/wasm-emscripten.h b/src/wasm-emscripten.h
index 0a0f88574..1878e6531 100644
--- a/src/wasm-emscripten.h
+++ b/src/wasm-emscripten.h
@@ -29,7 +29,8 @@ public:
EmscriptenGlueGenerator(Module& wasm, Address stackPointerOffset = Address(0))
: wasm(wasm),
builder(wasm),
- stackPointerOffset(stackPointerOffset) { }
+ stackPointerOffset(stackPointerOffset),
+ useStackPointerGlobal(stackPointerOffset == 0) { }
void generateRuntimeFunctions();
Function* generateMemoryGrowthFunction();
@@ -41,13 +42,18 @@ public:
std::string generateEmscriptenMetadata(
Address staticBump, std::vector<Name> const& initializerFunctions);
+ // Replace placeholder emscripten_asm_const functions with *_signature versions.
+ void fixEmAsmConsts();
+
private:
Module& wasm;
Builder builder;
Address stackPointerOffset;
+ bool useStackPointerGlobal;
- Load* generateLoadStackPointer();
- Store* generateStoreStackPointer(Expression* value);
+ Global* getStackPointerGlobal();
+ Expression* generateLoadStackPointer();
+ Expression* generateStoreStackPointer(Expression* value);
void generateStackSaveFunction();
void generateStackAllocFunction();
void generateStackRestoreFunction();