s.insertBack(MIR_Load.create(PPC_LFS, F(r), A(FP), IC(location)));
s.insertBack(MIR_Load.create(PPC_LFS, F(r), A(FP), IC(location + BYTES_IN_ADDRESS - BYTES_IN_FLOAT)));
  final void insertUnspillBefore(OPT_Instruction s, OPT_Register r,                                  byte type, int location) {        OPT_PhysicalRegisterSet phys = ir.regpool.getPhysicalRegisterSet();    OPT_Register FP = phys.getFP();    if (type == CONDITION_VALUE) {      OPT_Register temp = phys.getTemp();      s.insertBack(MIR_Load.create(PPC_LWZ, I(temp), A(FP),                                   IC(location)));    } else if (type == DOUBLE_VALUE) {        s.insertBack(MIR_Load.create(PPC_LFD, D(r), A(FP), IC(location)));    } else if (type == FLOAT_VALUE) {      s.insertBack(MIR_Load.create(PPC_LFS, F(r), A(FP), IC(location)));    } else if (type == INT_VALUE) { // integer or half of long      s.insertBack(MIR_Load.create(PPC_LAddr, A(r), A(FP), IC(location)));    } else {      throw new OPT_OptimizingCompilerException("insertUnspillBefore",                                                 "unknown type:" + type);    }  }