From 9b0f33fddc49fad7b8f341614bf083bd130783b6 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 14 Jul 2023 22:41:15 +0100 Subject: Handle writing of WASM block types with one result type --- .../backends/wasm/structure/binary/WasmBinaryFormatInstructions.java | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/main/java') diff --git a/src/main/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatInstructions.java b/src/main/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatInstructions.java index 00766dbd..6591d817 100644 --- a/src/main/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatInstructions.java +++ b/src/main/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatInstructions.java @@ -6,6 +6,7 @@ import org.shedlang.compiler.backends.wasm.structure.ast.modules.WasmAlignment; import java.io.IOException; import static org.shedlang.compiler.backends.wasm.structure.binary.WasmBinaryFormatModules.writeLocalIndex; +import static org.shedlang.compiler.backends.wasm.structure.binary.WasmBinaryFormatTypes.writeValueType; public class WasmBinaryFormatInstructions { // Corresponds to https://webassembly.github.io/spec/core/binary/instructions.html @@ -136,6 +137,8 @@ public class WasmBinaryFormatInstructions { private static void writeBlockType(WasmBlockType blockType, WasmBinaryWriter writer) { if (blockType.resultTypes().isEmpty()) { writer.writeByte(0x40); + } else if (blockType.resultTypes().size() == 1) { + writeValueType(blockType.resultTypes().get(0), writer); } else { // TODO: implement this throw new RuntimeException("not implemented"); -- cgit v1.2.3