diff options
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java | 12 |
1 files changed, 10 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 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( |
