Skip to content

Commit 317ef5c

Browse files
committed
Changed jasmin element loading to support ArrayOperand elements
1 parent a4437de commit 317ef5c

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

src/main/pt/up/fe/comp2023/jasmin/JVMInstructionUtils.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
public class JVMInstructionUtils {
1212

1313
public static String getLoadInstruction(Element element, HashMap<String, Descriptor> varTable) {
14+
System.out.println(element.getType());
1415
if (element.isLiteral()) {
1516
int literal = parseInt(((LiteralElement)element).getLiteral());
1617
if (literal >= 0 && literal <= 5)
@@ -24,7 +25,11 @@ public static String getLoadInstruction(Element element, HashMap<String, Descrip
2425
return "\tldc " + literal + '\n';
2526
}
2627

27-
ElementType elementType = element.getType().getTypeOfElement();
28+
ElementType elementType;
29+
if (element instanceof ArrayOperand)
30+
elementType = ElementType.ARRAYREF;
31+
else
32+
elementType = element.getType().getTypeOfElement();
2833
int virtualReg = varTable.get(((Operand)element).getName()).getVirtualReg();
2934
switch (elementType) {
3035
case THIS:

0 commit comments

Comments
 (0)