implement grow_memory

This commit is contained in:
Ilya Rezvov
2018-04-09 21:48:37 -07:00
parent d055a4ff6d
commit 3be5840c9a
+4
View File
@@ -784,6 +784,10 @@ eval store FunctionInstance { funcType, moduleInstance, code = Function { localT
IOVector.write memory (addr + idx) byte
mapM_ writeByte [0..3]
return $ Done ctx { stack = rest }
step ctx@EvalCtx{ stack = st } CurrentMemory = do
let MemoryInstance { memory } = memInstances store ! (memaddrs moduleInstance ! 0)
let size = fromIntegral $ IOVector.length memory `div` pageSize
return $ Done ctx { stack = VI32 size : st }
step ctx (I32Const v) = return $ Done ctx { stack = VI32 v : stack ctx }
step ctx (I64Const v) = return $ Done ctx { stack = VI64 v : stack ctx }
step ctx (F32Const v) = return $ Done ctx { stack = VF32 v : stack ctx }