From 72eebd7297ac2cd992fefede9a4140432a2dede6 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 26 Dec 2023 22:10:29 +0000 Subject: Use Patio type to determine Wasm type for Patio operand --- .../org/shedlang/compiler/backends/wasm/PatioToWasm.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 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 fc28d310..28a384e8 100644 --- a/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java +++ b/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java @@ -669,8 +669,16 @@ public class PatioToWasm { PatioOperand operand, WasmTarget platformTarget ) { - // TODO: handle 32-bit values on wasm64 - return platformTarget.patioIntType(); + // TODO: push into PatioOperand? + var patioType = switch (operand) { + case PatioBool patioBool -> PatioTypes.BOOL; + case PatioDataPtr patioDataPtr -> PatioTypes.DATA_POINTER; + case PatioFunctionPtr patioFunctionPtr -> PatioTypes.FUNCTION_POINTER; + case PatioInt patioInt -> PatioTypes.INT; + // TODO: don't assume locals are all ints + case PatioLocalRef patioLocalRef -> PatioTypes.INT; + }; + return patioTypeToWasmValueType(patioType, platformTarget); } private static WasmValueType patioTypeToWasmValueType( -- cgit v1.2.3