aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatInstructions.java4
-rw-r--r--src/main/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryWriter.java5
2 files changed, 6 insertions, 3 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 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,