aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-06-29 18:05:52 +0100
committerMichael Williamson <mike@zwobble.org>2023-06-29 18:05:52 +0100
commit70e7de5d71eaf8703a0110a6a9e9a822c0c20430 (patch)
treeec4e140c98a45259346eb22e2aa87a061cecac0f /src/main/java
parent970da5376491712089e46b4ff4d27291a02bfa18 (diff)
Fix number of pages
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/backends/wasm/WasmMemoryBuilder.java6
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) {