diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-07-20 15:16:15 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-07-20 15:16:15 +0100 |
| commit | b3276afec7498c7ec6e100d7367e748fdf0a3923 (patch) | |
| tree | a248283179677975728035075b6e1e0da5c39f0e /src/main/java | |
| parent | 179e49ae34f9d5869249b2675de04863d6b402ad (diff) | |
Add int-to-data-ptr instruction
Diffstat (limited to 'src/main/java')
3 files changed, 19 insertions, 1 deletions
diff --git a/src/main/java/org/shedlang/compiler/patio/ast/PatioSerializer.java b/src/main/java/org/shedlang/compiler/patio/ast/PatioSerializer.java index cf52f9f4..77a8ec7c 100644 --- a/src/main/java/org/shedlang/compiler/patio/ast/PatioSerializer.java +++ b/src/main/java/org/shedlang/compiler/patio/ast/PatioSerializer.java @@ -113,6 +113,13 @@ public class PatioSerializer { treeInt(intGet.value()) ); + case PatioIntToDataPtr intToDataPtr -> + treeList( + treeIdentifier("int-to-data-ptr"), + localRefToTree(intToDataPtr.target()), + localRefToTree(intToDataPtr.value()) + ); + case PatioLocalCopy localCopy -> treeList( treeIdentifier("local-copy"), diff --git a/src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioInstruction.java b/src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioInstruction.java index aa814121..dbedce9a 100644 --- a/src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioInstruction.java +++ b/src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioInstruction.java @@ -2,6 +2,6 @@ package org.shedlang.compiler.patio.ast.instructions; import org.shedlang.compiler.sources.Source; -public sealed interface PatioInstruction permits PatioAlloc, PatioCallPointer, PatioDataPtrToInt, PatioFunctionPointerGet, PatioIntGet, PatioLocalCopy, PatioMemoryLoad, PatioMemoryStore, PatioReturn { +public sealed interface PatioInstruction permits PatioAlloc, PatioCallPointer, PatioDataPtrToInt, PatioFunctionPointerGet, PatioIntGet, PatioIntToDataPtr, PatioLocalCopy, PatioMemoryLoad, PatioMemoryStore, PatioReturn { Source source(); } diff --git a/src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioIntToDataPtr.java b/src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioIntToDataPtr.java new file mode 100644 index 00000000..8c8000d5 --- /dev/null +++ b/src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioIntToDataPtr.java @@ -0,0 +1,11 @@ +package org.shedlang.compiler.patio.ast.instructions; + +import org.shedlang.compiler.patio.ast.PatioLocalRef; +import org.shedlang.compiler.sources.Source; + +public record PatioIntToDataPtr( + PatioLocalRef target, + PatioLocalRef value, + Source source +) implements PatioInstruction { +} |
