summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-02-23 14:05:02 -0800
committerAlon Zakai <alonzakai@gmail.com>2016-02-23 14:05:02 -0800
commitac3a3bb22be94bf253558c43ad6d8c96340e1553 (patch)
tree9df13aa5acc4ea909e4dd9b3cb66ae91549341b7 /src
parent9c16dbe573d2fda9fca45f6ef9d60ac90fec9f79 (diff)
parent3121d8ce04d265032e1d7753b97a0cf17f8725c3 (diff)
downloadbinaryen-ac3a3bb22be94bf253558c43ad6d8c96340e1553.tar.gz
binaryen-ac3a3bb22be94bf253558c43ad6d8c96340e1553.tar.bz2
binaryen-ac3a3bb22be94bf253558c43ad6d8c96340e1553.zip
Merge pull request #212 from WebAssembly/grow-memory-returns
Grow memory returns a value now
Diffstat (limited to 'src')
-rw-r--r--src/wasm-interpreter.h3
-rw-r--r--src/wasm.h2
2 files changed, 3 insertions, 2 deletions
diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h
index 59e42783d..2a841f6fd 100644
--- a/src/wasm-interpreter.h
+++ b/src/wasm-interpreter.h
@@ -579,6 +579,7 @@ private:
case GrowMemory: {
Flow flow = visit(curr->operands[0]);
if (flow.breaking()) return flow;
+ int32_t ret = instance.memorySize;
uint32_t delta = flow.value.geti32();
if (delta % pageSize != 0) trap("growMemory: delta not multiple");
if (delta > uint32_t(-1) - pageSize) trap("growMemory: delta relatively too big");
@@ -587,7 +588,7 @@ private:
if (newSize > instance.wasm.memory.max) trap("growMemory: exceeds max");
instance.externalInterface->growMemory(instance.memorySize, newSize);
instance.memorySize = newSize;
- return Literal();
+ return Literal(ret);
}
case HasFeature: {
IString id = curr->nameOperand;
diff --git a/src/wasm.h b/src/wasm.h
index 4c8dca331..ec2cd469e 100644
--- a/src/wasm.h
+++ b/src/wasm.h
@@ -1017,7 +1017,7 @@ public:
break;
}
case GrowMemory: {
- type = none;
+ type = i32;
break;
}
default: abort();