Instruction decodeFloatInstruction(
      int instruction,
      SPARCRegister rs1,
      SPARCRegister rs2,
      SPARCRegister rd,
      SPARCInstructionFactory factory) {
    if (Assert.ASSERTS_ENABLED)
      Assert.that(rs2.isFloat() && rd.isFloat(), "rs2, rd have to be float registers");

    return factory.newFP2RegisterInstruction(
        name, opf, (SPARCFloatRegister) rs2, (SPARCFloatRegister) rd);
  }
 protected String getDescription() {
   StringBuffer buf = new StringBuffer();
   buf.append(getName());
   buf.append(spaces);
   buf.append(rs1.toString());
   buf.append(comma);
   if (operand2.isRegister()) {
     buf.append(operand2.toString());
   } else {
     int value = ((Immediate) operand2).getNumber().intValue();
     buf.append(Integer.toHexString(value));
   }
   buf.append(comma);
   buf.append(getPrivilegedRegisterName(regNum));
   return buf.toString();
 }