From b3276afec7498c7ec6e100d7367e748fdf0a3923 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Thu, 20 Jul 2023 15:16:15 +0100 Subject: Add int-to-data-ptr instruction --- .../java/org/shedlang/compiler/patio/PatioSerializerTests.java | 9 +++++++++ .../java/org/shedlang/compiler/patio/instructions/Patio.java | 8 ++++++++ 2 files changed, 17 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 48e5a38e..b354d534 100644 --- a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java +++ b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java @@ -95,6 +95,15 @@ public class PatioSerializerTests { assertThat(string, equalTo("(int-get \"target\" 42)")); } + @Test + public void canSerializeIntToDataPtr() { + var instruction = Patio.intToDataPtr("target", "value"); + + var string = PatioTesting.serializeInstruction(instruction); + + assertThat(string, equalTo("(int-to-data-ptr \"target\" \"value\")")); + } + @Test public void canSerializeLocalCopy() { var instruction = Patio.localCopy("target", "x"); 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 5ad05faf..d8445de9 100644 --- a/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java +++ b/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java @@ -47,6 +47,14 @@ public class Patio { return new PatioIntGet(new PatioLocalRef(target), value, Sources.NULL); } + public static PatioInstruction intToDataPtr(String target, String value) { + return new PatioIntToDataPtr( + new PatioLocalRef(target), + new PatioLocalRef(value), + Sources.NULL + ); + } + public static PatioLocal local(String name, PatioType type) { return new PatioLocal(name, type); } -- cgit v1.2.3