Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Compil3r.BytecodeAnalysis
Class ControlFlowGraph.BranchVisitor  view ControlFlowGraph.BranchVisitor download ControlFlowGraph.BranchVisitor.java

java.lang.Object
  extended byCompil3r.BytecodeAnalysis.BytecodeVisitor
      extended byCompil3r.BytecodeAnalysis.ControlFlowGraph.BranchVisitor
All Implemented Interfaces:
Clazz.jq_ClassFileConstants
Enclosing class:
ControlFlowGraph

static class ControlFlowGraph.BranchVisitor
extends BytecodeVisitor


Field Summary
(package private)  BasicBlock bb
           
private  ControlFlowGraph cfg
           
private  int[] n_pred
           
 
Fields inherited from class Compil3r.BytecodeAnalysis.BytecodeVisitor
bcs, BINOP_ADD, BINOP_AND, BINOP_DIV, BINOP_MUL, BINOP_OR, BINOP_REM, BINOP_SUB, BINOP_XOR, binopnames, clazz, CMP_AE, CMP_EQ, CMP_G, CMP_GE, CMP_GT, CMP_L, CMP_LE, CMP_LT, CMP_NE, CMP_UNCOND, cmpopnames, fcmpopnames, i_end, i_start, INVOKE_INTERFACE, INVOKE_SPECIAL, INVOKE_STATIC, INVOKE_VIRTUAL, invokeopnames, method, MONITOR_ENTER, MONITOR_EXIT, monitoropnames, out, SHIFT_LEFT, SHIFT_RIGHT, SHIFT_URIGHT, shiftopnames, TRACE, UNOP_NEG, unopnames
 
