/** Return true if the instruction can be deleted without changing program semantics. */ public boolean canBeDeleted(RegisterSet registers) { int ard = registers.actualRegister(rd); return (ard == SparcRegisterSet.G0_REG); }
/** Return true if the instruction uses the register. */ public boolean uses(int register, RegisterSet registers) { int ars1 = registers.actualRegister(rs1); int areg = registers.actualRegister(register); return (areg == ars1); }
/** Return true if the instruction sets the register. */ public boolean defs(int register, RegisterSet registers) { int ard = registers.actualRegister(rd); int areg = registers.actualRegister(register); return (areg == ard); }
/** Mark the instruction as no longer needed. */ public void nullify(RegisterSet rs) { if (rs.virtualRegister(ra) && !isMandatory()) { super.nullify(rs); } }