From 557d07b3ab23feb67b094ede24dcb475008d5a7e Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Thu, 20 Jul 2023 23:39:31 +0100 Subject: Remove int-get instruction --- src/main/java/org/shedlang/compiler/patio/PatioCodeGen.java | 5 +++-- .../java/org/shedlang/compiler/patio/ast/PatioSerializer.java | 7 ------- .../compiler/patio/ast/instructions/PatioInstruction.java | 2 +- .../shedlang/compiler/patio/ast/instructions/PatioIntGet.java | 10 ---------- 4 files changed, 4 insertions(+), 20 deletions(-) delete mode 100644 src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioIntGet.java (limited to 'src/main/java') 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 { -} -- cgit v1.2.3