aboutsummaryrefslogtreecommitdiff
path: root/src/main/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/main/java
parent95b00d8003ac8f801212149b350f36a6649b1b86 (diff)
Add LLVM typed operand
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializer.java6
-rw-r--r--src/main/java/org/shedlang/compiler/backends/llvm/ir/ast/operands/LlvmTypedOperand.java9
2 files changed, 15 insertions, 0 deletions
diff --git a/src/main/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializer.java b/src/main/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializer.java
index 4846f7ed..62b30246 100644
--- a/src/main/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializer.java
+++ b/src/main/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializer.java
@@ -115,6 +115,12 @@ public class LlvmIrSerializer {
}
}
+ public static void serializeTypedOperand(LlvmTypedOperand typedOperand, StringBuilder builder) {
+ serializeType(typedOperand.type(), builder);
+ builder.append(" ");
+ serializeOperand(typedOperand.operand(), builder);
+ }
+
public static void serializeVariable(LlvmVariable variable, StringBuilder builder) {
switch (variable) {
case LlvmVariableGlobal global -> {
diff --git a/src/main/java/org/shedlang/compiler/backends/llvm/ir/ast/operands/LlvmTypedOperand.java b/src/main/java/org/shedlang/compiler/backends/llvm/ir/ast/operands/LlvmTypedOperand.java
new file mode 100644
index 00000000..91be449f
--- /dev/null
+++ b/src/main/java/org/shedlang/compiler/backends/llvm/ir/ast/operands/LlvmTypedOperand.java
@@ -0,0 +1,9 @@
+package org.shedlang.compiler.backends.llvm.ir.ast.operands;
+
+import org.shedlang.compiler.backends.llvm.ir.ast.types.LlvmType;
+
+public record LlvmTypedOperand(
+ LlvmType type,
+ LlvmOperand operand
+) {
+}