From b0374acafad072617f32d55780a82756294d93e5 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 26 Dec 2023 21:32:51 +0000 Subject: Move platform types into WasmTarget --- .../compiler/backends/wasm/PatioToWasm.java | 6 ++---- .../compiler/backends/wasm/WasmTarget.java | 24 ++++++++++++++++------ 2 files changed, 20 insertions(+), 10 deletions(-) (limited to 'src/main/java') 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 linkerFlags; private final List wabtFlags; WasmTarget( String name, WasmIndexType indexType, + WasmValueType sizeT, List linkerFlags, List 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 linkerFlags() { - return linkerFlags; - } - public WasmIndexType indexType() { return indexType; } + public WasmValueType sizeT() { + return sizeT; + } + + public WasmValueType dataPointerType() { + return sizeT; + } + + public List linkerFlags() { + return linkerFlags; + } + public List wabtFlags() { return wabtFlags; } -- cgit v1.2.3