/** * Specify the registers used by this instruction. * * @param rs is the register set in use * @param index is an index associated with the instruction * @param strength is the importance of the instruction * @see scale.backend.RegisterAllocator#useRegister(int,int,int) * @see scale.backend.RegisterAllocator#defRegister(int,int) */ public void specifyRegisterUsage(RegisterAllocator rs, int index, int strength) { super.specifyRegisterUsage(rs, index, strength); if (annulled) return; // Annulled instructions are processed as part of an AnnulMarker. if (delaySlot != null) delaySlot.specifyRegisterUsage(rs, index, strength); }
/** * Map the registers defined in the instruction as destinations to the specified register. If the * register is not used as a destination register, no change is made. * * @param oldReg is the previous destination register * @param newReg is the new destination register */ public void remapDestRegister(int oldReg, int newReg) { super.remapDestRegister(oldReg, newReg); if (delaySlot != null) delaySlot.remapDestRegister(oldReg, newReg); }
public void remapRegisters(int[] map) { super.remapRegisters(map); if (delaySlot != null) delaySlot.remapRegisters(map); }