Class DexLibAbstractInstruction

java.lang.Object
sootup.apk.frontend.instruction.DexLibAbstractInstruction
Direct Known Subclasses:
AgetInstruction, ArrayLengthInstruction, Binop2addrInstruction, BinopInstruction, BinopLitInstruction, CastInstruction, CheckCastInstruction, CmpInstruction, ConstClassInstruction, ConstInstruction, ConstStringInstruction, FieldInstruction, FillArrayDataInstruction, FilledArrayInstruction, InstanceOfInstruction, JumpInstruction, MethodInvocationInstruction, MonitorEnterInstruction, MonitorExitInstruction, MoveExceptionInstruction, MoveInstruction, MoveResultInstruction, NewArrayInstruction, NewInstanceInstruction, NopInstruction, ReturnInstruction, ReturnVoidInstruction, SwitchInstruction, ThrowInstruction, UnOpInstruction

public abstract class DexLibAbstractInstruction extends Object
This class represents a wrapper around dexlib instruction.
  • Field Details

    • lineNumber

      protected int lineNumber
    • instruction

      protected final org.jf.dexlib2.iface.instruction.Instruction instruction
    • codeAddress

      protected final int codeAddress
    • stmt

      protected Stmt stmt
  • Constructor Details

    • DexLibAbstractInstruction

      public DexLibAbstractInstruction(org.jf.dexlib2.iface.instruction.Instruction instruction, int codeAddress)
      Parameters:
      instruction - the underlying dexlib instruction
      codeAddress - the bytecode address of this instruction
  • Method Details

    • getInstruction

      public org.jf.dexlib2.iface.instruction.Instruction getInstruction()
    • jimplify

      public abstract void jimplify(DexBody body)
      Jimplify this instruction.
      Parameters:
      body - to jimplify into.
    • getLineNumber

      public int getLineNumber()
    • setLineNumber

      public void setLineNumber(int lineNumber)
    • setStmt

      protected void setStmt(Stmt stmt)
    • getStmt

      public Stmt getStmt()
    • getUsedRegistersNums

      protected List<Integer> getUsedRegistersNums(org.jf.dexlib2.iface.instruction.RegisterRangeInstruction instruction)
      Return the indices used in the given instruction.
      Parameters:
      instruction - a range invocation instruction
      Returns:
      a list of register indices
    • getUsedRegistersNums

      protected List<Integer> getUsedRegistersNums(org.jf.dexlib2.iface.instruction.FiveRegisterInstruction instruction)
      Return the indices used in the given instruction.
      Parameters:
      instruction - a invocation instruction
      Returns:
      a list of register indices