class MoveResultInstruction extends DexlibAbstractInstruction {
  // private Local local;
  // private Expr expr;

  public MoveResultInstruction(Instruction instruction, int codeAdress) {
    super(instruction, codeAdress);
  }

  @Override
  public void jimplify(DexBody body) {<FILL_FUNCTION_BODY>}

  // public void setLocalToMove(Local l) {
  // local = l;
  // }
  // public void setExpr(Expr e) {
  // expr = e;
  // }

  @Override
  boolean overridesRegister(int register) {
    OneRegisterInstruction i = (OneRegisterInstruction) instruction;
    int dest = i.getRegisterA();
    return register == dest;
  }
}

    // if (local != null && expr != null)
    // throw new RuntimeException("Both local and expr are set to move.");

    int dest = ((OneRegisterInstruction) instruction).getRegisterA();

    // if (local != null)
    // assign = Jimple.v().newAssignStmt(body.getRegisterLocal(dest), local);
    // else if (expr != null)
    // assign = Jimple.v().newAssignStmt(body.getRegisterLocal(dest), expr);
    // else
    // throw new RuntimeException("Neither local and expr are set to move.");
    AssignStmt assign = Jimple.v().newAssignStmt(body.getRegisterLocal(dest), body.getStoreResultLocal());
    setUnit(assign);
    addTags(assign);
    body.add(assign);

    if (IDalvikTyper.ENABLE_DVKTYPER) {
      JAssignStmt jassign = (JAssignStmt) assign;
      DalvikTyper.v().addConstraint(assign.getLeftOpBox(), assign.getRightOpBox());
    }
  
<methods>public void <init>(org.jf.dexlib2.iface.instruction.Instruction, int) ,public org.jf.dexlib2.iface.instruction.Instruction getInstruction() ,public int getLineNumber() ,public soot.Unit getUnit() ,public Set<soot.Type> introducedTypes() ,public abstract void jimplify(soot.dexpler.DexBody) ,public void setLineNumber(int) <variables>protected final non-sealed int codeAddress,protected final non-sealed org.jf.dexlib2.iface.instruction.Instruction instruction,protected int lineNumber,protected soot.Unit unit