aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-06-14 19:44:57 +0100
committerMichael Williamson <mike@zwobble.org>2023-06-14 19:44:57 +0100
commitd4a8c7d7cba85e107b8532036b6e6838c57f4e2a (patch)
tree69e870302135959a4ce9d76a26460923efef59a3 /src/test/java
parent2d63d2471c93613172f973521c05086ec1221b4b (diff)
Add LLVM load instruction
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerInstructionTests.java13
-rw-r--r--src/test/java/org/shedlang/compiler/backends/llvm/ir/ast/LlvmIr.java8
2 files changed, 21 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerInstructionTests.java b/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerInstructionTests.java
index a48260e7..3b091ae7 100644
--- a/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerInstructionTests.java
+++ b/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerInstructionTests.java
@@ -93,6 +93,19 @@ public class LlvmIrSerializerInstructionTests {
}
@Test
+ public void loadIsSerialized() {
+ var instruction = LlvmIr.load(
+ LlvmIr.variableLocal("target"),
+ LlvmTypes.INT_64,
+ LlvmIr.variableLocal("source")
+ );
+
+ var result = serializeToString(instruction, LlvmIrSerializer::serializeInstruction);
+
+ assertThat(result, equalTo("$target = load i64, i64 * $source"));
+ }
+
+ @Test
public void storeIsSerialized() {
var instruction = LlvmIr.store(
LlvmTypes.INT_64,
diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/ir/ast/LlvmIr.java b/src/test/java/org/shedlang/compiler/backends/llvm/ir/ast/LlvmIr.java
index 3f65165e..a472096f 100644
--- a/src/test/java/org/shedlang/compiler/backends/llvm/ir/ast/LlvmIr.java
+++ b/src/test/java/org/shedlang/compiler/backends/llvm/ir/ast/LlvmIr.java
@@ -64,6 +64,14 @@ public class LlvmIr {
return new LlvmIntToPtr(target, sourceType, value, targetType);
}
+ public static LlvmLoad load(
+ LlvmVariable target,
+ LlvmType type,
+ LlvmOperand pointer
+ ) {
+ return new LlvmLoad(target, type, pointer);
+ }
+
public static LlvmOperand operandArray(
LlvmType type,
List<LlvmOperand> elements