Fields inherited from interface Clazz.jq_ClassFileConstants
ACC_ABSTRACT, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, CONSTANT_Class, CONSTANT_Double, CONSTANT_FieldRef, CONSTANT_Float, CONSTANT_Integer, CONSTANT_InterfaceMethodRef, CONSTANT_Long, CONSTANT_MethodRef, CONSTANT_NameAndType, CONSTANT_ResolvedClass, CONSTANT_ResolvedIFieldRef, CONSTANT_ResolvedIMethodRef, CONSTANT_ResolvedSFieldRef, CONSTANT_ResolvedSMethodRef, CONSTANT_String, CONSTANT_Utf8, CONSUME_STACK, ILLEGAL_OPCODE, ILLEGAL_TYPE, jbc_AALOAD, jbc_AASTORE, jbc_ACONST_NULL, jbc_ALOAD, jbc_ALOAD_0, jbc_ALOAD_1, jbc_ALOAD_2, jbc_ALOAD_3, jbc_ANEWARRAY, jbc_ARETURN, jbc_ARRAYLENGTH, jbc_ASTORE, jbc_ASTORE_0, jbc_ASTORE_1, jbc_ASTORE_2, jbc_ASTORE_3, jbc_ATHROW, jbc_BALOAD, jbc_BASTORE, jbc_BIPUSH, jbc_BREAKPOINT, jbc_CALOAD, jbc_CASTORE, jbc_CHECKCAST, jbc_D2F, jbc_D2I, jbc_D2L, jbc_DADD, jbc_DALOAD, jbc_DASTORE, jbc_DCMPG, jbc_DCMPL, jbc_DCONST_0, jbc_DCONST_1, jbc_DDIV, jbc_DLOAD, jbc_DLOAD_0, jbc_DLOAD_1, jbc_DLOAD_2, jbc_DLOAD_3, jbc_DMUL, jbc_DNEG, jbc_DREM, jbc_DRETURN, jbc_DSTORE, jbc_DSTORE_0, jbc_DSTORE_1, jbc_DSTORE_2, jbc_DSTORE_3, jbc_DSUB, jbc_DUP, jbc_DUP_X1, jbc_DUP_X2, jbc_DUP2, jbc_DUP2_X1, jbc_DUP2_X2, jbc_F2D, jbc_F2I, jbc_F2L, jbc_FADD, jbc_FALOAD, jbc_FASTORE, jbc_FCMPG, jbc_FCMPL, jbc_FCONST_0, jbc_FCONST_1, jbc_FCONST_2, jbc_FDIV, jbc_FLOAD, jbc_FLOAD_0, jbc_FLOAD_1, jbc_FLOAD_2, jbc_FLOAD_3, jbc_FMUL, jbc_FNEG, jbc_FREM, jbc_FRETURN, jbc_FSTORE, jbc_FSTORE_0, jbc_FSTORE_1, jbc_FSTORE_2, jbc_FSTORE_3, jbc_FSUB, jbc_GETFIELD, jbc_GETSTATIC, jbc_GOTO, jbc_GOTO_W, jbc_I2B, jbc_I2C, jbc_I2D, jbc_I2F, jbc_I2L, jbc_I2S, jbc_IADD, jbc_IALOAD, jbc_IAND, jbc_IASTORE, jbc_ICONST_0, jbc_ICONST_1, jbc_ICONST_2, jbc_ICONST_3, jbc_ICONST_4, jbc_ICONST_5, jbc_ICONST_M1, jbc_IDIV, jbc_IF_ACMPEQ, jbc_IF_ACMPNE, jbc_IF_ICMPEQ, jbc_IF_ICMPGE, jbc_IF_ICMPGT, jbc_IF_ICMPLE, jbc_IF_ICMPLT, jbc_IF_ICMPNE, jbc_IFEQ, jbc_IFGE, jbc_IFGT, jbc_IFLE, jbc_IFLT, jbc_IFNE, jbc_IFNONNULL, jbc_IFNULL, jbc_IINC, jbc_ILOAD, jbc_ILOAD_0, jbc_ILOAD_1, jbc_ILOAD_2, jbc_ILOAD_3, jbc_IMUL, jbc_INEG, jbc_INSTANCEOF, jbc_INT2BYTE, jbc_INT2CHAR, jbc_INT2SHORT, jbc_INVOKEINTERFACE, jbc_INVOKENONVIRTUAL, jbc_INVOKESPECIAL, jbc_INVOKESTATIC, jbc_INVOKEVIRTUAL, jbc_IOR, jbc_IREM, jbc_IRETURN, jbc_ISHL, jbc_ISHR, jbc_ISTORE, jbc_ISTORE_0, jbc_ISTORE_1, jbc_ISTORE_2, jbc_ISTORE_3, jbc_ISUB, jbc_IUSHR, jbc_IXOR, jbc_JSR, jbc_JSR_W, jbc_L2D, jbc_L2F, jbc_L2I, jbc_LADD, jbc_LALOAD, jbc_LAND, jbc_LASTORE, jbc_LCMP, jbc_LCONST_0, jbc_LCONST_1, jbc_LDC, jbc_LDC_W, jbc_LDC2_W, jbc_LDIV, jbc_LLOAD, jbc_LLOAD_0, jbc_LLOAD_1, jbc_LLOAD_2, jbc_LLOAD_3, jbc_LMUL, jbc_LNEG, jbc_LOOKUPSWITCH, jbc_LOR, jbc_LREM, jbc_LRETURN, jbc_LSHL, jbc_LSHR, jbc_LSTORE, jbc_LSTORE_0, jbc_LSTORE_1, jbc_LSTORE_2, jbc_LSTORE_3, jbc_LSUB, jbc_LUSHR, jbc_LXOR, jbc_MONITORENTER, jbc_MONITOREXIT, jbc_MULTIANEWARRAY, jbc_NEW, jbc_NEWARRAY, jbc_NOP, jbc_POP, jbc_POP2, jbc_PUTFIELD, jbc_PUTSTATIC, jbc_RET, jbc_RETURN, jbc_SALOAD, jbc_SASTORE, jbc_SIPUSH, jbc_SWAP, jbc_TABLESWITCH, jbc_WIDE, NO_OF_OPERANDS, OPCODE_NAMES, PRODUCE_STACK, RESERVED, STATE_CLSINITERROR, STATE_CLSINITIALIZED, STATE_CLSINITIALIZING, STATE_CLSINITRUNNING, STATE_COMPILED, STATE_COMPILING, STATE_LOADED, STATE_LOADERROR, STATE_LOADING1, STATE_LOADING2, STATE_LOADING3, STATE_PREPARED, STATE_PREPARING, STATE_SFINITIALIZED, STATE_SFINITIALIZING, STATE_UNLOADED, STATE_VERIFIED, STATE_VERIFYING, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TC_ARRAY, TC_BOOLEAN, TC_BYTE, TC_CHAR, TC_CLASS, TC_CLASSEND, TC_DOUBLE, TC_FLOAT, TC_INT, TC_LONG, TC_PARAM, TC_PARAMEND, TC_SHORT, TC_VOID, TYPE_OF_OPERANDS, UNDEFINED, UNPREDICTABLE
 
Constructor Summary
(package private) ControlFlowGraph.BranchVisitor(Clazz.jq_Method m, ControlFlowGraph cfg, int[] n_pred)
           
 
Method Summary
private  void CONDBRANCHhelper(int target)
           
private  void RETURNhelper()
           
(package private)  void setLocation(int index)
           
 void visitARETURN()
           
 void visitATHROW()
           
 void visitDRETURN()
           
 void visitFRETURN()
           
 void visitGOTO(int target)
           
 void visitIF(byte op, int target)
           
 void visitIFCMP(byte op, int target)
           
 void visitIFREF(byte op, int target)
           
 void visitIFREFCMP(byte op, int target)
           
 void visitIRETURN()
           
 void visitJSR(int target)
           
 void visitLOOKUPSWITCH(int default_target, int[] values, int[] targets)
           
 void visitLRETURN()
           
 void visitRET(int i)
           
 void visitTABLESWITCH(int default_target, int low, int high, int[] targets)
           
 void visitVRETURN()
           
 
