From 72e0c1257a2a47bf50fbb57500ce164a2d84d348 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 27 Jun 2023 19:00:03 +0100 Subject: Extract writeTableIndex() --- .../backends/wasm/structure/binary/WasmBinaryFormatInstructions.java | 4 +--- .../compiler/backends/wasm/structure/binary/WasmBinaryWriter.java | 5 +++++ 2 files changed, 6 insertions(+), 3 deletions(-) (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 49e120ec..4bfae740 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 @@ -28,9 +28,7 @@ public class WasmBinaryFormatInstructions { case WasmCallIndirect callIndirect -> { writer.writeByte(0x11); writer.writeTypeIndex(callIndirect.funcType()); - // TODO: the table index corresponds to the import in the context. - // Make this - writer.writeUnsignedInt32(0); // Table index + writer.writeTableIndex(callIndirect.tableIndex()); } // == Parametric Instructions == diff --git a/src/main/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryWriter.java b/src/main/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryWriter.java index de23bd4b..c14fd1db 100644 --- a/src/main/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryWriter.java +++ b/src/main/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryWriter.java @@ -3,6 +3,7 @@ package org.shedlang.compiler.backends.wasm.structure.binary; import org.shedlang.compiler.backends.wasm.structure.BinaryWriter; import org.shedlang.compiler.backends.wasm.structure.ast.linking.WasmMemoryAddress; import org.shedlang.compiler.backends.wasm.structure.ast.linking.WasmRelocatableIndex; +import org.shedlang.compiler.backends.wasm.structure.ast.modules.WasmTableIndex; import org.shedlang.compiler.backends.wasm.structure.ast.types.WasmFuncType; import java.io.IOException; @@ -54,6 +55,10 @@ public class WasmBinaryWriter { ); } + public void writeTableIndex(WasmTableIndex tableIndex) { + writeUnsignedInt32(0); + } + public void writeTypeIndex(WasmFuncType funcType) throws IOException { writeRelocatableIndex( WasmRelocationType.TYPE_INDEX_LEB, -- cgit v1.2.3