ret.insertBefore(MIR_UnaryNoRes.create(IA32_FCLEAR,I(nSave)));
  private static void returnExpand(OPT_Instruction ret, OPT_IR ir) {    OPT_PhysicalRegisterSet phys = ir.regpool.getPhysicalRegisterSet();    // Clear floating-point stack if dirty    if (ir.options.fclearWithFNINIT()) {      if (ir.hasFloatingPoint()) {        ret.insertBefore(MIR_Empty.create(IA32_FNINIT));      }    }        if (MIR_Return.hasVal(ret)) {      OPT_Operand symb1 = MIR_Return.getClearVal(ret);      MIR_Return.setVal(ret, null);      VM_Type type = symb1.getType();      if (type.isFloatType() || type.isDoubleType()) {        OPT_Register r = phys.getReturnFPR();        OPT_RegisterOperand rOp= new OPT_RegisterOperand(r, type);	ret.insertBefore(MIR_Move.create(IA32_FMOV, rOp, symb1));	MIR_Return.setVal(ret, rOp.copyD2U());      } else {        OPT_Register r = phys.getFirstReturnGPR();        OPT_RegisterOperand rOp= new OPT_RegisterOperand(r, type);	ret.insertBefore(MIR_Move.create(IA32_MOV, rOp, symb1));	MIR_Return.setVal(ret, rOp.copyD2U());      }    }    if (MIR_Return.hasVal2(ret)) {      OPT_Operand symb2 = MIR_Return.getClearVal2(ret);      MIR_Return.setVal2(ret,null);      VM_Type type = symb2.getType();      OPT_Register r = phys.getSecondReturnGPR();      OPT_RegisterOperand rOp= new OPT_RegisterOperand(r, type);      ret.insertBefore(MIR_Move.create(IA32_MOV, rOp, symb2));      MIR_Return.setVal2(ret, rOp.copyD2U());    }    // Clear the floating-point stack if dirty.    if (!ir.options.fclearWithFNINIT()) {      if (ir.hasFloatingPoint()) {        int nSave=0;        if (MIR_Return.hasVal(ret)) {          OPT_Operand symb1 = MIR_Return.getClearVal(ret);          VM_Type type = symb1.getType();          if (type.isFloatType() || type.isDoubleType()) {            nSave=1;          }        }        ret.insertBefore(MIR_UnaryNoRes.create(IA32_FCLEAR,I(nSave)));      }    }    // Set the first 'Val' in the return instruction to hold an integer    // constant which is the number of words to pop from the stack while     // returning from this method.    MIR_Return.setPopBytes(ret, I(ir.incomingParameterBytes()));  }