aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-12-27 13:43:26 +0000
committerMichael Williamson <mike@zwobble.org>2023-12-27 13:43:26 +0000
commitaa9e76aebdb035888243409873ad7a1d8a0c7570 (patch)
treee099051a682e4b86b39346044fea0e6883a49013 /src/main/java
parent3e03324fa88d4364dddff092aa1e5a9e8deaa51b (diff)
Handle switches properly in wasm64
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java7
1 files changed, 5 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 bc327aea..b1ac6248 100644
--- a/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java
+++ b/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java
@@ -407,8 +407,11 @@ public class PatioToWasm {
for (var patioSwitchCase : patioSwitch.cases()) {
context = generateOperand(patioSwitch.value(), context);
- context = context.addInstruction(new WasmI32Const(patioSwitchCase.value()));
- context = context.addInstruction(new WasmI32Eq());
+ context = context.addInstruction(wasmIntConst(
+ platformTarget.patioIntType(),
+ patioSwitchCase.value()
+ ));
+ context = context.addInstruction(wasmIntEq(platformTarget.patioIntType()));
context = context.enterIfInstruction(wasmBlockType);
context = generateBlockBody(patioSwitchCase.body(), context);
context = context.enterElse();