From 70e7de5d71eaf8703a0110a6a9e9a822c0c20430 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Thu, 29 Jun 2023 18:05:52 +0100 Subject: Fix number of pages --- .../java/org/shedlang/compiler/backends/wasm/WasmMemoryBuilder.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/org/shedlang/compiler/backends/wasm/WasmMemoryBuilder.java b/src/main/java/org/shedlang/compiler/backends/wasm/WasmMemoryBuilder.java index 947fbeec..6b69874e 100644 --- a/src/main/java/org/shedlang/compiler/backends/wasm/WasmMemoryBuilder.java +++ b/src/main/java/org/shedlang/compiler/backends/wasm/WasmMemoryBuilder.java @@ -16,6 +16,7 @@ import java.util.List; public class WasmMemoryBuilder { public static final WasmMemoryBuilder EMPTY = new WasmMemoryBuilder(OrderedPMap.empty(), 0); + private static final int PAGE_SIZE = 65536; private static final WasmDataSegmentIndex DATA_SEGMENT_INDEX = new WasmDataSegmentIndex(0); private final OrderedPMap entities; @@ -27,12 +28,13 @@ public class WasmMemoryBuilder { } public WasmModule toModule(WasmModule module) { + var pageCount = (size + PAGE_SIZE - 1) / PAGE_SIZE; + module = module .addImport(new WasmImport( "env", "__linear_memory", - // TODO: turn size into number of pages - new WasmImportDescriptor.Memory(new WasmMemoryType(WasmLimits.min(size))) + new WasmImportDescriptor.Memory(new WasmMemoryType(WasmLimits.min(pageCount))) )); if (entities.size() > 0) { -- cgit v1.2.3