ret.insertBack(MIR_Binary.create(PPC_ADDI, L(FP), L(FP), I(frameSize)));
  final private void insertEpilogue(OPT_Instruction ret) {    // 1. Restore any saved registers    if (ir.compiledMethod.isSaveVolatile()) {      restoreVolatileRegisters(ret);    }    restoreNonVolatiles(ret);    // 2. Restore return address    OPT_PhysicalRegisterSet phys = ir.regpool.getPhysicalRegisterSet();    OPT_Register temp = phys.getTemp();    OPT_Register FP = phys.getFP();    ret.insertBack(MIR_Load.create(PPC_LWZ, R(temp), R(FP),                                   I(STACKFRAME_NEXT_INSTRUCTION_OFFSET + frameSize)));    // 3. Load return address into LR    ret.insertBack(MIR_Move.create(PPC_MTSPR, R(phys.getLR()),                                   R(phys.getTemp())));    // 4. Restore old FP    ret.insertBack(MIR_Binary.create(PPC_ADDI, R(FP), R(FP), I(frameSize)));  }