From 39b0d3dda4dc5a8c9c27f73a3c7f0be1dfe5a34d Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 23 Sep 2023 16:29:16 +0100 Subject: Extract tupleDataLayout() --- .../shedlang/compiler/patio/PatioCodeGenTuples.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'src/main/java') 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 + )); + } } -- cgit v1.2.3