diff options
| author | Michael Williamson <mike@zwobble.org> | 2024-01-28 17:24:46 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2024-01-28 17:29:35 +0000 |
| commit | 9b7919f545f71b60d769ef5a57b240c9dc770a3c (patch) | |
| tree | f01034aa6ea6018dda8b62001c87193613ca70b2 /src/main/java | |
| parent | 5582721f6069ce9a0b36d19f36ef51f62acb5adc (diff) | |
Add memory.fill to Wasm
Diffstat (limited to 'src/main/java')
3 files changed, 11 insertions, 1 deletions
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 1fc5b7aa..83ee9445 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, WasmI32WrapI64, WasmI64Add, WasmI64Const, WasmI64Eq, WasmI64ExtendI32Unsigned, WasmI64Load, WasmI64Ne, WasmI64Store, 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, WasmI32WrapI64, WasmI64Add, WasmI64Const, WasmI64Eq, WasmI64ExtendI32Unsigned, WasmI64Load, WasmI64Ne, WasmI64Store, WasmI64Sub, WasmIf, WasmLocalGet, WasmLocalSet, WasmLoop, WasmMemoryAddressConst, WasmMemoryFill, WasmMemoryGrow, WasmReturn, WasmTableElementIndexConst, WasmThrow, WasmTry, WasmUnreachable { } diff --git a/src/main/java/org/shedlang/compiler/backends/wasm/structure/ast/instructions/WasmMemoryFill.java b/src/main/java/org/shedlang/compiler/backends/wasm/structure/ast/instructions/WasmMemoryFill.java new file mode 100644 index 00000000..244b6876 --- /dev/null +++ b/src/main/java/org/shedlang/compiler/backends/wasm/structure/ast/instructions/WasmMemoryFill.java @@ -0,0 +1,4 @@ +package org.shedlang.compiler.backends.wasm.structure.ast.instructions; + +public record WasmMemoryFill() implements WasmInstruction { +} 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 e2ef6c58..af551003 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 @@ -132,6 +132,12 @@ public class WasmBinaryFormatInstructions { writer.writeByte(0x00); } + case WasmMemoryFill memoryFill -> { + writer.writeByte(0xfc); + writer.writeUnsignedInt32(11); + writer.writeByte(0x00); + } + // == Numeric Instructions == case WasmI32Const i32Const -> { |
