diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-12-26 22:12:42 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-12-26 22:14:19 +0000 |
| commit | f09f8b2d16b5a353f395665927ef61a30c42b564 (patch) | |
| tree | 3d1cda97aaceef5ded23bf1f65cff7aff94dc684 /src/main/java | |
| parent | 72eebd7297ac2cd992fefede9a4140432a2dede6 (diff) | |
Determine correct Wasm type for Patio types
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java | 16 |
1 files changed, 14 insertions, 2 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 28a384e8..b2476da8 100644 --- a/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java +++ b/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java @@ -685,8 +685,20 @@ public class PatioToWasm { PatioType type, WasmTarget platformTarget ) { - // TODO: handle 32-bit values on wasm64 - return platformTarget.patioIntType(); + return switch (type) { + case PatioBoolType patioBoolType -> + WasmValueType.I32; + case PatioByteType patioByteType -> + WasmValueType.I32; + case PatioDataPointerType patioDataPointerType -> + platformTarget.dataPointerType(); + case PatioFunctionPointerType patioFunctionPointerType -> + platformTarget.functionPointerType(); + case PatioIntType patioIntType -> + platformTarget.patioIntType(); + case PatioVoidType patioVoidType -> + throw new IllegalArgumentException("Cannot have void values"); + }; } private static List<WasmValueType> patioTypeToWasmResultTypes( |