Methods inherited from class Compil3r.BytecodeAnalysis.BytecodeVisitor
forwardTraversal, resolve, resolve, resolve, resolve, resolve, updateCPIndex, updateMemberReference, visitAALOAD, visitAASTORE, visitACONST, visitAGETFIELD, visitAGETSTATIC, visitAINVOKE, visitALOAD, visitAPUTFIELD, visitAPUTSTATIC, visitARRAYLENGTH, visitASTORE, visitBALOAD, visitBASTORE, visitBGETFIELD, visitBGETSTATIC, visitBPUTFIELD, visitBPUTSTATIC, visitBytecode, visitCALOAD, visitCASTORE, visitCGETFIELD, visitCGETSTATIC, visitCHECKCAST, visitCPUTFIELD, visitCPUTSTATIC, visitD2F, visitD2I, visitD2L, visitDALOAD, visitDASTORE, visitDBINOP, visitDCMP2, visitDCONST, visitDGETFIELD, visitDGETSTATIC, visitDINVOKE, visitDLOAD, visitDPUTFIELD, visitDPUTSTATIC, visitDSTORE, visitDUNOP, visitDUP_x1, visitDUP_x2, visitDUP, visitDUP2_x1, visitDUP2_x2, visitDUP2, visitF2D, visitF2I, visitF2L, visitFALOAD, visitFASTORE, visitFBINOP, visitFCMP2, visitFCONST, visitFGETFIELD, visitFGETSTATIC, visitFINVOKE, visitFLOAD, visitFPUTFIELD, visitFPUTSTATIC, visitFSTORE, visitFUNOP, visitI2B, visitI2C, visitI2D, visitI2F, visitI2L, visitI2S, visitIALOAD, visitIASTORE, visitIBINOP, visitICONST, visitIGETFIELD, visitIGETSTATIC, visitIINC, visitIINVOKE, visitILOAD, visitINSTANCEOF, visitIPUTFIELD, visitIPUTSTATIC, visitISHIFT, visitISTORE, visitIUNOP, visitL2D, visitL2F, visitL2I, visitLALOAD, visitLASTORE, visitLBINOP, visitLCMP2, visitLCONST, visitLGETFIELD, visitLGETSTATIC, visitLINVOKE, visitLLOAD, visitLPUTFIELD, visitLPUTSTATIC, visitLSHIFT, visitLSTORE, visitLUNOP, visitMONITOR, visitMULTINEWARRAY, visitNEW, visitNEWARRAY, visitNOP, visitPEI, visitPOP, visitPOP2, visitSALOAD, visitSASTORE, visitSGETFIELD, visitSGETSTATIC, visitSPUTFIELD, visitSPUTSTATIC, visitSWAP, visitVINVOKE, visitZGETFIELD, visitZGETSTATIC, visitZPUTFIELD, visitZPUTSTATIC
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

cfg

private final ControlFlowGraph cfg

n_pred

private final int[] n_pred

bb

BasicBlock bb
Constructor Detail

ControlFlowGraph.BranchVisitor

ControlFlowGraph.BranchVisitor(Clazz.jq_Method m,
                               ControlFlowGraph cfg,
                               int[] n_pred)
Method Detail

setLocation

void setLocation(int index)

visitJSR

public void visitJSR(int target)
Overrides:
visitJSR in class BytecodeVisitor

visitRET

public void visitRET(int i)
Overrides:
visitRET in class BytecodeVisitor

visitGOTO

public void visitGOTO(int target)
Overrides:
visitGOTO in class BytecodeVisitor

RETURNhelper

private void RETURNhelper()

visitIRETURN

public void visitIRETURN()
Overrides:
visitIRETURN in class BytecodeVisitor

visitLRETURN

public void visitLRETURN()
Overrides:
visitLRETURN in class BytecodeVisitor

visitFRETURN

public void visitFRETURN()
Overrides:
visitFRETURN in class BytecodeVisitor

visitDRETURN

public void visitDRETURN()
Overrides:
visitDRETURN in class BytecodeVisitor

visitARETURN

public void visitARETURN()
Overrides:
visitARETURN in class BytecodeVisitor

visitVRETURN

public void visitVRETURN()
Overrides:
visitVRETURN in class BytecodeVisitor

visitATHROW

public void visitATHROW()
Overrides:
visitATHROW in class BytecodeVisitor

CONDBRANCHhelper

private void CONDBRANCHhelper(int target)

visitIF

public void visitIF(byte op,
                    int target)
Overrides:
visitIF in class BytecodeVisitor

visitIFREF

public void visitIFREF(byte op,
                       int target)
Overrides:
visitIFREF in class BytecodeVisitor

visitIFCMP

public void visitIFCMP(byte op,
                       int target)
Overrides:
visitIFCMP in class BytecodeVisitor

visitIFREFCMP

public void visitIFREFCMP(byte op,
                          int target)
Overrides:
visitIFREFCMP in class BytecodeVisitor

visitTABLESWITCH

public void visitTABLESWITCH(int default_target,
                             int low,
                             int high,
                             int[] targets)
Overrides:
visitTABLESWITCH in class BytecodeVisitor

visitLOOKUPSWITCH

public void visitLOOKUPSWITCH(int default_target,
                              int[] values,
                              int[] targets)
Overrides:
visitLOOKUPSWITCH in class BytecodeVisitor