diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-12-26 23:02:50 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-12-26 23:02:50 +0000 |
| commit | d245348585002dae57dd03ba4bb1e9382e6fffe9 (patch) | |
| tree | 0f5fee2099c0bcb242196257d5d169b4286402d5 /src/main/java | |
| parent | 73156b8d99b99c6cdb1eb45f9c7d96a8bf75dc00 (diff) | |
Add support for i64.load instruction
Diffstat (limited to 'src/main/java')
3 files changed, 10 insertions, 1 deletions
diff --git a/src/main/java/org/shedlang/compiler/backends/wasm/structure/ast/instructions/WasmI64Load.java b/src/main/java/org/shedlang/compiler/backends/wasm/structure/ast/instructions/WasmI64Load.java new file mode 100644 index 00000000..1724e654 --- /dev/null +++ b/src/main/java/org/shedlang/compiler/backends/wasm/structure/ast/instructions/WasmI64Load.java @@ -0,0 +1,4 @@ +package org.shedlang.compiler.backends.wasm.structure.ast.instructions; + +public record WasmI64Load(WasmMemoryArg memoryArg) implements WasmInstruction { +} diff --git a/src/main/java/org/shedlang/compiler/backends/wasm/structure/ast/instructions/WasmInstruction.java b/src/main/java/org/shedlang/compiler/backends/wasm/structure/ast/instructions/WasmInstruction.java index c59e6e21..5198d187 100644 --- a/src/main/java/org/shedlang/compiler/backends/wasm/structure/ast/instructions/WasmInstruction.java +++ b/src/main/java/org/shedlang/compiler/backends/wasm/structure/ast/instructions/WasmInstruction.java @@ -1,4 +1,4 @@ package org.shedlang.compiler.backends.wasm.structure.ast.instructions; -public sealed interface WasmInstruction permits WasmBlock, WasmBr, WasmCall, WasmCallIndirect, WasmDrop, WasmGlobalGet, WasmGlobalSet, WasmI32Add, WasmI32Const, WasmI32Eq, WasmI32Load, WasmI32Ne, WasmI32Store, WasmI32Sub, WasmI64Add, WasmI64Const, WasmI64Eq, WasmI64Ne, WasmI64Sub, WasmIf, WasmLocalGet, WasmLocalSet, WasmLoop, WasmMemoryAddressConst, WasmMemoryGrow, WasmReturn, WasmTableElementIndexConst, WasmThrow, WasmTry, WasmUnreachable { +public sealed interface WasmInstruction permits WasmBlock, WasmBr, WasmCall, WasmCallIndirect, WasmDrop, WasmGlobalGet, WasmGlobalSet, WasmI32Add, WasmI32Const, WasmI32Eq, WasmI32Load, WasmI32Ne, WasmI32Store, WasmI32Sub, WasmI64Add, WasmI64Const, WasmI64Eq, WasmI64Load, WasmI64Ne, WasmI64Sub, WasmIf, WasmLocalGet, WasmLocalSet, WasmLoop, WasmMemoryAddressConst, WasmMemoryGrow, WasmReturn, WasmTableElementIndexConst, WasmThrow, WasmTry, WasmUnreachable { } 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 d32b35b2..0af98318 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 @@ -112,6 +112,11 @@ public class WasmBinaryFormatInstructions { writeMemoryArg(i32Load.memoryArg(), writer); } + case WasmI64Load i64Load -> { + writer.writeByte(0x29); + writeMemoryArg(i64Load.memoryArg(), writer); + } + case WasmI32Store i32Store -> { writer.writeByte(0x36); writeMemoryArg(i32Store.memoryArg(), writer); |
