aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-06-12 20:30:44 +0100
committerMichael Williamson <mike@zwobble.org>2023-06-12 20:30:44 +0100
commitf67078f6cf8eb1d1da9dad8bb043344b13387ada (patch)
tree753d5a4b5f3cb3529a16ac655e67d5efd8a0eb4c /src/test/java
parent95b00d8003ac8f801212149b350f36a6649b1b86 (diff)
Add LLVM typed operand
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerOperandsTests.java10
-rw-r--r--src/test/java/org/shedlang/compiler/backends/llvm/ir/ast/LlvmIr.java20
2 files changed, 22 insertions, 8 deletions
diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerOperandsTests.java b/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerOperandsTests.java
index 3ab0d65f..4d3fa350 100644
--- a/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerOperandsTests.java
+++ b/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerOperandsTests.java
@@ -2,6 +2,7 @@ package org.shedlang.compiler.backends.llvm.ir;
import org.junit.jupiter.api.Test;
import org.shedlang.compiler.backends.llvm.ir.ast.LlvmIr;
+import org.shedlang.compiler.backends.llvm.ir.ast.types.LlvmTypes;
import static org.shedlang.compiler.backends.llvm.ir.LlvmIrSerializerTesting.serializeToString;
import static org.zwobble.precisely.AssertThat.assertThat;
@@ -34,4 +35,13 @@ public class LlvmIrSerializerOperandsTests {
assertThat(result, equalTo("@x"));
}
+
+ @Test
+ public void typedOperandHasTypeAndValue() {
+ var operand = LlvmIr.typedOperand(LlvmTypes.INT_64, LlvmIr.operandInt(42));
+
+ var result = serializeToString(operand, LlvmIrSerializer::serializeTypedOperand);
+
+ assertThat(result, equalTo("i64 42"));
+ }
}
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 d3d7d6cb..470406e4 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
@@ -43,14 +43,6 @@ public class LlvmIr {
return new LlvmParam(type, name);
}
- public static LlvmVariableGlobal variableGlobal(String name) {
- return new LlvmVariableGlobal(name);
- }
-
- public static LlvmVariableLocal variableLocal(String name) {
- return new LlvmVariableLocal(name);
- }
-
public static LlvmReturn returnValue(LlvmType type, LlvmOperand value) {
return new LlvmReturn(type, value);
}
@@ -58,4 +50,16 @@ public class LlvmIr {
public static LlvmReturnVoid returnVoid() {
return new LlvmReturnVoid();
}
+
+ public static LlvmTypedOperand typedOperand(LlvmType type, LlvmOperand value) {
+ return new LlvmTypedOperand(type, value);
+ }
+
+ public static LlvmVariableGlobal variableGlobal(String name) {
+ return new LlvmVariableGlobal(name);
+ }
+
+ public static LlvmVariableLocal variableLocal(String name) {
+ return new LlvmVariableLocal(name);
+ }
}