diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-02-23 14:05:02 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-02-23 14:05:02 -0800 |
commit | ac3a3bb22be94bf253558c43ad6d8c96340e1553 (patch) | |
tree | 9df13aa5acc4ea909e4dd9b3cb66ae91549341b7 | |
parent | 9c16dbe573d2fda9fca45f6ef9d60ac90fec9f79 (diff) | |
parent | 3121d8ce04d265032e1d7753b97a0cf17f8725c3 (diff) | |
download | binaryen-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
-rw-r--r-- | src/wasm-interpreter.h | 3 | ||||
-rw-r--r-- | src/wasm.h | 2 | ||||
m--------- | test/spec | 0 |
3 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(); diff --git a/test/spec b/test/spec -Subproject 40558d388b7f99b0edf01d3cbb2a3d3efea3a41 +Subproject 3c92466f5a67d6d81c7c511baf1242c7af9cfd1 |