diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-12-26 22:10:29 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-12-26 22:14:19 +0000 |
| commit | 72eebd7297ac2cd992fefede9a4140432a2dede6 (patch) | |
| tree | f07798fe882f759083770062e615d46b32917c10 /src/main/java | |
| parent | d0919581da42074999cb92856073cfe46f90b566 (diff) | |
Use Patio type to determine Wasm type for Patio operand
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( |
