Class DexCodeVisitor

java.lang.Object
com.googlecode.d2j.visitors.DexCodeVisitor
Direct Known Subclasses:
DexCodeNode

public class DexCodeVisitor extends Object
  • Field Details

  • Constructor Details

    • DexCodeVisitor

      public DexCodeVisitor()
    • DexCodeVisitor

      public DexCodeVisitor(DexCodeVisitor visitor)
  • Method Details

    • visitRegister

      public void visitRegister(int total)
    • visitStmt2R1N

      public void visitStmt2R1N(Op op, int distReg, int srcReg, int content)
       OP_X_INT_LIT8
       
    • visitStmt3R

      public void visitStmt3R(Op op, int a, int b, int c)
      
       OP_ADD
       OP_SUB
       OP_MUL
       OP_DIV
       OP_REM
       OP_AND
       OP_OR
       OP_XOR
       OP_SHL
       OP_SHR
       OP_USHR
       OP_CMPL
       OP_CMPG
       OP_CMP
       OP_AGETX
       OP_APUTX
       
    • visitTypeStmt

      public void visitTypeStmt(Op op, int a, int b, String type)
       OP_INSTANCE_OF
       OP_NEW_ARRAY
       OP_CHECK_CAST
       OP_NEW_INSTANCE
       
    • visitConstStmt

      public void visitConstStmt(Op op, int ra, Object value)
      Parameters:
      op - CONST*
      ra - register
      value - Integer,Long,DexType,MethodHandle,Proto
      See Also:
    • visitFillArrayDataStmt

      public void visitFillArrayDataStmt(Op op, int ra, Object array)
    • visitEnd

      public void visitEnd()
    • visitFieldStmt

      public void visitFieldStmt(Op op, int a, int b, Field field)
       OP_IGETX a,b field
       OP_IPUTX a,b field
       OP_SGETX a field
       OP_SPUTX a field
       
    • visitFilledNewArrayStmt

      public void visitFilledNewArrayStmt(Op op, int[] args, String type)
       OP_FILLED_NEW_ARRAY
       
    • visitJumpStmt

      public void visitJumpStmt(Op op, int a, int b, DexLabel label)
       OP_IF_EQ
       OP_IF_NE
       OP_IF_LT
       OP_IF_GE
       OP_IF_GT
       OP_IF_LE
       OP_GOTO
       OP_IF_EQZ
       OP_IF_NEZ
       OP_IF_LTZ
       OP_IF_GEZ
       OP_IF_GTZ
       OP_IF_LEZ
       
    • visitLabel

      public void visitLabel(DexLabel label)
    • visitSparseSwitchStmt

      public void visitSparseSwitchStmt(Op op, int ra, int[] cases, DexLabel[] labels)
    • visitMethodStmt

      public void visitMethodStmt(Op op, int[] args, Method method)
       OP_INVOKE_VIRTUAL
       OP_INVOKE_SUPER
       OP_INVOKE_DIRECT
       OP_INVOKE_STATIC
       OP_INVOKE_INTERFACE
       
    • visitMethodStmt

      public void visitMethodStmt(Op op, int[] args, CallSite callSite)
       OP_INVOKE_CUSTOM
       
    • visitMethodStmt

      public void visitMethodStmt(Op op, int[] args, Method bsm, Proto proto)
       OP_INVOKE_POLYMORPHIC
       
    • visitStmt2R

      public void visitStmt2R(Op op, int a, int b)
       OP_MOVE*
       a = a X b
       OP_ARRAY_LENGTH
       a=Xb
       X_TO_Y
       
    • visitStmt0R

      public void visitStmt0R(Op op)
    • visitStmt1R

      public void visitStmt1R(Op op, int reg)
       OP_RETURN_X
       OP_THROW_X
       OP_MONITOR_ENTER
       OP_MONITOR_EXIT
       OP_MOVE_RESULT_X
       OP_MOVE_EXCEPTION_X
       
    • visitPackedSwitchStmt

      public void visitPackedSwitchStmt(Op op, int aA, int firstCase, DexLabel[] labels)
    • visitTryCatch

      public void visitTryCatch(DexLabel start, DexLabel end, DexLabel[] handler, String[] type)
    • visitDebug

      public DexDebugVisitor visitDebug()