Files
MY_COMPILER/backend/mips/Register.java
2025-12-12 20:14:00 +08:00

58 lines
1.1 KiB
Java
Executable File

package backend.mips;
import java.util.ArrayList;
public enum Register {
ZERO("$zero"),
AT("$at"),
V0("$v0"),
V1("$v1"),
A0("$a0"),
A1("$a1"),
A2("$a2"),
A3("$a3"),
T0("$t0"),
T1("$t1"),
T2("$t2"),
T3("$t3"),
T4("$t4"),
T5("$t5"),
T6("$t6"),
T7("$t7"),
S0("$s0"),
S1("$s1"),
S2("$s2"),
S3("$s3"),
S4("$s4"),
S5("$s5"),
S6("$s6"),
S7("$s7"),
T8("$t8"),
T9("$t9"),
K0("$k0"),
K1("$k1"),
GP("$gp"),
SP("$sp"),
FP("$fp"),
RA("$ra");
private String regName;
Register(String regName) {
this.regName = regName;
}
public String toString() {
return regName;
}
public static ArrayList<Register> availableRegisters() {
ArrayList<Register> regs = new ArrayList<>();
for (Register reg : Register.values()) {
if (reg.toString().charAt(1) == 't' || reg.toString().charAt(1) == 's') {
regs.add(reg);
}
}
return regs;
}
}