diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-12-16 15:38:53 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-12-16 15:38:53 +0000 |
| commit | 7171b9c14ed8b4d6c2ea363c5be1f08a151d7688 (patch) | |
| tree | 0322e4643762cb464ab48e4dc1f32edee61f4fcc /src/main/java | |
| parent | b6ade34f14bc5049e036a43f640b862f6c3390bc (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.java | 15 |
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 )); } |
