aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-06-27 19:00:03 +0100
committerMichael Williamson <mike@zwobble.org>2023-06-27 19:00:03 +0100
commit72e0c1257a2a47bf50fbb57500ce164a2d84d348 (patch)
treeacf55dcc94299fd861471ed4666762d463758e9c /src/main/java
parent84d8cde3950eedfbcd477500d27494ce1435120e (diff)
Extract writeTableIndex()
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,