From 5f03ac4ca00595c34f34a8415c653ce6f489c8c8 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 29 Jul 2023 13:47:17 +0100 Subject: Add Patio alloc-stack instruction --- .../org/shedlang/compiler/patio/PatioSerializerTests.java | 12 ++++++++++++ .../java/org/shedlang/compiler/patio/instructions/Patio.java | 4 ++++ 2 files changed, 16 insertions(+) (limited to 'src/test/java') diff --git a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java index 53ea2d6e..b84b794b 100644 --- a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java +++ b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java @@ -139,6 +139,18 @@ public class PatioSerializerTests { assertThat(string, equalTo("(alloc-heap (local \"x\") (struct (int int byte)))")); } + @Test + public void canSerializeAllocStack() { + var instruction = Patio.allocStack( + Patio.localRef("x"), + PatioTypes.INT + ); + + var string = PatioTesting.serializeInstruction(instruction); + + assertThat(string, equalTo("(alloc-stack (local \"x\") int)")); + } + @Test public void canSerializeBoolToInt() { var instruction = Patio.boolToInt(Patio.localRef("target"), Patio.localRef("value")); diff --git a/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java b/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java index ff3c4fef..01a82ce2 100644 --- a/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java +++ b/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java @@ -18,6 +18,10 @@ public class Patio { return new PatioAllocHeap(target, layout, Sources.NULL); } + public static PatioInstruction allocStack(PatioLocalRef target, PatioType type) { + return new PatioAllocStack(target, type, Sources.NULL); + } + public static PatioBlock block( List body, List results -- cgit v1.2.3