inst.insertBack(MIR_Store.create(PPC64_STD, R(temp), L(FP), I(saveCTRLocation)));
  private void saveVolatiles(OPT_Instruction inst) {    OPT_PhysicalRegisterSet phys = ir.regpool.getPhysicalRegisterSet();    int nNonvolatileGPRS = ir.compiledMethod.getNumberOfNonvolatileGPRs();    // 1. save the volatile GPRs    OPT_Register FP = phys.getFP();    int i = 0;    for (Enumeration e = phys.enumerateVolatileGPRs();         e.hasMoreElements(); i++) {      OPT_Register r = (OPT_Register)e.nextElement();      int location = saveVolatileGPRLocation[i];      inst.insertBefore(MIR_Store.create(PPC_STW, R(r), R(FP), I(location)));    }    // 2. save the volatile FPRs    i = 0;    for (Enumeration e = phys.enumerateVolatileFPRs();         e.hasMoreElements(); i++) {      OPT_Register r = (OPT_Register)e.nextElement();      int location = saveVolatileFPRLocation[i];      inst.insertBefore(MIR_Store.create(PPC_STFD, D(r), R(FP), I(location)));    }        // 3. Save some special registers    OPT_Register temp = phys.getTemp();        inst.insertBack(MIR_Move.create(PPC_MFSPR, R(temp), R(phys.getXER()) ));    inst.insertBack(MIR_Store.create(PPC_STW, R(temp), R(FP),I(saveXERLocation)));    inst.insertBack(MIR_Move.create(PPC_MFSPR, R(temp), R(phys.getCTR())));    inst.insertBack(MIR_Store.create(PPC_STW, R(temp), R(FP), I(saveCTRLocation)));  }