aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-07-14 22:41:15 +0100
committerMichael Williamson <mike@zwobble.org>2023-07-14 22:41:15 +0100
commit9b0f33fddc49fad7b8f341614bf083bd130783b6 (patch)
tree170c4227d6cb00cfb2ff286d362ffd5b188fc7a9 /src/main/java
parent3dfd0c6534584206d2f0bb6a88b56f7201d18197 (diff)
Handle writing of WASM block types with one result type
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatInstructions.java3
1 files changed, 3 insertions, 0 deletions
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");