summaryrefslogtreecommitdiff
path: root/src/wasm/wasm-emscripten.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm/wasm-emscripten.cpp')
-rw-r--r--src/wasm/wasm-emscripten.cpp32
1 files changed, 21 insertions, 11 deletions
diff --git a/src/wasm/wasm-emscripten.cpp b/src/wasm/wasm-emscripten.cpp
index a6a84a974..453780720 100644
--- a/src/wasm/wasm-emscripten.cpp
+++ b/src/wasm/wasm-emscripten.cpp
@@ -86,8 +86,9 @@ Expression* EmscriptenGlueGenerator::generateLoadStackPointer() {
/* type =*/i32);
}
Global* stackPointer = getStackPointerGlobal();
- if (!stackPointer)
+ if (!stackPointer) {
Fatal() << "stack pointer global not found";
+ }
return builder.makeGetGlobal(stackPointer->name, i32);
}
@@ -103,8 +104,9 @@ EmscriptenGlueGenerator::generateStoreStackPointer(Expression* value) {
/* type =*/i32);
}
Global* stackPointer = getStackPointerGlobal();
- if (!stackPointer)
+ if (!stackPointer) {
Fatal() << "stack pointer global not found";
+ }
return builder.makeSetGlobal(stackPointer->name, value);
}
@@ -312,8 +314,9 @@ Function* EmscriptenGlueGenerator::generateMemoryGrowthFunction() {
void EmscriptenGlueGenerator::generateStackInitialization(Address addr) {
auto* stackPointer = getStackPointerGlobal();
assert(!stackPointer->imported());
- if (!stackPointer->init || !stackPointer->init->is<Const>())
+ if (!stackPointer->init || !stackPointer->init->is<Const>()) {
Fatal() << "stack pointer global is not assignable";
+ }
stackPointer->init->cast<Const>()->value = Literal(int32_t(addr));
}
@@ -322,8 +325,9 @@ inline void exportFunction(Module& wasm, Name name, bool must_export) {
assert(!must_export);
return;
}
- if (wasm.getExportOrNull(name))
+ if (wasm.getExportOrNull(name)) {
return; // Already exported
+ }
auto exp = new Export;
exp->name = exp->value = name;
exp->kind = ExternalKind::Function;
@@ -350,8 +354,9 @@ void EmscriptenGlueGenerator::generateDynCallThunks() {
std::vector<NameType> params;
params.emplace_back("fptr", i32); // function pointer param
int p = 0;
- for (const auto& ty : funcType->params)
+ for (const auto& ty : funcType->params) {
params.emplace_back(std::to_string(p++), ty);
+ }
Function* f =
builder.makeFunction(name, std::move(params), funcType->result, {});
Expression* fptr = builder.makeGetLocal(0, i32);
@@ -373,8 +378,9 @@ struct RemoveStackPointer : public PostWalker<RemoveStackPointer> {
void visitGetGlobal(GetGlobal* curr) {
if (getModule()->getGlobalOrNull(curr->name) == stackPointer) {
needStackSave = true;
- if (!builder)
+ if (!builder) {
builder = make_unique<Builder>(*getModule());
+ }
replaceCurrent(builder->makeCall(STACK_SAVE, {}, i32));
}
}
@@ -382,8 +388,9 @@ struct RemoveStackPointer : public PostWalker<RemoveStackPointer> {
void visitSetGlobal(SetGlobal* curr) {
if (getModule()->getGlobalOrNull(curr->name) == stackPointer) {
needStackRestore = true;
- if (!builder)
+ if (!builder) {
builder = make_unique<Builder>(*getModule());
+ }
replaceCurrent(builder->makeCall(STACK_RESTORE, {curr->value}, none));
}
}
@@ -398,8 +405,9 @@ private:
void EmscriptenGlueGenerator::replaceStackPointerGlobal() {
Global* stackPointer = getStackPointerGlobal();
- if (!stackPointer)
+ if (!stackPointer) {
return;
+ }
// Replace all uses of stack pointer global
RemoveStackPointer walker(stackPointer);
@@ -796,8 +804,9 @@ struct FixInvokeFunctionNamesWalker
}
static Name fixEmEHSjLjNames(const Name& name, const std::string& sig) {
- if (name == "emscripten_longjmp_jmpbuf")
+ if (name == "emscripten_longjmp_jmpbuf") {
return "emscripten_longjmp";
+ }
return fixEmExceptionInvoke(name, sig);
}
@@ -840,10 +849,11 @@ template<class C> void printSet(std::ostream& o, C& c) {
o << "[";
bool first = true;
for (auto& item : c) {
- if (first)
+ if (first) {
first = false;
- else
+ } else {
o << ",";
+ }
o << '"' << item << '"';
}
o << "]";