aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-12-16 15:38:53 +0000
committerMichael Williamson <mike@zwobble.org>2023-12-16 15:38:53 +0000
commit7171b9c14ed8b4d6c2ea363c5be1f08a151d7688 (patch)
tree0322e4643762cb464ab48e4dc1f32edee61f4fcc /src/main/java
parentb6ade34f14bc5049e036a43f640b862f6c3390bc (diff)
Extract constants for var data layout and offset
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/patio/PatioCodeGenVars.java15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/main/java/org/shedlang/compiler/patio/PatioCodeGenVars.java b/src/main/java/org/shedlang/compiler/patio/PatioCodeGenVars.java
index cd85e2cd..6058529d 100644
--- a/src/main/java/org/shedlang/compiler/patio/PatioCodeGenVars.java
+++ b/src/main/java/org/shedlang/compiler/patio/PatioCodeGenVars.java
@@ -5,6 +5,7 @@ import org.shedlang.compiler.patio.ast.instructions.PatioMemoryLoad;
import org.shedlang.compiler.patio.ast.instructions.PatioMemoryStore;
import org.shedlang.compiler.patio.ast.operands.PatioLocalRef;
import org.shedlang.compiler.patio.ast.operands.PatioOperand;
+import org.shedlang.compiler.patio.ast.types.PatioDataLayout;
import org.shedlang.compiler.patio.ast.types.PatioDataLayouts;
import org.shedlang.compiler.patio.ast.types.PatioTypes;
import org.shedlang.compiler.sources.Source;
@@ -15,6 +16,10 @@ public class PatioCodeGenVars {
private PatioCodeGenVars() {
}
+ private static final PatioDataLayout VAR_DATA_LAYOUT
+ = PatioDataLayouts.fromType(PatioCodeGenTypes.VALUE_TYPE);
+ private static final List<Integer> VALUE_OFFSET = List.of();
+
public static PatioCodeGenContext alloc(
String shidName,
Source source,
@@ -29,7 +34,7 @@ public class PatioCodeGenVars {
context = context.addInstruction(new PatioAllocStack(
patioLocal,
- PatioDataLayouts.fromType(PatioCodeGenTypes.VALUE_TYPE),
+ VAR_DATA_LAYOUT,
source
));
@@ -46,8 +51,8 @@ public class PatioCodeGenVars {
) {
return context.addInstruction(new PatioMemoryStore(
context.shidLocalNameToLocal(shidName),
- PatioDataLayouts.fromType(PatioCodeGenTypes.VALUE_TYPE),
- List.of(),
+ VAR_DATA_LAYOUT,
+ VALUE_OFFSET,
value,
source
));
@@ -62,8 +67,8 @@ public class PatioCodeGenVars {
return context.addInstruction(new PatioMemoryLoad(
target,
context.shidLocalNameToLocal(shidName),
- PatioDataLayouts.fromType(PatioCodeGenTypes.VALUE_TYPE),
- List.of(),
+ VAR_DATA_LAYOUT,
+ VALUE_OFFSET,
source
));
}