diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-09-23 16:29:16 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-09-23 16:29:16 +0100 |
| commit | 39b0d3dda4dc5a8c9c27f73a3c7f0be1dfe5a34d (patch) | |
| tree | 09cb93b18218ba56f1cfde23bb87a37958ae23c6 /src/main/java | |
| parent | 805abe0ba33875a0278c4a0c6e8fa76853fbd703 (diff) | |
Extract tupleDataLayout()
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/patio/PatioCodeGenTuples.java | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/main/java/org/shedlang/compiler/patio/PatioCodeGenTuples.java b/src/main/java/org/shedlang/compiler/patio/PatioCodeGenTuples.java index 5cf08c98..b7198683 100644 --- a/src/main/java/org/shedlang/compiler/patio/PatioCodeGenTuples.java +++ b/src/main/java/org/shedlang/compiler/patio/PatioCodeGenTuples.java @@ -3,6 +3,7 @@ package org.shedlang.compiler.patio; import org.shedlang.compiler.patio.ast.instructions.*; 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; @@ -26,10 +27,7 @@ public class PatioCodeGenTuples { var tuplePointer = tuplePointerResult.value(); context = tuplePointerResult.context(); - var tupleLayout = PatioDataLayouts.struct(Lists.repeat( - PatioDataLayouts.INT, - elements.size() - )); + var tupleLayout = tupleDataLayout(elements.size()); context = context.addInstruction(new PatioAllocHeap( tuplePointer, @@ -96,14 +94,18 @@ public class PatioCodeGenTuples { context = context.addInstruction(new PatioMemoryLoad( target, tuplePointer, - PatioDataLayouts.struct(Lists.repeat( - PatioDataLayouts.INT, - elementCount - )), + tupleDataLayout(elementCount), List.of(elementIndex), source )); return context.toResult(target); } + + private static PatioDataLayout tupleDataLayout(int elementCount) { + return PatioDataLayouts.struct(Lists.repeat( + PatioDataLayouts.INT, + elementCount + )); + } } |
