aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-07-20 23:39:31 +0100
committerMichael Williamson <mike@zwobble.org>2023-07-20 23:41:36 +0100
commit557d07b3ab23feb67b094ede24dcb475008d5a7e (patch)
tree781bad007c210cc29b2acc602e0f958c5821fc57 /src/main/java
parent686447f7ddce7d29e20c3b570d6b039ddfe1fb01 (diff)
Remove int-get instruction
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/patio/PatioCodeGen.java5
-rw-r--r--src/main/java/org/shedlang/compiler/patio/ast/PatioSerializer.java7
-rw-r--r--src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioInstruction.java2
-rw-r--r--src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioIntGet.java10
4 files changed, 4 insertions, 20 deletions
diff --git a/src/main/java/org/shedlang/compiler/patio/PatioCodeGen.java b/src/main/java/org/shedlang/compiler/patio/PatioCodeGen.java
index d7ed13d6..d658a446 100644
--- a/src/main/java/org/shedlang/compiler/patio/PatioCodeGen.java
+++ b/src/main/java/org/shedlang/compiler/patio/PatioCodeGen.java
@@ -1,9 +1,10 @@
package org.shedlang.compiler.patio;
import org.shedlang.compiler.patio.ast.PatioCompilationUnit;
+import org.shedlang.compiler.patio.ast.instructions.PatioLocalStore;
+import org.shedlang.compiler.patio.ast.operands.PatioInt;
import org.shedlang.compiler.patio.ast.operands.PatioLocalRef;
import org.shedlang.compiler.patio.ast.instructions.PatioIntAdd;
-import org.shedlang.compiler.patio.ast.instructions.PatioIntGet;
import org.shedlang.compiler.patio.ast.instructions.PatioReturn;
import org.shedlang.compiler.sources.Source;
import org.shedlang.compiler.sources.Sources;
@@ -215,7 +216,7 @@ public class PatioCodeGen {
context = localResult.context();
return context
- .addInstruction(new PatioIntGet(local, value, source))
+ .addInstruction(new PatioLocalStore(local, new PatioInt(value), source))
.temporaryPush(local);
}
}
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 44f738f6..de8e2eaa 100644
--- a/src/main/java/org/shedlang/compiler/patio/ast/PatioSerializer.java
+++ b/src/main/java/org/shedlang/compiler/patio/ast/PatioSerializer.java
@@ -161,13 +161,6 @@ public class PatioSerializer {
operandToTree(intAdd.right())
);
- case PatioIntGet intGet ->
- treeList(
- treeIdentifier("int-get"),
- operandToTree(intGet.target()),
- treeInt(intGet.value())
- );
-
case PatioIntToDataPtr intToDataPtr ->
treeList(
treeIdentifier("int-to-data-ptr"),
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 c18afbd1..26db4e22 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, PatioDataPtrGet, PatioDataPtrToInt, PatioFunctionPointerGet, PatioIf, PatioIntAdd, PatioIntGet, PatioIntToDataPtr, PatioLocalStore, PatioMemoryLoad, PatioMemoryStore, PatioReturn {
+public sealed interface PatioInstruction permits PatioAlloc, PatioCallPointer, PatioDataPtrGet, PatioDataPtrToInt, PatioFunctionPointerGet, PatioIf, PatioIntAdd, PatioIntToDataPtr, PatioLocalStore, PatioMemoryLoad, PatioMemoryStore, PatioReturn {
Source source();
}
diff --git a/src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioIntGet.java b/src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioIntGet.java
deleted file mode 100644
index beba06d2..00000000
--- a/src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioIntGet.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.shedlang.compiler.patio.ast.instructions;
-
-import org.shedlang.compiler.patio.ast.operands.PatioLocalRef;
-import org.shedlang.compiler.sources.Source;
-
-/**
- * Store the given value in the target local.
- */
-public record PatioIntGet(PatioLocalRef target, int value, Source source) implements PatioInstruction {
-}