call.insertBefore(MIR_Move.create(IA32_MOV, M, R(PR)));
call.insertBefore(MIR_Move.create(IA32_MOV, M, new OPT_RegisterOperand(PR, VM_TypeReference.Int)));
  static void saveNonvolatilesBeforeSysCall(OPT_Instruction call, OPT_IR ir) {    OPT_PhysicalRegisterSet phys = ir.regpool.getPhysicalRegisterSet();    OPT_StackManager sm = (OPT_StackManager)ir.stackManager;    OPT_Instruction result = null;    // add one to account for the processor register.      int nToSave = OPT_PhysicalRegisterSet.getNumberOfNonvolatileGPRs() + 1;    // get the offset into the stack frame of where to stash the first    // nonvolatile for this case.    int location = sm.getOffsetForSysCall();        // save each non-volatile    for (Enumeration e = phys.enumerateNonvolatileGPRs();         e.hasMoreElements(); ) {      OPT_Register r = (OPT_Register)e.nextElement();      OPT_Operand M =         new OPT_StackLocationOperand(true, -location, (byte)WORDSIZE);      call.insertBefore(MIR_Move.create(IA32_MOV, M, R(r)));      location += WORDSIZE;    }        // save the processor register    OPT_Register PR = phys.getPR();    OPT_Operand M =       new OPT_StackLocationOperand(true, -location, (byte)WORDSIZE);    call.insertBefore(MIR_Move.create(IA32_MOV, M, R(PR)));  }