aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompiler.java5
-rw-r--r--src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompilerNamespaces.java11
2 files changed, 10 insertions, 6 deletions
diff --git a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompiler.java b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompiler.java
index db0be392..fb0c32ed 100644
--- a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompiler.java
+++ b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompiler.java
@@ -86,10 +86,7 @@ public class LlvmCompiler {
context = context.addTerminatorInstruction(new LlvmReturn(
LlvmCompilerTypes.VALUE_TYPE,
- new LlvmOperandPtrToInt(
- LlvmCompilerNamespaces.operandNamespaceValue(namespaceName),
- LlvmCompilerTypes.VALUE_TYPE
- )
+ LlvmCompilerNamespaces.operandNamespaceValue(namespaceName)
));
var basicBlocks = context.basicBlocks();
var namespaceInitFunction = new LlvmFunctionDefinition(
diff --git a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompilerNamespaces.java b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompilerNamespaces.java
index 8b4c7622..ceb263f5 100644
--- a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompilerNamespaces.java
+++ b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompilerNamespaces.java
@@ -32,7 +32,14 @@ public class LlvmCompilerNamespaces {
));
}
- public static LlvmVariableGlobal operandNamespaceValue(NamespaceName namespaceName) {
+ public static LlvmOperand operandNamespaceValue(NamespaceName namespaceName) {
+ return new LlvmOperandPtrToInt(
+ LlvmCompilerNamespaces.operandNamespaceStruct(namespaceName),
+ LlvmCompilerTypes.VALUE_TYPE
+ );
+ }
+
+ public static LlvmOperand operandNamespaceStruct(NamespaceName namespaceName) {
return new LlvmVariableGlobal(globalNameNamespaceValue(namespaceName));
}
@@ -79,7 +86,7 @@ public class LlvmCompilerNamespaces {
return context.addInstruction(new LlvmGetElementPtr(
fieldPointer,
typeNamespacePointer(namespaceTypeInfo),
- operandNamespaceValue(namespaceName),
+ operandNamespaceStruct(namespaceName),
List.of(
LlvmTypedOperand.arrayIndex(0),
LlvmTypedOperand.structureIndex(namespaceTypeInfo.fieldIndex(fieldName))