if (op1 instanceof OPT_NullConstantOperand) {
if ((op1 instanceof OPT_NullConstantOperand) || (op1 instanceof OPT_AddressConstantOperand)) {
  private OPT_Instruction do_astore(int index) {    OPT_Operand op1 = pop();    if (op1 instanceof ReturnAddressOperand) {      setLocal(index, op1);      return null;    }    boolean doConstantProp = false;    if (op1 instanceof OPT_NullConstantOperand) {      doConstantProp = true;    }    VM_TypeReference type = op1.getType();    if (LOCALS_ON_STACK)      replaceLocalsOnStack(index, type);    if (ELIM_COPY_LOCALS) {      if (op1 instanceof OPT_RegisterOperand) {        OPT_RegisterOperand rop1 = (OPT_RegisterOperand)op1;        OPT_Register r1 = rop1.register;        if (lastInstr != null && ResultCarrier.conforms(lastInstr) &&             ResultCarrier.hasResult(lastInstr) && !r1.isLocal() &&             r1 == ResultCarrier.getResult(lastInstr).register) {          if (DBG_ELIMCOPY)            db("eliminated copy " + op1 + " to " + index);          OPT_RegisterOperand newop0 = gc.makeLocal(index, rop1);          ResultCarrier.setResult(lastInstr, newop0);          setLocal(index, newop0);          gc.temps.release(rop1);          return null;        }      }    }    OPT_RegisterOperand op0;    if (op1 instanceof OPT_RegisterOperand) {      OPT_RegisterOperand rop1 = (OPT_RegisterOperand)op1;      op0 = gc.makeLocal(index, rop1);      if (hasGuard(rop1)) {        OPT_RegisterOperand g0 = gc.makeNullCheckGuard(op0.register);        appendInstruction(Move.create(GUARD_MOVE, g0.copyRO(),getGuard(rop1)));        setGuard(op0, g0);      }    } else {      op0 = gc.makeLocal(index, type);    }    if (CP_IN_LOCALS)      setLocal(index, doConstantProp ? op1 : op0);     else       setLocal(index, op0);    OPT_Instruction s = Move.create(REF_MOVE, op0, op1);    s.position = gc.inlineSequence;    s.bcIndex = instrIndex;    return s;  }