summaryrefslogtreecommitdiff
path: root/src/wasm-emscripten.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm-emscripten.cpp')
-rw-r--r--src/wasm-emscripten.cpp12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/wasm-emscripten.cpp b/src/wasm-emscripten.cpp
index 43366e410..7463ec594 100644
--- a/src/wasm-emscripten.cpp
+++ b/src/wasm-emscripten.cpp
@@ -119,16 +119,12 @@ void generateStackAllocFunction(LinkerObject& linker) {
SetLocal* setStackLocal = builder.makeSetLocal(1, loadStack);
GetLocal* getStackLocal = builder.makeGetLocal(1, i32);
GetLocal* getSizeArg = builder.makeGetLocal(0, i32);
- Binary* add = builder.makeBinary(AddInt32, getStackLocal, getSizeArg);
+ Binary* sub = builder.makeBinary(SubInt32, getStackLocal, getSizeArg);
const static uint32_t bitAlignment = 16;
const static uint32_t bitMask = bitAlignment - 1;
- Const* addConst = builder.makeConst(Literal(bitMask));
- Binary* maskedAdd = builder.makeBinary(
- AndInt32,
- builder.makeBinary(AddInt32, add, addConst),
- builder.makeConst(Literal(~bitMask))
- );
- Store* storeStack = generateStoreStackPointer(builder, linker, maskedAdd);
+ Const* subConst = builder.makeConst(Literal(~bitMask));
+ Binary* maskedSub = builder.makeBinary(AndInt32, sub, subConst);
+ Store* storeStack = generateStoreStackPointer(builder, linker, maskedSub);
Block* block = builder.makeBlock();
block->list.push_back(setStackLocal);