mips without optimize
This commit is contained in:
17
midend/llvm/constant/IrConstantArray.java
Normal file → Executable file
17
midend/llvm/constant/IrConstantArray.java
Normal file → Executable file
@@ -2,6 +2,8 @@ package midend.llvm.constant;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import backend.mips.instr.data.MipsSpace;
|
||||
import backend.mips.instr.data.MipsWord;
|
||||
import midend.llvm.type.IrInterType;
|
||||
import midend.llvm.type.IrArrayType;
|
||||
|
||||
@@ -44,4 +46,19 @@ public class IrConstantArray extends IrConstant {
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public void toMips(String label) {
|
||||
ArrayList<Integer> values = new ArrayList<>();
|
||||
if (elements.size() == 0) {
|
||||
new MipsSpace(size * 4, label);
|
||||
} else {
|
||||
for (IrConstant element : elements) {
|
||||
values.add(((IrConstantInt) element).getValue());
|
||||
}
|
||||
for (int i = 0; i < size - elements.size(); i++) {
|
||||
values.add(0);
|
||||
}
|
||||
new MipsWord(label, values);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user