@@ -47,6 +47,13 @@ public static String getLoadInstruction(Element element, HashMap<String, Descrip
47
47
return "" ;
48
48
}
49
49
50
+ public static String getArrayLoadInstruction (ArrayOperand array , HashMap <String , Descriptor > varTable ) {
51
+ String statementList = "" ;
52
+ statementList += getLoadInstruction (array , varTable );
53
+ statementList += getLoadInstruction (array .getIndexOperands ().get (0 ), varTable );
54
+ return statementList ;
55
+ }
56
+
50
57
public static String getStoreInstruction (Element element , HashMap <String , Descriptor > varTable ) {
51
58
int virtualReg = varTable .get (((Operand )element ).getName ()).getVirtualReg ();
52
59
@@ -195,11 +202,8 @@ public static String createAssignStatement(AssignInstruction instruction, HashMa
195
202
Element assignElement = instruction .getDest ();
196
203
String statementList = "" ;
197
204
198
- if (assignElement instanceof ArrayOperand ) {
199
- statementList += getLoadInstruction (assignElement , varTable );
200
- statementList += getLoadInstruction (((ArrayOperand )assignElement ).getIndexOperands ().get (0 ), varTable );
201
- }
202
-
205
+ if (assignElement instanceof ArrayOperand )
206
+ statementList += getArrayLoadInstruction ((ArrayOperand )assignElement , varTable );
203
207
statementList += JasminUtils .handleInstruction (instruction .getRhs (), varTable , true );
204
208
if (assignElement instanceof ArrayOperand )
205
209
statementList += "\t iastore\n " ;
0 commit comments