From aa9e76aebdb035888243409873ad7a1d8a0c7570 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Wed, 27 Dec 2023 13:43:26 +0000 Subject: Handle switches properly in wasm64 --- src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java | 7 +++++-- 1 file changed, 5 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 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(); -- cgit v1.2.3