aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-12-26 21:32:51 +0000
committerMichael Williamson <mike@zwobble.org>2023-12-26 21:32:51 +0000
commitb0374acafad072617f32d55780a82756294d93e5 (patch)
tree2ed2de11e726abf061dedea36301a2693050aef1 /src/main/java
parentf17694267cb914dfde5672ca05d565b8733c3bed (diff)
Move platform types into WasmTarget
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java6
-rw-r--r--src/main/java/org/shedlang/compiler/backends/wasm/WasmTarget.java24
2 files changed, 20 insertions, 10 deletions
diff --git a/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java b/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java
index eca300a6..ba4749c8 100644
--- a/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java
+++ b/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java
@@ -23,8 +23,6 @@ import java.util.List;
public class PatioToWasm {
public static final String ALLOC_NAME = "shed__runtime__gc_alloc";
public static final String STACK_ALLOC_NAME = "malloc";
- private static final WasmValueType TYPE_SIZE_T = WasmValueType.I32;
- private static final WasmValueType TYPE_DATA_POINTER = WasmValueType.I32;
public static WasmModule generateCompilationUnit(
PatioCompilationUnit patioCompilationUnit,
@@ -36,8 +34,8 @@ public class PatioToWasm {
new WasmImportDescriptor.Func(
ALLOC_NAME,
new WasmFuncType(
- List.of(TYPE_SIZE_T, TYPE_SIZE_T, TYPE_SIZE_T),
- List.of(TYPE_DATA_POINTER)
+ List.of(target.sizeT(), target.sizeT(), target.sizeT()),
+ List.of(target.dataPointerType())
)
)
));
diff --git a/src/main/java/org/shedlang/compiler/backends/wasm/WasmTarget.java b/src/main/java/org/shedlang/compiler/backends/wasm/WasmTarget.java
index d1951297..31c32177 100644
--- a/src/main/java/org/shedlang/compiler/backends/wasm/WasmTarget.java
+++ b/src/main/java/org/shedlang/compiler/backends/wasm/WasmTarget.java
@@ -1,26 +1,30 @@
package org.shedlang.compiler.backends.wasm;
import org.shedlang.compiler.backends.wasm.structure.ast.types.WasmIndexType;
+import org.shedlang.compiler.backends.wasm.structure.ast.types.WasmValueType;
import java.util.List;
public enum WasmTarget {
- WASM32("wasm32", WasmIndexType.I32, List.of(), List.of()),
- WASM64("wasm64", WasmIndexType.I64, List.of("-mwasm64"), List.of("--enable-memory64"));
+ WASM32("wasm32", WasmIndexType.I32, WasmValueType.I32, List.of(), List.of()),
+ WASM64("wasm64", WasmIndexType.I64, WasmValueType.I64, List.of("-mwasm64"), List.of("--enable-memory64"));
private final String targetName;
private final WasmIndexType indexType;
+ private final WasmValueType sizeT;
private final List<String> linkerFlags;
private final List<String> wabtFlags;
WasmTarget(
String name,
WasmIndexType indexType,
+ WasmValueType sizeT,
List<String> linkerFlags,
List<String> wabtFlags
) {
this.targetName = name;
this.indexType = indexType;
+ this.sizeT = sizeT;
this.linkerFlags = linkerFlags;
this.wabtFlags = wabtFlags;
}
@@ -29,14 +33,22 @@ public enum WasmTarget {
return targetName;
}
- public List<String> linkerFlags() {
- return linkerFlags;
- }
-
public WasmIndexType indexType() {
return indexType;
}
+ public WasmValueType sizeT() {
+ return sizeT;
+ }
+
+ public WasmValueType dataPointerType() {
+ return sizeT;
+ }
+
+ public List<String> linkerFlags() {
+ return linkerFlags;
+ }
+
public List<String> wabtFlags() {
return wabtFlags;
}