s.insertBefore(Move.create(LONG_MOVE, rop, addr));
s.insertBefore(Move.create(REF_MOVE, rop, addr));
  static OPT_Operand asImmediateOrRegLong(OPT_Operand addr,                                      OPT_Instruction s,                                      OPT_IR ir) {    if (addr instanceof OPT_IntConstantOperand) {      if (!canBeImmediate(((OPT_IntConstantOperand)addr).value)) {        OPT_RegisterOperand rop = ir.regpool.makeTempLong();        s.insertBefore(Move.create(LONG_MOVE, rop, addr));        return rop.copyD2U();      }    }    else       if (addr instanceof OPT_LongConstantOperand) {        if (!canBeImmediate(((OPT_LongConstantOperand)addr).value)) {          OPT_RegisterOperand rop = ir.regpool.makeTempLong();          s.insertBefore(Move.create(LONG_MOVE, rop, addr));          return rop.copyD2U();        } else { // can be immediate --> convert to int          return new OPT_IntConstantOperand((int)((OPT_LongConstantOperand)addr).value);        }      }        // Operand was OK as is.    return addr;  }