From f67078f6cf8eb1d1da9dad8bb043344b13387ada Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 12 Jun 2023 20:30:44 +0100 Subject: Add LLVM typed operand --- .../llvm/ir/LlvmIrSerializerOperandsTests.java | 10 ++++++++++ .../compiler/backends/llvm/ir/ast/LlvmIr.java | 20 ++++++++++++-------- 2 files changed, 22 insertions(+), 8 deletions(-) (limited to 'src/test/java') 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); + } } -- cgit v1.2.3