You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.0 KiB
52 lines
1.0 KiB
package processor.pipeline;
|
|
|
|
public class RegisterFile {
|
|
int[] registerFile;
|
|
int programCounter;
|
|
|
|
public RegisterFile()
|
|
{
|
|
registerFile = new int[32];
|
|
registerFile[0]=0; //%xo is always 0 [RISC V]
|
|
}
|
|
|
|
public int getValue(int registerNumber)
|
|
{
|
|
return registerFile[registerNumber];
|
|
}
|
|
|
|
public void setValue(int registerNumber, int value)
|
|
{
|
|
registerFile[registerNumber] = value;
|
|
}
|
|
|
|
public int getProgramCounter()
|
|
{
|
|
return programCounter;
|
|
}
|
|
|
|
public void setProgramCounter(int programCounter)
|
|
{
|
|
this.programCounter = programCounter;
|
|
}
|
|
|
|
public void incrementProgramCounter()
|
|
{
|
|
this.programCounter++;
|
|
}
|
|
|
|
public String getContentsAsString()
|
|
{
|
|
StringBuilder sb = new StringBuilder();
|
|
sb.append("\nRegister File Contents:\n\n");
|
|
sb.append("PC" + "\t: " + programCounter + "\n\n");
|
|
|
|
sb.append("x" + 0 + "\t: " + registerFile[0]+ "\n"); //%xo is always 0 [RISC V]
|
|
for(int i = 1; i < 32; i++)
|
|
{
|
|
sb.append("x" + i + "\t: " + registerFile[i] + "\n");
|
|
}
|
|
sb.append("\n");
|
|
return sb.toString();
|
|
}
|
|
}
|
|
|