if (getRestrictions().mustBeInRegister(r,s)) return true;
if (OPT_RegisterRestrictions.mustBeInRegister(r,s)) return true;
  boolean needScratch(OPT_Register r, OPT_Instruction s) {    // We never need a scratch register for a floating point value in an    // FMOV instruction.    if (r.isFloatingPoint() && s.operator==IA32_FMOV) return false;    //-#if RVM_WITH_OSR    // never need a scratch register for a YIELDPOINT_OSR    if (s.operator == YIELDPOINT_OSR) return false;    //-#endif    // Some MOVEs never need scratch registers    if (isScratchFreeMove(s)) return false;    // If s already has a memory operand, it is illegal to introduce    // another.    if (s.hasMemoryOperand()) return true;    // Check the architecture restrictions.    if (getRestrictions().mustBeInRegister(r,s)) return true;        // Otherwise, everything is OK.    return false;  }