diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-06-29 18:05:52 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-06-29 18:05:52 +0100 |
| commit | 70e7de5d71eaf8703a0110a6a9e9a822c0c20430 (patch) | |
| tree | ec4e140c98a45259346eb22e2aa87a061cecac0f /src/main/java | |
| parent | 970da5376491712089e46b4ff4d27291a02bfa18 (diff) | |
Fix number of pages
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/backends/wasm/WasmMemoryBuilder.java | 6 |
1 files changed, 4 insertions, 2 deletions
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<String, Entity> 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) { |
